clone 752407 -1
retitle -1 krb5: Move doxygen to Build-Depends-Indep
block 752407 by -1
user [email protected]
usertags -1 bootstrap
thanks

On Sun, Jul 06, 2014 at 01:37:50PM -0400, Benjamin Kaduk wrote:
> On Mon, 23 Jun 2014, Peter Pentchev wrote:
> 
> >As part of this year's "Bootstrappable Debian" Google Summer of Code
> >project I took a look at krb5 to break a circular build dependency as
> >noted in the "Feedback Arc Set" section of
> >http://bootstrap.debian.net/amd64/ and, more specifically, at
> >http://bootstrap.debian.net/source/krb5.html and the version-specific
> >pages linked from it.  There are two primary goals to my work on this
> >GSoC project:
> >
> >With krb5 all of this may be achieved by building without LDAP support
> >in the "stage1" build profile and thus dropping the libldap2-dev build
> >dependency.  Attached is a patch that implements the first part - it
> 
> I see also a cycle involving doxygen; this should be easy to remove by
> postponing the build of krb5-doc until after stage1 is complete.

Actually this one is even easier to fix - since krb5-doc is an arch:all
package, it will not be built in arch-only builds on the buildds, and it
will not be built in a bootstrap build at all; the architecture-independent
packages are taken from the Debian archive as-is.  Thus, the fact that
doxygen is only needed for the build of the arch:all packages means that it
may safely be moved to B-D-I.

So what do you think about the attached patch that does exactly that -
moves doxygen to B-D-I?  It's also available at
https://gitorious.org/roam-debian-bootstrap/krb5-debian/commits/roam-indep

I've also attached a new version of the patch that adds build-time
support for the "stage1" build profile (no <!profile.stage1> yet) that
has been rebased onto the new version of the master branch; it is also
available from
https://gitorious.org/roam-debian-bootstrap/krb5-debian/commits/roam-stage1-build-3
I'll send the full control profile syntax one to the other bug right
away.

Thanks for looking into this!

G'luck,
Peter

-- 
Peter Pentchev  [email protected] [email protected] [email protected]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
From 3c53be54cd828b10f7395a314d597438043a2d79 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <[email protected]>
Date: Mon, 7 Jul 2014 23:42:23 +0300
Subject: [PATCH] Move doxygen to Build-Depends-Indep.

This also removes a build dependency loop as shown on
the version-specific pages linked from
http://bootstrap.debian.net/source/krb5.html
---
 debian/control | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index aacaa8e..ec707e0 100644
--- a/debian/control
+++ b/debian/control
@@ -2,11 +2,11 @@ Source: krb5
 Section: net
 Priority: standard
 Build-Depends: debhelper (>= 8.1.3), byacc | bison,
- comerr-dev, docbook-to-man, doxygen,
+ comerr-dev, docbook-to-man,
  libkeyutils-dev [linux-any], libldap2-dev,
  libncurses5-dev, libssl-dev,  ss-dev, 
  libverto-dev (>= 0.2.4), pkg-config
-build-depends-indep: python-cheetah, python-lxml, python-sphinx, doxygen-latex
+build-depends-indep: python-cheetah, python-lxml, python-sphinx, 
doxygen-latex, doxygen
 Standards-Version: 3.9.5
 Maintainer: Sam Hartman <[email protected]>
 Uploaders: Russ Allbery <[email protected]>, Benjamin Kaduk <[email protected]>
-- 
2.0.0

From 851637b01c69383ec9edd2fbd07b8257b728c795 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <[email protected]>
Date: Mon, 17 Mar 2014 17:12:17 +0200
Subject: [PATCH] A first try at adding stage1 support.

In stage 1, remove the libldap2-dev build dependency as outlined in
the "feedback arc set" section of http://bootstrap.debian.net/amd64/

While building, check the DEB_BUILD_PROFILES variable for "stage1" and,
if found, disable the LDAP functionality and skip the LDAP-related parts
of the build and installation.
---
 debian/control |  1 +
 debian/rules   | 73 ++++++++++++++++++++++++++++++++++++----------------------
 2 files changed, 46 insertions(+), 28 deletions(-)

diff --git a/debian/control b/debian/control
index ec707e0..4594b71 100644
--- a/debian/control
+++ b/debian/control
@@ -1,6 +1,7 @@
 Source: krb5
 Section: net
 Priority: standard
+# For stage1 builds, remove the libldap2-dev dependency.
 Build-Depends: debhelper (>= 8.1.3), byacc | bison,
  comerr-dev, docbook-to-man,
  libkeyutils-dev [linux-any], libldap2-dev,
diff --git a/debian/rules b/debian/rules
index 80d1092..a15ae9b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -51,6 +51,19 @@ EXCLUDE = -Xtmac.doc -Xexamples/krb5 -Xgnats/mit 
-Xkrb5-send-pr \
 LIB_PACKAGES = libkrb5-3 libgssapi-krb5-2 libkadm5clnt-mit9 libkadm5srv-mit9 
libkdb5-7 libgssrpc4  \
        libkrb5support0  libk5crypto3 libkrad0
 
+ifeq (,$(filter stage1,$(DEB_BUILD_PROFILES)))
+DH_EXCLUDE=
+else
+KRB5_SKIP_LDAP=        1
+DH_EXCLUDE=    -Nkrb5-kdc-ldap
+endif
+
+ifeq (,$(KRB5_SKIP_LDAP))
+CONFIGURE_LDAP=        --with-ldap
+else
+CONFIGURE_LDAP=        --without-ldap
+endif
+
 # We touch each configure and Autoconf-related file so that we do not attempt
 # to use Autoconf.  The cache is used by the Embdebian project for cross
 # compiles.
