[Pkg-openldap-devel] Bug#724518: openldap: Patch to allow bootstrapping without heimdal-dev

Helmut Grohne helmut at subdivi.de
Wed Aug 26 19:26:26 UTC 2015


Control: user helmutg at debian.org
Control: usertags + rebootstrap

Hi Ryan and Daniel,

Thanks to Daniel for highlighting this bug to me.  I know I'm being late
to the party, but let us please reconsider this stage before uploading.

On Tue, Aug 25, 2015 at 12:51:56PM -0700, Ryan Tandy wrote:
> No hurry. Revised patch attached... I think it's correct, but would
> appreciate a thumbs-up when you have time. Thanks a lot for your help!

I think that when adding a stage one should look further than just the
immediate cycle. This is the main reason that prevented me from
submitting a stage for openldap: I was lacking assurance that I was
doing it correctly.

Given further testing I now have somewhat more confidence, so let me
propose a very different stage1: --disable-slapd

Why does this make sense? This stage builds way less than the stage
proposed by Daniel. It also drops heimdal, but it also drops
cyrus-sasl2. Keep in mind that cyrus-sasl2 and openldap do have a direct
cycle that needs to be addressed in either cyrus-sasl2 or openldap. So
rather than add yet another stage to drop libsasl2-dev or add a stage to
cyrus-sasl2 dropping libldap2-dev, I therefore think that openldap's
stage1 should also drop the libsasl2-dev dependency. Turns out the
easiest way to do so is just not building the server.

I am attaching my current stage1 for openldap for discussion. What do
you think?

