[Bug 1889297] [NEW] Bionic: debian-installer FTBFS because udev-udeb depends on libkmod2 not libkmod2-udeb

Mauricio Faria de Oliveira 1889297 at bugs.launchpad.net
Tue Jul 28 18:46:22 UTC 2020


Public bug reported:

[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.

** Affects: kmod (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: kmod (Ubuntu Bionic)
     Importance: High
     Assignee: Mauricio Faria de Oliveira (mfo)
         Status: In Progress

** Also affects: kmod (Ubuntu Bionic)
   Importance: Undecided
       Status: New

** Changed in: kmod (Ubuntu)
       Status: New => Invalid

** Changed in: kmod (Ubuntu Bionic)
       Status: New => In Progress

** Changed in: kmod (Ubuntu Bionic)
   Importance: Undecided => High

** Changed in: kmod (Ubuntu Bionic)
     Assignee: (unassigned) => Mauricio Faria de Oliveira (mfo)

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, 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



More information about the foundations-bugs mailing list