From deca0826231c78f386439dfffc31f368666a56c0 Mon Sep 17 00:00:00 2001 From: ed Date: Sun, 7 May 2023 18:34:39 +0000 Subject: [PATCH] v1.7.1 --- bin/u2c.py | 4 ++-- contrib/package/arch/PKGBUILD | 7 +++++++ copyparty/__version__.py | 4 ++-- copyparty/web/Makefile | 2 +- docs/changelog.md | 28 ++++++++++++++++++++++++++++ pyproject.toml | 2 ++ scripts/make-pypi-release.sh | 4 +++- scripts/make-tgz-release.sh | 1 + tests/util.py | 2 +- 9 files changed, 47 insertions(+), 7 deletions(-) diff --git a/bin/u2c.py b/bin/u2c.py index 27c286c6..63e45220 100755 --- a/bin/u2c.py +++ b/bin/u2c.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 from __future__ import print_function, unicode_literals -S_VERSION = "1.8" -S_BUILD_DT = "2023-04-27" +S_VERSION = "1.9" +S_BUILD_DT = "2023-05-07" """ u2c.py: upload to copyparty diff --git a/contrib/package/arch/PKGBUILD b/contrib/package/arch/PKGBUILD index 4771b300..00990c2b 100644 --- a/contrib/package/arch/PKGBUILD +++ b/contrib/package/arch/PKGBUILD @@ -7,6 +7,7 @@ arch=("any") url="https://github.com/9001/${pkgname}" license=('MIT') depends=("python" "lsof" "python-jinja") +makedepends=("python-wheel" "python-build" "python-installer" "make" "pigz") optdepends=("ffmpeg: thumbnails for videos, images (slower) and audio, music tags" "python-mutagen: music tags (alternative)" "python-pillow: thumbnails for images" @@ -22,6 +23,12 @@ sha256sums=("782e62eb1378e8d9d50af3fa1c18b95d11bb4721df93b4525beba80f14d55661") build() { cd "${srcdir}/${pkgname}-${pkgver}" + + pushd copyparty/web + make -j$(nproc) + rm Makefile + popd + python3 -m build -wn } diff --git a/copyparty/__version__.py b/copyparty/__version__.py index 693be01c..e3ec89e8 100644 --- a/copyparty/__version__.py +++ b/copyparty/__version__.py @@ -1,8 +1,8 @@ # coding: utf-8 -VERSION = (1, 7, 0) +VERSION = (1, 7, 1) CODENAME = "unlinked" -BUILD_DT = (2023, 4, 29) +BUILD_DT = (2023, 5, 7) S_VERSION = ".".join(map(str, VERSION)) S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT) diff --git a/copyparty/web/Makefile b/copyparty/web/Makefile index 4ccdbecc..3989e931 100644 --- a/copyparty/web/Makefile +++ b/copyparty/web/Makefile @@ -6,7 +6,7 @@ pk: $(addsuffix .gz, $(wildcard *.js *.css)) un: $(addsuffix .un, $(wildcard *.gz)) %.gz: % - pigz -11 -J 34 -I 5730 $< + pigz -11 -J 34 -I 573 $< %.un: % pigz -d $< diff --git a/docs/changelog.md b/docs/changelog.md index 78720dc5..854ea6b3 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,3 +1,31 @@ +▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ +# 2023-0429-2114 `v1.7.0` unlinked + +don't get excited! nothing new and revolutionary, but `xvol` and `xdev` changed behavior so there's an above-average chance of fresh bugs + +## new features +* (#24): `xvol` and `xdev`, previously just hints to the filesystem indexer, now actively block access as well: + * `xvol` stops users following symlinks leaving the volumes they have access to + * so if you symlink `/home/ed/music` into `/srv/www/music` it'll get blocked + * ...unless both folders are accessible through volumes, and the user has read-access to both + * `xdev` stops users crossing the filesystem boundary of the volumes they have access to + * so if you symlink another HDD into a volume it'll get blocked, but you can still symlink from other places on the same FS + * enabling these will add a slight performance hit; the unlikely worst-case is `14%` slower directory listings, `35%` slower download-as-tar +* file selection summary (num files, size, audio duration) in the bottom right +* [u2cli](https://github.com/9001/copyparty/blob/hovudstraum/bin/up2k.py): more aggressive resolving with `--rh` +* [add a warning](https://github.com/9001/copyparty#fix-unreliable-playback-on-android) that the default powersave settings in android may stop playing music during album changes + * also appears [in the media player](https://user-images.githubusercontent.com/241032/235327191-7aaefff9-5d41-4e42-b71f-042a8247f29d.png) if the issue is detected at runtime (playback halts for 30sec while screen is off) + +## bugfixes +* (#23): stop autodeleting empty folders when moving or deleting files + * but files which expire / [self-destruct](https://github.com/9001/copyparty#self-destruct) still clean up parent directories like before +* ftp-server: some clients could fail to `mkdir` at first attempt (and also complain during rmdir) + +## other changes +* new version of [cpp-winpe64.exe](https://github.com/9001/copyparty/releases/download/v1.7.0/copyparty-winpe64.exe) since the ftp-server fix might be relevant + + + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ # 2023-0426-2300 `v1.6.15` unexpected boost diff --git a/pyproject.toml b/pyproject.toml index c4ea0fed..496d6cd4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -77,6 +77,8 @@ copyparty = [ "res/COPYING.txt", "res/insecure.pem", "web/*.gz", + "web/*.js", + "web/*.css", "web/*.html", "web/a/*.bat", "web/dd/*.png", diff --git a/scripts/make-pypi-release.sh b/scripts/make-pypi-release.sh index cc67db1c..b3df98b5 100755 --- a/scripts/make-pypi-release.sh +++ b/scripts/make-pypi-release.sh @@ -148,7 +148,7 @@ while IFS= read -r x; do done rm -rf contrib -[ $fast ] && sed -ri s/5730/10/ copyparty/web/Makefile +[ $fast ] && sed -ri s/573/10/ copyparty/web/Makefile (cd copyparty/web && make -j$(nproc) && rm Makefile) # build @@ -156,3 +156,5 @@ python3 -m build [ "$mode" == t ] && twine upload -r pypitest dist/* [ "$mode" == u ] && twine upload -r pypi dist/* + +true diff --git a/scripts/make-tgz-release.sh b/scripts/make-tgz-release.sh index 457bb3f7..9d50a941 100755 --- a/scripts/make-tgz-release.sh +++ b/scripts/make-tgz-release.sh @@ -96,6 +96,7 @@ rm \ .gitignore cp -pv LICENSE LICENSE.txt +mv setup.py{,.disabled} # the regular cleanup memes find -name '*.pyc' -delete diff --git a/tests/util.py b/tests/util.py index eb05b319..d76300fb 100644 --- a/tests/util.py +++ b/tests/util.py @@ -98,7 +98,7 @@ class Cfg(Namespace): def __init__(self, a=None, v=None, c=None): ka = {} - ex = "daw dav_inf dav_mac dav_rt dotsrch e2d e2ds e2dsa e2t e2ts e2tsr e2v e2vu e2vp ed emp force_js getmod hardlink ih ihead magic never_symlink nid nih no_acode no_athumb no_dav no_dedup no_del no_dupe no_logues no_mv no_readme no_robots no_sb_md no_sb_lg no_scandir no_thumb no_vthumb no_zip nrand nw rand vc xdev xlink xvol" + ex = "daw dav_auth dav_inf dav_mac dav_rt dotsrch e2d e2ds e2dsa e2t e2ts e2tsr e2v e2vu e2vp ed emp force_js getmod hardlink ih ihead magic never_symlink nid nih no_acode no_athumb no_dav no_dedup no_del no_dupe no_logues no_mv no_readme no_robots no_sb_md no_sb_lg no_scandir no_thumb no_vthumb no_zip nrand nw rand vc xdev xlink xvol" ka.update(**{k: False for k in ex.split()}) ex = "dotpart no_rescan no_sendfile no_voldump plain_ip"