Helmut
-------------- next part --------------
diff -u openldap-2.4.40/debian/changelog openldap-2.4.40/debian/changelog
--- openldap-2.4.40/debian/changelog
+++ openldap-2.4.40/debian/changelog
@@ -1,3 +1,11 @@
+openldap (2.4.40-4.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Add stage1 build profile without heimdal. (Closes: #-1)
+  * Fix cross build. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Thu, 05 Mar 2015 07:11:16 +0100
+
 openldap (2.4.40-4) unstable; urgency=medium
 
   * debian/patches/ITS8027-deref-reject-empty-attr-list.patch: Import upstream 
diff -u openldap-2.4.40/debian/control openldap-2.4.40/debian/control
--- openldap-2.4.40/debian/control
+++ openldap-2.4.40/debian/control
@@ -10,11 +10,11 @@
  Ryan Tandy <ryan at nardis.ca>
 Build-Depends: debhelper (>= 8.9.0~),
 	dpkg-dev (>= 1.16.1),
-	libdb5.3-dev, nettle-dev,
- libgnutls28-dev, unixodbc-dev, libncurses5-dev, libperl-dev (>= 5.8.0),
- libsasl2-dev, libslp-dev, libltdl-dev | libltdl3-dev (>= 1.4.3),
- libwrap0-dev, perl, po-debconf,
- groff-base, time, heimdal-multidev,
+	libdb5.3-dev <!stage1>, nettle-dev,
+ libgnutls28-dev, unixodbc-dev <!stage1>, libncurses5-dev <!stage1>, libperl-dev (>= 5.8.0) <!stage1>,
+ libsasl2-dev, libslp-dev <!stage1>, libltdl-dev | libltdl3-dev (>= 1.4.3),
+ libwrap0-dev <!stage1>, perl, po-debconf,
+ groff-base, time, heimdal-multidev <!stage1>,
  dh-autoreconf
 Build-Conflicts: libbind-dev, bind-dev, libicu-dev, autoconf2.13
 Standards-Version: 3.9.1
@@ -36,6 +36,7 @@
 Conflicts: umich-ldapd, ldap-server, libltdl3 (= 1.5.4-1)
 Replaces: libldap2, ldap-utils (<< 2.2.23-3)
 Provides: ldap-server, ${slapd:Provides}
+Build-Profiles: <!stage1>
 Description: OpenLDAP server (slapd)
  This is the OpenLDAP (Lightweight Directory Access Protocol) server
  (slapd). The server can be used to provide a standalone directory
@@ -46,6 +47,7 @@
 Priority: extra
 Architecture: any
 Depends: slapd (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Build-Profiles: <!stage1>
 Description: Keeps Samba and Kerberos passwords in sync within slapd.
  Extends the PasswordModify Extended Operation to update Kerberos keys
  and Samba password hashes for an LDAP user. The Kerberos support is
@@ -113,6 +115,7 @@
 Priority: extra
 Architecture: any
 Depends: slapd (= ${binary:Version}), ${misc:Depends}
+Build-Profiles: <!stage1>
 Description: Debugging information for the OpenLDAP server (slapd)
  This package provides detached debugging information for the OpenLDAP
  (Lightweight Directory Access Protocol) server (slapd). It is useful
diff -u openldap-2.4.40/debian/rules openldap-2.4.40/debian/rules
--- openldap-2.4.40/debian/rules
+++ openldap-2.4.40/debian/rules
@@ -11,12 +11,20 @@
 export RESOLV_MULTI = off
 
 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
 
 CONFIG		= $(shell grep -v "^\#" debian/configure.options)
 ifeq ($(DEB_HOST_ARCH_OS),hurd)
 	CONFIG += --disable-bdb --disable-hdb --disable-mdb
 endif
+ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
+	CONFIG += --disable-slapd
+	CONFIG += --disable-slp
+endif
+ifeq ($(origin CC),default)
+export CC=$(DEB_HOST_GNU_TYPE)-cc
+endif
 
 installdir	:= $(CURDIR)/debian/tmp
 builddir	:= $(CURDIR)/debian/build
@@ -87,13 +95,16 @@
 
 override_dh_auto_build:
 	dh_auto_build -- $(MAKEVARS)
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 	$(MAKE) -C contrib/slapd-modules/smbk5pwd
 	$(MAKE) -C contrib/slapd-modules/autogroup
 	$(MAKE) -C contrib/slapd-modules/lastbind
 	$(MAKE) -C contrib/slapd-modules/passwd/sha2
+endif
 
 override_dh_auto_install:
 	dh_auto_install -- $(MAKEVARS)
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 	$(MAKE) -C contrib/slapd-modules/smbk5pwd install DESTDIR=$(installdir)
 	$(MAKE) -C contrib/slapd-modules/autogroup install DESTDIR=$(installdir)
 	$(MAKE) -C contrib/slapd-modules/lastbind install DESTDIR=$(installdir)
@@ -103,6 +114,7 @@
 	for F in $(installdir)/usr/lib/ldap/*.la; do \
 		sed -i "s/^dependency_libs=.*/dependency_libs=''/" $$F; \
 	done
+endif
 	
 	# Check all built libraries for unresolved symbols except for the
 	# libslapi library.  It is a special case since the SLAPI interface
@@ -125,24 +137,30 @@
 	find $(installdir)/usr/share/man -name \*.8 \
 		| xargs perl -pi -e 's#(\.TH \w+ 8)C#$$1#'
 
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 override_dh_install:
 	dh_install
 	rm -rf $(CURDIR)/debian/slapd/usr/lib/ldap/smbk5pwd*
 	chmod 0755 $(CURDIR)/debian/slapd/usr/share/slapd/ldiftopasswd
+endif
 
 override_dh_installinit:
 	dh_installinit -- "defaults 19 80"
 
 override_dh_strip:
 	dh_strip -plibldap-2.4-2 --dbg-package=libldap-2.4-2-dbg
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 	dh_strip -pslapd --dbg-package=slapd-dbg
+endif
 	dh_strip -Nlibldap-2.4-2 -Nslapd
+ifeq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
 	# hardlink these so not confined by apparmor; do this here and not
 	# in dh_link so that dh_strip doesn't get confused and put the wrong
 	# binary in the debug package.
 	for f in slapacl slapadd slapauth slapcat slapdn slapindex slappasswd slaptest slapschema ; do \
 	    ln -f $(slapddir)/slapd $(slapddir)/$$f ; \
 	done
+endif
 
 override_dh_link:
 	for pkg in libldap2-dev libldap-2.4-2; do \


More information about the Pkg-openldap-devel mailing list