[libtirpc] Removed libgssglue dependency (patch from master).

Steve Dickson steved at fedoraproject.org
Thu Apr 11 16:58:50 UTC 2013


commit cc9e125101fdce6c37a3269f1f54bdaa5798e120
Author: Günther Deschner <gdeschner at redhat.com>
Date:   Thu Apr 11 18:02:16 2013 +0200

    Removed libgssglue dependency (patch from master).

 libtirpc.spec          |   11 ++++-
 libtirpc_gssglue.patch |  113 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 122 insertions(+), 2 deletions(-)
---
diff --git a/libtirpc.spec b/libtirpc.spec
index 52c9d30..92a459f 100644
--- a/libtirpc.spec
+++ b/libtirpc.spec
@@ -2,7 +2,7 @@
 
 Name:		   libtirpc
 Version:		0.2.3
-Release:		0%{?dist}
+Release:		1%{?dist}
 Summary:		Transport Independent RPC Library
 Group:		  	System Environment/Libraries
 License:		SISSL and BSD
@@ -11,8 +11,10 @@ URL:  			http://nfsv4.bullopensource.org/
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Source0:	http://downloads.sourceforge.net/libtirpc/libtirpc-%{version}.tar.bz2
 
+Patch001: libtirpc_gssglue.patch
+
 BuildRequires:		automake, autoconf, libtool, pkgconfig
-BuildRequires:		libgssglue-devel
+BuildRequires:		krb5-devel
 
 %description
 This package contains SunLib's implementation of transport-independent
@@ -40,6 +42,8 @@ developing programs which use the tirpc library.
 %prep
 %setup -q
 
+%patch001 -p1
+
 # Remove .orig files
 find . -name "*.orig" | xargs rm -f
 
