#1060134 kmod-udeb vs busybox-udeb: agree on who ships depmod

#1060134#5
Date:
2024-01-06 08:01:12 UTC
From:
To:
Hi Cyril,

Thank you for the report. In investigating it, I note that reproducing
the failure was unexpectedly difficult. debian-installer fails to build
from source in unstable for unrelated reasons. I request that you update
the package more frequently and keep it in a buildable state to ease QA
efforts of others.

It turns out that /sbin/depmod points to /bin/busybox and
/usr/sbin/depmod points to ../bin/kmod. As such, merge-usr does not have
a good idea of what to do and rightly refuses to continue. These two
files are to be considered a file conflict according to the Debian
policy as they only differ in aliasing. I argue that this was a bug
before merged-/usr and merged-/usr just makes it visible now. The
underlying conflict has existed earlier and was resolved arbitrarily
dependent on the order of unpacks.

The real solution here is to agree on whether busybox-udeb or kmod-udeb
is supposed to provide depmod and only ship it once. Since there is no
other consumer of udebs, it does not make sense to install it in both.

Cyril, please reassign the bug to the right package (i.e. the one that
should not be providing depmod).

I also recommend to establish QA for all udebs to automatically detect,
report and address such conflicts as they evidently cause undefined
behaviour otherwise. That can be as simple as collecting file lists of
all udebs and comparing them.

Helmut

#1060134#10
Date:
2024-01-06 08:40:14 UTC
From:
To:
This seems like a more generic problem. I downloaded all amd64 udebs and
the following files (normalized to account for aliasing) pose a
conflict:

./bin/netcfg
./bin/ptom
./bin/wget
./etc/console-setup/remap.inc
./lib/base-installer.d/40netcfg
./lib/finish-install.d/55netcfg-copy-config
./sbin/depmod
./sbin/insmod
./sbin/lsmod
./sbin/modinfo
./sbin/modprobe
./sbin/rmmod
./usr/share/console-setup/charmap_functions.sh
./usr/share/fonts/truetype/noto/NotoSansSinhala-Bold.ttf
./usr/share/fonts/truetype/noto/NotoSansSinhala-Regular.ttf
./usr/share/fonts/truetype/noto/NotoSerifGujarati-Bold.ttf
./usr/share/fonts/truetype/noto/NotoSerifGujarati-Regular.ttf
./usr/share/keymaps/i386/qwerty/it.kmap.gz
./usr/share/keymaps/i386/qwerty/jp106.kmap.gz
./usr/share/keymaps/i386/qwertz/mac-usb-de-latin1-nodeadkeys.kmap.gz
./usr/share/keymaps/i386/qwertz/mac-usb-de-latin1.kmap.gz
./usr/share/keymaps/i386/qwertz/mac-usb-de_CH.kmap.gz
./usr/share/keymaps/i386/qwertz/mac-usb-fr_CH-latin1.kmap.gz
./usr/share/keymaps/i386/qwertz/mac-usb-pt-latin1.kmap.gz
./usr/share/keymaps/include/compose.latin1.inc.gz

So for busybox and kmod, it's not just depmod, but all the others as
well. It's also busybox-udeb vs wget-udeb and a bunch of others though.
All of the aliased ones will explode sooner or later.

Helmut

#1060134#15
Date:
2024-01-06 11:36:06 UTC
From:
To:
06.01.2024 11:40, Helmut Grohne:

 From this list, only a few utilities are from busybox, namely wget and module
utilities (depmod/insmod/lsmod/modinfo/modprobe/rmmod).

My initial plan - with regular busybox package and with busybox udeb - is to
provide most things in busybox, so that other packages don't need to ship
udeb packages and the whole thing (be it d-i or initrd) is small.

Yes, some utils in busybox aren't as good as regular implementations. For
example, I just found out busybox's xz does not perform compression, only
decompression (-d option is mandatory).  Or #1003757 - missing functionality
in busybox ip.  Still, overall, it is enough for most things.  BTW, it looks
like with compressed kernel modules, busybox m-i-t needs some (albiet minor)
tweaks (it works but kernel produces warnings when busybox tries to load a
module).

Unfortunately this didn't work out for one reason or another.  One of the
reasons is perhaps #921556, where original util does more than needed but
busybox didn't implement the unnecessary functionality.

This needs to be thought about at a more general level. Including initrd
stuff (if we still need it, instead of relying on mkosi-initrd).  I use
my own initrd for a good reason, and this one does not include 2 or even
3 libc as debian does..

/mjt

#1060134#24
Date:
2024-04-09 13:13:45 UTC
From:
To:
Yes. Nowadays kmod has many more features related to compressed modules
and verification of signatures.
Can we agree that kmod should provide these programs for d-i?
Or can the d-i maintainers just tell us what they want?

#1060134#29
Date:
2024-04-09 13:48:10 UTC
From:
To:
Hi,

Marco d'Itri <md@Linux.IT> (2024-04-09):

I meant to come back to this after experimenting, then things happened…

