Skip to content

Build the .deb on Trixie and make it install over the base image's stock avahi - #5

Merged
ArnavVWadhwa merged 2 commits into
mainfrom
build-on-trixie
Aug 28, 2026
Merged

ArnavVWadhwa merged 2 commits into
mainfrom
build-on-trixie

Conversation

@ArnavVWadhwa

@ArnavVWadhwa ArnavVWadhwa commented Aug 28, 2026 •

Copy link
Copy Markdown
Collaborator

Two changes so the prebuilt .deb both matches the target OS and actually installs on it.

Build on Trixie. Target OS moved to Trixie, so build the release .deb inside a debian:trixie container instead of bookworm. The binaries then link against Trixie's glibc and libraries and the recorded package deps match the target. Update the Bookworm references in the workflow comments and README to Trixie. (A Trixie-built .deb no longer runs on Bookworm, so this drops Bookworm support for the prebuilt binary.)

Install over stock avahi. The real RPi OS Desktop base already ships stock avahi, and the previous .deb could not install over it: checkinstall gave it Provides: avahi-daemon but no Replaces:, so dpkg refused to overwrite files it shares with the stock packages (it failed on /etc/avahi/avahi-daemon.conf) and the package silently did not install. The image then ran stock avahi on 5353 instead of the patched 5358 build.

  • add --replaces= for the stock avahi binary packages (daemon, utils, autoipd, dnsconfd, discover, ui-utils, the libavahi-* runtime and -dev libs, the gir). Replaces without Conflicts lets dpkg hand file ownership to avahi-dpea while the stock lib packages stay installed to satisfy other packages' versioned deps. Provides: avahi-daemon still satisfies libnss-mdns.
  • build with --libdir=/usr/lib/aarch64-linux-gnu so the patched libavahi-core (which carries the 5358 AVAHI_MDNS_PORT in avahi-core/socket.h) overwrites the stock lib on the multiarch path, instead of landing in /usr/lib where the daemon could still load the stock 5353 lib.
  • add a verify-install job that installs the built .deb over a stock avahi in a Trixie container and asserts it installs, that avahi-dpea owns /usr/sbin/avahi-daemon, and (best-effort) that the daemon binds 5358 not 5353. release now depends on it, so a .deb that cannot install over stock never ships.

Companion image-side hardening, so a future silent failure like this is caught at build time and in CI: dpengineering/DPEA-RaspberryPiImage#6.

Target OS moved to Trixie, so build the release .deb inside a debian:trixie
container instead of bookworm. The binaries then link against Trixie's glibc
and libraries and the recorded package deps match the target. Update the
Bookworm references in the workflow comments and README to Trixie.

Note: a Trixie-built .deb no longer runs on Bookworm (newer glibc), so this
drops Bookworm support for the prebuilt binary.
@ArnavVWadhwa ArnavVWadhwa changed the title Build the .deb on Debian Trixie Build the .deb on Trixie and make it install over the base image's stock avahi Aug 28, 2026
@ArnavVWadhwa
ArnavVWadhwa merged commit 7b4bbfb into main Aug 28, 2026
3 checks passed
@ArnavVWadhwa
ArnavVWadhwa deleted the build-on-trixie branch August 28, 2026 23:04
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