mirror of
https://github.com/9001/copyparty.git
synced 2025-08-17 00:52:16 -06:00
v1.7.1
This commit is contained in:
parent
0ea8bb7c83
commit
deca082623
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
from __future__ import print_function, unicode_literals
|
from __future__ import print_function, unicode_literals
|
||||||
|
|
||||||
S_VERSION = "1.8"
|
S_VERSION = "1.9"
|
||||||
S_BUILD_DT = "2023-04-27"
|
S_BUILD_DT = "2023-05-07"
|
||||||
|
|
||||||
"""
|
"""
|
||||||
u2c.py: upload to copyparty
|
u2c.py: upload to copyparty
|
||||||
|
|
|
@ -7,6 +7,7 @@ arch=("any")
|
||||||
url="https://github.com/9001/${pkgname}"
|
url="https://github.com/9001/${pkgname}"
|
||||||
license=('MIT')
|
license=('MIT')
|
||||||
depends=("python" "lsof" "python-jinja")
|
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"
|
optdepends=("ffmpeg: thumbnails for videos, images (slower) and audio, music tags"
|
||||||
"python-mutagen: music tags (alternative)"
|
"python-mutagen: music tags (alternative)"
|
||||||
"python-pillow: thumbnails for images"
|
"python-pillow: thumbnails for images"
|
||||||
|
@ -22,6 +23,12 @@ sha256sums=("782e62eb1378e8d9d50af3fa1c18b95d11bb4721df93b4525beba80f14d55661")
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
cd "${srcdir}/${pkgname}-${pkgver}"
|
cd "${srcdir}/${pkgname}-${pkgver}"
|
||||||
|
|
||||||
|
pushd copyparty/web
|
||||||
|
make -j$(nproc)
|
||||||
|
rm Makefile
|
||||||
|
popd
|
||||||
|
|
||||||
python3 -m build -wn
|
python3 -m build -wn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# coding: utf-8
|
# coding: utf-8
|
||||||
|
|
||||||
VERSION = (1, 7, 0)
|
VERSION = (1, 7, 1)
|
||||||
CODENAME = "unlinked"
|
CODENAME = "unlinked"
|
||||||
BUILD_DT = (2023, 4, 29)
|
BUILD_DT = (2023, 5, 7)
|
||||||
|
|
||||||
S_VERSION = ".".join(map(str, VERSION))
|
S_VERSION = ".".join(map(str, VERSION))
|
||||||
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
|
S_BUILD_DT = "{0:04d}-{1:02d}-{2:02d}".format(*BUILD_DT)
|
||||||
|
|
|
@ -6,7 +6,7 @@ pk: $(addsuffix .gz, $(wildcard *.js *.css))
|
||||||
un: $(addsuffix .un, $(wildcard *.gz))
|
un: $(addsuffix .un, $(wildcard *.gz))
|
||||||
|
|
||||||
%.gz: %
|
%.gz: %
|
||||||
pigz -11 -J 34 -I 5730 $<
|
pigz -11 -J 34 -I 573 $<
|
||||||
|
|
||||||
%.un: %
|
%.un: %
|
||||||
pigz -d $<
|
pigz -d $<
|
||||||
|
|
|
@ -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
|
# 2023-0426-2300 `v1.6.15` unexpected boost
|
||||||
|
|
||||||
|
|
|
@ -77,6 +77,8 @@ copyparty = [
|
||||||
"res/COPYING.txt",
|
"res/COPYING.txt",
|
||||||
"res/insecure.pem",
|
"res/insecure.pem",
|
||||||
"web/*.gz",
|
"web/*.gz",
|
||||||
|
"web/*.js",
|
||||||
|
"web/*.css",
|
||||||
"web/*.html",
|
"web/*.html",
|
||||||
"web/a/*.bat",
|
"web/a/*.bat",
|
||||||
"web/dd/*.png",
|
"web/dd/*.png",
|
||||||
|
|
|
@ -148,7 +148,7 @@ while IFS= read -r x; do
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -rf contrib
|
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)
|
(cd copyparty/web && make -j$(nproc) && rm Makefile)
|
||||||
|
|
||||||
# build
|
# build
|
||||||
|
@ -156,3 +156,5 @@ python3 -m build
|
||||||
|
|
||||||
[ "$mode" == t ] && twine upload -r pypitest dist/*
|
[ "$mode" == t ] && twine upload -r pypitest dist/*
|
||||||
[ "$mode" == u ] && twine upload -r pypi dist/*
|
[ "$mode" == u ] && twine upload -r pypi dist/*
|
||||||
|
|
||||||
|
true
|
||||||
|
|
|
@ -96,6 +96,7 @@ rm \
|
||||||
.gitignore
|
.gitignore
|
||||||
|
|
||||||
cp -pv LICENSE LICENSE.txt
|
cp -pv LICENSE LICENSE.txt
|
||||||
|
mv setup.py{,.disabled}
|
||||||
|
|
||||||
# the regular cleanup memes
|
# the regular cleanup memes
|
||||||
find -name '*.pyc' -delete
|
find -name '*.pyc' -delete
|
||||||
|
|
|
@ -98,7 +98,7 @@ class Cfg(Namespace):
|
||||||
def __init__(self, a=None, v=None, c=None):
|
def __init__(self, a=None, v=None, c=None):
|
||||||
ka = {}
|
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()})
|
ka.update(**{k: False for k in ex.split()})
|
||||||
|
|
||||||
ex = "dotpart no_rescan no_sendfile no_voldump plain_ip"
|
ex = "dotpart no_rescan no_sendfile no_voldump plain_ip"
|
||||||
|
|
Loading…
Reference in a new issue