All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thorsten Kukuk <kukuk@suse.de>
To: Steve Dickson <SteveD@redhat.com>,
	libtirpc-devel@lists.sourceforge.net, linux-nfs@vger.kernel.org
Subject: Re: [PATCH V2] Fix Build w/gssapi disabled
Date: Fri, 8 May 2015 10:17:17 +0200	[thread overview]
Message-ID: <20150508081717.GA16376@suse.de> (raw)
In-Reply-To: <20150508020322.GF30924@vapier>

On Thu, May 07, Mike Frysinger wrote:

> it is dangerous to export raw HAVE_xxx defines -- it can break packages that
> use autotools themselves.  they need an appropriate prefix like RPC_xxx or
> TIRPC_xxx.


For this and to solve the different size of the struct, I created
a new patch on top of current git. I only had to rearange the structs
a little bit, since they don't use any kerberos specific variables,
only standard C:

diff --git a/configure.ac b/configure.ac
index 290c635..5d11a69 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@ AC_ARG_ENABLE(gssapi,
 AM_CONDITIONAL(GSS, test "x$enable_gssapi" = xyes)
 
 if test "x$enable_gssapi" = xyes; then
-	AC_DEFINE([HAVE_GSSAPI], [1], [Define to 1 if GSSAPI is enabled])
+	AC_DEFINE([TIRPC_GSSAPI], [1], [Define to 1 if GSSAPI is enabled])
 	GSSAPI_CFLAGS=`krb5-config --cflags gssapi`
 	GSSAPI_LIBS=`krb5-config --libs gssapi`
 	AC_SUBST([GSSAPI_CFLAGS])
@@ -22,7 +22,7 @@ AC_ARG_ENABLE(authdes,
       [],[enable_authdes=no])
 AM_CONDITIONAL(AUTHDES, test "x$enable_authdes" = xyes)
 if test "x$enable_authdes" = xyes; then
-	AC_DEFINE([HAVE_AUTHDES], [1],
+	AC_DEFINE([TIRPC_AUTHDES], [1],
 		  [Define to 1 if DES authentication is enabled])
 	CFLAG_AUTHDES="-DHAVE_AUTHDES=1"
 	AC_SUBST([CFLAG_AUTHDES])
diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
index f7fa16c..6cf512a 100644
--- a/tirpc/rpc/auth.h
+++ b/tirpc/rpc/auth.h
@@ -164,7 +164,7 @@ union des_block {
 };
 typedef union des_block des_block;
 
-#ifdef HAVE_AUTHDES
+#ifdef TIRPC_AUTHDES
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -172,7 +172,7 @@ extern bool_t xdr_des_block(XDR *, des_block *);
 #ifdef __cplusplus
 }
 #endif
-#endif /* HAVE_AUTHDES */
+#endif /* TIRPC_AUTHDES */
 
 /*
  * Authentication info.  Opaque to client.
@@ -320,7 +320,7 @@ extern AUTH *authnone_create(void);		/* takes no parameters */
 }
 #endif
 
-#ifdef HAVE_AUTHDES
+#ifdef TIRPC_AUTHDES
 /*
  * DES style authentication
  * AUTH *authsecdes_create(servername, window, timehost, ckey)
@@ -338,7 +338,7 @@ extern AUTH *authdes_seccreate (const char *, const u_int, const  char *,
 #ifdef __cplusplus
 }
 #endif
-#endif /* HAVE_AUTHDES */
+#endif /* TIRPC_AUTHDES */
 
 #ifdef __cplusplus
 extern "C" {
@@ -362,9 +362,9 @@ extern int host2netname(char *, const char *, const char *);
 extern int user2netname(char *, const uid_t, const char *);
 extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
 extern int netname2host(char *, char *, const int);
-#ifdef HAVE_AUTHDES
+#ifdef TIRPC_AUTHDES
 extern void passwd2des ( char *, char * );
-#endif /* HAVE_AUTHDES */
+#endif /* TIRPC_AUTHDES */
 #ifdef __cplusplus
 }
 #endif
diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h
index 8f37454..942959a 100644
--- a/tirpc/rpc/rpc.h
+++ b/tirpc/rpc/rpc.h
@@ -54,15 +54,15 @@
 #include <rpc/rpc_msg.h>	/* protocol for rpc messages */
 #include <rpc/auth_unix.h>	/* protocol for unix style cred */
 
-#ifdef HAVE_AUTHDES
+#ifdef TIRPC_AUTHDES
 /*
  *  Uncomment-out the next line if you are building the rpc library with
  *  DES Authentication (see the README file in the secure_rpc/ directory).
  */
 #include <rpc/auth_des.h>	/* protocol for des style cred */
-#endif /* HAVE_AUTHDES */
+#endif /* TIRPC_AUTHDES */
 
-#ifdef HAVE_GSSAPI
+#ifdef TIRPC_GSSAPI
 #include <rpc/auth_gss.h>   /* RPCSEC_GSS */
 #endif
 
