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/"] 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 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/navidrome-uploader.install b/debian/navidrome-uploader.install index bc0fb87..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/ 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..f444480 100644 --- a/debian/rules +++ b/debian/rules @@ -3,6 +3,11 @@ %: dh $@ +override_dh_auto_build: + dh_auto_build + mkdir -p debian/wheels + python3 -m 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