Obscure build breakage (patch attached even)

Dagmar d'Surreal evildagmar at gmail.com
Mon Jun 18 11:39:47 UTC 2007


Good morning...
 I probably should have done something about this *long* before now,
since it's been on my "to-do" list for ages, but I'm probably not the
only person to have noticed it and done nothing much about it.

 When compiling the package (3.0.5 at least, definitely older,
probably 3.0.6rc as well) if you specify more than *just*
`./configure`, like for example `./configure linux-2.2` a very subtle
and insidious bug occurs that results in a non-functional dhclient
which claims that it can't find any network interfaces.

 Basically, what happens is that if no $sysname is specified, the
case statement starting at line 33 takes care of setting $major and
$minor according to the platform particulars.  If someone was
proactive (Slackware's build script does this, and since it's not
technically incorrect...) and specified a $sysname, these two
variables never get set... which renders the check for them at line
239 completely ineffective, and results in completely mad things like
"MAJORVERSION=MajorVersion" winding up in work.linux-2.2/Makefile
instead of "MAJORVERSION=2".

 The attached patch fixes this behaviour at the cost of a wee bit of
redundancy (now if someone changes what sets major and minor, they
have to change it in two places) in the configure script, but I would
really rather not rewrite the lot to simplify the code and submit a
500+ line patch that no one wants to look at for such a minor issue.

 I don't know that this issue actually has any impact on bsdos,
alphaosf, or sunos5 targets as I've no access to them and they could
be figments of someone's imagination for all I know, but they might
well be suffering the same problem so they're included in the patch
for the sake of completeness.

--+ Dagmar d'Surreal




More information about the dhcp-users mailing list