Skip to content

Change dpkg-buildpackage to sbuild for packages acr-webmcp analoginput pipewire-configs hifiberryos#613

Open
LarsGrootkarzijn wants to merge 9 commits intohifiberry:hbosngfrom
LarsGrootkarzijn:hbosng
Open

Change dpkg-buildpackage to sbuild for packages acr-webmcp analoginput pipewire-configs hifiberryos#613
LarsGrootkarzijn wants to merge 9 commits intohifiberry:hbosngfrom
LarsGrootkarzijn:hbosng

Conversation

@LarsGrootkarzijn
Copy link
Copy Markdown

@LarsGrootkarzijn LarsGrootkarzijn commented Mar 21, 2026

Hello,

Since we have now created a script for cross compiling I think it is a good idea to move away from dpkg-buildpackage. If dpkg-buildpackage is kept we would have to create two wrappers giving bad maintainability.

Additionally, sbuild has it's improvements over dpkg-buildpackage. It gives more reliable builds and better replicability since it is containered. Next to these ~10 packages, there are more which still need sbuild integration. Which is why I created a list.

Autorec is left, but to my understanding this is not yet integrated into hifiberryos. Additionally, speakereq I cannot tell since this is a private repo. Raat is also private but has the hook for cross-compile in the build.sh.

Will speakereq become public some day? Raat i assume is not going to be public because of licensing? Lastly, I believe the licman folder can be remvoed, but not sure.

  • acr: 🟢 yes
  • acr-webmcp: 🟢 yes, with this pr
  • analoginput: 🟢 yes, with this pr
  • autorec: 🔴 no, not yet integrated
  • bluetooth: 🟢 yes, with this pr
  • configurator: 🟢 yes
  • dspprofiles: 🟢 yes, with this pr and set dspprofiles to use sbuild over dpkg dspprofiles#1
  • dsptoolkit: 🟢 yes
  • eeprom: 🟢 yes
  • hifiberryos: 🟢 yes, with this pr
  • librespot: 🟢 yes
  • licman: 🟡 licenses? dont think this is a installed package?!
  • mpd: 🟢 yes
  • nowplaying-sdl: 🟢 yes, with this pr and pr: add sbuild nowplaying-sdl#1
  • pipewire-configs: 🟢 yes, with this pr
  • pw-api: 🟢 yes, with this pr and pr fix possible permission issue in api, and use sbuild over dpkg pipewire-api#1
  • python-pyalsaaudio: 🟢 yes
  • python-pyedbglib: 🟢 yes
  • python-pymcuprog: 🟢 yes
  • python-usagecollector: 🟢 yes
  • python-xmltodict: 🟢 yes
  • raat: 🟢 yes
  • riaa: 🟢 yes, with this pr and pr: update makefile to use sbuild riaa#1
  • roomeq: 🟢 yes
  • shairport-sync: 🟢 yes
  • songrec: 🟢 yes
  • speakereq: 🟡 unsure — private repo
  • squeezelite: 🟢 yes
  • testtools: 🟢 yes
  • vumeter: 🟢 yes
  • webui: 🟢 yes

some currently fail lintian, due to copyright file missing, or malformed changelog but that should not impact functionality

Copy link
Copy Markdown
Owner

@hifiberry hifiberry left a comment

Choose a reason for hiding this comment

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

Thanks for the work on migrating to sbuild! A few issues I spotted:

1. pw-api: Repo URL points to fork

packages/pw-api/build.sh changes the repo URL from https://github.com/hifiberry/pipewire-api.git to https://github.com/LarsGrootkarzijn/pipewire-api. This should stay pointing to the hifiberry org repo.

2. dspprofiles: $PACKAGE undefined

In packages/dspprofiles/build.sh, BUILD_DIR="/tmp/${PACKAGE}-build" is used but PACKAGE is never defined, so this will resolve to /tmp/-build.

3. riaa: Missing braces in variable expansion

In packages/riaa/build.sh, the mv commands use $DEB_PACKAGE_*.deb which bash interprets as ${DEB_PACKAGE_}*.deb (looking for a variable named DEB_PACKAGE_). Should be ${DEB_PACKAGE}_*.deb. This bug existed before the PR but should be fixed while you're in there.

4. nowplaying-sdl: $DEST_DIR undefined

The new Step 3 in packages/nowplaying-sdl/build.sh copies artifacts to $DEST_DIR, but this variable is never defined in the script.

5. dspprofiles: sbuild not actually called

The script sets DIST_ARG/CHROOT_ARG but never calls sbuild — it still delegates to the cloned repo's build. Are these env vars meant to be picked up downstream?

6. Missing trailing newlines

Several files lost their trailing newline at EOF (minor, but tools like diff and some editors will flag it).

@LarsGrootkarzijn
Copy link
Copy Markdown
Author

LarsGrootkarzijn commented Mar 23, 2026

  1. Fixed
  2. Fixed
  3. Fixed
  4. I am unsure what you mean. It is already defined I believe:

DEST_DIR="$HOME/packages"

  1. The script does delegate to the repo, only the Makefile does not use sbuidl, in principale this works, but dspprofiles could also be integrated in hbos, if that is prefered. The vars are indeed picked up downstream, which is why every script which delegates the build process to a different repo uses export for vars.

  2. Fixed

Copy link
Copy Markdown
Owner

@hifiberry hifiberry left a comment

Choose a reason for hiding this comment

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

Looks good, thanks for addressing the feedback!

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.

2 participants