Repository navigation
packaging: Debian/Ubuntu packaging for PPA - #542
Conversation
Adds a debian/ directory (dh + cmake) producing a headsetcontrol .deb with the CLI binary and udev rules (static lib and dev headers excluded). Validated on Ubuntu 24.04: binary package builds lintian-clean (cosmetic warnings only) and the source package builds for PPA upload. .gitattributes marks debian/ export-ignore so git-archive source tarballs (release.yml, orig tarballs) stay pristine upstream.
- Resolve .gitattributes (keep both debian/ and headsetcontrol.spec export-ignore) - debian/rules passes -DHEADSETCONTROL_VERSION so future .deb binaries report the real version instead of 0.0.0-unknown (uses #543's CMake override)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2176feb8d3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| *.txt text eol=lf | ||
| CMakeLists.txt text eol=lf | ||
| debian/ export-ignore | ||
| headsetcontrol.spec export-ignore |
There was a problem hiding this comment.
Keep the RPM spec in the upstream source archive
When constructing the PPA source package from the project's git archive tarball, this excludes headsetcontrol.spec from the .orig.tar.gz but that tracked file remains in the Debian packaging checkout. dpkg-source -b then treats it as an unexpected upstream modification and aborts, so the advertised Debian source package cannot be built from the release archive. Do not export-ignore this tracked upstream file (or otherwise exclude it consistently before source-package creation).
Useful? React with 👍 / 👎.
Adds
debian/so HeadsetControl can be built for an Ubuntu PPA (and later a Debian ITP).Validated on Ubuntu 24.04 (built the binary
.deb+ the source package):.debships/usr/bin/headsetcontrol+/usr/lib/udev/rules.d/70-headsets.rules; static lib/headers excluded.dh_shlibdeps(libhidapi-hidraw0, libc6, libstdc++6, libgcc-s1).Notes:
override_dh_auto_cleanremoves the in-sourcelib/version.hCMake generates, so3.0 (quilt)stays happy..gitattributesdebian/ export-ignorekeepsdebian/out ofgit archivetarballs.noble; rebuild with other distributions for more Ubuntu series.Draft — the actual PPA publish needs a Launchpad account + GPG key registered there +
dput.