On Mon, 10 Jul 2023 17:14:48 +0100 Steve McIntyre <[email protected]> wrote: > Hi, and thanks for your bug report! > > On Mon, Jul 10, 2023 at 05:27:50PM +0200, yogg wrote: > >Package: installation-reports > >Severity: serious > >Tags: d-i > >Justification: https://wiki.debian.org/MachineId > > > > ... > > >After installation was finished and the system has been restarted the > >files "/etc/machine-id" and "/var/lib/dbus/machine-id" are not linked > >in any way (no soft or hardlink) and the ID inside the files differ > >from each other. > > I've confirmed this bug just now, doing a clean installation from the > 12.0.0 amd64 netinst.
As a wild guess, maybe the split of src:dbus into multiple packages
affected the order in which the postinsts run, and now systemd's runs
first and creates /etc/machine-id, and then dbus-daemon's runs and
creates /var/lib/dbus/machine-id.
There is a tmpfiles.d shipped by dbus-daemon that creates
/var/lib/dbus/machine-id as a symlink to /etc/machine-id if it exists,
but this snippet runs _after_ the dbus-uuidgen so effectively it is
always a no-op on package install:
$ cat /var/lib/dpkg/info/dbus-daemon.postinst
#!/bin/sh
set -e
if [ "$1" = configure ]; then
# This is idempotent, so it's OK to do every time. The system bus' init
# script does this anyway, but you also have to do this before a session
# bus will work on non-systemd systems, so we do this here for the
# benefit of people starting a temporary session bus in a chroot.
mkdir -p "${DPKG_ROOT:-/}var/lib/dbus"
dbus-uuidgen --ensure="${DPKG_ROOT:-/}var/lib/dbus/machine-id"
fi
# Automatically added by dh_installtmpfiles/13.11.4
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" =
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
if [ -x "$(command -v systemd-tmpfiles)" ]; then
systemd-tmpfiles ${DPKG_ROOT:+--root="$DPKG_ROOT"} --create
dbus.conf >/dev/null || true
fi
fi
# End automatically added section
It seems to me a safe way to fix this and do the right thing is to swap
the #DEBHELPER# token and the manual dbus-uuidgen block in dbus-
daemon's postinst. Then on systemd systems the tmpfiles will win and on
other systems dbus-uuidgen will do its job.
--
Kind regards,
Luca Boccassi
signature.asc
Description: This is a digitally signed message part

