Re: Is anyone going to miss the dhcp3-client udeb?
I ran a test, rebuilding the entire dhcp3 package with -Os.
Package size in bytes:
131852 Os version of dhcp3-client udeb
147808 non-Os version of udeb
Non-Os version of dhcp3-client udeb:
Os version of udeb:
So this is actually a substantial savings. (The interesting part is that
there's far more savings in the uncompressed version than in the compressed
version; clearly the Os version doesn't compress as much.) Unfortunately
most of the savings is in .o files outside of the 'client' subdirectory, so
it really does requires building all the object files with -Os.
Unfortunately, this savings still results in a package substantially larger
than the dhcp-client package.
A small part of the package size is due to the udeb containing /var/lib/dhcp3
with no files in it, which is just silly.
Incidentally, the udeb is slightly screwed up; it installs the client script
as /etc/dhcp3, not as /etc/dhcp3/dhclient-script.
A large portion of the client code is devoted to reading dhclient.conf,
which isn't shipped in the udeb. I tried ifdeffing that out, and also
ifdeffing out the -s and -g options (which are only for debugging and
testing). No luck though; it didn't save any space to speak of.
I tried to do a gcc -combine build to see if I could squeeze out more
savings that way, but it hung. This seemed like a good thing to try
because I suspect the generic functions in the directories other than
client/ are only used in special cases in the client, and if they got
inlined, the optimizer would probably shrink them.
The other dhcp clients in Debian are
pump -- heavy libpopt dependency, unreliable last time I checked
udhcpc -- small, problematic bugs
dhcpcd -- extremely small, fairly reliable, doesn't support IPv6
dhcpcd would make a really tiny udeb. I tried building it with -Os;
the binary is 32k, and the scripts are an extra 12k, plus some directory
overhead. The installed size would be smaller than dhcp-client-udeb,
and presumably the package size would too. Is this worth a try?
Nathanael Nerode <email@example.com>
Make sure your vote will count.