It feels like (probably because it is) about 2 years since I last had a good fiddle around with Debian's installer. It's been fun to have another play in the last week or so.
I've been on a mission to vanquish the ISC DHCPv2 packages, and I can't do this until the installer stops needing to use the udeb for dhclient.
Previously, the dhcp3-client udeb had been way too big for the job (apparently it's the OMAPI stuff that gets linked in, I'm told by David Hankins from the ISC). Matt Zimmerman had thrown around the idea of using ipconfig from klibc-utils quite some time ago, but it's taken me this long to get the spare time to look into it further.
Hacking the netcfg udeb to support ipconfig as a DHCP client was relatively trivial. dhcp.c wasn't too hair raising, and so I rebuilt the installer with my modified netcfg udeb and a udeb I made from the klibc source package, and it worked.
However, it's not as simple as that (it never is). There's a couple of special cases as I discovered when hacking dhcp.c in netcfg:
- with the DHCPv2 client, it adds a dhcp-class-identifier attribute (vendor-class-identifier in DHCPv3) set to "d-i". ipconfig is extremely lightweight. It can't add custom attributes, and apparently this attribute does cool stuff in relation to preseeding (although I haven't got a good handle on exactly what yet).
- The other problem is related to a bug (I even remember it - #239591), where the hostname is optionally sent in the DHCP request. ipconfig doesn't appear to support that either, although in theory it should. One of the ways of invoking it includes providing the hostname, so I filed a wishlist bug regarding that, after emailing the upstream author.
So, my work in this instance is probably all for naught, but it was fun anyway, and it's something I've been meaning to do for absolutely ages.
It is also hopefully a moot point, as apparently the space issues aren't so bad any more, so in theory the dhcp3-client udeb will now fit. The next dhcp3 upload will provide a dhcp3-client udeb again, so we'll see what happens on that front...