I picked kmod at the time because it worked, and because busybox didn't
work, which I summed up in:
https://salsa.debian.org/installer-team/debian-installer/-/commit/450daf0bd24ee94d4f466ab65908c079ef795145

(plus follow-up commit, woopsie
https://salsa.debian.org/installer-team/debian-installer/-/commit/69777be465c5d0210d16159a456ab88535513a07
)

I'm fine with sticking to kmod regarding module support in d-i. I'm not
sure we should keep support in two different modules, so dropping it
from busybox would work for me. Others might have different views on
this, though.


Cheers,

#1060134#34
Date:
2024-04-26 07:43:17 UTC
From:
To:
09.04.2024 16:48, Cyril Brulebois wrote:

So, should I disable module utils in busybox-udeb now?
Wanted to spare some time on busybox, this bug report come in.

Is kmod udeb ready and used in d-i already, or does it need some
prep first?

Thanks,

/mjt

#1060134#39
Date:
2024-04-26 09:13:36 UTC
From:
To:
I think so.
AFAIK it works.

#1060134#44
Date:
2024-04-26 09:37:55 UTC
From:
To:
Ok,

I'm removing whole modutils from busybox udeb (besides depmod, this is
lsmod, insmod, rmmod, and modprobe).  All these are provided by
kmod-udeb as far as I can see (as symlinks to kod).

#1060134#51
Date:
2024-04-26 12:48:08 UTC
From:
To:
Marco d'Itri <md@linux.it> (2024-04-26):

I haven't gotten any requests / seen any reasons to keep it; so, yes,
please feel free to remove it whenever is convenient for you.

Absolutely, that's been working since the small xz-utils tweak (the udeb
addition, not the backdoor thing).


Cheers,

#1060134#56
Date:
2024-05-16 19:20:20 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
busybox, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1060134@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Tokarev <mjt@tls.msk.ru> (supplier of updated busybox package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Thu, 16 May 2024 21:49:03 +0300
Source: busybox
Architecture: source
Version: 1:1.36.1-7
Distribution: unstable
Urgency: medium
Maintainer: Debian Install System Team <debian-boot@lists.debian.org>
Changed-By: Michael Tokarev <mjt@tls.msk.ru>
Closes: 1060134 1069864
Changes:
 busybox (1:1.36.1-7) unstable; urgency=medium
 .
   * udeb: remove all modutils (kmod-udeb provides better alternatives)
     (Closes: #1060134)
   * deb, static, udeb: provide install applet (Closes: #1069864)
   * udhcpc/default.script: recognize $search dhcp parameter too,
     in addition to $domain (and simplify these parts a bit)
Checksums-Sha1:
 c4a67d14dbdad9698c915485270c6f6bc7f588a7 1954 busybox_1.36.1-7.dsc
 9b37bb6b1ddfe41eac4a551751d37bb37de8d5eb 66708 busybox_1.36.1-7.debian.tar.xz
 93c723b6fb881663e3bf80c73363da943b3d96d9 6352 busybox_1.36.1-7_source.buildinfo
Checksums-Sha256:
 8d387dfc4159ea54832c878bc5602c8d9a9eebcba0d24a6f7091dcdbc51ec8a5 1954 busybox_1.36.1-7.dsc
 602dd21460f6dff82fb23a3b71d40a4d402dbc3d8864704d7d89a8563dd9d62f 66708 busybox_1.36.1-7.debian.tar.xz
 c689e977c5937caed55fe249812e0de57516fcaede5241e222f1610f49b6a24a 6352 busybox_1.36.1-7_source.buildinfo
Files:
 4b46ee0b205392c42ba7fb1986eb8c98 1954 utils optional busybox_1.36.1-7.dsc
 264e149c43c1250200801066b8f7ee8a 66708 utils optional busybox_1.36.1-7.debian.tar.xz
 f0fdc456a88231b6006681560a91ab3e 6352 utils optional busybox_1.36.1-7_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQFDBAEBCgAtFiEEe3O61ovnosKJMUsicBtPaxppPlkFAmZGVVgPHG1qdEB0bHMu
bXNrLnJ1AAoJEHAbT2saaT5ZMLYH/RTawFiOHKvfhBhqibKZitgtXENDJ/AM1Cnk
DuJ6c3G31LBwyxYDePQq6m7RAVneRk2ADWZXNM9B7A32QhCgCKOtVY3N7vBaqlD1
jat7NUgFcUT2qdPP18ZVA2JxcoIXz5H9FnFUjB1Q8g34HIY7cHygaVtm19kyB79C
m6dXD/nfzXW1e0Z1EEk17mdzsMzxNXOTizQdFdJ5e+99v5dnhOng/1ELZtWkbGiy
e3jIWvSM9oKeTWeQg9ziMKeCkNlo3r40zEgPAY4NFuu7uFfz/2zc0po8surXB0As
+LFtBhu8UE605AN0IPPeDww9BPlCiyKMZATeEoPN1vC6j6V0t4c=
=A2Pk
-----END PGP SIGNATURE-----