Hi,

I think the actual problem is that the binary provided by
isc-dhcp-server-ldap actually lacks LDAP support due to a build logic error.

I've been hit by this problem myself (although on Ubuntu, but I think
they use the same source) and I analyzed it and have a workaround (see
attached patch).

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.


Kind regards,

Christian

--- dhcpd.orig/isc-dhcp-4.2.4/debian/rules	2012-10-16 21:25:47.000000000 +0200
+++ dhcpd/isc-dhcp-4.2.4/debian/rules	2013-01-15 23:05:34.887169035 +0100
@@ -59,7 +59,7 @@
 	
 build: build-arch build-indep
 
-build-arch: build-ldap-stamp clean build-non-ldap-stamp build-arch-stamp
+build-arch: build-ldap-stamp buildclean build-non-ldap-stamp build-arch-stamp
 build-indep:
 
 build-arch-stamp:
@@ -82,9 +82,8 @@
 
 	touch $@
 
-clean:
+buildclean:
 	dh_testdir
-	rm -f build*stamp install*stamp
 
 	[ ! -f Makefile ] || $(MAKE) distclean
 	rm -f Makefile client/Makefile config.log config.status
@@ -92,6 +91,8 @@
 	    build.log configure.log install.log
 
 	debconf-updatepo
+
+clean: buildclean
 	dh_clean
 
 install: install-stamp
@@ -159,7 +160,7 @@
 
 # Build architecture-dependent files here (this package does not contain
 #	architecture-independent files).
-binary-arch: build-arch install
+binary-arch: build-ldap-stamp build-non-ldap-stamp build-arch-stamp  install
 	dh_testdir
 	dh_testroot 
 	dh_installdebconf

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to