The attached patch reintroduces the move of krb5-config to
krb5-multidev. In addition to the original changes, it also changes
krb5-config and the pkg-config files to use "-isystem" for Kerberos
include paths rather than "-I".

I have confirmed that pidgin-sipe (which was mentioned in bug 751760)
builds correctly with this change. Please let me know what you think,
thanks!

Jelmer
diff --git a/debian/changelog b/debian/changelog
index a6173ea..39bf945 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+krb5 (1.12.1+dfsg-3.1) UNRELEASED; urgency=low
+
+  * Reintroduce changes to move krb5-config into krb5-multidev:
+   + Provide -L and -I flags from krb5-config. Closes: #730837
+   + Ship krb5-config.mit binary in krb5-multidev., Closes: #745322
+   + Provide -L and -I flags from pkg-config files. Closes: #750041
+  * Use -isystem for include paths, to prevent the compiler from warning
+    about problems in them. Closes: #751760
+
+ -- Jelmer Vernooij <[email protected]>  Sun, 06 Jul 2014 03:53:54 +0200
+
 krb5 (1.12.1+dfsg-3) unstable; urgency=high
 
   * High urgency to revert some changes in the previous version that got
diff --git a/debian/krb5-multidev.install.in b/debian/krb5-multidev.install.in
index f57f4d9..d18ecc0 100644
--- a/debian/krb5-multidev.install.in
+++ b/debian/krb5-multidev.install.in
@@ -8,3 +8,5 @@ usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/kdb.pc usr/lib/${DEB_HOST_MULTIARCH}/pkg
 usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/krb5-gssapi.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/mit-krb5
 usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/krb5.pc usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/mit-krb5
 usr/include/* usr/include/mit-krb5
+usr/bin/krb5-config.mit
+usr/share/man/man1/krb5-config.mit.1
diff --git a/debian/libkrb5-dev.install b/debian/libkrb5-dev.install
deleted file mode 100644
index 71f71c8..0000000
--- a/debian/libkrb5-dev.install
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/krb5-config
-usr/share/man/man1/krb5-config.1
diff --git a/debian/libkrb5-dev.links b/debian/libkrb5-dev.links
new file mode 100644
index 0000000..1a6b052
--- /dev/null
+++ b/debian/libkrb5-dev.links
@@ -0,0 +1,2 @@
+usr/bin/krb5-config.mit usr/bin/krb5-config
+usr/share/man/man1/krb5-config.mit.1.gz usr/share/man/man1/krb5-config.1.gz
diff --git a/debian/patches/debian-local/0008-krb5-config-paths.patch b/debian/patches/debian-local/0008-krb5-config-paths.patch
new file mode 100644
index 0000000..1e7cc50
--- /dev/null
+++ b/debian/patches/debian-local/0008-krb5-config-paths.patch
@@ -0,0 +1,43 @@
+From: Jelmer Vernooij <[email protected]>
+Date: Sun 20 Apr 15:59:08 CEST 2014
+Debian-Bug: http://bugs.debian.org/730837
+Subject: Fix krb5-config paths
+
+Include library and include flags in krb5-config, so they
+work when the symlinks provided by libkrb5-dev are not
+installed.
+
+Patch-Category: debian-local
+
+diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in
+index 637bad7..a73654f 100755
+--- a/src/build-tools/krb5-config.in
++++ b/src/build-tools/krb5-config.in
+@@ -29,8 +29,8 @@ version_string="Kerberos 5 release @KRB5_VERSION@"
+ 
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-includedir=@includedir@
+-libdir=@libdir@
++includedir=@includedir@/mit-krb5
++libdir=@libdir@/mit-krb5
+ CC_LINK='@CC_LINK@'
+ KDB5_DB_LIB=@KDB5_DB_LIB@
+ LDFLAGS='@LDFLAGS@'
+@@ -209,15 +209,7 @@ fi
+ 
+ 
+ if test -n "$do_libs"; then
+-    # Assumes /usr/lib is the standard library directory everywhere...
+-    case $libdir in
+-	/usr/lib*)
+-	    libdirarg=
+-	    ;;
+-	*)
+-	    libdirarg="-L$libdir"
+-	    ;;
+-    esac
++	libdirarg="-L$libdir"
+     # Ugly gross hack for our build tree
+     lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \
+ 	    -e 's/\$(PURE)//' \
diff --git a/debian/patches/debian-local/0012-Fix-pkg-config-paths.patch b/debian/patches/debian-local/0012-Fix-pkg-config-paths.patch
new file mode 100644
index 0000000..5aae283
--- /dev/null
+++ b/debian/patches/debian-local/0012-Fix-pkg-config-paths.patch
@@ -0,0 +1,94 @@
+Date: Sun  1 Jun 20:33:00 BST 2014
+From: Jelmer Vernooij <[email protected]>
+Subject: Fix pkg-config library/include paths
+Bug-Debian: http://bugs.debian.org/750041
+
+Include library and include flags in pkg-config files, so they work when the
+symlinks provided by libkrb5-dev are not installed.
+
+Patch-Category: debian-local
+
+diff --git a/src/build-tools/gssrpc.pc.in b/src/build-tools/gssrpc.pc.in
+index ca90921..e08c2e8 100644
+--- a/src/build-tools/gssrpc.pc.in
++++ b/src/build-tools/gssrpc.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ vendor=MIT
+ 
+ Name: gssrpc
+diff --git a/src/build-tools/kadm-client.pc.in b/src/build-tools/kadm-client.pc.in
+index c8d1cd1..de56a75 100644
+--- a/src/build-tools/kadm-client.pc.in
++++ b/src/build-tools/kadm-client.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ 
+ Name: kadm-client
+ Description: Kerberos administration client library
+diff --git a/src/build-tools/kadm-server.pc.in b/src/build-tools/kadm-server.pc.in
+index cd2f86c..a73ff86 100644
+--- a/src/build-tools/kadm-server.pc.in
++++ b/src/build-tools/kadm-server.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ 
+ Name: kadm-server
+ Description: Kerberos administration server library
+diff --git a/src/build-tools/kdb.pc.in b/src/build-tools/kdb.pc.in
+index 461a8d01d0..356501d 100644
+--- a/src/build-tools/kdb.pc.in
++++ b/src/build-tools/kdb.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ 
+ KDB5_DB_LIB=@KDB5_DB_LIB@
+ 
+diff --git a/src/build-tools/mit-krb5-gssapi.pc.in b/src/build-tools/mit-krb5-gssapi.pc.in
+index 7b91b19..b2b2436 100644
+--- a/src/build-tools/mit-krb5-gssapi.pc.in
++++ b/src/build-tools/mit-krb5-gssapi.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ 
+ Name: mit-krb5-gssapi
+ Description: Kerberos implementation of the GSSAPI
+diff --git a/src/build-tools/mit-krb5.pc.in b/src/build-tools/mit-krb5.pc.in
+index 0308815..058e75f 100644
+--- a/src/build-tools/mit-krb5.pc.in
++++ b/src/build-tools/mit-krb5.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=@libdir@/mit-krb5
++includedir=@includedir@/mit-krb5
+ 
+ defccname=@DEFCCNAME@
+ defktname=@DEFKTNAME@
diff --git a/debian/patches/debian-local/0013-isystem-headers.patch b/debian/patches/debian-local/0013-isystem-headers.patch
new file mode 100644
index 0000000..d5c0817
--- /dev/null
+++ b/debian/patches/debian-local/0013-isystem-headers.patch
@@ -0,0 +1,93 @@
+Description: Use -isystem for include paths
+ This is necessary so Kerberos headers files are classified as "system headers"
+ by the compiler, and thus not subject to the same strict warnings as
+ other headers (which breaks compilation if -Werror is specified).
+ .
+ This fixes the build of folks using -Werror and including Kerberos headers
+ when the latter are installed in a non-standard location (e.g.
+ /usr/include/tuple/mit-krb5, as Debian is doing).
+Author: Jelmer Vernooij <[email protected]>
+Bug-Debian: http://bugs.debian.org/751760
+
+diff --git a/src/build-tools/gssrpc.pc.in b/src/build-tools/gssrpc.pc.in
+index e08c2e8..fb4f489 100644
+--- a/src/build-tools/gssrpc.pc.in
++++ b/src/build-tools/gssrpc.pc.in
+@@ -7,6 +7,6 @@ vendor=MIT
+ Name: gssrpc
+ Description: GSSAPI RPC implementation
+ Version: @KRB5_VERSION@
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lgssrpc
+ Requires.private: mit-krb5-gssapi
+diff --git a/src/build-tools/kadm-client.pc.in b/src/build-tools/kadm-client.pc.in
+index de56a75..47541ac 100644
+--- a/src/build-tools/kadm-client.pc.in
++++ b/src/build-tools/kadm-client.pc.in
+@@ -7,5 +7,5 @@ Name: kadm-client
+ Description: Kerberos administration client library
+ Version: @KRB5_VERSION@
+ Requires.private: mit-krb5-gssapi gssrpc
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lkadm5clnt_mit
+diff --git a/src/build-tools/kadm-server.pc.in b/src/build-tools/kadm-server.pc.in
+index a73ff86..5ce4b73 100644
+--- a/src/build-tools/kadm-server.pc.in
++++ b/src/build-tools/kadm-server.pc.in
+@@ -7,5 +7,5 @@ Name: kadm-server
+ Description: Kerberos administration server library
+ Version: @KRB5_VERSION@
+ Requires.private: kdb mit-krb5-gssapi
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lkadm5srv_mit
+diff --git a/src/build-tools/kdb.pc.in b/src/build-tools/kdb.pc.in
+index 356501d..d39eeef 100644
+--- a/src/build-tools/kdb.pc.in
++++ b/src/build-tools/kdb.pc.in
+@@ -9,6 +9,6 @@ Name: kdb
+ Description: Kerberos database access libraries
+ Version: @KRB5_VERSION@
+ Requires.private: mit-krb5-gssapi mit-krb5 gssrpc
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lkdb5
+ Libs.private: ${KDB5_DB_LIB}
+diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in
+index a73654f..723d1eb 100755
+--- a/src/build-tools/krb5-config.in
++++ b/src/build-tools/krb5-config.in
+@@ -201,7 +201,7 @@ fi
+ 
+ if test -n "$do_cflags"; then
+     if test x"$includedir" != x"/usr/include" ; then
+-        echo "-I${includedir}"
++        echo "-isystem ${includedir}"
+     else
+         echo ''
+     fi
+diff --git a/src/build-tools/mit-krb5-gssapi.pc.in b/src/build-tools/mit-krb5-gssapi.pc.in
+index b2b2436..f919222 100644
+--- a/src/build-tools/mit-krb5-gssapi.pc.in
++++ b/src/build-tools/mit-krb5-gssapi.pc.in
+@@ -7,5 +7,5 @@ Name: mit-krb5-gssapi
+ Description: Kerberos implementation of the GSSAPI
+ Version: @KRB5_VERSION@
+ Requires.private: mit-krb5
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lgssapi_krb5
+diff --git a/src/build-tools/mit-krb5.pc.in b/src/build-tools/mit-krb5.pc.in
+index 058e75f..455427a 100644
+--- a/src/build-tools/mit-krb5.pc.in
++++ b/src/build-tools/mit-krb5.pc.in
+@@ -10,6 +10,6 @@ defcktname=@DEFCKTNAME@
+ Name: mit-krb5
+ Description: An implementation of Kerberos network authentication
+ Version: @KRB5_VERSION@
+-Cflags: -I${includedir}
++Cflags: -isystem ${includedir}
+ Libs: -L${libdir} -lkrb5 -lk5crypto -lcom_err
+ Libs.private: -lkrb5support
diff --git a/debian/patches/series b/debian/patches/series
index 8a31de8..809b83a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,6 +5,9 @@ debian-local/0004-debian-osconf.hin-path-changes.patch
 debian-local/0005-debian-install-ldap-library-in-subdirectory.patch
 debian-local/0006-gssapi-never-unload-mechanisms.patch
 debian-local/0007-Add-substpdf-target.patch
+debian-local/0008-krb5-config-paths.patch
+debian-local/0012-Fix-pkg-config-paths.patch
+debian-local/0013-isystem-headers.patch
 upstream/0008-Move-OTP-sockets-to-KDC_RUN_DIR.patch
 upstream/0009-Avoid-duplicate-etc-krb5.conf-in-profile-path.patch
 0010-autoreconf.patch
diff --git a/debian/rules b/debian/rules
index 80d1092..ca517fc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -119,6 +119,10 @@ install: build-arch
 	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
+	mv $(CURDIR)/debian/tmp/usr/bin/krb5-config \
+	    $(CURDIR)/debian/tmp/usr/bin/krb5-config.mit
+	mv $(CURDIR)/debian/tmp/usr/share/man/man1/krb5-config.1 \
+	    $(CURDIR)/debian/tmp/usr/share/man/man1/krb5-config.mit.1
 
 	install -m644 src/util/ac_check_krb5.m4 \
 		debian/libkrb5-dev/usr/share/aclocal

Attachment: signature.asc
Description: Digital signature

Reply via email to