Comment 2 for bug 1071928

Revision history for this message
Christian Hoffmann (christian-hoffie) wrote :

I stumbled upon this problem as well.

The root cause is an error in the build process, more specifically the debian/rules Makefile.

First, the ldap flavour of the binary is built and moved to isc-dhcp-server-ldap/dhcpd. This works as expected, the resulting binary contains ldap symbols as expected.
Then, the normal flavour is built. The binary is left in server/dhcpd (like in a vanilla build).

Then, both of these steps are repeated again, and this is the actual problem. First, it's a useless step, second, it leads to the broken ldap binary as no make (dist)clean is invoked inbetween which makes "make" think that server/dhcpd is already the correct ldap binary (which it is not; it is a left-over from the first normal build); afterwards, the build process (debian/rules) overwrites the correct ldap binary in isc-dhcp-server-ldap/dhcpd with a vanilla binary. The normal flavour is "built" again as well, but this does not break anything.

The problem is complex and the patch is trivial, but I don't know if it is correct. Works for me, but YMMV. The patch fixes this problem and probably reduces build time, as the process runs only twice instead of 4 times.

The actual problem is that the "clean" target is invoked between builds, which also calls dh_clean, which in fact removes all the *stamp files, which usually avoid accidental duplicate builds. I've modified the build target to call "buildclean", which does the same thing as before, just without the dh_clean.

I would also consider this bug report really severe, as it renders the given package completely unusuable and breaks existing setups.