[Pkg-openldap-devel] DEBIAN / UBUNTU OPENLDAP WILL NOT BUILD FROM SOURCE

Ryan Tandy ryan at nardis.ca
Mon May 23 03:11:33 UTC 2016


On Sun, May 22, 2016 at 09:14:16PM -0500, GI Joe wrote:
>---->>>[OK. Why? Is this to work around the contrib modules (specifically
>smbk5pwd) being set up to build with gnutls, while you're building with
>openssl?]
>
>Just testing...  as I was saying... it appears that the problems originate
>around all of that gssapi/samba stuff inserted circa 2009.   IMHO, It
>should still be able to compile, test, install properly no matter what
>libraries are finally linked.  (Try Redhat/Centos)

It does, for the components that are integrated in the autoconf build 
system, but the contrib modules are driven just by simple Makefiles, so 
do need some tweaking to ensure the proper flags are set.

>---->>>[(I was expecting a 'dch --local', or some other edit to
>debian/changelog, at this point, to distinguish your package from the
>archive version...)]
>
>Not yet.  Don't need to since I'm doing this as prep work before rolling
>out a 'final edition'.  Gotta be able to install and run it, first.  THEN
>build debs.

OK.

>---->>>[dh binary --with autoreconf
>--builddirectory=/.../openldap-2.4.42+dfsg/debian/build
>--parallel]
>
>Same thing.  dh executes to install target on "binary."  Builddirectory is
>resolved in debian/rules as the same thing at line 34...
>      builddir        := $(CURDIR)/debian/build

Not the same, trivially demonstrated:

dh binary

executes ./configure in the current directory, creating ./config.log.

dh binary --builddirectory=$(pwd)/debian/build

cd's into debian/build and executes ../../configure, creating 
debian/build/config.log.

And that does matter, as evidenced by your earlier quotes of things 
failing to find debian/build/libtool.

>Autoreconf usually unnecessary too when working with a virgin source tree
>or after a clean.

Yes, if we were building unmodified upstream sources: but in this case, 
you're missing out on changes made to configure.in by any Debian 
patches, of which there are several. Notably, some of the patches change 
or add other functionality _and_ change the build system to make it all 
work; so if you still have those packages included but you're not doing 
autoreconf, then yes, it's quite likely to break.

>---->>>[ Missing '--with autoreconf' might explain why you find yourself
>having to edit configure.in, while missing --builddirectory would explain
>the error about missing libtool I remarked on earlier. ]
>
>Not.  The vars were undefined in [context].  (Yes, I realize that's kinda
>vague... but, I went thru that hours ago)   See below.
>....
>
>fakeroot dpkg-buildpackage comes after I know this thing is going to
>install and execute and pass a couple hundred tests.

For faster iterations during development:

export DEB_BUILD_OPTIONS=nocheck

>---->>> 'dpkg-buildpackage -us -uc -b' does succeed for me, though, with no
>changes at all to the package. So maybe try using that instead?]
>
>Try running an ldapsearch -ZZ resulting in TLS 1.2 from Debian/GnuTLS to
>about 2000 other openldap servers running on Redhat or CentOS and you'll
>understand pretty quick.  Try adding a few more overlays and backends, too.

I don't understand how this is related to the dpkg-buildpackage 
suggestion, sorry.

I said "with no changes to the package" because that's how I'm testing 
it. I'd make sure you're calling the right commands to build the source 
unmodified first, then change GnuTLS to OpenSSL. I wouldn't expect 
further changes to be necessary.

>(BELOW:  After my changes)
>
>build/top.mk:VERSION_OPTION = @VERSION_OPTION@
>      <<<<-------------------------------

Looks like the VERSION_OPTION stuff is related to 
debian/patches/libldap-symbol-versions, which touches... configure.in. 
So yes, I'd expect to run into breakage with that patch applied but not 
running autoreconf.

And your GSSAPI_LIBS problem probably has two parts... the first is also 
autoreconf-related (since the gssapi patch also modifies the build 
system), and the second is fixed by running dpkg-buildpackage instead of 
debian/rules directly, which _shouldn't_ be necessary, but apparently is 
with the current xenial package. Next time I touch the Ubuntu package 
I'll look into that and try to fix it.



More information about the Pkg-openldap-devel mailing list