From 772c8e56ec6b3a1bf8e96c11f47d9367ad1793af Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Mon, 25 May 2026 18:00:49 -0400 Subject: [PATCH 1/5] build(debian): offline pip dependency installation --- debian/navidrome-uploader.install | 2 +- debian/navidrome-uploader.postinst | 4 ++-- debian/rules | 5 +++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/debian/navidrome-uploader.install b/debian/navidrome-uploader.install index bc0fb87..111fce3 100644 --- a/debian/navidrome-uploader.install +++ b/debian/navidrome-uploader.install @@ -6,4 +6,4 @@ templates/* opt/navidrome-uploader/templates/ static/css/* opt/navidrome-uploader/static/css/ static/js/* opt/navidrome-uploader/static/js/ contrib/navidrome-uploader.service lib/systemd/system/navidrome-uploader.service - +debian/wheels/* opt/navidrome-uploader/wheels/ diff --git a/debian/navidrome-uploader.postinst b/debian/navidrome-uploader.postinst index d729ecd..c6a35e3 100644 --- a/debian/navidrome-uploader.postinst +++ b/debian/navidrome-uploader.postinst @@ -10,8 +10,8 @@ case "$1" in chown -R "$APP_USER:$APP_USER" "$APP_DIR" runuser -u "$APP_USER" -- python3 -m venv "$VENV_DIR" - runuser -u "$APP_USER" -- "$VENV_DIR/bin/pip" install --no-cache-dir --upgrade pip - runuser -u "$APP_USER" -- "$VENV_DIR/bin/pip" install --no-cache-dir -r "$APP_DIR/requirements.txt" + + runuser -u "$APP_USER" -- "$VENV_DIR/bin/pip" install --no-cache-dir --no-index --find-links="$APP_DIR/wheels" -r "$APP_DIR/requirements.txt" if command -v systemctl >/dev/null 2>&1; then systemctl daemon-reload || true diff --git a/debian/rules b/debian/rules index dedc208..9755cd3 100644 --- a/debian/rules +++ b/debian/rules @@ -3,6 +3,11 @@ %: dh $@ +override_dh_auto_build: + dh_auto_build + mkdir -p debian/wheels + pip wheel --no-cache-dir -r requirements.txt pip -w debian/wheels + override_dh_install: dh_install install -d debian/navidrome-uploader/etc/default/navidrome-uploader From c7e04d931f291c9ae09df270d3c723d87b9f9ccd Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Mon, 25 May 2026 18:11:13 -0400 Subject: [PATCH 2/5] fix(debian): fix build dependencies for offline installation --- debian/control | 4 ++-- debian/rules | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 1c96f4b..e1c1cac 100644 --- a/debian/control +++ b/debian/control @@ -8,5 +8,5 @@ Rules-Requires-Root: no Package: navidrome-uploader Architecture: all -Depends: ${misc:Depends}, adduser, python3, python3-venv -Description: Navidrome Web Upload Utility \ No newline at end of file +Depends: ${misc:Depends}, adduser, python3, python3-venv, python3-pip, python3-wheel +Description: Navidrome Web Upload Utility diff --git a/debian/rules b/debian/rules index 9755cd3..f444480 100644 --- a/debian/rules +++ b/debian/rules @@ -6,7 +6,7 @@ override_dh_auto_build: dh_auto_build mkdir -p debian/wheels - pip wheel --no-cache-dir -r requirements.txt pip -w debian/wheels + python3 -m pip wheel --no-cache-dir -r requirements.txt pip -w debian/wheels override_dh_install: dh_install From 58a8200968b79527d44c7ff35829ab3b717b11ee Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Mon, 25 May 2026 18:15:58 -0400 Subject: [PATCH 3/5] fix(debian): added dependencies to deb-building Dockerfile for offline installation --- Dockerfile.build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile.build b/Dockerfile.build index 8464af9..3eef48b 100644 --- a/Dockerfile.build +++ b/Dockerfile.build @@ -14,6 +14,8 @@ RUN apt-get update && apt-get install -y \ fakeroot \ python3 \ python3-venv \ + python3-pip \ + python3-wheel \ && rm -rf /var/lib/apt/lists/* WORKDIR /build/src @@ -24,4 +26,4 @@ COPY . . RUN chmod +x release/build-deb.sh -CMD ["sh", "-c", "./release/build-deb.sh && mv ../*.deb /dist/"] \ No newline at end of file +CMD ["sh", "-c", "./release/build-deb.sh && mv ../*.deb /dist/"] From df6a13f97862425f36028efa15a5915b90815f69 Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Mon, 25 May 2026 18:32:58 -0400 Subject: [PATCH 4/5] chore(debian): v0.2.0 changelog added --- debian/changelog | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2715dbd..99e4a6c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,22 @@ +navidrome-uploader (0.2.0) unstable; urgency=medium + + * Packaging: + - Bundle pip wheels during build for offline host installation + - Ensure debian build environment includes pip and wheel modules + * Docker: + - Implement containerized debian packaging automation scripts + * Security: + - Add MAX_CONTENT_LENGTH to prevent upload DoS vectors + * Bug Fixes: + - Fix apt purge leaving pycache and systemd directory remnants + * Frontend: + - Change Dropzone.js upstream source location + * Maintenance: + - Add the open source software MIT license + - Upstream package & dependency updates + + -- Arian Nasr Mon, 25 May 2026 18:31:00 -0400 + navidrome-uploader (0.1.0-2) unstable; urgency=high * Run pip install stage as navidrome-uploader user instead of root From 9cc751e6944e5b6240bca02ce7dc8bc2e4384715 Mon Sep 17 00:00:00 2001 From: Arian Nasr Date: Mon, 25 May 2026 18:43:03 -0400 Subject: [PATCH 5/5] fix(debian): fix systemd path issue --- debian/navidrome-uploader.install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/navidrome-uploader.install b/debian/navidrome-uploader.install index 111fce3..85f2d50 100644 --- a/debian/navidrome-uploader.install +++ b/debian/navidrome-uploader.install @@ -5,5 +5,5 @@ requirements.txt opt/navidrome-uploader/ templates/* opt/navidrome-uploader/templates/ static/css/* opt/navidrome-uploader/static/css/ static/js/* opt/navidrome-uploader/static/js/ -contrib/navidrome-uploader.service lib/systemd/system/navidrome-uploader.service +contrib/navidrome-uploader.service lib/systemd/system/ debian/wheels/* opt/navidrome-uploader/wheels/