From eb17f57761ace5014d53f302db491f3a2f241655 Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 4 Feb 2023 17:35:20 +0000 Subject: [PATCH] pypi fixes --- README.md | 3 ++- scripts/make-pypi-release.sh | 35 ++++++++++++++++++++++++++++++++++- setup.py | 11 +++-------- 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 01a18946..c5a4be2c 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,8 @@ try the **[read-only demo server](https://a.ocv.me/pub/demo/)** 👀 running fro download **[copyparty-sfx.py](https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py)** and you're all set! -if you cannot install python, you can use [copyparty.exe](#copypartyexe) instead +* or install through pypi (python3 only): `python3 -m pip install --user -U copyparty` +* or if you cannot install python, you can use [copyparty.exe](#copypartyexe) instead running the sfx without arguments (for example doubleclicking it on Windows) will give everyone read/write access to the current folder; you may want [accounts and volumes](#accounts-and-volumes) diff --git a/scripts/make-pypi-release.sh b/scripts/make-pypi-release.sh index 74c1c005..1fcbe0fe 100755 --- a/scripts/make-pypi-release.sh +++ b/scripts/make-pypi-release.sh @@ -15,10 +15,12 @@ gtar=$(command -v gtar || command -v gnutar) || true } mode="$1" +fast="$2" [ -z "$mode" ] && { echo "need argument 1: (D)ry, (T)est, (U)pload" + echo " optional arg 2: fast" echo exit 1 } @@ -90,10 +92,13 @@ load_env || { load_env } +# grab licenses +scripts/genlic.sh copyparty/res/COPYING.txt + # remove type hints to support python < 3.9 rm -rf build/pypi mkdir -p build/pypi -cp -pR setup.py README.md LICENSE copyparty tests bin scripts/strip_hints build/pypi/ +cp -pR setup.py README.md LICENSE copyparty contrib bin scripts/strip_hints build/pypi/ tar -c docs/lics.txt scripts/genlic.sh build/*.txt | tar -xC build/pypi/ cd build/pypi f=../strip-hints-0.1.10.tar.gz @@ -103,6 +108,34 @@ f=../strip-hints-0.1.10.tar.gz tar --strip-components=2 -xf $f strip-hints-0.1.10/src/strip_hints python3 -c 'from strip_hints.a import uh; uh("copyparty")' +# resolve symlinks +find -type l | +while IFS= read -r f1; do ( + cd "${f1%/*}" + f1="./${f1##*/}" + f2="$(readlink "$f1")" + [ -e "$f2" ] || f2="../$f2" + [ -e "$f2" ] || { + echo could not resolve "$f1" + exit 1 + } + rm "$f1" + cp -p "$f2" "$f1" +); done + +# resolve symlinks on windows +[ "$OSTYPE" = msys ] && +(cd ../..; git ls-files -s | awk '/^120000/{print$4}') | +while IFS= read -r x; do + [ $(wc -l <"$x") -gt 1 ] && continue + (cd "${x%/*}"; cp -p "../$(cat "${x##*/}")" ${x##*/}) +done + +rm -rf contrib +[ $fast ] && sed -ri s/5730/10/ copyparty/web/Makefile +(cd copyparty/web && make -j$(nproc) && rm Makefile) + +# build ./setup.py clean2 ./setup.py sdist bdist_wheel --universal diff --git a/setup.py b/setup.py index 09bbf6d8..b6f1b6f7 100755 --- a/setup.py +++ b/setup.py @@ -29,12 +29,6 @@ with open(here + "/README.md", "rb") as f: txt = f.read().decode("utf-8") long_description = txt -try: - cmd = "bash scripts/genlic.sh copyparty/res/COPYING.txt" - sp.Popen(cmd.split()).wait() -except: - pass - about = {} if not VERSION: with open(os.path.join(here, NAME, "__version__.py"), "rb") as f: @@ -95,8 +89,6 @@ args = { "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Programming Language :: Python", - "Programming Language :: Python :: 2", - "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", @@ -146,4 +138,7 @@ args = { "cmdclass": {"clean2": clean2}, } +if sys.version_info < (3, 8): + args["install_requires"].append("ipaddress") + setup(**args)