
So today is the third anniversary of my first upload of
the ISC DHCP v3 package to
Debian.
It all started back in the days of the
linux.conf.au 2005 organising
committee.
Bob
Edwards, who ran the
ANU Department of Computer Science computer
labs (which ran on Debian at the time), was constantly complaining about
bugs like
#286011, once he'd found out I was a Debian developer.
So I figured I'd try and do something about it, so I think I emailed the
maintainers, who had been fairly inactive (the last upload before mine was
in July the year before), and asked if they'd like me to NMU the package.
I think Matt Zimmerman emailed me back and told me to knock myself out, and
add myself as an uploader while I was at it, and well, the rest is
history...
I've had fun fixing bugs, trying to clean things up, deal with a pretty
archaic upstream build system and get the package up to current Debian
standards compliance. One of the highlights was being able to finally get
rid of Debian Installer's dependence on the v2 DHCP client package, so we
could finally jettison the v2 packages for Lenny (which reminds me, I still
have to figure out how to handle the transition from Etch with respect to
that).
I've been working hard to try and get as many of the patches in Debian's
DHCP packages incorporated upstream. Unfortunately, they have a totally
unpredictable release cycle, and they have feature releases and bug fix
releases. The feature releases are very few and far between, and they won't
introduce new features into a bugfix release.
Speaking of patches, my personal philosophy is that distribution packages
shouldn't differ radically in behaviour or functionality from their upstream
source, so I've resisted incorporating some of the more deviant patches from
Ubuntu, instead forwarding them directly upstream.
There's still a bit of work to be done with the package. The ISC released
version 3.1.0 a while ago, and that's the version I'm trying to standardise
on for Lenny. It's got new support for a
domain-search option,
which means people can stop abusing the
domain-name option to set a
domain search list in their clients. The
domain-search option is
also honoured by Mac OS X (Leopard), and I dare say Windows Vista probably
supports it as well, but I haven't checked.
Unfortunately the client-side support for the
domain-search option
is a bit flaky in 3.1.0, so I'm hoping the ISC will release 3.1.1 real soon
now, as I believe most of the flakiness issues are addressed in it. Of
course, for Lenny to do the right thing consistently with this new option,
#460609 and
#465158 need to be resolved also.
The last thing I'm trying to sort out for Lenny is the reasonably in-demand
LDAP patch. It's been floating around out-of-tree for longer than I've been
maintaining the package. Jos L. Redrejo Rodr guez has been kind enough to
clean up the patch for me, so that rather than bastardising the standard
DHCP package to build a dhcp3-server package that has LDAP support, it
basically builds DHCP twice, once with the patch and once without, and the
dhcp3-server-ldap package just diverts
/usr/sbin/dhcpd3 out of the
way and plonks in the LDAP-enabled binary in its place. I hope to upload a
new revision of the package that builds this new binary package within the
next week (hopefully this weekend).
After that's done, and hopefully 3.1.1 has been released, and Lenny is out
of the way, I'm going to focus on transitioning away from a versioned set of
DHCP packages. The whole "3" in everything was to allow the v2 and v3
packages to coexist. I've sought advice from the release team about this,
and they said not to bother, but it feels really gross to have the version 4
package (4.0.0 has been released by the ISC for a while now as well) be
still called dhcp3, and to install into
/etc/dhcp3 and other such
versioned directories.
The final thing I want to look into is collaborative maintenance. I've been
wanting to do this for a while, but I wanted to get the package into a
revision control system (shock horror, it's not currently) and I've been
baulking at how to do it the "right" way. I'm pretty sold on using Git for
the revision control system, I just haven't figured out the right approach
yet. Martin Krafft's articles
about it
have been interesting, but feel a bit overly advanced, and don't quite suit
my situation. I've been hesitant to start using Git, then discover I've done
it all wrong, and have to start again. I need to just bite the bullet. My
upstream also doesn't use Git, and doesn't make their revision control
system publicly available, so I just get the tarballs when they're released.
Speaking of upstream, I made the discovery last year that they're just down
the road from me in Redwood City, so I've been trying to improve relations
by getting the main folks who work on DHCP at ISC to pop up to Google for
lunch every now and then, which so far has happened twice, and been good a
opportunity to have a chat. In fact, they're keen for Debian to join the
DHCP Forum (Debian is already
a member of the BIND Forum) and I think they've started talking to the
Debian folks responsible for our BIND Forum membership about extending that
to cover the DHCP Forum as well.
So that's about it. I think after three years of being the sole uploader,
I'll formally put myself in as the maintainer and Eloy as an uploader until
I get around to implementing collaborative maintenance.