From 167c8f44ce4c1f965d6b6bde057d2ab56b7d574171b7905d62d8c563ddc55ff1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20Rodr=C3=ADguez?= Date: Thu, 7 May 2015 19:52:27 +0000 Subject: [PATCH 1/5] Accepting request 305737 from home:kukuk:NIS - Fix HAVE_AUTHDES/HAVE_GSSAPI in public header files (001-tirpc-features.patch) - Update to official release 0.3.0. authdes was disabled by default upstream. - Following patches were merged: - 001-symbol-versions-v5.patch - 003-add-des_crypt.diff - Remove 002-old-automake.patch, not needed anymore - Update 001-symbol-versions-v4.patch with 001-symbol-versions-v5.patch: Add --disable-symvers option - Update 003-add-des_crypt.diff, fix unresolved des functions - Update to git - Add 003-add-des_crypt.diff to fix unresolved *_crypt() functions - Disable gssapi for SLE11, kerberos version is too old - rpc/rpc.h requires now indirectly gssapi.h from krb5-devel - Update to current git. - The following patches were accepted upstream: - 003-xdr_h-fix.patch - 005-disable-rpcent.patch - 006-no-libnsl.patch - patch1_7.diff - patch2_7.diff - patch3_7.diff OBS-URL: https://build.opensuse.org/request/show/305737 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=43 --- 000-bindresvport_blacklist.patch | 6 +- 001-symbol-versions-v2.patch | 113 ---------------------- 001-tirpc-features.patch | 99 +++++++++++++++++++ 002-clnt_broadcast_fix.patch | 34 ------- 003-rpc_broadcast_misformed_replies.patch | 71 -------------- 004-getpmaphandle.patch | 101 ------------------- 004-netconfig-prefer-IPv6.patch | 17 ++++ 005-no_IPv6_for_old_code.patch | 32 ++++++ libtirpc-0.2.5.tar.bz2 | 3 - libtirpc-0.3.0.tar.bz2 | 3 + libtirpc-clntunix_create.patch | 70 -------------- libtirpc-getbroadifs-crash.patch | 33 ------- libtirpc-misc-segfaults.patch | 68 ------------- libtirpc-taddr2uaddr-local.patch | 42 -------- libtirpc.changes | 107 ++++++++++++++++++++ libtirpc.spec | 40 ++++---- patch6_7.diff | 79 +++++++++++++++ 17 files changed, 360 insertions(+), 558 deletions(-) delete mode 100644 001-symbol-versions-v2.patch create mode 100644 001-tirpc-features.patch delete mode 100644 002-clnt_broadcast_fix.patch delete mode 100644 003-rpc_broadcast_misformed_replies.patch delete mode 100644 004-getpmaphandle.patch create mode 100644 004-netconfig-prefer-IPv6.patch create mode 100644 005-no_IPv6_for_old_code.patch delete mode 100644 libtirpc-0.2.5.tar.bz2 create mode 100644 libtirpc-0.3.0.tar.bz2 delete mode 100644 libtirpc-clntunix_create.patch delete mode 100644 libtirpc-getbroadifs-crash.patch delete mode 100644 libtirpc-misc-segfaults.patch delete mode 100644 libtirpc-taddr2uaddr-local.patch create mode 100644 patch6_7.diff diff --git a/000-bindresvport_blacklist.patch b/000-bindresvport_blacklist.patch index c5fd1d0..4271ee3 100644 --- a/000-bindresvport_blacklist.patch +++ b/000-bindresvport_blacklist.patch @@ -3,10 +3,10 @@ Subject: make libtirpc honor /etc/bindresvport.blacklist Signed-off-by: Olaf Kirch ---- src/bindresvport.c -+++ src/bindresvport.c 2014/12/15 13:29:13 +--- src/bindresvport.c 2015-04-23 21:22:56.986448281 +0200 ++++ src/bindresvport.c 2015-04-23 21:48:06.501561665 +0200 @@ -39,7 +39,10 @@ - + #include #include +#include diff --git a/001-symbol-versions-v2.patch b/001-symbol-versions-v2.patch deleted file mode 100644 index 5d64aed..0000000 --- a/001-symbol-versions-v2.patch +++ /dev/null @@ -1,113 +0,0 @@ ---- src/libtirpc.map -+++ src/libtirpc.map 2014/12/05 14:33:09 -@@ -0,0 +1,99 @@ -+TIRPC_1.0 { -+ global: -+ # __* -+ __rpc_createerr; __rpc_dtbsize; __rpc_endconf; __rpc_fd2sockinfo; -+ __rpc_fixup_addr; __rpc_get_a_size; __rpc_get_local_uid; -+ __rpc_get_t_size; __rpc_getconf; __rpc_getconfip; __rpc_nconf2fd; -+ __rpc_nconf2fd_flags; __rpc_nconf2sockinfo; __rpc_rawcombuf; -+ __rpc_seman2socktype; __rpc_setconf; __rpc_sockinfo2netid; -+ __rpc_sockisbound; __rpc_socktype2seman; __rpc_taddr2uaddr_af; -+ __rpc_uaddr2taddr_af; __rpcgettp; -+ # _* -+ -+ _authenticate; _null_auth; _rpc_dtablesize; _seterr_reply; _svcauth_none; -+ _svcauth_short; _svcauth_unix; -+ -+ # a* -+ authdes_create; authdes_seccreate; authgss_create; authgss_create_default; -+ authgss_free_private_data; authgss_get_private_data; authgss_service; -+ authnone_create; authunix_create; authunix_create_default; -+ -+ # b* -+ bindresvport; bindresvport_sa; -+ -+ # c* -+ callrpc; clnt_broadcast; clnt_create; clnt_create_timed; -+ clnt_create_vers; clnt_create_vers_timed; clnt_dg_create; -+ clnt_pcreateerror; clnt_perrno; clnt_perror; clnt_raw_create; -+ clnt_spcreateerror; clnt_sperrno; clnt_sperror; clnt_tli_create; -+ clnt_tp_create; clnt_tp_create_timed; clnt_vc_create; clntraw_create; -+ clnttcp_create; clntudp_bufcreate; clntudp_create; clntunix_create; -+ -+ # e* -+ endnetconfig; endnetpath; endrpcent; -+ -+ # f* -+ freenetconfigent; -+ -+ # g* -+ get_myaddress; getnetconfig; getnetconfigent; getnetpath; getrpcent; -+ getrpcport; gss_log_debug; gss_log_hexdump; gss_log_status; -+ -+ # n* -+ nc_perror; nc_sperror; -+ -+ # p* -+ pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; pmap_unset; -+ -+ # r* -+ registerrpc; rpc_broadcast; rpc_broadcast_exp; rpc_call; rpc_control; -+ rpc_createerr; rpc_nullproc; rpc_reg; rpcb_getaddr; rpcb_getmaps; -+ rpcb_gettime; rpcb_rmtcall; rpcb_set; rpcb_taddr2uaddr; rpcb_uaddr2taddr; -+ rpcb_unset; -+ -+ # s* -+ setnetconfig; setnetpath; setrpcent; -+ svc_auth_reg; svc_create; svc_dg_create; svc_dg_enablecache; -+ svc_exit; svc_fd_create; svc_fdset; svc_getreq; svc_getreq_common; -+ svc_getreq_poll; svc_getreqset; svc_maxfd; svc_raw_create; svc_reg; -+ svc_register; svc_run; svc_sendreply; svc_tli_create; svc_tp_create; -+ svc_unreg; svc_unregister; svc_vc_create; svcerr_auth; svcerr_decode; -+ svcerr_noproc; svcerr_noprog; svcerr_progvers; svcerr_systemerr; -+ svcerr_weakauth; svcfd_create; svcraw_create; svctcp_create; -+ svcudp_bufcreate; svcudp_create; svcunix_create; svcunixfd_create; -+ -+ # t* -+ taddr2uaddr; -+ -+ # u* -+ uaddr2taddr; -+ -+ # x* -+ xdr_accepted_reply; xdr_array; xdr_authdes_cred; xdr_authdes_verf; -+ xdr_authunix_parms; xdr_bool; xdr_bytes; xdr_callhdr; xdr_callmsg; -+ xdr_char; xdr_des_block; xdr_double; xdr_enum; xdr_float; xdr_free; -+ xdr_hyper; xdr_int; xdr_int16_t; xdr_int32_t; xdr_int64_t; xdr_long; -+ xdr_longlong_t; xdr_netbuf; xdr_netobj; xdr_opaque; xdr_opaque_auth; -+ xdr_pmap; xdr_pmaplist; xdr_pmaplist_ptr; xdr_pointer; xdr_reference; -+ xdr_rejected_reply; xdr_replymsg; xdr_rmtcall_args; xdr_rmtcallres; -+ xdr_rpc_gss_cred; xdr_rpc_gss_data; xdr_rpc_gss_init_args; -+ xdr_rpc_gss_init_res; xdr_rpcb; xdr_rpcb_entry; xdr_rpcb_entry_list_ptr; -+ xdr_rpcb_rmtcallargs; xdr_rpcb_rmtcallres; xdr_rpcb_stat; -+ xdr_rpcb_stat_byvers; xdr_rpcblist; xdr_rpcblist_ptr; xdr_rpcbs_addrlist; -+ xdr_rpcbs_addrlist_ptr; xdr_rpcbs_proc; xdr_rpcbs_rmtcalllist; -+ xdr_rpcbs_rmtcalllist_ptr; xdr_short; xdr_string; xdr_u_char; xdr_u_hyper; -+ xdr_u_int; xdr_u_int16_t; xdr_u_int32_t; xdr_u_int64_t; xdr_u_long; -+ xdr_u_longlong_t; xdr_u_short; xdr_union; xdr_vector; xdr_void; -+ xdr_wrapstring; xdrmem_create; xdrrec_create; xdrrec_endofrecord; -+ xdrrec_eof; xdrrec_skiprecord; xdrstdio_create; xprt_register; -+ xprt_unregister; -+ -+ local: -+ *; -+}; -+TIRPC_PRIVATE { -+ global: -+ __libc_clntudp_bufcreate; -+ # private, but used by rpcbind: -+ __svc_clean_idle; svc_auth_none; -+}; ---- src/Makefile.am -+++ src/Makefile.am 2014/12/05 14:38:11 -@@ -41,7 +41,7 @@ - # release number of your package. This is an abuse that only fosters - # misunderstanding of the purpose of library versions." - # --libtirpc_la_LDFLAGS = -lpthread -version-info 1:10:0 -+libtirpc_la_LDFLAGS = -lpthread -version-info 1:10:0 -Wl,--version-script=$(srcdir)/libtirpc.map - - libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c clnt_bcast.c \ - clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \ diff --git a/001-tirpc-features.patch b/001-tirpc-features.patch new file mode 100644 index 0000000..ce636c5 --- /dev/null +++ b/001-tirpc-features.patch @@ -0,0 +1,99 @@ +diff --git a/Makefile.am b/Makefile.am +index 2bf725c..2bce3b0 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -4,9 +4,11 @@ ACLOCAL_AMFLAGS = -I m4 + noinst_HEADERS = tirpc/reentrant.h \ + tirpc/getpeereid.h \ + tirpc/libc_private.h \ +- tirpc/un-namespace.h ++ tirpc/un-namespace.h \ ++ tirpc/tirpc-features.h.in + + nobase_include_HEADERS = tirpc/netconfig.h \ ++ tirpc/tirpc-features.h \ + tirpc/rpcsvc/crypt.x \ + tirpc/rpcsvc/crypt.h \ + tirpc/rpc/xdr.h \ +diff --git a/configure.ac b/configure.ac +index 711b054..290c635 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -10,6 +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]) + GSSAPI_CFLAGS=`krb5-config --cflags gssapi` + GSSAPI_LIBS=`krb5-config --libs gssapi` + AC_SUBST([GSSAPI_CFLAGS]) +@@ -41,7 +42,7 @@ AC_ARG_ENABLE(symvers, + AM_CONDITIONAL(SYMVERS, test "x$enable_symvers" = xyes) + + AC_PROG_CC +-AC_CONFIG_HEADERS([config.h]) ++AC_CONFIG_HEADERS([config.h tirpc/tirpc-features.h]) + AC_PROG_LIBTOOL + AC_HEADER_DIRENT + AC_PREFIX_DEFAULT(/usr) +diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h +index 1dbb391..8f37454 100644 +--- a/tirpc/rpc/rpc.h ++++ b/tirpc/rpc/rpc.h +@@ -35,6 +35,8 @@ + #ifndef _TIRPC_RPC_H + #define _TIRPC_RPC_H + ++#include ++ + #include /* some typedefs */ + #include + #include +@@ -60,7 +62,7 @@ + #include /* protocol for des style cred */ + #endif /* HAVE_AUTHDES */ + +-#ifdef HAVE_RPCSEC_GSS ++#ifdef HAVE_GSSAPI + #include /* RPCSEC_GSS */ + #endif + +diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h +index 44b38bf..b308d2b 100644 +--- a/tirpc/rpc/svc_auth.h ++++ b/tirpc/rpc/svc_auth.h +@@ -41,6 +41,10 @@ + #ifndef _RPC_SVC_AUTH_H + #define _RPC_SVC_AUTH_H + ++#include ++ ++#ifdef HAVE_GSSAPI ++ + #include + + typedef struct { +@@ -51,6 +55,8 @@ typedef struct { + u_int seq_num; + } svc_rpc_gss_parms_t; + ++#endif /* HAVE_GSSAPI */ ++ + /* + * Interface to server-side authentication flavors. + */ +diff --git a/tirpc/tirpc-features.h.in b/tirpc/tirpc-features.h.in +index e69de29..72e18bc 100644 +--- a/tirpc/tirpc-features.h.in ++++ b/tirpc/tirpc-features.h.in +@@ -0,0 +1,10 @@ ++#ifndef _TIRPC_FEATURES_H ++#define _TIRPC_FEATURES_H ++ ++/* Define to 1 if DES authentication is enabled */ ++#undef HAVE_AUTHDES ++ ++/* Define to 1 if GSSAPI is enabled */ ++#undef HAVE_GSSAPI ++ ++#endif /* _TIRPC_FEATURES_H */ diff --git a/002-clnt_broadcast_fix.patch b/002-clnt_broadcast_fix.patch deleted file mode 100644 index fff1ec4..0000000 --- a/002-clnt_broadcast_fix.patch +++ /dev/null @@ -1,34 +0,0 @@ -commit 8d096a0572b955835f7f64f267a29047091e0a8e -Author: Olaf Kirch -Date: Wed Nov 12 16:10:53 2008 +0100 - - Fix a bug in clnt broadcast - - Before calling the replyproc function on a broadcast reply, - we convert the server-provided address using uaddr2taddr. - This may fail (eg if the server provided a garbage address), - and return NULL. In this case, we should not call the replyproc - function - because the caller expects the address netbuf to - be a valid pointer, rather than NULL. - - Signed-off-by: Olaf Kirch - -diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c -index aa2b8f2..899eb76 100644 ---- a/src/clnt_bcast.c -+++ b/src/clnt_bcast.c -@@ -588,9 +588,11 @@ - LIBTIRPC_DEBUG(3, ("rpc_broadcast_exp: uaddr %s\n", uaddrp)); - np = uaddr2taddr( - fdlist[i].nconf, uaddrp); -- done = (*eachresult)(resultsp, -- np, fdlist[i].nconf); -- free(np); -+ if (np != NULL) { -+ done = (*eachresult)(resultsp, -+ np, fdlist[i].nconf); -+ free(np); -+ } - #ifdef PORTMAP - } - #endif /* PORTMAP */ diff --git a/003-rpc_broadcast_misformed_replies.patch b/003-rpc_broadcast_misformed_replies.patch deleted file mode 100644 index 822fb67..0000000 --- a/003-rpc_broadcast_misformed_replies.patch +++ /dev/null @@ -1,71 +0,0 @@ -Author: Olaf Kirch -Date: Thu Nov 13 10:24:39 2008 +0100 - - rpc_broadcast: handle misformed rpcbind replies - - Some rpcbind implementations seem to return IPv6 uaddrs - in response to an IPv4 broadcast (which is probably due - to their using a single v6 socket to handle both v6 and - v4 requests). - - We can either discard these replies, or fix them up silently. - Here's a patch that implements the latter. - - Signed-off-by: Olaf Kirch - ---- a/src/clnt_bcast.c -+++ b/src/clnt_bcast.c -@@ -222,6 +222,39 @@ - return 0; - } - -+/* -+ * Some rpcbind implementations use an IPv6 socket to serve both -+ * IPv4 and IPv6 messages, but neglect to check for the caller's -+ * address family when sending broadcast replies. These rpcbind -+ * implementations return an IPv6 address in reply to an IPv4 -+ * broadcast. We can either ignore them, or try to patch them up. -+ */ -+static struct netbuf * -+__ipv6v4_fixup(struct sockaddr_storage *ss, const char *uaddr) -+{ -+ struct sockaddr_in sin; -+ struct netbuf *np; -+ -+ /* ss is the remote rpcbind server's address */ -+ if (ss->ss_family != AF_INET) -+ return NULL; -+ memcpy(&sin, ss, sizeof(sin)); -+ -+ np = __rpc_uaddr2taddr_af(AF_INET6, uaddr); -+ if (np == NULL) -+ return NULL; -+ -+ /* Overwrite the port with that of the service we -+ * wanted to talk to. */ -+ sin.sin_port = ((struct sockaddr_in6 *) np)->sin6_port; -+ -+ /* We know netbuf holds a sockaddr_in6, so it can easily -+ * hold a sockaddr_in as well. */ -+ memcpy(np->buf, &sin, sizeof(sin)); -+ np->len = sizeof(sin); -+ -+ return np; -+} - - enum clnt_stat - rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp, -@@ -588,6 +621,13 @@ - LIBTIRPC_DEBUG(3, ("rpc_broadcast_exp: uaddr %s\n", uaddrp)); - np = uaddr2taddr( - fdlist[i].nconf, uaddrp); -+ /* Some misguided rpcbind implemenations -+ * seem to return an IPv6 uaddr in IPv4 -+ * responses. */ -+ if (np == NULL) -+ np = __ipv6v4_fixup( -+ &fdlist[i].raddr, -+ uaddrp); - if (np != NULL) { - done = (*eachresult)(resultsp, - np, fdlist[i].nconf); diff --git a/004-getpmaphandle.patch b/004-getpmaphandle.patch deleted file mode 100644 index b51e9e4..0000000 --- a/004-getpmaphandle.patch +++ /dev/null @@ -1,101 +0,0 @@ -commit 258824b705df18d171eaf072cfda692504e3649e -Author: Olaf Kirch -Date: Mon Aug 23 12:58:41 2010 +0200 - - Introduce new helper function getpmaphandle - - This moves some code for creation of PMAP handles out of the getaddr - code and into a function of its own. - - Signed-off-by: Olaf Kirch - -diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c -index a800128..962d9c7 100644 ---- a/src/rpcb_clnt.c -+++ b/src/rpcb_clnt.c -@@ -434,6 +434,44 @@ out_err: - return (client); - } - -+/* -+ * Create a PMAP client handle. -+ */ -+static CLIENT * -+getpmaphandle(nconf, hostname, tgtaddr) -+ const struct netconfig *nconf; -+ const char *hostname; -+ char **tgtaddr; -+{ -+ CLIENT *client = NULL; -+ rpcvers_t pmapvers = 2; -+ -+ /* -+ * Try UDP only - there are some portmappers out -+ * there that use UDP only. -+ */ -+ if (nconf == NULL || strcmp(nconf->nc_proto, NC_TCP) == 0) { -+ struct netconfig *newnconf; -+ -+ if ((newnconf = getnetconfigent("udp")) == NULL) { -+ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; -+ return NULL; -+ } -+ client = getclnthandle(hostname, newnconf, tgtaddr); -+ freenetconfigent(newnconf); -+ } else if (strcmp(nconf->nc_proto, NC_UDP) == 0) { -+ if (strcmp(nconf->nc_protofmly, NC_INET) != 0) -+ return NULL; -+ client = getclnthandle(hostname, nconf, tgtaddr); -+ } -+ -+ /* Set version */ -+ if (client != NULL) -+ CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers); -+ -+ return client; -+} -+ - /* XXX */ - #define IN4_LOCALHOST_STRING "127.0.0.1" - #define IN6_LOCALHOST_STRING "::1" -@@ -770,34 +808,20 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp) - if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { - u_short port = 0; - struct netbuf remote; -- rpcvers_t pmapvers = 2; - struct pmap pmapparms; - -- /* -- * Try UDP only - there are some portmappers out -- * there that use UDP only. -- */ -- if (strcmp(nconf->nc_proto, NC_TCP) == 0) { -- struct netconfig *newnconf; -- -- if ((newnconf = getnetconfigent("udp")) == NULL) { -- rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; -- return (NULL); -- } -- client = getclnthandle(host, newnconf, &parms.r_addr); -- freenetconfigent(newnconf); -- } else if (strcmp(nconf->nc_proto, NC_UDP) == 0) -- client = getclnthandle(host, nconf, &parms.r_addr); -- else -+ if (strcmp(nconf->nc_proto, NC_UDP) != 0 -+ && strcmp(nconf->nc_proto, NC_TCP) != 0) - goto try_rpcbind; -+ -+ client = getpmaphandle(nconf, host, &parms.r_addr); - if (client == NULL) - return (NULL); - - /* -- * Set version and retry timeout. -+ * Set retry timeout. - */ - CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rpcbrmttime); -- CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers); - - pmapparms.pm_prog = program; - pmapparms.pm_vers = version; - diff --git a/004-netconfig-prefer-IPv6.patch b/004-netconfig-prefer-IPv6.patch new file mode 100644 index 0000000..1ff1a44 --- /dev/null +++ b/004-netconfig-prefer-IPv6.patch @@ -0,0 +1,17 @@ +diff --git a/doc/netconfig b/doc/netconfig +index effc67e..85c24da 100644 +--- a/doc/netconfig ++++ b/doc/netconfig +@@ -10,10 +10,10 @@ + # The and fields are always empty in this + # implementation. + # +-udp tpi_clts v inet udp - - +-tcp tpi_cots_ord v inet tcp - - + udp6 tpi_clts v inet6 udp - - + tcp6 tpi_cots_ord v inet6 tcp - - ++udp tpi_clts v inet udp - - ++tcp tpi_cots_ord v inet tcp - - + rawip tpi_raw - inet - - - + local tpi_cots_ord - loopback - - - + unix tpi_cots_ord - loopback - - - diff --git a/005-no_IPv6_for_old_code.patch b/005-no_IPv6_for_old_code.patch new file mode 100644 index 0000000..95721cd --- /dev/null +++ b/005-no_IPv6_for_old_code.patch @@ -0,0 +1,32 @@ + +Behebt das das Problem mit svc_register? + +Gruß +Olaf + + + src/rpc_generic.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/rpc_generic.c b/src/rpc_generic.c +index 6148830..4fc882a 100644 +--- a/src/rpc_generic.c ++++ b/src/rpc_generic.c +@@ -250,8 +250,7 @@ __rpc_getconfip(nettype) + return (NULL); + } + while ((nconf = getnetconfig(confighandle)) != NULL) { +- if (strcmp(nconf->nc_protofmly, NC_INET) == 0 || +- strcmp(nconf->nc_protofmly, NC_INET6) == 0) { ++ if (strcmp(nconf->nc_protofmly, NC_INET) == 0) { + if (strcmp(nconf->nc_proto, NC_TCP) == 0 && + netid_tcp == NULL) { + netid_tcp = strdup(nconf->nc_netid); + +-- +What is tolerance? It is the consequence of humanity. -- Voltaire +-------------------------------------------- +Olaf Kirch - Director SUSE Linux Enterprise Core; R&D (okir@suse.com) +SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany +GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu, +Graham Norton, HRB 21284 (AG Nürnberg) diff --git a/libtirpc-0.2.5.tar.bz2 b/libtirpc-0.2.5.tar.bz2 deleted file mode 100644 index 390cd1f..0000000 --- a/libtirpc-0.2.5.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:62f9de7c2c8686c568757730e1fef66502a0e00d6cacf33546d0267984e002db -size 459094 diff --git a/libtirpc-0.3.0.tar.bz2 b/libtirpc-0.3.0.tar.bz2 new file mode 100644 index 0000000..ce75a5e --- /dev/null +++ b/libtirpc-0.3.0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cafe59d561145b384bffd34d6614e9fe4c1d9157c30d2b6b022a0ef71de5a11d +size 479088 diff --git a/libtirpc-clntunix_create.patch b/libtirpc-clntunix_create.patch deleted file mode 100644 index ed0a606..0000000 --- a/libtirpc-clntunix_create.patch +++ /dev/null @@ -1,70 +0,0 @@ -commit 79bf7950d8c8bc9d323887ba0e5fa7555aa6644a -Author: Olaf Kirch -Date: Tue Feb 8 10:21:16 2011 +0100 - - Fix a crash in clntunix_create - - Programs using clntunix_create would abort because glibc detected an - attempt to free a bad pointer. It turns out that clntunix_create - has two bugs: - - - it sets up a struct netbuf to hold the sockaddr_un passed - into the function, but instead of copying the data, it - just assigns the sockaddr pointer - and eventually tries to - free that pointer. - - - when setting up the netbuf, it uses sizeof(raddr) instead - of sizeof(*raddr). - - Instead of doing the trivial fixes, I changed the function to use - the __rpc_set_netbuf utility function. While I was at it, I removed - an unused local variable. - - Signed-off-by: Olaf Kirch - ---- - src/rpc_soc.c | 20 ++++++-------------- - 1 file changed, 6 insertions(+), 14 deletions(-) - -Index: libtirpc-0.2.4-rc2/src/rpc_soc.c -=================================================================== ---- libtirpc-0.2.4-rc2.orig/src/rpc_soc.c -+++ libtirpc-0.2.4-rc2/src/rpc_soc.c -@@ -564,16 +564,12 @@ clntunix_create(raddr, prog, vers, sockp - u_int sendsz; - u_int recvsz; - { -- struct netbuf *svcaddr; -- CLIENT *cl; -+ struct netbuf svcaddr; -+ CLIENT *cl = NULL; - int len; - -- cl = NULL; -- svcaddr = NULL; -- if (((svcaddr = malloc(sizeof(struct netbuf))) == NULL ) || -- ((svcaddr->buf = malloc(sizeof(struct sockaddr_un))) == NULL)) { -- if (svcaddr != NULL) -- free(svcaddr); -+ memset(&svcaddr, 0, sizeof(svcaddr)); -+ if (__rpc_set_netbuf(&svcaddr, raddr, sizeof(*raddr)) == NULL) { - rpc_createerr.cf_stat = RPC_SYSTEMERROR; - rpc_createerr.cf_error.re_errno = errno; - return(cl); -@@ -590,14 +586,10 @@ clntunix_create(raddr, prog, vers, sockp - goto done; - } - } -- svcaddr->buf = raddr; -- svcaddr->len = sizeof(raddr); -- svcaddr->maxlen = sizeof (struct sockaddr_un); -- cl = clnt_vc_create(*sockp, svcaddr, prog, -+ cl = clnt_vc_create(*sockp, &svcaddr, prog, - vers, sendsz, recvsz); - done: -- free(svcaddr->buf); -- free(svcaddr); -+ free(svcaddr.buf); - return(cl); - } - diff --git a/libtirpc-getbroadifs-crash.patch b/libtirpc-getbroadifs-crash.patch deleted file mode 100644 index d287e4e..0000000 --- a/libtirpc-getbroadifs-crash.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 5aa9bf181ec1ce900ca4e84c62e3b31346478626 Mon Sep 17 00:00:00 2001 -From: Olaf Kirch -Date: Fri, 31 Jan 2014 16:37:25 +0100 -Subject: [PATCH] Prevent a segfault of "rpcinfo -b" on systems with tuntap - devices - -Linux tuntap devices and other virtual network devices, if not -configured, will be reported by getifaddrs() with a NULL ifa_addr -pointer. __rpc_getifaddrs would trip over that, because it derefenced -the ifa_addr pointer without checking. - -Signed-off-by: Olaf Kirch ---- - src/clnt_bcast.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c -index 1055545..6ab0851 100644 ---- a/src/clnt_bcast.c -+++ b/src/clnt_bcast.c -@@ -143,7 +143,8 @@ __rpc_getbroadifs(int af, int proto, int socktype, broadlist_t *list) - return 0; - - for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) { -- if (ifap->ifa_addr->sa_family != af || -+ if (ifap->ifa_addr == NULL || /* happens for eg tuntap devices */ -+ ifap->ifa_addr->sa_family != af || - !(ifap->ifa_flags & IFF_UP)) - continue; - bip = (struct broadif *)malloc(sizeof *bip); --- -1.7.12.4 - diff --git a/libtirpc-misc-segfaults.patch b/libtirpc-misc-segfaults.patch deleted file mode 100644 index 63f8339..0000000 --- a/libtirpc-misc-segfaults.patch +++ /dev/null @@ -1,68 +0,0 @@ -This patch fixes various unexpected segfaults caused by invoking rpcb_* functions with -NULL arguments. - - -diff -u -ur libtirpc-0.2.4-rc2/src/rpcb_clnt.c libtirpc-0.2.4-rc2/src/rpcb_clnt.c ---- libtirpc-0.2.4-rc2/src/rpcb_clnt.c 2014-01-09 09:09:59.000000000 +0100 -+++ libtirpc-0.2.4-rc2/src/rpcb_clnt.c 2014-01-09 11:13:01.000000000 +0100 -@@ -287,6 +287,18 @@ - struct address_cache *ad_cache; - char *tmpaddr; - -+ if (nconf == NULL) { -+ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO; -+ return NULL; -+ } -+ -+ if (nconf->nc_protofmly != NULL && -+ strcmp(nconf->nc_protofmly, NC_LOOPBACK) != 0 && -+ host == NULL) { -+ rpc_createerr.cf_stat = RPC_UNKNOWNHOST; -+ return NULL; -+ } -+ - /* VARIABLES PROTECTED BY rpcbaddr_cache_lock: ad_cache */ - - /* Get the address of the rpcbind. Check cache first */ -@@ -296,6 +308,7 @@ - addr_to_delete.len = 0; - rwlock_rdlock(&rpcbaddr_cache_lock); - ad_cache = NULL; -+ - if (host != NULL) - ad_cache = check_cache(host, nconf->nc_netid); - if (ad_cache != NULL) { -@@ -303,7 +316,7 @@ - client = clnt_tli_create(RPC_ANYFD, nconf, addr, - (rpcprog_t)RPCBPROG, (rpcvers_t)RPCBVERS4, 0, 0); - if (client != NULL) { -- if (targaddr) -+ if (targaddr && ad_cache->ac_uaddr) - *targaddr = strdup(ad_cache->ac_uaddr); - rwlock_unlock(&rpcbaddr_cache_lock); - return (client); -@@ -353,9 +366,11 @@ - } else { - struct sockaddr_un sun; - -- *targaddr = malloc(sizeof(sun.sun_path)); -- strncpy(*targaddr, _PATH_RPCBINDSOCK, -- sizeof(sun.sun_path)); -+ if (targaddr) { -+ *targaddr = malloc(sizeof(sun.sun_path)); -+ strncpy(*targaddr, _PATH_RPCBINDSOCK, -+ sizeof(sun.sun_path)); -+ } - return (client); - } - } else { -@@ -402,7 +417,8 @@ - - if (client) { - tmpaddr = targaddr ? taddr2uaddr(nconf, &taddr) : NULL; -- add_cache(host, nconf->nc_netid, &taddr, tmpaddr); -+ if (host) -+ add_cache(host, nconf->nc_netid, &taddr, tmpaddr); - if (targaddr) - *targaddr = tmpaddr; - break; diff --git a/libtirpc-taddr2uaddr-local.patch b/libtirpc-taddr2uaddr-local.patch deleted file mode 100644 index 2cb29d9..0000000 --- a/libtirpc-taddr2uaddr-local.patch +++ /dev/null @@ -1,42 +0,0 @@ -taddr2uaddr would return trailing garbage for AF_LOCAL addresses - -taddr2uaddr assumed that the sun_path field of an AF_LOCAL address -was always NULL terminated, but that is not necessarily the case, -especially if the buffer was allocated using the correct SUN_LEN(). - -Signed-off-by: Olaf Kirch ---- - src/rpc_generic.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -Index: libtirpc-0.2.4-rc2/src/rpc_generic.c -=================================================================== ---- libtirpc-0.2.4-rc2.orig/src/rpc_generic.c -+++ libtirpc-0.2.4-rc2/src/rpc_generic.c -@@ -608,6 +608,7 @@ __rpc_taddr2uaddr_af(int af, const struc - struct sockaddr_in6 *sin6; - char namebuf6[INET6_ADDRSTRLEN]; - #endif -+ int path_len; - u_int16_t port; - - if (nbuf->len <= 0) -@@ -638,13 +639,12 @@ __rpc_taddr2uaddr_af(int af, const struc - #endif - case AF_LOCAL: - sun = nbuf->buf; -- /* if (asprintf(&ret, "%.*s", (int)(sun->sun_len - -- offsetof(struct sockaddr_un, sun_path)), -- sun->sun_path) < 0)*/ -- if (asprintf(&ret, "%.*s", (int)(sizeof(*sun) - -- offsetof(struct sockaddr_un, sun_path)), -- sun->sun_path) < 0) - -+ path_len = nbuf->len - offsetof(struct sockaddr_un, sun_path); -+ if (path_len < 0) -+ return NULL; -+ -+ if (asprintf(&ret, "%.*s", path_len, sun->sun_path) < 0) - return (NULL); - break; - default: diff --git a/libtirpc.changes b/libtirpc.changes index f1b341b..0bce807 100644 --- a/libtirpc.changes +++ b/libtirpc.changes @@ -1,3 +1,110 @@ +------------------------------------------------------------------- +Thu May 7 13:50:16 CEST 2015 - kukuk@suse.de + +- Fix HAVE_AUTHDES/HAVE_GSSAPI in public header files + (001-tirpc-features.patch) + +------------------------------------------------------------------- +Wed May 6 22:54:38 CEST 2015 - kukuk@suse.de + +- Update to official release 0.3.0. authdes was disabled by default + upstream. +- Following patches were merged: + - 001-symbol-versions-v5.patch + - 003-add-des_crypt.diff +- Remove 002-old-automake.patch, not needed anymore + +------------------------------------------------------------------- +Mon May 4 11:41:21 CEST 2015 - kukuk@suse.de + +- Update 001-symbol-versions-v4.patch with + 001-symbol-versions-v5.patch: Add --disable-symvers option + +------------------------------------------------------------------- +Thu Apr 30 18:14:30 CEST 2015 - kukuk@suse.de + +- Update 003-add-des_crypt.diff, fix unresolved des functions + +------------------------------------------------------------------- +Thu Apr 30 17:11:28 CEST 2015 - kukuk@suse.de + +- Update to git +- Add 003-add-des_crypt.diff to fix unresolved *_crypt() functions + +------------------------------------------------------------------- +Thu Apr 30 13:12:30 CEST 2015 - kukuk@suse.de + +- Disable gssapi for SLE11, kerberos version is too old + +------------------------------------------------------------------- +Thu Apr 30 12:56:09 CEST 2015 - kukuk@suse.de + +- rpc/rpc.h requires now indirectly gssapi.h from krb5-devel + +------------------------------------------------------------------- +Thu Apr 30 11:47:42 CEST 2015 - kukuk@suse.de + +- Update to current git. +- The following patches were accepted upstream: + - 003-xdr_h-fix.patch + - 005-disable-rpcent.patch + - 006-no-libnsl.patch + - patch1_7.diff + - patch2_7.diff + - patch3_7.diff +- patch7_7.diff: removed, rejected upstream +- 001-symbol-versions-v3.patch: replace with 001-symbol-versions-v4.patch + +------------------------------------------------------------------- +Fri Apr 24 14:57:04 CEST 2015 - kukuk@suse.de + +- Add the following patches from the libtirpc-devel mailing list: + - patch1_7.diff (remove wrong config.h.in) + - patch2_7.diff (fix function name of yp_check) + - patch3_7.diff (make sure config.h is included) + - patch6_7.diff (use getaddrinfo in getrpcport) + - patch7_7.diff (remove prototypes from headers we don't supply) + +------------------------------------------------------------------- +Fri Apr 24 13:34:30 CEST 2015 - kukuk@suse.de + +- Add following patches: + - 003-xdr_h-fix.patch (fix wrong defines using xdr_u_int32) + - 005-disable-rpcent.patch (use rpcent functions from glibc) + - 006-no-libnsl.patch (don't link against libnsl) + +------------------------------------------------------------------- +Thu Apr 23 21:55:29 CEST 2015 - kukuk@suse.de + +- Update to 0.2.5.git from 20150423 + - following patches are accepted upstream: + - 003-rpc_broadcast_misformed_replies.patch + - libtirpc-misc-segfaults.patch + - replace 001-symbol-versions-v2.patch with + 001-symbol-versions-v3.patch + - enable symbol versioning patch + +------------------------------------------------------------------- +Fri Dec 19 14:20:15 CET 2014 - kukuk@suse.de + +- 004-netconfig-prefer-IPv6.patch: Prever IPv6 over IPv4 (configured + in /etc/netconfig) + +------------------------------------------------------------------- +Fri Dec 19 13:37:49 CET 2014 - kukuk@suse.de + +- 002-old-automake.patch: make buildable on old systems + +------------------------------------------------------------------- +Wed Dec 17 16:26:51 CET 2014 - kukuk@suse.de + +- Update to 0.2.5.git from 20141217 + - following patches are accepted upstream: + - 002-clnt_broadcast_fix.patch + - 004-getpmaphandle.patch + - libtirpc-clntunix_create.patch + - libtirpc-getbroadifs-crash.patch + ------------------------------------------------------------------- Mon Dec 15 14:47:58 CET 2014 - kukuk@suse.de diff --git a/libtirpc.spec b/libtirpc.spec index 72f6ee2..5235697 100644 --- a/libtirpc.spec +++ b/libtirpc.spec @@ -1,7 +1,7 @@ # # spec file for package libtirpc # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,12 +16,12 @@ # -%define tarversion 0.2.5 +%define tarversion 0.3.0 Name: libtirpc # src/crypt_client.c tirpc/spinlock.h and tirpc/rpcsvc/crypt.x have the BSD # advertising clause -Version: 0.2.5 +Version: 0.3.0 Release: 0 Summary: Transport Independent RPC Library License: BSD-4-Clause @@ -31,6 +31,7 @@ BuildRequires: krb5-mini-devel %else BuildRequires: krb5-devel %endif +BuildRequires: autoconf BuildRequires: libtool BuildRequires: pkg-config Url: http://sourceforge.net/projects/libtirpc/ @@ -38,16 +39,12 @@ Url: http://sourceforge.net/projects/libtirpc/ Source: %{name}-%{tarversion}.tar.bz2 Source1: baselibs.conf Patch0: 000-bindresvport_blacklist.patch -Patch1: 001-symbol-versions-v2.patch -Patch2: 002-clnt_broadcast_fix.patch -Patch3: 003-rpc_broadcast_misformed_replies.patch -Patch4: 004-getpmaphandle.patch -Patch35: libtirpc-clntunix_create.patch -Patch36: libtirpc-misc-segfaults.patch +Patch1: 001-tirpc-features.patch +Patch4: 004-netconfig-prefer-IPv6.patch +Patch5: 005-no_IPv6_for_old_code.patch +Patch25: patch6_7.diff # Patch37 is only needed on openSUSE >= 13.1, SLE >= 12 Patch37: libtirpc-new-path-rpcbindsock.patch -Patch38: libtirpc-taddr2uaddr-local.patch -Patch39: libtirpc-getbroadifs-crash.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %define debug_package_requires libtirpc1 = %{version}-%{release} @@ -73,6 +70,7 @@ TCP over IPv4 Summary: Transport Independent RPC Library Group: Development/Libraries/C and C++ Requires: glibc-devel +Requires: krb5-devel Requires: libtirpc1 = %{version} %description devel @@ -84,27 +82,29 @@ TCP over IPv4 %prep %setup -q -n %name-%tarversion %patch0 -p0 -#%patch1 -p0 -%patch2 -p1 -%patch3 -p1 +%patch1 -p1 %patch4 -p1 -%patch35 -p1 -%patch36 -p1 +%patch5 -p1 +%patch25 -p1 %if 0%{suse_version} >= 1310 %patch37 -p1 %endif -%patch38 -p1 -%patch39 -p1 %build autoreconf -fiv %configure --disable-static \ --with-pic \ - --libdir=/%{_lib} \ - --enable-gss +%if 0%{suse_version} < 1200 + --disable-gssapi \ +%endif + --libdir=/%{_lib} %{__make} %{?_smp_mflags} %install +# Don't strip .symtab to allow debugging +export STRIP_KEEP_SYMTAB=libtirpc*.so* +# NO_BRP_CHECK_ROOTFS is for SLES11 only, but does not harm for Factory +export NO_BRP_CHECK_ROOTFS=true make install DESTDIR=$RPM_BUILD_ROOT # move devel so link to %{_libdir} mkdir -p $RPM_BUILD_ROOT%{_libdir} diff --git a/patch6_7.diff b/patch6_7.diff new file mode 100644 index 0000000..2028f90 --- /dev/null +++ b/patch6_7.diff @@ -0,0 +1,79 @@ +Most folks seem to copy this gentoo patch to silence an alleged +_FORTIFY_SOURCE=2 warning: +http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-libs/libtirpc/files/libtirpc-0.2.1-fortify.patch?diff_format=s&revision=1.2&view=markup + +Given that gethostbyname is obsolescent, let's just use getaddrinfo +instead (to silence warnings about the OB function). + +I am undecided if setting AI_V4MAPPED and AI_ADDRCONFIG is a good idea. +Personally i would be inclined to s/if 0/if 1/ but i'll leave that up to +you. + +Signed-off-by: Bernhard Reutner-Fischer +--- + src/getrpcport.c | 37 +++++++++++++++++++++++++------------ + 1 file changed, 25 insertions(+), 12 deletions(-) + +diff --git a/src/getrpcport.c b/src/getrpcport.c +index b452c99..f36158d 100644 +--- a/src/getrpcport.c ++++ b/src/getrpcport.c +@@ -48,19 +48,32 @@ getrpcport(host, prognum, versnum, proto) + int prognum, versnum, proto; + { + struct sockaddr_in addr; +- struct hostent *hp; ++ struct addrinfo hints, *result, *rp; ++ int ret = 0; + + assert(host != NULL); +- +- if ((hp = gethostbyname(host)) == NULL) ++ memset(&hints, 0, sizeof(struct addrinfo)); ++ hints.ai_family = AF_INET; /* ??? :-( */ ++#if 0 ++#ifdef AI_V4MAPPED ++ hints.ai_flags |= AI_V4MAPPED; ++#endif ++#ifdef AI_ADDRCONFIG ++ hints.ai_flags |= AI_ADDRCONFIG; ++#endif ++#endif ++ if (getaddrinfo(host, NULL, &hints, &result) != 0) + return (0); +- memset(&addr, 0, sizeof(addr)); +- addr.sin_family = AF_INET; +- addr.sin_port = 0; +- if (hp->h_length > sizeof(addr)) +- hp->h_length = sizeof(addr); +- memcpy(&addr.sin_addr.s_addr, hp->h_addr, (size_t)hp->h_length); +- /* Inconsistent interfaces need casts! :-( */ +- return (pmap_getport(&addr, (u_long)prognum, (u_long)versnum, +- (u_int)proto)); ++ for (rp = result; rp != NULL; rp = rp->ai_next) { ++ assert (rp->ai_family == AF_INET && rp->ai_addrlen == 16); ++ memcpy(&addr, rp->ai_addr, rp->ai_addrlen); ++ assert (addr.sin_family == AF_INET && addr.sin_port == 0); ++ /* Inconsistent interfaces need casts! :-( */ ++ ret = (pmap_getport(&addr, (u_long)prognum, (u_long)versnum, ++ (u_int)proto)); ++ if (ret) ++ break; ++ } ++ freeaddrinfo(result); ++ return (ret); + } +-- +2.1.4 + + +------------------------------------------------------------------------------ +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 From 1be34e3c8c6f07fedb9bdf065d866606351523ed1b2f4578189a2871d7fb0891 Mon Sep 17 00:00:00 2001 From: Olaf Kirch Date: Fri, 8 May 2015 10:53:50 +0000 Subject: [PATCH 2/5] Accepting request 305881 from home:kukuk:NIS - 001-tirpc-features.patch: update with official git version - 002-old-automake.patch: re-add for SLES11 - 003-fix-gssapi.patch: try to fix the disable-gssapi option correct OBS-URL: https://build.opensuse.org/request/show/305881 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=44 --- 001-tirpc-features.patch | 48 +++++++++- 002-old-automake.patch | 11 +++ 003-fix-gssapi.patch | 194 +++++++++++++++++++++++++++++++++++++++ libtirpc.changes | 7 ++ libtirpc.spec | 5 + 5 files changed, 262 insertions(+), 3 deletions(-) create mode 100644 002-old-automake.patch create mode 100644 003-fix-gssapi.patch diff --git a/001-tirpc-features.patch b/001-tirpc-features.patch index ce636c5..55b6ef6 100644 --- a/001-tirpc-features.patch +++ b/001-tirpc-features.patch @@ -1,3 +1,16 @@ +diff --git a/.gitignore b/.gitignore +index b7814a3..fad274f 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -34,6 +34,8 @@ libtirpc.pc + lib*.a + src/libtirpc.la + src/libtirpc_la-*.lo ++tirpc/stamp-h2 ++tirpc/tirpc-features.h + # generic editor backup et al + *~ + .stgitmail.txt diff --git a/Makefile.am b/Makefile.am index 2bf725c..2bce3b0 100644 --- a/Makefile.am @@ -36,6 +49,23 @@ index 711b054..290c635 100644 AC_PROG_LIBTOOL AC_HEADER_DIRENT AC_PREFIX_DEFAULT(/usr) +diff --git a/src/svc_auth_gss.c b/src/svc_auth_gss.c +index d95eae1..e0a5c6a 100644 +--- a/src/svc_auth_gss.c ++++ b/src/svc_auth_gss.c +@@ -34,8 +34,11 @@ + + */ + +-#include ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif + ++#include + #include + #include + #include diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h index 1dbb391..8f37454 100644 --- a/tirpc/rpc/rpc.h @@ -59,7 +89,7 @@ index 1dbb391..8f37454 100644 #endif diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h -index 44b38bf..b308d2b 100644 +index 44b38bf..dbd8cc9 100644 --- a/tirpc/rpc/svc_auth.h +++ b/tirpc/rpc/svc_auth.h @@ -41,6 +41,10 @@ @@ -82,9 +112,21 @@ index 44b38bf..b308d2b 100644 /* * Interface to server-side authentication flavors. */ +@@ -63,8 +69,10 @@ 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 e69de29..72e18bc 100644 ---- a/tirpc/tirpc-features.h.in +new file mode 100644 +index 0000000..72e18bc +--- /dev/null +++ b/tirpc/tirpc-features.h.in @@ -0,0 +1,10 @@ +#ifndef _TIRPC_FEATURES_H diff --git a/002-old-automake.patch b/002-old-automake.patch new file mode 100644 index 0000000..bb2ec2b --- /dev/null +++ b/002-old-automake.patch @@ -0,0 +1,11 @@ +diff --git a/configure.ac b/configure.ac +index 290c635..a6a202e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1,5 +1,4 @@ + AC_INIT(libtirpc, 0.3.0) +-AM_INIT_AUTOMAKE([silent-rules]) ++AM_INIT_AUTOMAKE +-AM_SILENT_RULES([yes]) + AC_CONFIG_SRCDIR([src/auth_des.c]) + AC_CONFIG_MACRO_DIR([m4]) diff --git a/003-fix-gssapi.patch b/003-fix-gssapi.patch new file mode 100644 index 0000000..ec60e1e --- /dev/null +++ b/003-fix-gssapi.patch @@ -0,0 +1,194 @@ +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 /* protocol for rpc messages */ + #include /* 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 /* protocol for des style cred */ +-#endif /* HAVE_AUTHDES */ ++#endif /* TIRPC_AUTHDES */ + +-#ifdef HAVE_GSSAPI ++#ifdef TIRPC_GSSAPI + #include /* 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 ++ ++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 +- +-#ifdef HAVE_GSSAPI +- + #include + + 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 */ diff --git a/libtirpc.changes b/libtirpc.changes index 0bce807..a39d827 100644 --- a/libtirpc.changes +++ b/libtirpc.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri May 8 10:07:42 CEST 2015 - kukuk@suse.de + +- 001-tirpc-features.patch: update with official git version +- 002-old-automake.patch: re-add for SLES11 +- 003-fix-gssapi.patch: try to fix the disable-gssapi option correct + ------------------------------------------------------------------- Thu May 7 13:50:16 CEST 2015 - kukuk@suse.de diff --git a/libtirpc.spec b/libtirpc.spec index 5235697..374fd03 100644 --- a/libtirpc.spec +++ b/libtirpc.spec @@ -40,6 +40,9 @@ Source: %{name}-%{tarversion}.tar.bz2 Source1: baselibs.conf Patch0: 000-bindresvport_blacklist.patch Patch1: 001-tirpc-features.patch +# Patch2 is only needed for SLES11 +Patch2: 002-old-automake.patch +Patch3: 003-fix-gssapi.patch Patch4: 004-netconfig-prefer-IPv6.patch Patch5: 005-no_IPv6_for_old_code.patch Patch25: patch6_7.diff @@ -83,6 +86,8 @@ TCP over IPv4 %setup -q -n %name-%tarversion %patch0 -p0 %patch1 -p1 +%patch2 -p1 +%patch3 -p1 %patch4 -p1 %patch5 -p1 %patch25 -p1 From 7ef180a9264f6041225d69d5675fd6a4b3050c7569161480f8fa91da62f59500 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Mon, 18 May 2015 15:45:32 +0000 Subject: [PATCH 3/5] Accepting request 306489 from home:kukuk:NIS - 003-fix-gssapi.patch: Correct fix for GSS ABI breakage - 006-rework-features.diff: Rework tirpc-features.h - 003-fix-gssapi.patch: Update, one chunk did go lost OBS-URL: https://build.opensuse.org/request/show/306489 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=45 --- 003-fix-gssapi.patch | 205 ++++----------------------------------- 006-rework-features.diff | 169 ++++++++++++++++++++++++++++++++ libtirpc.changes | 11 +++ libtirpc.spec | 4 +- 4 files changed, 204 insertions(+), 185 deletions(-) create mode 100644 006-rework-features.diff diff --git a/003-fix-gssapi.patch b/003-fix-gssapi.patch index ec60e1e..a505d33 100644 --- a/003-fix-gssapi.patch +++ b/003-fix-gssapi.patch @@ -1,194 +1,31 @@ -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) +--- src/svc_auth_gss.c ++++ src/svc_auth_gss.c 2015/05/12 08:58:54 +@@ -919,13 +919,8 @@ + auth = rqst->rq_xprt->xp_auth; + gd = SVCAUTH_PRIVATE(auth); - 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; +- if (rcred != NULL) { +- auth->raw_cred = gd->rcred; +- auth->raw_cred.service = _rpc_gss_svc_to_service(gd->sec.svc); +- (void)rpc_gss_num_to_qop(auth->raw_cred.mechanism, gd->sec.qop, +- &auth->raw_cred.qop); +- *rcred = &auth->raw_cred; +- } ++ if (rcred != NULL) ++ *rcred = &gd->rcred; --#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 /* protocol for rpc messages */ - #include /* 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 /* protocol for des style cred */ --#endif /* HAVE_AUTHDES */ -+#endif /* TIRPC_AUTHDES */ - --#ifdef HAVE_GSSAPI -+#ifdef TIRPC_GSSAPI - #include /* 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 -+ -+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 -- --#ifdef HAVE_GSSAPI -- - #include - - 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 { + if (ucred != NULL) { + _rpc_gss_fill_in_ucreds(gd); +--- tirpc/rpc/svc_auth.h ++++ tirpc/rpc/svc_auth.h 2015/05/12 08:59:06 +@@ -69,10 +69,6 @@ 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; +- 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 */ diff --git a/006-rework-features.diff b/006-rework-features.diff new file mode 100644 index 0000000..0149596 --- /dev/null +++ b/006-rework-features.diff @@ -0,0 +1,169 @@ +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 /* protocol for rpc messages */ + #include /* 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 /* protocol for des style cred */ +-#endif /* HAVE_AUTHDES */ ++#endif /* TIRPC_AUTHDES */ + +-#ifdef HAVE_GSSAPI ++#ifdef TIRPC_GSSAPI + #include /* RPCSEC_GSS */ + #endif + +diff --git a/tirpc/rpc/rpcsec_gss.h b/tirpc/rpc/rpcsec_gss.h +index 217fc0d..da343ea 100644 +--- a/tirpc/rpc/rpcsec_gss.h ++++ b/tirpc/rpc/rpcsec_gss.h +@@ -35,8 +35,6 @@ + #include + #include + +-#include +- + typedef enum { + rpcsec_gss_svc_default = 0, + rpcsec_gss_svc_none = 1, +@@ -44,6 +42,11 @@ typedef enum { + rpcsec_gss_svc_privacy = 3 + } rpc_gss_service_t; + ++#include ++ ++#ifdef TIRPC_GSSAPI ++#include ++ + typedef struct { + int len; + char name[1]; +@@ -129,4 +132,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..0fbee5d 100644 +--- a/tirpc/rpc/svc_auth.h ++++ b/tirpc/rpc/svc_auth.h +@@ -41,10 +41,6 @@ + #ifndef _RPC_SVC_AUTH_H + #define _RPC_SVC_AUTH_H + +-#include +- +-#ifdef HAVE_GSSAPI +- + #include + + 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. + */ +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 */ diff --git a/libtirpc.changes b/libtirpc.changes index a39d827..0670175 100644 --- a/libtirpc.changes +++ b/libtirpc.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue May 12 12:48:37 CEST 2015 - kukuk@suse.de + +- 003-fix-gssapi.patch: Correct fix for GSS ABI breakage +- 006-rework-features.diff: Rework tirpc-features.h + +------------------------------------------------------------------- +Sat May 9 01:00:12 CEST 2015 - kukuk@suse.de + +- 003-fix-gssapi.patch: Update, one chunk did go lost + ------------------------------------------------------------------- Fri May 8 10:07:42 CEST 2015 - kukuk@suse.de diff --git a/libtirpc.spec b/libtirpc.spec index 374fd03..5ac4e35 100644 --- a/libtirpc.spec +++ b/libtirpc.spec @@ -45,6 +45,7 @@ Patch2: 002-old-automake.patch Patch3: 003-fix-gssapi.patch Patch4: 004-netconfig-prefer-IPv6.patch Patch5: 005-no_IPv6_for_old_code.patch +Patch6: 006-rework-features.diff Patch25: patch6_7.diff # Patch37 is only needed on openSUSE >= 13.1, SLE >= 12 Patch37: libtirpc-new-path-rpcbindsock.patch @@ -87,9 +88,10 @@ TCP over IPv4 %patch0 -p0 %patch1 -p1 %patch2 -p1 -%patch3 -p1 +%patch3 -p0 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %patch25 -p1 %if 0%{suse_version} >= 1310 %patch37 -p1 From 72c7e243d32683aa333eeb03aee7374ccb1cbd5fc89f25c28b387c557d763bba Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Tue, 19 May 2015 15:52:05 +0000 Subject: [PATCH 4/5] Accepting request 308013 from home:kukuk:NIS - 005-no_IPv6_for_old_code.patch: Update comment - libtirpc-taddr2uaddr-local.patch OBS-URL: https://build.opensuse.org/request/show/308013 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=46 --- 005-no_IPv6_for_old_code.patch | 32 ++++++++++++-------------------- libtirpc.changes | 2 ++ 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/005-no_IPv6_for_old_code.patch b/005-no_IPv6_for_old_code.patch index 95721cd..3075394 100644 --- a/005-no_IPv6_for_old_code.patch +++ b/005-no_IPv6_for_old_code.patch @@ -1,18 +1,18 @@ - -Behebt das das Problem mit svc_register? - -Gruß -Olaf - - - src/rpc_generic.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - diff --git a/src/rpc_generic.c b/src/rpc_generic.c -index 6148830..4fc882a 100644 +index 6148830..f443c47 100644 --- a/src/rpc_generic.c +++ b/src/rpc_generic.c -@@ -250,8 +250,7 @@ __rpc_getconfip(nettype) +@@ -213,7 +213,8 @@ getnettype(nettype) + } + + /* +- * For the given nettype (tcp or udp only), return the first structure found. ++ * For the given nettype (tcp or udp only), return the first ++ * IPv4 structure found. + * This should be freed by calling freenetconfigent() + */ + struct netconfig * +@@ -250,8 +251,7 @@ __rpc_getconfip(nettype) return (NULL); } while ((nconf = getnetconfig(confighandle)) != NULL) { @@ -22,11 +22,3 @@ index 6148830..4fc882a 100644 if (strcmp(nconf->nc_proto, NC_TCP) == 0 && netid_tcp == NULL) { netid_tcp = strdup(nconf->nc_netid); - --- -What is tolerance? It is the consequence of humanity. -- Voltaire --------------------------------------------- -Olaf Kirch - Director SUSE Linux Enterprise Core; R&D (okir@suse.com) -SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany -GF: Felix Imendörffer, Jane Smithard, Jennifer Guild, Dilip Upmanyu, -Graham Norton, HRB 21284 (AG Nürnberg) diff --git a/libtirpc.changes b/libtirpc.changes index 0670175..4e25f78 100644 --- a/libtirpc.changes +++ b/libtirpc.changes @@ -2,6 +2,7 @@ Tue May 12 12:48:37 CEST 2015 - kukuk@suse.de - 003-fix-gssapi.patch: Correct fix for GSS ABI breakage +- 005-no_IPv6_for_old_code.patch: Update comment - 006-rework-features.diff: Rework tirpc-features.h ------------------------------------------------------------------- @@ -122,6 +123,7 @@ Wed Dec 17 16:26:51 CET 2014 - kukuk@suse.de - 004-getpmaphandle.patch - libtirpc-clntunix_create.patch - libtirpc-getbroadifs-crash.patch + - libtirpc-taddr2uaddr-local.patch ------------------------------------------------------------------- Mon Dec 15 14:47:58 CET 2014 - kukuk@suse.de From f6fcbb07cfc731f252dd1f2ba5d4ce1891d6bbb408f1d29565ce61a739424b98 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Thu, 4 Jun 2015 08:08:04 +0000 Subject: [PATCH 5/5] Accepting request 309650 from home:kukuk:NIS - Remove krb5-devel from -devel requires, not needed anymore - Update to libtirpc 0.3.1, which incorporates the following patches: - 011-gssapi-update1.patch - 012-gssapi-update2.patch - 013-gssapi-update3.patch - 014-gssapi-update4.patch - 015-gssapi-update5.patch - 016-gssapi-update6.patch - 017-gssapi-update7.patch - 018-gssapi-update8.patch Not needed anymore: - 007-fix-tirpc_map.patch Adjusted: - 001-tirpc-features.patch, merged with 006-rework-features.diff - 002-old-automake.patch - 007-fix-tirpc_map.patch: fix symbol version for new global names - 006-rework-features.diff: Adjust for set of gssapi patches - 003-fix-gssapi.patch replaced by 011-gssapi-update1.patch - 012-gssapi-update2.patch: fix krb5-config usage - 013-gssapi-update3.patch: check for gssapi.h - 014-gssapi-update4.patch: don't include rpcsec_gss.h - 015-gssapi-update5.patch: don't install GSSAPI files if disabled - 016-gssapi-update6.patch: fix rpc_gss_seccreate - 017-gssapi-update7.patch: officialy export two internal functions - 018-gssapi-update8.patch: don't use glibc special header files OBS-URL: https://build.opensuse.org/request/show/309650 OBS-URL: https://build.opensuse.org/package/show/Base:System/libtirpc?expand=0&rev=47 --- 001-tirpc-features.patch | 171 +++++++++++++++++++++------------------ 002-old-automake.patch | 2 +- 003-fix-gssapi.patch | 31 ------- 006-rework-features.diff | 169 -------------------------------------- libtirpc-0.3.0.tar.bz2 | 3 - libtirpc-0.3.1.tar.bz2 | 3 + libtirpc.changes | 53 ++++++++++-- libtirpc.spec | 11 +-- 8 files changed, 146 insertions(+), 297 deletions(-) delete mode 100644 003-fix-gssapi.patch delete mode 100644 006-rework-features.diff delete mode 100644 libtirpc-0.3.0.tar.bz2 create mode 100644 libtirpc-0.3.1.tar.bz2 diff --git a/001-tirpc-features.patch b/001-tirpc-features.patch index 55b6ef6..5708645 100644 --- a/001-tirpc-features.patch +++ b/001-tirpc-features.patch @@ -12,7 +12,7 @@ index b7814a3..fad274f 100644 *~ .stgitmail.txt diff --git a/Makefile.am b/Makefile.am -index 2bf725c..2bce3b0 100644 +index 466b6dd..665d328 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4,9 +4,11 @@ ACLOCAL_AMFLAGS = -I m4 @@ -29,113 +29,126 @@ index 2bf725c..2bce3b0 100644 tirpc/rpcsvc/crypt.h \ tirpc/rpc/xdr.h \ diff --git a/configure.ac b/configure.ac -index 711b054..290c635 100644 +index e3cb8af..7802304 100644 --- a/configure.ac +++ b/configure.ac -@@ -10,6 +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]) - GSSAPI_CFLAGS=`krb5-config --cflags gssapi` - GSSAPI_LIBS=`krb5-config --libs gssapi` - AC_SUBST([GSSAPI_CFLAGS]) -@@ -41,7 +42,7 @@ AC_ARG_ENABLE(symvers, +@@ -31,7 +31,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]) +@@ -50,7 +50,7 @@ AC_ARG_ENABLE(symvers, + [],[enable_symvers=yes]) AM_CONDITIONAL(SYMVERS, test "x$enable_symvers" = xyes) - AC_PROG_CC -AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_HEADERS([config.h tirpc/tirpc-features.h]) AC_PROG_LIBTOOL AC_HEADER_DIRENT AC_PREFIX_DEFAULT(/usr) -diff --git a/src/svc_auth_gss.c b/src/svc_auth_gss.c -index d95eae1..e0a5c6a 100644 ---- a/src/svc_auth_gss.c -+++ b/src/svc_auth_gss.c -@@ -34,8 +34,11 @@ - - */ - --#include -+#ifdef HAVE_CONFIG_H -+#include "config.h" -+#endif - -+#include - #include - #include - #include -diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h -index 1dbb391..8f37454 100644 ---- a/tirpc/rpc/rpc.h -+++ b/tirpc/rpc/rpc.h -@@ -35,6 +35,8 @@ - #ifndef _TIRPC_RPC_H - #define _TIRPC_RPC_H +diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h +index f7fa16c..3e2d1cf 100644 +--- a/tirpc/rpc/auth.h ++++ b/tirpc/rpc/auth.h +@@ -51,6 +51,7 @@ + #include + #include +#include -+ - #include /* some typedefs */ - #include - #include -@@ -60,7 +62,7 @@ - #include /* protocol for des style cred */ - #endif /* HAVE_AUTHDES */ --#ifdef HAVE_RPCSEC_GSS -+#ifdef HAVE_GSSAPI - #include /* RPCSEC_GSS */ + #define MAX_AUTH_BYTES 400 + #define MAXNETNAMELEN 255 /* maximum length of network user's name */ +@@ -164,7 +165,7 @@ union des_block { + }; + typedef union des_block des_block; + +-#ifdef HAVE_AUTHDES ++#ifdef TIRPC_AUTHDES + #ifdef __cplusplus + extern "C" { + #endif +@@ -172,7 +173,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 +321,7 @@ extern AUTH *authnone_create(void); /* takes no parameters */ + } #endif -diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h -index 44b38bf..dbd8cc9 100644 ---- a/tirpc/rpc/svc_auth.h -+++ b/tirpc/rpc/svc_auth.h -@@ -41,6 +41,10 @@ - #ifndef _RPC_SVC_AUTH_H - #define _RPC_SVC_AUTH_H +-#ifdef HAVE_AUTHDES ++#ifdef TIRPC_AUTHDES + /* + * DES style authentication + * AUTH *authsecdes_create(servername, window, timehost, ckey) +@@ -338,7 +339,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 +363,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 392a7b9..7517264 100644 +--- a/tirpc/rpc/rpc.h ++++ b/tirpc/rpc/rpc.h +@@ -39,6 +39,8 @@ + #include + #include +#include + -+#ifdef HAVE_GSSAPI -+ - #include + /* external data representation interfaces */ + #include /* generic (de)serializer */ - typedef struct { -@@ -51,6 +55,8 @@ typedef struct { - u_int seq_num; - } svc_rpc_gss_parms_t; +@@ -52,13 +54,13 @@ + #include /* protocol for rpc messages */ + #include /* protocol for unix style cred */ -+#endif /* HAVE_GSSAPI */ -+ +-#ifdef HAVE_AUTHDES ++#ifdef TIRPC_AUTHDES /* - * Interface to server-side authentication flavors. + * Uncomment-out the next line if you are building the rpc library with + * DES Authentication (see the README file in the secure_rpc/ directory). */ -@@ -63,8 +69,10 @@ 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; + #include /* protocol for des style cred */ +-#endif /* HAVE_AUTHDES */ ++#endif /* TIRPC_AUTHDES */ - #define SVCAUTH_WRAP(auth, xdrs, xfunc, xwhere) \ + /* Server side only remote procedure callee */ + #include /* service side authenticator */ diff --git a/tirpc/tirpc-features.h.in b/tirpc/tirpc-features.h.in new file mode 100644 -index 0000000..72e18bc +index 0000000..9bea966 --- /dev/null +++ b/tirpc/tirpc-features.h.in -@@ -0,0 +1,10 @@ +@@ -0,0 +1,7 @@ +#ifndef _TIRPC_FEATURES_H +#define _TIRPC_FEATURES_H + +/* Define to 1 if DES authentication is enabled */ -+#undef HAVE_AUTHDES -+ -+/* Define to 1 if GSSAPI is enabled */ -+#undef HAVE_GSSAPI ++#undef TIRPC_AUTHDES + +#endif /* _TIRPC_FEATURES_H */ diff --git a/002-old-automake.patch b/002-old-automake.patch index bb2ec2b..9c93f42 100644 --- a/002-old-automake.patch +++ b/002-old-automake.patch @@ -3,7 +3,7 @@ index 290c635..a6a202e 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,4 @@ - AC_INIT(libtirpc, 0.3.0) + AC_INIT(libtirpc, 0.3.1) -AM_INIT_AUTOMAKE([silent-rules]) +AM_INIT_AUTOMAKE -AM_SILENT_RULES([yes]) diff --git a/003-fix-gssapi.patch b/003-fix-gssapi.patch deleted file mode 100644 index a505d33..0000000 --- a/003-fix-gssapi.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- src/svc_auth_gss.c -+++ src/svc_auth_gss.c 2015/05/12 08:58:54 -@@ -919,13 +919,8 @@ - auth = rqst->rq_xprt->xp_auth; - gd = SVCAUTH_PRIVATE(auth); - -- if (rcred != NULL) { -- auth->raw_cred = gd->rcred; -- auth->raw_cred.service = _rpc_gss_svc_to_service(gd->sec.svc); -- (void)rpc_gss_num_to_qop(auth->raw_cred.mechanism, gd->sec.qop, -- &auth->raw_cred.qop); -- *rcred = &auth->raw_cred; -- } -+ if (rcred != NULL) -+ *rcred = &gd->rcred; - - if (ucred != NULL) { - _rpc_gss_fill_in_ucreds(gd); ---- tirpc/rpc/svc_auth.h -+++ tirpc/rpc/svc_auth.h 2015/05/12 08:59:06 -@@ -69,10 +69,6 @@ - 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/006-rework-features.diff b/006-rework-features.diff deleted file mode 100644 index 0149596..0000000 --- a/006-rework-features.diff +++ /dev/null @@ -1,169 +0,0 @@ -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 /* protocol for rpc messages */ - #include /* 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 /* protocol for des style cred */ --#endif /* HAVE_AUTHDES */ -+#endif /* TIRPC_AUTHDES */ - --#ifdef HAVE_GSSAPI -+#ifdef TIRPC_GSSAPI - #include /* RPCSEC_GSS */ - #endif - -diff --git a/tirpc/rpc/rpcsec_gss.h b/tirpc/rpc/rpcsec_gss.h -index 217fc0d..da343ea 100644 ---- a/tirpc/rpc/rpcsec_gss.h -+++ b/tirpc/rpc/rpcsec_gss.h -@@ -35,8 +35,6 @@ - #include - #include - --#include -- - typedef enum { - rpcsec_gss_svc_default = 0, - rpcsec_gss_svc_none = 1, -@@ -44,6 +42,11 @@ typedef enum { - rpcsec_gss_svc_privacy = 3 - } rpc_gss_service_t; - -+#include -+ -+#ifdef TIRPC_GSSAPI -+#include -+ - typedef struct { - int len; - char name[1]; -@@ -129,4 +132,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..0fbee5d 100644 ---- a/tirpc/rpc/svc_auth.h -+++ b/tirpc/rpc/svc_auth.h -@@ -41,10 +41,6 @@ - #ifndef _RPC_SVC_AUTH_H - #define _RPC_SVC_AUTH_H - --#include -- --#ifdef HAVE_GSSAPI -- - #include - - 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. - */ -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 */ diff --git a/libtirpc-0.3.0.tar.bz2 b/libtirpc-0.3.0.tar.bz2 deleted file mode 100644 index ce75a5e..0000000 --- a/libtirpc-0.3.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cafe59d561145b384bffd34d6614e9fe4c1d9157c30d2b6b022a0ef71de5a11d -size 479088 diff --git a/libtirpc-0.3.1.tar.bz2 b/libtirpc-0.3.1.tar.bz2 new file mode 100644 index 0000000..cc341a1 --- /dev/null +++ b/libtirpc-0.3.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8838fe180deb8a6f6e491ee665325a28dee4100ec6b1f0b86d611dbfe3a2bb8 +size 479721 diff --git a/libtirpc.changes b/libtirpc.changes index 4e25f78..71acbd9 100644 --- a/libtirpc.changes +++ b/libtirpc.changes @@ -1,3 +1,45 @@ +------------------------------------------------------------------- +Mon Jun 1 17:06:29 CEST 2015 - kukuk@suse.de + +- Remove krb5-devel from -devel requires, not needed anymore + +------------------------------------------------------------------- +Mon Jun 1 14:44:05 CEST 2015 - kukuk@suse.de + +- Update to libtirpc 0.3.1, which incorporates the following + patches: + - 011-gssapi-update1.patch + - 012-gssapi-update2.patch + - 013-gssapi-update3.patch + - 014-gssapi-update4.patch + - 015-gssapi-update5.patch + - 016-gssapi-update6.patch + - 017-gssapi-update7.patch + - 018-gssapi-update8.patch + Not needed anymore: + - 007-fix-tirpc_map.patch + Adjusted: + - 001-tirpc-features.patch, merged with 006-rework-features.diff + - 002-old-automake.patch + +------------------------------------------------------------------- +Tue May 26 13:55:07 CEST 2015 - kukuk@suse.de + +- 007-fix-tirpc_map.patch: fix symbol version for new global names + +------------------------------------------------------------------- +Tue May 26 11:28:46 CEST 2015 - kukuk@suse.de + +- 006-rework-features.diff: Adjust for set of gssapi patches +- 003-fix-gssapi.patch replaced by 011-gssapi-update1.patch +- 012-gssapi-update2.patch: fix krb5-config usage +- 013-gssapi-update3.patch: check for gssapi.h +- 014-gssapi-update4.patch: don't include rpcsec_gss.h +- 015-gssapi-update5.patch: don't install GSSAPI files if disabled +- 016-gssapi-update6.patch: fix rpc_gss_seccreate +- 017-gssapi-update7.patch: officialy export two internal functions +- 018-gssapi-update8.patch: don't use glibc special header files + ------------------------------------------------------------------- Tue May 12 12:48:37 CEST 2015 - kukuk@suse.de @@ -99,7 +141,7 @@ Thu Apr 23 21:55:29 CEST 2015 - kukuk@suse.de - following patches are accepted upstream: - 003-rpc_broadcast_misformed_replies.patch - libtirpc-misc-segfaults.patch - - replace 001-symbol-versions-v2.patch with + - replace 001-symbol-versions-v2.patch with 001-symbol-versions-v3.patch - enable symbol versioning patch @@ -136,7 +178,7 @@ Mon Dec 15 14:47:58 CET 2014 - kukuk@suse.de - Adjust libtirpc-rpc_broadcast_misformed_replies.patch and rename to 003-rpc_broadcast_misformed_replies.patch - Rename libtirpc-getpmaphandle.patch to 004-getpmaphandle.patch -- Adjust libtirpc-bindresvport_blacklist.patch and rename to +- Adjust libtirpc-bindresvport_blacklist.patch and rename to 000-bindresvport_blacklist.patch - Drop libtirpc-pmap-setunset.patch, not needed anymore - Apply libtirpc-new-path-rpcbindsock.patch only on openSUSE 13.1 @@ -247,7 +289,7 @@ Sun Oct 31 12:37:02 UTC 2010 - jengelh@medozas.de ------------------------------------------------------------------- Wed Sep 29 15:42:12 UTC 2010 - max@novell.com -- Fix showmount -e hostname (bnc#633007). +- Fix showmount -e hostname (bnc#633007). ------------------------------------------------------------------- Wed Sep 15 14:38:57 UTC 2010 - max@novell.com @@ -263,7 +305,7 @@ Thu May 27 21:01:20 UTC 2010 - cristian.rodriguez@opensuse.org - Update to a current git snapshot, important fixes: * don't call abort() in the AUTH_UNIX creation codepaths * Support 64-bit bit mask operations in svc_getreqset() - * Automount with nis maps crashes and generates a core + * Automount with nis maps crashes and generates a core * memory leaks in rpcb_clnt.c:add_cache() and getclnthandle() ------------------------------------------------------------------- @@ -308,7 +350,7 @@ Wed Oct 1 12:32:45 CEST 2008 - mkoenig@suse.de * introduce __rpc_set_netbuf helper * kill map_ipv4_to_ipv6 * Fix xp_raddr handling in svc_fd_create etc - * fix for taddr2addr conversion bug of local addresses [bnc#426883] + * fix for taddr2addr conversion bug of local addresses [bnc#426883] ------------------------------------------------------------------- Tue Sep 2 18:49:16 CEST 2008 - mkoenig@suse.de @@ -352,4 +394,3 @@ Wed Mar 19 17:12:18 CET 2008 - mkoenig@suse.de - set shlib soname version initially to 1.0.7, keeping compatibility with RH - fix some compiling issues - diff --git a/libtirpc.spec b/libtirpc.spec index 5ac4e35..c7ea7c9 100644 --- a/libtirpc.spec +++ b/libtirpc.spec @@ -16,12 +16,12 @@ # -%define tarversion 0.3.0 +%define tarversion 0.3.1 Name: libtirpc # src/crypt_client.c tirpc/spinlock.h and tirpc/rpcsvc/crypt.x have the BSD # advertising clause -Version: 0.3.0 +Version: 0.3.1 Release: 0 Summary: Transport Independent RPC Library License: BSD-4-Clause @@ -42,10 +42,8 @@ Patch0: 000-bindresvport_blacklist.patch Patch1: 001-tirpc-features.patch # Patch2 is only needed for SLES11 Patch2: 002-old-automake.patch -Patch3: 003-fix-gssapi.patch Patch4: 004-netconfig-prefer-IPv6.patch Patch5: 005-no_IPv6_for_old_code.patch -Patch6: 006-rework-features.diff Patch25: patch6_7.diff # Patch37 is only needed on openSUSE >= 13.1, SLE >= 12 Patch37: libtirpc-new-path-rpcbindsock.patch @@ -74,7 +72,6 @@ TCP over IPv4 Summary: Transport Independent RPC Library Group: Development/Libraries/C and C++ Requires: glibc-devel -Requires: krb5-devel Requires: libtirpc1 = %{version} %description devel @@ -87,12 +84,10 @@ TCP over IPv4 %setup -q -n %name-%tarversion %patch0 -p0 %patch1 -p1 -%patch2 -p1 -%patch3 -p0 %patch4 -p1 %patch5 -p1 -%patch6 -p1 %patch25 -p1 +%patch2 -p1 %if 0%{suse_version} >= 1310 %patch37 -p1 %endif