diff --git a/rpcbind-0.2.2-rc3.patch b/rpcbind-0.2.2-rc3.patch new file mode 100644 index 0000000..2e369ce --- /dev/null +++ b/rpcbind-0.2.2-rc3.patch @@ -0,0 +1,132 @@ +diff --git a/Makefile.am b/Makefile.am +index d10c906..8715082 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -1,3 +1,5 @@ ++AUTOMAKE_OPTIONS = subdir-objects ++ + AM_CPPFLAGS = \ + -DCHECK_LOCAL \ + -DPORTMAP \ +@@ -6,6 +8,7 @@ AM_CPPFLAGS = \ + -DINET6 \ + -DRPCBIND_STATEDIR="\"$(statedir)\"" \ + -DRPCBIND_USER="\"$(rpcuser)\"" \ ++ -DNSS_MODULES="\"$(nss_modules)\"" \ + -D_GNU_SOURCE \ + $(TIRPC_CFLAGS) + +diff --git a/configure.ac b/configure.ac +index 747a8bf..5a88cc7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,10 +23,17 @@ AC_ARG_WITH([statedir], + AC_SUBST([statedir], [$with_statedir]) + + AC_ARG_WITH([rpcuser], +- AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]), ++ AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]) + ,, [with_rpcuser=root]) + AC_SUBST([rpcuser], [$with_rpcuser]) + ++AC_ARG_WITH([nss_modules], ++ AS_HELP_STRING([--with-nss-modules=NSS_MODULES] ++ , [Sets the nss module search list to the given space-delimited string. ++ For example --with-nss-modules="files altfiles" @<:@default=files@:>@]) ++ ,, [with_nss_modules=files]) ++AC_SUBST([nss_modules], [$with_nss_modules]) ++ + PKG_CHECK_MODULES([TIRPC], [libtirpc]) + + AS_IF([test x$enable_libwrap = xyes], [ +diff --git a/man/rpcinfo.8 b/man/rpcinfo.8 +index 5ece18f..750ffce 100644 +--- a/man/rpcinfo.8 ++++ b/man/rpcinfo.8 +@@ -20,8 +20,7 @@ + .Nm "rpcinfo" + .Fl l + .Op Fl T Ar transport +-.Ar host Ar prognum +-.Op Ar versnum ++.Ar host Ar prognum Ar versnum + .Nm "rpcinfo" + .Op Fl n Ar portnum + .Fl u +diff --git a/src/rpcbind.c b/src/rpcbind.c +index 83dbe93..e3462e3 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -62,6 +62,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -90,6 +91,12 @@ char *rpcbinduser = RPCBIND_USER; + char *rpcbinduser = NULL; + #endif + ++#ifdef NSS_MODULES ++char *nss_modules = NSS_MODULES; ++#else ++char *nss_modules = "files"; ++#endif ++ + /* who to suid to if -s is given */ + #define RUN_AS "daemon" + +@@ -164,7 +171,7 @@ main(int argc, char *argv[]) + * Make sure we use the local service file + * for service lookkups + */ +- __nss_configure_lookup("services", "files"); ++ __nss_configure_lookup("services", nss_modules); + + nc_handle = setnetconfig(); /* open netconfig file */ + if (nc_handle == NULL) { +@@ -230,7 +237,7 @@ main(int argc, char *argv[]) + * Make sure we use the local password file + * for these lookups. + */ +- __nss_configure_lookup("passwd", "files"); ++ __nss_configure_lookup("passwd", nss_modules); + + if((p = getpwnam(id)) == NULL) { + syslog(LOG_ERR, "cannot get uid of '%s': %m", id); +@@ -726,11 +733,9 @@ terminate(int dummy /*__unused*/) + unlink(_PATH_RPCBINDSOCK); + unlink(RPCBINDDLOCK); + #ifdef WARMSTART +- syslog(LOG_ERR, +- "rpcbind terminating on signal. Restart with \"rpcbind -w\""); + write_warmstart(); /* Dump yourself */ + #endif +- exit(2); ++ exit(0); /* exit gracefully */ + } + + void +diff --git a/src/util.c b/src/util.c +index 9a5fb69..7d56479 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -101,12 +101,14 @@ static void + in6_fillscopeid(struct sockaddr_in6 *sin6) + { + u_int16_t ifindex; ++ u_int16_t *addr; + + if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { +- ifindex = ntohs(*(u_int16_t *)&sin6->sin6_addr.s6_addr[2]); ++ addr = (u_int16_t *)&sin6->sin6_addr.s6_addr[2]; ++ ifindex = ntohs(*addr); + if (sin6->sin6_scope_id == 0 && ifindex != 0) { + sin6->sin6_scope_id = ifindex; +- *(u_int16_t *)&sin6->sin6_addr.s6_addr[2] = 0; ++ *addr = 0; + } + } + } diff --git a/rpcbind.spec b/rpcbind.spec index 76fb077..01a0232 100644 --- a/rpcbind.spec +++ b/rpcbind.spec @@ -1,6 +1,6 @@ Name: rpcbind Version: 0.2.1 -Release: 3.0%{?dist} +Release: 4.0%{?dist} Summary: Universal Addresses to RPC Program Number Mapper Group: System Environment/Daemons License: BSD @@ -24,7 +24,7 @@ Requires(postun): systemd coreutils Provides: portmap = %{version}-%{release} Obsoletes: portmap <= 4.0-65.3 -Patch001: rpcbind-0.2.2-rc2.patch +Patch001: rpcbind-0.2.2-rc3.patch %description The rpcbind utility is a server that converts RPC program numbers into @@ -126,6 +126,9 @@ fi %dir %attr(700,rpc,rpc) /var/lib/rpcbind %changelog +* Mon Nov 10 2014 Steve Dickson - 0.2.1-4.0 +- Updated to the latest rc release: rpcbind-0_2_2-rc3 + * Mon Oct 27 2014 Steve Dickson - 0.2.1-3.0 - Updated to the latest rc release: rpcbind-0_2_2-rc2 (bz 1015283)