From 10b35fd48040926898a33523248402a6e61597ff Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Mon, 26 Dec 2011 18:19:53 -0500 Subject: debian: Handle multi-arch paths in krb5-config We cannot use @libdir@ because that will include the multi-arch prefix in the built krb5-config, but we want krb5-config to be identical on all arches so that krb5-multidev can be multi-arch: same. So, instead, figure out our multi-arch tripple by calling CC directly. Based on an approach suggested by Hugh McMaster. Also include --deps in the usage output, since it is a valid argument. Patch-Category: debian-local --- src/build-tools/krb5-config.in | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/build-tools/krb5-config.in b/src/build-tools/krb5-config.in index f6184da3f..ac2f5827d 100755 --- a/src/build-tools/krb5-config.in +++ b/src/build-tools/krb5-config.in @@ -26,11 +26,18 @@ # Configurable parameters set by autoconf version_string="Kerberos 5 release @KRB5_VERSION@" +CC=${CC-cc} +tripple=`$CC -print-multiarch 2>/dev/null|| ( $CC -dumpmachine | sed 's/-pc//' )` +if [ x$tripple = x ]; then + echo >&2 Failed to find installation architecture + exit 2 +fi + prefix=@prefix@ exec_prefix=@exec_prefix@ -includedir=@includedir@ -libdir=@libdir@ +includedir=@prefix@/include/mit-krb5 +libdir=@prefix@/lib/${tripple}/mit-krb5 CC_LINK='@CC_LINK@' KDB5_DB_LIB=@KDB5_DB_LIB@ LDFLAGS='@LDFLAGS@' @@ -138,6 +145,7 @@ if test -n "$do_help"; then echo " [--defktname] Show built-in default keytab name" echo " [--defcktname] Show built-in default client keytab name" echo " [--cflags] Compile time CFLAGS" + echo " [--deps] Include dependent libraries" echo " [--libs] List libraries required to link [LIBRARIES]" echo "Libraries:" echo " krb5 Kerberos 5 application" @@ -208,12 +216,7 @@ fi if test -n "$do_libs"; then - # Assumes /usr/lib is the standard library directory everywhere... - if test "$libdir" = /usr/lib; then - libdirarg= - else libdirarg="-L$libdir" - fi # Ugly gross hack for our build tree lib_flags=`echo $CC_LINK | sed -e 's/\$(CC)//' \ -e 's/\$(PURE)//' \ -- cgit v1.2.3 From 3465392efce7b1c4a0d0eadca8b1323436a6c640 Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Mon, 26 Dec 2011 18:20:11 -0500 Subject: debian: osconf.hin path changes Patch-Category: debian-local --- src/include/osconf.hin | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/include/osconf.hin b/src/include/osconf.hin index 98a467454..2f51cc13c 100644 --- a/src/include/osconf.hin +++ b/src/include/osconf.hin @@ -59,7 +59,7 @@ #define PLUGIN_EXT "@DYNOBJEXT" #define KDC_DIR "@LOCALSTATEDIR/krb5kdc" -#define KDC_RUN_DIR "@RUNSTATEDIR/krb5kdc" +#define KDC_RUN_DIR "/run/krb5kdc" #define DEFAULT_KDB_FILE KDC_DIR "/principal" #define DEFAULT_KEYFILE_STUB KDC_DIR "/.k5." #define KRB5_DEFAULT_ADMIN_ACL KDC_DIR "/krb5_adm.acl" @@ -114,8 +114,8 @@ * krb5 slave support follows */ -#define KPROP_DEFAULT_FILE KDC_DIR "/slave_datatrans" -#define KPROPD_DEFAULT_FILE KDC_DIR "/from_master" +#define KPROP_DEFAULT_FILE "/var/lib/krb5kdc/slave_datatrans" +#define KPROPD_DEFAULT_FILE "/var/lib/krb5kdc/from_master" #define KPROPD_DEFAULT_KDB5_UTIL "@SBINDIR/kdb5_util" #define KPROPD_DEFAULT_KPROP "@SBINDIR/kprop" #define KPROPD_DEFAULT_KRB_DB DEFAULT_KDB_FILE -- cgit v1.2.3 From ab122f7a7654f725b6f198ce9856581abbcba029 Mon Sep 17 00:00:00 2001 From: Sam Hartman Date: Mon, 26 Dec 2011 18:12:39 -0500 Subject: debian: install ldap library in subdirectory Debian received a request to install the internal ldap library not in the main lib directory. We are changing SHLIB_DIRS from the default that upstream sets in the makefile includes; assign unconditionally the full value. Patch-Category: debian-local --- src/plugins/kdb/ldap/Makefile.in | 1 + src/plugins/kdb/ldap/ldap_util/Makefile.in | 1 + 2 files changed, 2 insertions(+) diff --git a/src/plugins/kdb/ldap/Makefile.in b/src/plugins/kdb/ldap/Makefile.in index 94df816eb..2ed562b11 100644 --- a/src/plugins/kdb/ldap/Makefile.in +++ b/src/plugins/kdb/ldap/Makefile.in @@ -20,6 +20,7 @@ SHLIB_EXPDEPS = \ $(TOPLIBD)/libkrb5$(SHLIBEXT) \ $(TOPLIBD)/lib$(SUPPORT_LIBNAME)$(SHLIBEXT) SHLIB_EXPLIBS= -lkdb_ldap $(GSSRPC_LIBS) -lkrb5 -lcom_err -lk5crypto -lkrb5support $(LIBS) +SHLIB_DIRS=-L$(TOPLIBD) -Wl,-rpath,$(KRB5_LIBDIR)/krb5 SRCS= $(srcdir)/ldap_exp.c diff --git a/src/plugins/kdb/ldap/ldap_util/Makefile.in b/src/plugins/kdb/ldap/ldap_util/Makefile.in index 8669c2436..2d92a26be 100644 --- a/src/plugins/kdb/ldap/ldap_util/Makefile.in +++ b/src/plugins/kdb/ldap/ldap_util/Makefile.in @@ -2,6 +2,7 @@ mydir=plugins$(S)kdb$(S)ldap$(S)ldap_util BUILDTOP=$(REL)..$(S)..$(S)..$(S).. DEFINES = -DKDB4_DISABLE LOCALINCLUDES = -I. -I$(srcdir)/../libkdb_ldap -I$(top_srcdir)/lib/kdb +PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH) -Wl,-rpath,$(KRB5_LIBDIR)/krb5 #KDB_DEP_LIB=$(DL_LIB) $(THREAD_LINKOPTS) KDB_DEP_LIB=$(DL_LIB) -lkdb_ldap $(THREAD_LINKOPTS) -- cgit v1.2.3 From f7a1474334f4afb9b4d53dd79e0363982b158a42 Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Fri, 29 Mar 2013 17:18:40 -0400 Subject: gssapi: never unload mechanisms It turns out that many GSSAPI mechanisms link to the main gss-api library creating a circular reference. Depending on how the linker breaks the cycle at process exit time, the linker may unload the GSS library after unloading the mechanisms. The explicit dlclose from the GSS library tends to cause a libdl assertion failure at that point. So, never unload plugins. They are refcounted, so dlopen handles will not leak, although obviously the memory from the plugin is never reclaimed. ticket: 7135 Patch-Category: debian-local --- src/lib/gssapi/mechglue/g_initialize.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/gssapi/mechglue/g_initialize.c b/src/lib/gssapi/mechglue/g_initialize.c index 9197666e1..890bd2c03 100644 --- a/src/lib/gssapi/mechglue/g_initialize.c +++ b/src/lib/gssapi/mechglue/g_initialize.c @@ -562,8 +562,6 @@ releaseMechInfo(gss_mech_info *pCf) generic_gss_release_oid(&minor_status, &cf->mech_type); if (cf->freeMech) zapfree(cf->mech, sizeof(*cf->mech)); - if (cf->dl_handle != NULL) - krb5int_close_plugin(cf->dl_handle); if (cf->int_mech_type != GSS_C_NO_OID) generic_gss_release_oid(&minor_status, &cf->int_mech_type); -- cgit v1.2.3 From 3148ff86b7489eea936c740953245a8afbd4cfd3 Mon Sep 17 00:00:00 2001 From: Ben Kaduk Date: Fri, 29 Mar 2013 20:53:37 -0400 Subject: Add substpdf target Akin to substhtml, so that we can build PDF documents without overwriting the upstream-provided versions and causing debian/rules clean to not return to the original state. Patch-Category: debian-local --- src/doc/Makefile.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in index 1fb5fea92..043de76fa 100644 --- a/src/doc/Makefile.in +++ b/src/doc/Makefile.in @@ -87,6 +87,21 @@ pdf: $(PDFDIR) rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla \ ) +substpdf: rst_composite + $(SPHINX_BUILD) -t pathsubs -b latex -q rst_composite pdf_subst + mv pdf_subst/Makefile pdf_subst/GMakefile + (cd pdf_subst && \ + for i in $(PDFDOCS); do \ + texfile=`echo $${i}.tex` && \ + idxfile=`echo $${i}.idx` && \ + pdflatex $(LATEXOPTS) $$texfile && \ + pdflatex $(LATEXOPTS) $$texfile && \ + makeindex -s python.ist $$idxfile || true; \ + pdflatex $(LATEXOPTS) $$texfile && \ + pdflatex $(LATEXOPTS) $$texfile; done && \ + rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla \ + ) + # Use doxygen to generate API documentation, translate it into RST # format, and then create a composite of $(docsrc)'s RST and the # generated files in rst_composite. Used by the html and substhtml targets. -- cgit v1.2.3 From d45e25f793816720a457c5675f88e066891f1843 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 27 Aug 2014 16:40:29 -0400 Subject: Fix pkg-config library/include paths 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 --- src/build-tools/gssrpc.pc.in | 4 ++-- src/build-tools/kadm-client.pc.in | 4 ++-- src/build-tools/kadm-server.pc.in | 4 ++-- src/build-tools/kdb.pc.in | 4 ++-- src/build-tools/mit-krb5-gssapi.pc.in | 4 ++-- src/build-tools/mit-krb5.pc.in | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/build-tools/gssrpc.pc.in b/src/build-tools/gssrpc.pc.in index ca909217e..e08c2e840 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 c8d1cd126..de56a7521 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 cd2f86c64..a73ff86cf 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..356501d38 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 7b91b19f1..b2b243630 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 030881512..058e75f24 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@ -- cgit v1.2.3 From 25995151a62e62ba1d3c6a73c9c1cc328e7daa6e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 3 Sep 2014 22:41:55 -0400 Subject: 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). (cherry picked from commit d8520c1d1c218e3c766009abc728b207c0421232) Author: Jelmer Vernooij Bug-Debian: http://bugs.debian.org/751760 Patch-Category: debian-local --- src/build-tools/gssrpc.pc.in | 2 +- src/build-tools/kadm-client.pc.in | 2 +- src/build-tools/kadm-server.pc.in | 2 +- src/build-tools/kdb.pc.in | 2 +- src/build-tools/krb5-config.in | 2 +- src/build-tools/mit-krb5-gssapi.pc.in | 2 +- src/build-tools/mit-krb5.pc.in | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/build-tools/gssrpc.pc.in b/src/build-tools/gssrpc.pc.in index e08c2e840..fb4f489f8 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 de56a7521..47541ac2a 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 a73ff86cf..5ce4b733c 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 356501d38..d39eeef88 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 ac2f5827d..010457e15 100755 --- a/src/build-tools/krb5-config.in +++ b/src/build-tools/krb5-config.in @@ -208,7 +208,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 b2b243630..f91922269 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 058e75f24..455427a42 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 -- cgit v1.2.3