@@ -127,6 +131,9 @@ rm -rf %{buildroot}
 %{_mandir}/*/*
 
 %changelog
+* Thu Apr 11 2013 Guenther Deschner <gdeschner at redhat.com> 0.2.3-1
+- Removed libgssglue dependency (patch from master)
+
 * Wed Feb 13 2013 Steve Dickson <steved at redhat.com> 0.2.1-43
 - Updated to latest upstream release: 0.2.3
 
diff --git a/libtirpc_gssglue.patch b/libtirpc_gssglue.patch
new file mode 100644
index 0000000..d16f815
--- /dev/null
+++ b/libtirpc_gssglue.patch
@@ -0,0 +1,113 @@
+From 9151a39539145e1f62f8b30168d1cdeb19299dac Mon Sep 17 00:00:00 2001
+From: Simo Sorce <simo at redhat.com>
+Date: Tue, 26 Mar 2013 11:13:05 -0400
+Subject: [PATCH 1/2] Switch to use standard GSSAPI by default
+
+Make libgssglue configurable still but disabled by default.
+There is no reason to use libgssglue anymore, and modern gssapi
+supports all needed features for libtirpc and its dependencies.
+
+Signed-off-by: Steve Dickson <steved at redhat.com>
+---
+ configure.ac    | 23 +++++++++++++++++++----
+ src/Makefile.am |  4 ++--
+ 2 files changed, 21 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 40dce96..4a4adba 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -5,15 +5,30 @@ AC_CONFIG_SRCDIR([src/auth_des.c])
+ AC_CONFIG_MACRO_DIR([m4])
+ 
+ AC_ARG_ENABLE(gss,[  --enable-gss            Turn on gss api], [case "${enableval}" in
+-        yes) gss=true ; AC_CHECK_LIB([gssapi],[gss_init_sec_context]) ;;
++        yes) gss=true ;;
+         no)  gss=false ;;
+         *) AC_MSG_ERROR(bad value ${enableval} for --enable-gss) ;;
+       esac],[gss=false])
+ AM_CONDITIONAL(GSS, test x$gss = xtrue)
++AC_ARG_WITH(gssglue,
++		[  --with-gssglue        Use libgssglue],
++		 [case "${enableval}" in
++		  yes) gssglue=true ;;
++		  no)  gssglue=false ;;
++		  *) AC_MSG_ERROR(bad value ${enableval} for --with-gssglue) ;;
++		  esac],
++		[gssglue=false])
++AM_CONDITIONAL(USEGSSGLUE, test x$gssglue = xtrue)
+ if test x$gss = xtrue; then
+-	AC_DEFINE(HAVE_LIBGSSAPI, 1, [])
+-	PKG_CHECK_MODULES(GSSGLUE, libgssglue, [],
+-	AC_MSG_ERROR([Unable to locate information required to use libgssglue.]))
++	if test x$gssglue = xtrue; then
++		PKG_CHECK_MODULES(GSSAPI, libgssglue, [],
++		AC_MSG_ERROR([Unable to locate information required to use libgssglue.]))
++	else
++		GSSAPI_CFLAGS=`krb5-config --cflags gssapi`
++		GSSAPI_LIBS=`krb5-config --libs gssapi`
++		AC_SUBST([GSSAPI_CFLAGS])
++		AC_SUBST([GSSAPI_LIBS])
++	fi
+ fi
+ AC_ARG_ENABLE(ipv6,
+ 	[AC_HELP_STRING([--disable-ipv6], [Disable IPv6 support @<:@default=no@:>@])],
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 66350f5..2dd7768 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -58,8 +58,8 @@ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_ref
+ ## Secure-RPC
+ if GSS
+     libtirpc_la_SOURCES += auth_gss.c authgss_prot.c svc_auth_gss.c
+-    libtirpc_la_LDFLAGS += $(GSSGLUE_LIBS)
+-    libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSGLUE_CFLAGS)
++    libtirpc_la_LDFLAGS += $(GSSAPI_LIBS)
++    libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
+ endif
+ 
+ ## libtirpc_a_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
+-- 
+1.8.1.4
+
+
+From 4072a0bb8b619cab027bb3833785768681da4ed5 Mon Sep 17 00:00:00 2001
+From: Simo Sorce <simo at redhat.com>
+Date: Wed, 10 Apr 2013 11:38:14 -0400
+Subject: [PATCH 2/2] gss: Fix private data giveaway
+
+When the private data is given away the gss context also needs to go,
+because the caller may destroy it, such as when the context is exported
+into a lucid context to hand it to the kernel.
+
+Signed-off-by: Simo Sorce <simo at redhat.com>
+Signed-off-by: Steve Dickson <steved at redhat.com>
+---
+ src/auth_gss.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/auth_gss.c b/src/auth_gss.c
+index 81ae8ae..703bc3f 100644
+--- a/src/auth_gss.c
++++ b/src/auth_gss.c
+@@ -269,6 +269,7 @@ authgss_get_private_data(AUTH *auth, struct authgss_private_data *pd)
+ 	 * send an RPCSEC_GSS_DESTROY request which might inappropriately
+ 	 * destroy the context.
+ 	 */
++        gd->ctx = GSS_C_NO_CONTEXT;
+ 	gd->gc.gc_ctx.length = 0;
+ 	gd->gc.gc_ctx.value = NULL;
+ 
+@@ -284,7 +285,8 @@ authgss_free_private_data(struct authgss_private_data *pd)
+ 	if (!pd)
+ 		return (FALSE);
+ 
+-	pd->pd_ctx = NULL;
++	if (pd->pd_ctx != GSS_C_NO_CONTEXT)
++		gss_delete_sec_context(&min_stat, &pd->pd_ctx, NULL);
+ 	gss_release_buffer(&min_stat, &pd->pd_ctx_hndl);
+ 	memset(&pd->pd_ctx_hndl, 0, sizeof(pd->pd_ctx_hndl));
+ 	pd->pd_seq_win = 0;
+-- 
+1.8.1.4
+


More information about the scm-commits mailing list