Very nice catch @mfo, I'm sorry to have introduced this issue and I'm glad you found it.
Thanks for sharing. I'm +1 on both uploads to fix the issue. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to kmod in Ubuntu. https://bugs.launchpad.net/bugs/1889297 Title: Bionic: debian-installer FTBFS because udev-udeb depends on libkmod2 not libkmod2-udeb Status in kmod package in Ubuntu: Invalid Status in kmod source package in Bionic: In Progress Bug description: [Impact] * debian-installer currently FTBFS on Bionic because udev-udeb depends on libkmod2 not on libkmod2-udeb. * This regression has been introduced in kmod 24-1ubuntu3.3, and it propagated into udev-udeb in systemd 237-3ubuntu10.40. * See the '[Details]' section for the details. :) [Fix] * That kmod change fixes a FTBFS with newer debhelper on Eoan and later, but it is not required with older debhelper on Bionic. Just revert it. * There is no need to "fix" this in Eoan and later (debhelper >= 12.3) * No-change rebuild of systemd (for udev-udeb to pick up libkmod2-udeb.) [Test Case] * Try to build debian-installer on Bionic; it FTBFS: The following packages have unmet dependencies: udev-udeb : Depends: libkmod2 but it is not installable E: Unable to correct problems, you have held broken packages. * Check if libkmod2's shlibs file contains an udeb line: $ dpkg-deb --control libkmod2_<version>_<arch>.deb dir $ cat dir/shlibs libkmod 2 libkmod2 udeb: libkmod 2 libkmod2-udeb # this is good. [Regression Potential] * The fix only changes the libkmod2's shlibs file to include an udeb line (so udebs that depend on that library package should depend on the -udeb package.) Thus the regression potential is limited to the installer, and the udeb packages which depend on libkmod2 (udev-udeb only, probably.) Regressions could be seen as failures to load libkmod2.so and/or not finding its dynamic symbols. * There is a no-change rebuild of systemd involved/required, so some dependency updates may potentially impact systemd. [Details] debian-installer currently FTBFS on Bionic because udev-udeb depends on libkmod2 not on libkmod2-udeb: The following packages have unmet dependencies: udev-udeb : Depends: libkmod2 but it is not installable E: Unable to correct problems, you have held broken packages. This regression has been introduced in kmod 24-1ubuntu3.3, and it propagated into udev-udeb in systemd 237-3ubuntu10.40. kmod (24-1ubuntu3.3) bionic; urgency=medium <...> * Removed --add-udeb from dh_makeshlibs, since libkmod2-udeb does not actually contain a library. (Closes: #939779) <...> From dh_makeshlibs(1): --add-udeb=udeb Create an additional line for udebs in the shlibs file and use udeb as the package name for udebs to depend on instead of the regular library package. Before: $ dpkg-deb --control libkmod2_24-1ubuntu3.2_amd64.deb libkmod2-u32-control $ cat libkmod2-u32-control/shlibs libkmod 2 libkmod2 udeb: libkmod 2 libkmod2-udeb $ dpkg-deb --info udev-udeb_237-3ubuntu10.39_amd64.udeb | grep Depends: Depends: ..., libkmod2-udeb, ... After: $ dpkg-deb --control libkmod2_24-1ubuntu3.3_amd64.deb libkmod2-u33-control $ cat libkmod2-u33-control/shlibs libkmod 2 libkmod2 $ dpkg-deb --info udev-udeb_237-3ubuntu10.40_amd64.udeb | grep Depends: Depends: ..., libkmod2, ... That kmod change fixes a FTBFS with newer debhelper on Eoan and later, but it is not required with older debhelper on Bionic: Eoan: $ dpkg -s debhelper | grep Version: Version: 12.6.1ubuntu2 $ dpkg-buildpackpage <...> dh_makeshlibs --add-udeb=libkmod2-udeb -- -c4 dh_makeshlibs: The udeb libkmod2-udeb does not contain any shared libraries but --add-udeb=libkmod2-udeb was passed!? make: *** [debian/rules:120: .stamp-binary] Error 255 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 Bionic: $ dpkg -s debhelper | grep Version: Version: 11.1.6ubuntu2 $ dpkg-buildpackpage <...> dh_makeshlibs --add-udeb=libkmod2-udeb -- -c4 dh_shlibdeps -- --warnings=7 <...> dpkg-buildpackage: info: binary and diff upload (original source NOT included) There is no need to "fix" this in Eoan and later, as debhelper >= 12.3 has support for udeb auto-detection in dh_makeshlibs(1) -- and the udeb line is added to shlibs by default (without --add-udeb): From dh_makeshlibs(1): Since debhelper 12.3, dh_makeshlibs will by default add an additional udeb line for udebs in the shlibs file, when the udeb has the same name as the deb followed by a "-udeb" suffix <...> Please use the --add-udeb and --no-add-udeb options below when this auto-detection is insufficient. $ dpkg-deb --control libkmod2_26-1ubuntu1.1_amd64.deb libkmod2-eoan-control $ cat libkmod2-eoan-control/shlibs libkmod 2 libkmod2 udeb: libkmod 2 libkmod2-udeb $ dpkg-deb --control libkmod2_27-1ubuntu2_amd64.deb libkmod2-focal-control $ cat libkmod2-focal-control/shlibs libkmod 2 libkmod2 (>= 27) udeb: libkmod 2 libkmod2-udeb (>= 27) $ dpkg-deb --control libkmod2_27+20200310-2ubuntu1_amd64.deb libkmod2-groovy-control $ cat libkmod2-groovy-control/shlibs libkmod 2 libkmod2 (>= 27+20200310) udeb: libkmod 2 libkmod2-udeb (>= 27+20200310) This also needs a no-change rebuild on systemd, after kmod is built/available in archive. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/kmod/+bug/1889297/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp