udeb checkups

I spent too many hours today checking almost all udebs that include compiled binaries, to make sure they were built with size optimisatons (-Os and sometimes -fomit-frame-pointer).

First, I was suprised to find a few core udebs in d-i, built from our tree, were missing that. I guess it's not been emphasised enough and kinda forgotten sometimes.

Then I checked all the udebs that are not produced from the d-i tree. Many had obviously gone to a lot of work to build a size optimised version of the binary alongside the regular one for Debian, and I really appreciate that, since it can be a lot of work. For the ones that didn't, I did test builds and filed bugs with some numbers about how much size we'd save by turning on size optimisation. I hope that those bugs are heeded, if so we should drop quite a lot from d-i initrd sizes and also from the ramdisk footprint.

While I was looking at all these udebs, I noticed that many of them were still being built by hand using dpkg-dev, or with suboptimal uses of debhelper. Attention: debhelper has supported natively making udebs for a while now, just put XC-Package-Type: udeb in the udeb's stanza in debian/control and debhelper will do all the right things for you. It's pretty handy and will make your rules file cleaner.

There's still a lot of things I'd like to check the udebs for on a packaging basis sometime. Like making sure that none of them include md5sums files (I know some do), documentation (god forbid), or other cruft like preinst scripts or what-have you. BTW, debhelper will avoid most of those common mistakes for you.

Then at some point we need to go though all the dependencies and make sure udebs all express all their dependencies, including something sane for shared library dependencies. Once we figure out what "something sane" is in this context.