Repository navigation
Build the .deb on Trixie and make it install over the base image's stock avahi - #5
Merged
Merged
Conversation
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.
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.
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:trixiecontainer 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:
checkinstallgave itProvides: avahi-daemonbut noReplaces:, 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.--replaces=for the stock avahi binary packages (daemon, utils, autoipd, dnsconfd, discover, ui-utils, thelibavahi-*runtime and-devlibs, the gir). Replaces without Conflicts lets dpkg hand file ownership toavahi-dpeawhile the stock lib packages stay installed to satisfy other packages' versioned deps.Provides: avahi-daemonstill satisfieslibnss-mdns.--libdir=/usr/lib/aarch64-linux-gnuso the patchedlibavahi-core(which carries the 5358AVAHI_MDNS_PORTinavahi-core/socket.h) overwrites the stock lib on the multiarch path, instead of landing in/usr/libwhere the daemon could still load the stock 5353 lib.verify-installjob that installs the built .deb over a stock avahi in a Trixie container and asserts it installs, thatavahi-dpeaowns/usr/sbin/avahi-daemon, and (best-effort) that the daemon binds 5358 not 5353.releasenow 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.