Repository navigation
docs: correct packaging guidance for Trixie - #45
Merged
Merged
Conversation
Debhelper compat, maintainer scripts, runtime dependencies, unit paths, native versions, Standards-Version, the /opt lintian override, the Packagecloud artifact name, and the install URL now match current Debian and the active repos. REPOS.md records the remaining deviations. Co-authored-by: jsz <joshschmelzle@users.noreply.github.com>
Keep the native version scheme and main's pre-release version gate. The only conflict was the changelog paragraph in RELEASE_PROCESS.md. Co-authored-by: jsz <joshschmelzle@users.noreply.github.com>
The documented install stays the raw GitHub URL over HTTPS. The short form is curl -fSL http://wlanpi.us/install, whose first hop is plain HTTP. Co-authored-by: jsz <joshschmelzle@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Corrects the packaging, release, install, and repository-snapshot guidance so it matches Debian Trixie (Bookworm where a suite difference is real) and the way the active WLAN-Pi repos should be packaged. Current gaps stay in
REPOS.mdas deviations, not as if they were already done.Merged
main(including the pre-release version gate from #44) with a merge commit. The only conflict was the changelog paragraph inRELEASE_PROCESS.md. The resolution keeps the nativemajor.minor.patchscheme and sets the samemajor.minor.patchand pre-release in__version__.py.Review order
627 changed lines against
main, one outcome: the docs describe one packaging scheme and the snapshot matches the default branches checked on 2026-10-22. Splitting would leave the example, the policy, and the deviation list disagreeing with each other.architecture/PACKAGING.md— the scheme (compat, source format and version, runtime vs test deps, unit path, maintainer scripts,/optoverride, reusable workflows).PACKAGING_EXAMPLE.md— the copy-paste walkthrough that follows it.REPOS.md— what the default branches still do.RELEASE_PROCESS.md,README.md,GETTING_STARTED.md,architecture/FHS.md,style/WORKFLOW.md,style/DCH.md.Corrections and how they were checked
Checked on a debootstrap Trixie chroot (debhelper 13.24.2, dh-virtualenv 1.2.2-1.7, lintian 2.122.0, debian-policy 4.7.2.0, Python 3.13.5) unless a row says otherwise. Bookworm versions are from
deb.debian.orgbookwormPackagesand from the pool debs named below.shellcheck -S warning install.shand actionlint 1.7.12 on.github/workflows/both exited 0. Those files were not part of this diff.After the merge,
dpkg-buildpackage -us -uc -bin that chroot builtwlanpi-hello_1.0.0_amd64.debagain. Lintian on that deb reports onlyunusual-interpreterfor/opt/wlanpi-hello/bin/python.debian/compat. The level isdebhelper-compat (= 13)indebian/control. With both present,dh cleanon debhelper 13.24.2 exits 2:debhelper compat level specified both in debian/compat and in debian/control. A compat file at level 13 alone warns that the file is deprecated.postinstcreates thewlanpigroup and user, then the log directory, then#DEBHELPER#.prermisset -e,#DEBHELPER#,exit 0.deb-systemd-helperon Trixie implementsenable,disable,purge,mask,unmask,is-enabled,was-enabled,debian-installed,update-state, andreenable. WithDPKG_MAINTSCRIPT_PACKAGEset,startandstopexit 0 and do nothing.chown wlanpi:wlanpibefore the user exists fails withinvalid user. The builtwlanpi-hellopostinst hasuseradd/chownand then the generateddeb-systemd-helperenable block plusdeb-systemd-invoke start. The prerm hasdeb-systemd-invoke stop. The scripts are LF POSIX shell. A CRLF shebang fails withcannot execute: required file not found(exit 127)..deb.requirements.txtis the runtime set. pytest lives in the pyprojecttestextra (pip install -e ".[test]"). dh-virtualenv 1.2.2 runspip install -r requirements.txtwhen that file exists. A build withpytestandpytest-covin it shipped pytest 9.1.1 and pytest-cov 7.1.0 (115 paths). The correctedwlanpi-hello_1.0.0_amd64.debcontains no pytest files. In the chroot, the test extra then pytest: 3 passed on Python 3.13.5./usr/lib/systemd/system. A throwaway package that installed a unit throughlib/systemd/systemgot lintian 2.122.0aliased-location(error) on that path. The same unit underusr/lib/systemd/systemcleared those tags.dh_installsystemdin the Trixie debhelper 13.24.2 script installsdebian/<package>.serviceinto/usr/lib/systemd/system. Bookworm'sdebhelper_13.11.4_all.debstill installs intolib/systemd/system. Bookworm lintian 2.116.3+deb12u1 has noaliased-locationtag; itssystemd-service-in-odd-locationcheck matchesetc/systemd/systemonly. The docs record that split. A.installdestination isusr/lib/systemd/system/on both suites.debian/source/formatis3.0 (native), changelog versionmajor.minor.patchwith no Debian revision,__version__.py(andpyproject.toml) the samemajor.minor.patchand the same pre-release when there is one, filename<package>_1.2.3_<arch>.deb.3.0 (quilt)is for a separate upstream tarball, version<upstream>-<revision>.dpkg-source -bon3.0 (native)with1.0.0-1errors:native package version may not have a revision.dpkg-buildpackage -bdoes not check source format and will still emit a_1.0.0-1_deb, which is why the old changelog example and the old filename could disagree. Format1.0with1.0.0-1warns and still builds; lintian 2.122 reportsmalformed-debian-changelog-version 1.0.0-1 (for native). Lintian 2.122 has nonative-package-with-dash-versiontag. The example build producedwlanpi-hello_1.0.0_amd64.deband a3.0 (native).dsc.dpkg --compare-versions 1.0.0-1 gt 1.0.0is true, so a published-1is not replaced by the same upstream version; the next native upload is a higher upstream version. The Trixiedebchangeman page says-iincrements the upstream version on a native package.style/DCH.mdnow says that and points at the scheme. The deploy gatecheck-py-deb-pkg-versions-matchcomparesmajor.minor.patchand the pre-release (a,b, orrcand its number).1.1.0~beta3-1matches1.1.0b3. An epoch, a Debian revision, a~devsnapshot, and.postNare not compared. That matches the workflow onWLAN-Pi/gh-workflowsand the text merged from docs: version gate compares pre-releases #44.Standards-Version: 4.7.2. Trixie'sdebian-policypackage is 4.7.2.0. The field has three components. Bookworm'sdebian-policyis 4.6.2.0. Bookworm's debhelper 13.11.4Provides: debhelper-compat (= 13), dh-virtualenv is 1.2.2-1.3, andpython3-venvis in Bookworm, so the controlBuild-Dependsline is satisfiable there. The field records the policy the packaging follows.dir-or-file-in-optis an error. Lintian 2.122 marks that tag an error. A path-test package reported it for/opt;debian/<package>.lintian-overrideswith a justification comment and the tag (no path) cleared every instance.dir-or-file-in-etc-optis a separate error. After--no-compileand removing__pycache__, pip, setuptools, and wheel, the example deb's remaining lintian finding wasunusual-interpreteron/opt/wlanpi-hello/bin/python, which the docs call expected for adh_virtualenvconsole script.dh_lintianinstalls the overrides file; the guide says to leave that helper in place.~ghais the Actions artifact name. InWLAN-Pi/gh-workflowssbuild-pkg.ymlandsbuild-deploy-pkg.yml,actions/upload-artifactname:is${pkg}_${version}~gha${date}+${arch}_${distro}withdate -u +'%Y%m%dt%H%M%S'.package_cloud pushuploadssteps.build-debian-package.outputs.deb-package, the changelog version.RELEASE_PROCESS.mdsays that.https://raw.githubusercontent.com/WLAN-Pi/developers/main/install.sh, which returns 200) piped tosudo bash. Both pages also showcurl -fSL http://wlanpi.us/install | sudo bash. A GET ofhttp://wlanpi.us/installto Hover's forwarder at 216.40.34.41 returns302tohttps://raw.githubusercontent.com/wlan-pi/developers/main/install.sh. A HEAD to that forwarder is404; the GET is the request that works. Port 443 onwlanpi.usdoes not answer, because Hover forwarding is HTTP-only. The raw GitHub URL stays the primary one-liner because the short link's first hop is plain HTTP. The docs say the one-liner can move tohttps://wlanpi.us/installonce the domain serves HTTPS, for example with Cloudflare redirect rules or GitHub Pages.REPOS.mdmatches the default branches, and the CI bullets are policy plus the exceptions. Kernel default branch is7.3-trixie(gh api repos/WLAN-Pi/wlanpi-kernel).debian/compatis still on nine active repos (bridge 10, ctx 11, grafana 10, librespeed-cli 12, profiler 11, server 10, webui 12, wconsole 10, wipry 10); archivedwlanpi-chat-botis compat 12.pi-gen-bookworm(defaultbookworm) hasbuild.ymlandlint.ymlonly:Gamesight/slack-workflow-status@master,raven-actions/actionlint@v2, nodependabot.yml, nopr-size.yml(rechecked via the contents API). Source format, missingdebian/copyright,Standards-Version,/lib/systemdinwlanpi-core, and inline versus reusable build/deploy workflows are listed as deviations. The target isdebian/copyright,debian/source/format,#DEBHELPER#in maintainer scripts you write, LF scripts, and the sharedsbuild-pkg/sbuild-deploy-pkgworkflows.Note
Low Risk
Documentation-only updates to packaging, release, and repo reference guides; no runtime or deployment code changes.
Reviewed by Cursor Bugbot for commit 70ecf73. Bugbot is set up for automated code reviews on this repo. Configure here.