aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch')
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch169
1 files changed, 169 insertions, 0 deletions
diff --git a/meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch b/meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch
new file mode 100644
index 0000000000..5b2aa3dfc6
--- /dev/null
+++ b/meta/recipes-extended/libtirpc/libtirpc/0001-configure.ac-Allow-for-disabling-NIS.patch
@@ -0,0 +1,169 @@
+From b562294d35d8a87af2bcdbc32c15cc973e50ed4e Mon Sep 17 00:00:00 2001
+From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+Date: Sun, 1 Mar 2015 12:18:05 +0100
+Subject: [PATCH 1/2] configure.ac: Allow for disabling NIS
+To: libtirpc-devel@lists.sourceforge.net
+Cc: Steve Dickson <SteveD@redhat.com>
+
+Yellow Pages might not be available, provide a config knob to disable
+it.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
+---
+ configure.ac | 16 ++++++++++++++++
+ src/Makefile.am | 6 +++++-
+ src/auth_des.c | 18 +++++++++++++++++-
+ src/auth_time.c | 3 ++-
+ 4 files changed, 40 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 10d17ea..d006ac9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -32,6 +32,22 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netine
+ AC_CHECK_LIB([pthread], [pthread_create])
+ AC_CHECK_LIB([nsl], [yp_get_default_domain])
+
++AC_ARG_ENABLE([nis],
++ [AC_HELP_STRING([--disable-nis],
++ [Disable Yellow Pages (NIS) support @<:@default=no@:>@])],
++ [],[enable_nis=yes])
++if test "x$enable_nis" != xno; then
++ AC_CHECK_HEADERS([rpcsvc/nis.h])
++ if test "x$ac_cv_header_rpcsvc_nis_h" != xyes; then
++ AC_WARN([NIS enabled but no rpcsvc/nis.h header found])
++ AC_WARN([Turning off NIS / YP support])
++ enable_nis="no"
++ fi
++fi
++if test "x$enable_nis" != xno; then
++ AC_DEFINE([YP], [1], [Define to 1 if NIS is available])
++fi
++AM_CONDITIONAL([YP], [test "x$enable_nis" != xno])
+
+ AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
+ AC_OUTPUT(libtirpc.pc)
+diff --git a/src/Makefile.am b/src/Makefile.am
+index de57c8f..7861057 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -51,7 +51,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln
+ rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
+ rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \
+ svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
+- auth_time.c auth_des.c authdes_prot.c debug.c
++ auth_des.c authdes_prot.c debug.c
+
+ ## XDR
+ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c
+@@ -63,6 +63,10 @@ if GSS
+ libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
+ endif
+
++if YP
++ libtirpc_la_SOURCES += auth_time.c
++endif
++
+ ## libtirpc_a_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
+ ## libtirpc_a_SOURCES += netname.c netnamer.c rpcdname.c \
+ ## libtirpc_a_SOURCES += rtime.c \
+diff --git a/src/auth_des.c b/src/auth_des.c
+index cff777c..be9d364 100644
+--- a/src/auth_des.c
++++ b/src/auth_des.c
+@@ -48,7 +48,9 @@
+ #include <rpc/xdr.h>
+ #include <sys/socket.h>
+ #undef NIS
++#ifdef HAVE_RPCSVC_NIS_H
+ #include <rpcsvc/nis.h>
++#endif
+
+ #if defined(LIBC_SCCS) && !defined(lint)
+ #endif
+@@ -68,8 +70,13 @@ extern bool_t xdr_authdes_cred( XDR *, struct authdes_cred *);
+ extern bool_t xdr_authdes_verf( XDR *, struct authdes_verf *);
+ extern int key_encryptsession_pk();
+
++#ifdef YP
+ extern bool_t __rpc_get_time_offset(struct timeval *, nis_server *, char *,
+ char **, char **);
++#else
++# define __rpc_get_time_offset(__a,__b,__c,__d, __e) (1) /* always valid */
++# define nis_server char
++#endif
+
+ /*
+ * DES authenticator operations vector
+@@ -103,7 +110,9 @@ struct ad_private {
+ u_char ad_pkey[1024]; /* Server's actual public key */
+ char *ad_netid; /* Timehost netid */
+ char *ad_uaddr; /* Timehost uaddr */
++#ifdef YP
+ nis_server *ad_nis_srvr; /* NIS+ server struct */
++#endif
+ };
+
+ AUTH *authdes_pk_seccreate(const char *, netobj *, u_int, const char *,
+@@ -148,7 +157,8 @@ authdes_seccreate(const char *servername, const u_int win,
+ */
+ AUTH *
+ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window,
+- const char *timehost, const des_block *ckey, nis_server *srvr)
++ const char *timehost, const des_block *ckey, nis_server *srvr
++ )
+ {
+ AUTH *auth;
+ struct ad_private *ad;
+@@ -171,7 +181,9 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window,
+ ad->ad_timehost = NULL;
+ ad->ad_netid = NULL;
+ ad->ad_uaddr = NULL;
++#ifdef YP
+ ad->ad_nis_srvr = NULL;
++#endif
+ ad->ad_timediff.tv_sec = 0;
+ ad->ad_timediff.tv_usec = 0;
+ memcpy(ad->ad_pkey, pkey->n_bytes, pkey->n_len);
+@@ -194,9 +206,11 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window,
+ }
+ memcpy(ad->ad_timehost, timehost, strlen(timehost) + 1);
+ ad->ad_dosync = TRUE;
++#ifdef YP
+ } else if (srvr != NULL) {
+ ad->ad_nis_srvr = srvr; /* transient */
+ ad->ad_dosync = TRUE;
++#endif
+ } else {
+ ad->ad_dosync = FALSE;
+ }
+@@ -224,7 +238,9 @@ authdes_pk_seccreate(const char *servername, netobj *pkey, u_int window,
+ if (!authdes_refresh(auth, NULL)) {
+ goto failed;
+ }
++#ifdef YP
+ ad->ad_nis_srvr = NULL; /* not needed any longer */
++#endif
+ auth_get(auth); /* Reference for caller */
+ return (auth);
+
+diff --git a/src/auth_time.c b/src/auth_time.c
+index 7cfbb7e..111de90 100644
+--- a/src/auth_time.c
++++ b/src/auth_time.c
+@@ -43,8 +43,9 @@
+ //#include <clnt_soc.h>
+ #include <sys/select.h>
+ #undef NIS
++#ifdef HAVE_RPCSVC_NIS_H
+ #include <rpcsvc/nis.h>
+-
++#endif
+
+ #ifdef TESTING
+ #define msg(x) printf("ERROR: %s\n", x)
+--
+2.1.4
+