Skip to content

packaging: Debian/Ubuntu packaging for PPA - #542

Merged
Sapd merged 2 commits into
masterfrom
packaging/debian-ppa
Jul 23, 2026
Merged

Sapd merged 2 commits into
masterfrom
packaging/debian-ppa

Conversation

@Sapd

@Sapd Sapd commented Jul 23, 2026

Copy link
Copy Markdown
Owner

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):

  • .deb ships /usr/bin/headsetcontrol + /usr/lib/udev/rules.d/70-headsets.rules; static lib/headers excluded.
  • Runtime deps auto-detected via dh_shlibdeps (libhidapi-hidraw0, libc6, libstdc++6, libgcc-s1).
  • lintian: cosmetic warnings only (no man page, no ITP bug, appstream metadata).

Notes:

  • override_dh_auto_clean removes the in-source lib/version.h CMake generates, so 3.0 (quilt) stays happy.
  • .gitattributes debian/ export-ignore keeps debian/ out of git archive tarballs.
  • Changelog targets noble; rebuild with other distributions for more Ubuntu series.

Draft — the actual PPA publish needs a Launchpad account + GPG key registered there + dput.

Sapd added 2 commits July 23, 2026 16:30
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)
@Sapd
Sapd marked this pull request as ready for review July 23, 2026 18:13
@Sapd
Sapd merged commit 944c3ad into master Jul 23, 2026
5 checks passed
@Sapd
Sapd deleted the packaging/debian-ppa branch July 23, 2026 18:13

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread .gitattributes
*.txt text eol=lf
CMakeLists.txt text eol=lf
debian/ export-ignore
headsetcontrol.spec export-ignore

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant