Control: severity -1 serious On Sat, 17 Aug 2019 23:29:25 +0200 Michael Biebl <bi...@debian.org> wrote: > Package: debhelper > Version: 12.5 > Severity: normal > > Hi Niels, > > systemd supports build profiles to skip the creation of udeb files. > The full debian/rules file is at > https://salsa.debian.org/systemd-team/systemd/blob/master/debian/rules > > So far, running "dpkg-buildpackage -Pnoudeb" worked nicely. > Since the latest update of debhelper, I'm getting this instead: > > [...] > > > Is this a regression in debhelper or is the systemd package doing > something wrong? In that case, I would appreciate any pointers how to > fix it. > > Regards, > Michael > > [...] Hi Michael,
Sorry to hear that it broke. It is definitely a regression and made me aware that some of my recent changes will need to be rolled back as they make builds under noudeb unreproducible with a build without noudeb[1]. I introduced some of this code to help the glibc maintainers, so they would not have to work around dh_makeshlibs (admittedly, not the error that broke the "noudeb" systemd build). Suggestions for handling the systemd case while we sort this out: * You can side-step the entire issue by relying on dh_makeshlibs new auto-detection feature (please verify it works; I tested with an old git snapshot and debhelper/12.3). I.e. remove --add-udeb=... and bump Build-Depends on debhelper to debhelper (>= 12.3) assuming that is acceptable to your backwards compat requirements. It would look something like [2] (caveat emptor: old git snapshot) * Alternatively, if you can live with noudeb being broken in sid for while, then it will eventually be fixed in debhelper. As for the glibc case: * glibc has some udebs with *fewer* libraries than their deb counterparts. * So we need a filtering mechanism, but it cannot rely on the udeb being built (as that would break the "noudeb" profile and its 1:1 reproducibility requirements for regular debs). AFAICT, this reduces my options either: * Some form of "--exclude" that only applies to udebs (or a positive list of expected libraries). * Or declaring this beyond what dh_makeshlibs can handle. This implies that the glibc maintainers will have to use the --no-add-udeb (that now should work) and generate the list manually. - @Aurelien: This approach show work in sid now in case you need to do a glibc upload and would be no worse than what you already have. (you can use -O--no-add-udeb if you want to be compatible with debhelper in stable) Brilliant ideas welcome; I don't think that either of the above are particular satisfying. Thanks, ~Niels [1] Required by https://wiki.debian.org/BuildProfileSpec#Registered_profile_names [2]: > diff --git a/debian/rules b/debian/rules > index 96ae11798..ac6992ea8 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -288,7 +288,6 @@ override_dh_shlibdeps: > > override_dh_makeshlibs: > sed 's/SHARED_LIB_VERSION/$(PROJECT_VERSION)/' debian/shlibs.local.in > > debian/shlibs.local > - dh_makeshlibs -plibudev1 --add-udeb=libudev1-udeb -- > -c$(GENSYMBOLS_LEVEL) > dh_makeshlibs -psystemd -Xlibsystemd-shared -- -c$(GENSYMBOLS_LEVEL) > dh_makeshlibs --remaining-packages -- -c$(GENSYMBOLS_LEVEL) > The dh_makeshlibs --remaining-packages will now handle libudev1 + its udeb.