diff --git a/tirpc/rpc/rpcsec_gss.h b/tirpc/rpc/rpcsec_gss.h
index 217fc0d..767988c 100644
--- a/tirpc/rpc/rpcsec_gss.h
+++ b/tirpc/rpc/rpcsec_gss.h
@@ -50,6 +50,19 @@ typedef struct {
 } *rpc_gss_principal_t;
 
 typedef struct {
+	u_int			version;
+	char			*mechanism;
+	char			*qop;
+	rpc_gss_principal_t	client_principal;
+	char			*svc_principal;
+	rpc_gss_service_t	service;
+} rpc_gss_rawcred_t;
+
+#ifdef TIRPC_GSSAPI
+
+#include <gssapi/gssapi.h>
+
+typedef struct {
 	int			req_flags;
 	int			time_req;
 	gss_cred_id_t		my_cred;
@@ -68,15 +81,6 @@ typedef struct {
 } rpc_gss_options_ret_t;
 
 typedef struct {
-	u_int			version;
-	char			*mechanism;
-	char			*qop;
-	rpc_gss_principal_t	client_principal;
-	char			*svc_principal;
-	rpc_gss_service_t	service;
-} rpc_gss_rawcred_t;
-
-typedef struct {
 	uid_t			uid;
 	gid_t			gid;
 	short			gidlen;
@@ -129,4 +133,6 @@ bool_t	rpc_gss_mech_to_oid(char *, rpc_gss_OID *);
 bool_t	rpc_gss_qop_to_num(char *, char *, u_int *);
 __END_DECLS
 
+#endif /* TIRPC_GSSAPI */
+
 #endif	/* !_TIRPC_RPCSEC_GSS_H */
diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
index dbd8cc9..f91bf01 100644
--- a/tirpc/rpc/svc_auth.h
+++ b/tirpc/rpc/svc_auth.h
@@ -42,9 +42,6 @@
 #define _RPC_SVC_AUTH_H
 
 #include <tirpc-features.h>
-
-#ifdef HAVE_GSSAPI
-
 #include <rpc/rpcsec_gss.h>
 
 typedef struct {
@@ -55,8 +52,6 @@ typedef struct {
 	u_int			seq_num;
 } svc_rpc_gss_parms_t;
 
-#endif /* HAVE_GSSAPI */
-
 /*
  * Interface to server-side authentication flavors.
  */
@@ -69,10 +64,8 @@ typedef struct SVCAUTH {
 		int     (*svc_ah_destroy)(struct SVCAUTH *);
 		} *svc_ah_ops;
 	caddr_t svc_ah_private;
-#ifdef HAVE_GSSAPI
 	svc_rpc_gss_parms_t svc_gss_params;
 	rpc_gss_rawcred_t raw_cred;
-#endif
 } SVCAUTH;
 
 #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \
diff --git a/tirpc/tirpc-features.h.in b/tirpc/tirpc-features.h.in
index 72e18bc..39fa64e 100644
--- a/tirpc/tirpc-features.h.in
+++ b/tirpc/tirpc-features.h.in
@@ -2,9 +2,9 @@
 #define _TIRPC_FEATURES_H
 
 /* Define to 1 if DES authentication is enabled */
-#undef HAVE_AUTHDES
+#undef TIRPC_AUTHDES
 
 /* Define to 1 if GSSAPI is enabled */
-#undef HAVE_GSSAPI
+#undef TIRPC_GSSAPI
 
 #endif /* _TIRPC_FEATURES_H */




-- 
Thorsten Kukuk, Senior Architect SLES & Common Code Base
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nuernberg, Germany
GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu, Graham Norton, HRB 21284 (AG Nürnberg)

  reply	other threads:[~2015-05-08  8:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-07  7:19 [PATCH libtirpc] fix build w/gssapi disabled Mike Frysinger
2015-05-07  7:40 ` [Libtirpc-devel] " Thorsten Kukuk
2015-05-07  8:23   ` Mike Frysinger
2015-05-07  8:51     ` Thorsten Kukuk
2015-05-07 11:52 ` Thorsten Kukuk
2015-05-07 15:12   ` Mike Frysinger
2015-05-07 15:24     ` Steve Dickson
2015-05-07 15:38   ` Steve Dickson
2015-05-07 16:33     ` Thorsten Kukuk
2015-05-07 16:55       ` Steve Dickson
2015-05-07 18:12         ` Thorsten Kukuk
2015-05-07 20:04           ` Steve Dickson
2015-05-07 20:12             ` Steve Dickson
2015-05-07 20:24               ` [PATCH V2] Fix Build " Steve Dickson
2015-05-08  2:03                 ` Mike Frysinger
2015-05-08  8:17                   ` Thorsten Kukuk [this message]
2015-05-08 21:27                     ` Steve Dickson
2015-05-08 22:34                       ` Thorsten Kukuk
2015-05-08  3:33                 ` Steve Dickson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150508081717.GA16376@suse.de \
    --to=kukuk@suse.de \
    --cc=SteveD@redhat.com \
    --cc=libtirpc-devel@lists.sourceforge.net \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.