diff mbox

[libtirpc] fix build w/gssapi disabled

Message ID 1430983149-22199-1-git-send-email-vapier@gentoo.org (mailing list archive)
State New, archived
Headers show

Commit Message

Mike Frysinger May 7, 2015, 7:19 a.m. UTC
Starting with commit d5259e751111cb108c784b044296185f543fc0be (Add header
definitions for rpc_gss_*() APIs), the gss headers were pulled in all the
time leading to build failures like so:
  CC       libtirpc_la-bindresvport.lo
In file included from ../tirpc/rpc/svc_auth.h:44:0,
                 from ../tirpc/rpc/rpc.h:68,
                 from bindresvport.c:46:
../tirpc/rpc/rpcsec_gss.h:38:27: fatal error: gssapi/gssapi.h: No such file or directory

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 tirpc/rpc/svc_auth.h | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Thorsten Kukuk May 7, 2015, 7:40 a.m. UTC | #1
Hi,

On Thu, May 07, Mike Frysinger wrote:

> Starting with commit d5259e751111cb108c784b044296185f543fc0be (Add header
> definitions for rpc_gss_*() APIs), the gss headers were pulled in all the
> time leading to build failures like so:
>   CC       libtirpc_la-bindresvport.lo
> In file included from ../tirpc/rpc/svc_auth.h:44:0,
>                  from ../tirpc/rpc/rpc.h:68,
>                  from bindresvport.c:46:
> ../tirpc/rpc/rpcsec_gss.h:38:27: fatal error: gssapi/gssapi.h: No such file or directory

This will not work since this headers will be installed in
/usr/include and other appliations compiled against libtirpc
will never define HAVE_RPCSEC_GSS, thus never see this interfaces.

We need something like the glibc features.h file, which will always
be included and defines, how tirpc was configured.

  Thorsten

> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
> ---
>  tirpc/rpc/svc_auth.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
> index 44b38bf..998b13a 100644
> --- a/tirpc/rpc/svc_auth.h
> +++ b/tirpc/rpc/svc_auth.h
> @@ -41,6 +41,8 @@
>  #ifndef _RPC_SVC_AUTH_H
>  #define _RPC_SVC_AUTH_H
>  
> +#ifdef HAVE_RPCSEC_GSS
> +
>  #include <rpc/rpcsec_gss.h>
>  
>  typedef struct {
> @@ -51,6 +53,8 @@ typedef struct {
>  	u_int			seq_num;
>  } svc_rpc_gss_parms_t;
>  
> +#endif
> +
>  /*
>   * Interface to server-side authentication flavors.
>   */
> @@ -63,8 +67,10 @@ typedef struct SVCAUTH {
>  		int     (*svc_ah_destroy)(struct SVCAUTH *);
>  		} *svc_ah_ops;
>  	caddr_t svc_ah_private;
> +#ifdef HAVE_RPCSEC_GSS
>  	svc_rpc_gss_parms_t svc_gss_params;
>  	rpc_gss_rawcred_t raw_cred;
> +#endif
>  } SVCAUTH;
>  
>  #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \
> -- 
> 2.4.0
> 
> 
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud 
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Libtirpc-devel mailing list
> Libtirpc-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/libtirpc-devel
Mike Frysinger May 7, 2015, 8:23 a.m. UTC | #2
On 07 May 2015 09:40, Thorsten Kukuk wrote:
> On Thu, May 07, Mike Frysinger wrote:
> > Starting with commit d5259e751111cb108c784b044296185f543fc0be (Add header
> > definitions for rpc_gss_*() APIs), the gss headers were pulled in all the
> > time leading to build failures like so:
> >   CC       libtirpc_la-bindresvport.lo
> > In file included from ../tirpc/rpc/svc_auth.h:44:0,
> >                  from ../tirpc/rpc/rpc.h:68,
> >                  from bindresvport.c:46:
> > ../tirpc/rpc/rpcsec_gss.h:38:27: fatal error: gssapi/gssapi.h: No such file or directory
> 
> This will not work since this headers will be installed in
> /usr/include and other appliations compiled against libtirpc
> will never define HAVE_RPCSEC_GSS, thus never see this interfaces.
> 
> We need something like the glibc features.h file, which will always
> be included and defines, how tirpc was configured.

this is what tirpc/rpc/rpc.h is already doing ...
-mike
Thorsten Kukuk May 7, 2015, 8:51 a.m. UTC | #3
On Thu, May 07, Mike Frysinger wrote:

> On 07 May 2015 09:40, Thorsten Kukuk wrote:
> > On Thu, May 07, Mike Frysinger wrote:
> > > Starting with commit d5259e751111cb108c784b044296185f543fc0be (Add header
> > > definitions for rpc_gss_*() APIs), the gss headers were pulled in all the
> > > time leading to build failures like so:
> > >   CC       libtirpc_la-bindresvport.lo
> > > In file included from ../tirpc/rpc/svc_auth.h:44:0,
> > >                  from ../tirpc/rpc/rpc.h:68,
> > >                  from bindresvport.c:46:
> > > ../tirpc/rpc/rpcsec_gss.h:38:27: fatal error: gssapi/gssapi.h: No such file or directory
> > 
> > This will not work since this headers will be installed in
> > /usr/include and other appliations compiled against libtirpc
> > will never define HAVE_RPCSEC_GSS, thus never see this interfaces.
> > 
> > We need something like the glibc features.h file, which will always
> > be included and defines, how tirpc was configured.
> 
> this is what tirpc/rpc/rpc.h is already doing ...

Ok, I haven't seen that this is already broken :(
Means we need a solution how to provide this defines asap.

  Thorsten
diff mbox

Patch

diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
index 44b38bf..998b13a 100644
--- a/tirpc/rpc/svc_auth.h
+++ b/tirpc/rpc/svc_auth.h
@@ -41,6 +41,8 @@ 
 #ifndef _RPC_SVC_AUTH_H
 #define _RPC_SVC_AUTH_H
 
+#ifdef HAVE_RPCSEC_GSS
+
 #include <rpc/rpcsec_gss.h>
 
 typedef struct {
@@ -51,6 +53,8 @@  typedef struct {
 	u_int			seq_num;
 } svc_rpc_gss_parms_t;
 
+#endif
+
 /*
  * Interface to server-side authentication flavors.
  */
@@ -63,8 +67,10 @@  typedef struct SVCAUTH {
 		int     (*svc_ah_destroy)(struct SVCAUTH *);
 		} *svc_ah_ops;
 	caddr_t svc_ah_private;
+#ifdef HAVE_RPCSEC_GSS
 	svc_rpc_gss_parms_t svc_gss_params;
 	rpc_gss_rawcred_t raw_cred;
+#endif
 } SVCAUTH;
 
 #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \