d-i currently suffers from a mess involving the library dependencies of udebs. Most library udebs have different names than their corresponding deb, for example, libc6-udeb, but since the udebs that should depend on them are built on regular Debian systems, their dependencies are either calculated with dpkg-shlibdeps, and thus are wrong, or are hardcoded, and thus break, or are noneixistant. This problem makes d-i less robust at runtime since some needed libraries are only pulled in by luck. It makes d-i builds more fragile since the build system requires udeb dependencies to be satisfied, and so we have to build-depend on a bunch of libraries we do not really use for the build, and track changes to them. It makes the build hard to understand as well, since some other libraries enter the d-i images due to library reduction rather than as udebs, and it's hard to tell which libraries are intended to work which way. I propose that we fix this by making dpkg-shlibdeps generate correct dependencies on library udebs when building udebs. This will mean making it change its behavior when it is building a udeb, but rather than hardcode the concept of a udeb at such a low level, I think we can make it generic and possibly even useful for something else. So let's add a new switch to dpkg-shlibdeps, -t (for type), which takes a string parameter such as "udeb". The default type would be "deb". Then extend the shlibs file format, so some lines start with a marker indicating they only apply to packages of a given type. For example: libiw 28 libiw28 (>= 27+28pre8) udeb: libiw 28 libiw28-udeb (>= 27+28pre8) If no matching line of the right type are found in a shlibs file, it will fall back to the untyped lines. I think that with this small change to dpkg-shlibdeps, we can get the dependencies striaghtened out, and probably fully automate it all in debhelper. I would hate to try to implement something similar without changing dpkg-shlibdeps, so I hope that this meets your approval. -- see shy jo
Attachment:
signature.asc
Description: Digital signature