@@ -66,7 +79,7 @@ configure-stamp:
        cd build && $(FLAGS) ../src/configure  \
                --prefix=/usr --localstatedir=/etc --mandir=/usr/share/man \
                --with-system-et --with-system-ss --disable-rpath  \
-               --enable-shared --with-ldap --without-tcl \
+               --enable-shared $(CONFIGURE_LDAP) --without-tcl \
        --with-system-verto \
                --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
                --sysconfdir=/etc \
@@ -114,16 +127,20 @@ install: build-arch
 
        cd build && $(MAKE) install DESTDIR=`pwd`/../debian/tmp
        install -d $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5 
$(CURDIR)/debian/tmp/etc/insserv/overrides
+ifeq (,$(KRB5_SKIP_LDAP))
        install -m644 debian/krb5-kdc-ldap.insserv-override 
debian/tmp/etc/insserv/overrides/krb5-kdc
-       install -m644 $(CURDIR)/debian/README.mech.d 
$(CURDIR)/debian/libgssapi-krb5-2/etc/gss/mech.d/README
        mv $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libkdb_ldap* \
            $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5/
        rm -f 
$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/krb5/libkdb_ldap*.so
+else
+       rm -f $(CURDIR)/debian/tmp/usr/share/man/man8/kdb5_ldap_util.8
+endif
+       install -m644 $(CURDIR)/debian/README.mech.d 
$(CURDIR)/debian/libgssapi-krb5-2/etc/gss/mech.d/README
 
        install -m644 src/util/ac_check_krb5.m4 \
                debian/libkrb5-dev/usr/share/aclocal
 
-       dh_install --sourcedir=debian/tmp --fail-missing $(EXCLUDE)
+       dh_install --sourcedir=debian/tmp --fail-missing $(EXCLUDE) 
$(DH_EXCLUDE)
        set -e ; find 
debian/krb5-multidev/usr/lib/$(DEB_HOST_MULTIARCH)/mit-krb5 -type l -name \*.so 
-print |\
                while read linkname; do \
                ln -s -f ../`readlink $$linkname` \
@@ -157,17 +174,17 @@ binary-indep: DH_OPTIONS=-i
 binary-indep: build-indep  install
        dh_testdir
        dh_testroot
-       dh_installchangelogs  -Xdoc/CHANGES
-       dh_installchangelogs -pkrb5-doc -k doc/CHANGES
-       dh_installdocs
-       dh_installinfo
-       dh_link
-       dh_compress
-       dh_fixperms
-       dh_installdeb
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
+       dh_installchangelogs  -Xdoc/CHANGES $(DH_EXCLUDE)
+       dh_installchangelogs -pkrb5-doc -k $(DH_EXCLUDE) doc/CHANGES
+       dh_installdocs $(DH_EXCLUDE)
+       dh_installinfo $(DH_EXCLUDE)
+       dh_link $(DH_EXCLUDE)
+       dh_compress $(DH_EXCLUDE)
+       dh_fixperms $(DH_EXCLUDE)
+       dh_installdeb $(DH_EXCLUDE)
+       dh_gencontrol $(DH_EXCLUDE)
+       dh_md5sums $(DH_EXCLUDE)
+       dh_builddeb $(DH_EXCLUDE)
 
 # Build architecture-dependent files here.
 # Pass -a to all debhelper commands in this target to reduce clutter.  Strip
@@ -179,27 +196,27 @@ binary-arch: DH_OPTIONS=-a
 binary-arch: build-arch install
        dh_testdir
        dh_testroot
-       dh_installchangelogs  -Xdoc/CHANGES
-       dh_installdocs
-       dh_installdebconf
-       dh_installinit -- defaults 18 18
-       dh_lintian
+       dh_installchangelogs  -Xdoc/CHANGES $(DH_EXCLUDE)
+       dh_installdocs $(DH_EXCLUDE)
+       dh_installdebconf $(DH_EXCLUDE)
+       dh_installinit $(DH_EXCLUDE) -- defaults 18 18
+       dh_lintian $(DH_EXCLUDE)
        set -e ; for pkg in $(LIB_PACKAGES) ; do \
                DH_OPTIONS="" dh_strip -p$$pkg --dbg-package=libkrb5-dbg; \
                DH_OPTIONS="" dh_makeshlibs -p$$pkg 
-Xusr/lib/$(DEB_HOST_MULTIARCH)/krb5/plugins -- -c4 ; \
        done
-       dh_strip
-       dh_link
-       dh_compress
-       dh_fixperms
+       dh_strip $(DH_EXCLUDE)
+       dh_link $(DH_EXCLUDE)
+       dh_compress $(DH_EXCLUDE)
+       dh_fixperms $(DH_EXCLUDE)
        chmod u+s debian/krb5-user/usr/bin/ksu
        chmod 700 debian/krb5-kdc/var/lib/krb5kdc
        chmod 700 debian/krb5-kdc/etc/krb5kdc
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
+       dh_installdeb $(DH_EXCLUDE)
+       dh_shlibdeps $(DH_EXCLUDE)
+       dh_gencontrol $(DH_EXCLUDE)
+       dh_md5sums $(DH_EXCLUDE)
+       dh_builddeb $(DH_EXCLUDE)
 
 binary: binary-indep binary-arch
 .PHONY: build clean configure binary-indep binary-arch binary install
-- 
2.0.0

Attachment: signature.asc
Description: Digital signature

Reply via email to