diff --git a/.gitignore b/.gitignore index e69de29..4b7a895 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,4 @@ +x86_64 +Makefile +/rpcbind-1.2.5.tar.bz2 +rpcbind-1.2.5/ diff --git a/rpcbind-0.2.3-create-statdir.patch b/rpcbind-0.2.3-create-statdir.patch new file mode 100644 index 0000000..ec6a8e9 --- /dev/null +++ b/rpcbind-0.2.3-create-statdir.patch @@ -0,0 +1,138 @@ +commit 1805cdb116bd076dc5746beeb6dc79067a79d094 +Author: NeilBrown +Date: Wed Nov 16 10:53:07 2016 -0500 + + Move default state-dir to a subdirectory of /var/run + + rpcbind can save state in a file to allow restart without forgetting + about running services. + + The default location is currently "/tmp" which is + not ideal for system files. It is particularly unpleasant + to put simple files there rather than creating a directory + to contain them. + + On a modern Linux system it is preferable to use /run, and there it is + even more consistent with practice to use a subdirectory. + + This directory needs to be create one each boot, and while there are + tools (e.g. systemd-tmpfiles) which can do that it is cleaner to keep + rpcbind self-contained and have it create the directory. + + So change the default location to /var/run/rpcbind, and create that + directory. If a different user-id is used, we need to create + and chown the directory before dropping privileges. We do this + with care so avoid chowning the wrong thing by mistake. + + Signed-off-by: NeilBrown + Signed-off-by: Steve Dickson + +diff --git a/configure.ac b/configure.ac +index f84921e..acc6914 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -22,8 +22,8 @@ AC_ARG_ENABLE([warmstarts], + AM_CONDITIONAL(WARMSTART, test x$enable_warmstarts = xyes) + + AC_ARG_WITH([statedir], +- AS_HELP_STRING([--with-statedir=ARG], [use ARG as state dir @<:@default=/tmp@:>@]) +- ,, [with_statedir=/tmp]) ++ AS_HELP_STRING([--with-statedir=ARG], [use ARG as state dir @<:@default=/var/run/rpcbind@:>@]) ++ ,, [with_statedir=/var/run/rpcbind]) + AC_SUBST([statedir], [$with_statedir]) + + AC_ARG_WITH([rpcuser], +diff --git a/src/rpcbind.c b/src/rpcbind.c +index 87ccdc2..8db8dfc 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -263,6 +263,11 @@ main(int argc, char *argv[]) + syslog(LOG_ERR, "cannot get uid of '%s': %m", id); + exit(1); + } ++#ifdef WARMSTART ++ if (warmstart) { ++ mkdir_warmstart(p->pw_uid); ++ } ++#endif + if (setgid(p->pw_gid) == -1) { + syslog(LOG_ERR, "setgid to '%s' (%d) failed: %m", id, p->pw_gid); + exit(1); +diff --git a/src/rpcbind.h b/src/rpcbind.h +index 74f9591..5b1a9bb 100644 +--- a/src/rpcbind.h ++++ b/src/rpcbind.h +@@ -129,6 +129,7 @@ int is_localroot(struct netbuf *); + extern void pmap_service(struct svc_req *, SVCXPRT *); + #endif + ++void mkdir_warmstart(int uid); + void write_warmstart(void); + void read_warmstart(void); + +diff --git a/src/warmstart.c b/src/warmstart.c +index 122a058..aafcb61 100644 +--- a/src/warmstart.c ++++ b/src/warmstart.c +@@ -45,19 +45,23 @@ + #include + #include + #include ++#include + + #include "rpcbind.h" + +-#ifndef RPCBIND_STATEDIR +-#define RPCBIND_STATEDIR "/tmp" +-#endif +- + /* These files keep the pmap_list and rpcb_list in XDR format */ + #define RPCBFILE RPCBIND_STATEDIR "/rpcbind.xdr" + #ifdef PORTMAP + #define PMAPFILE RPCBIND_STATEDIR "/portmap.xdr" + #endif + ++#ifndef O_DIRECTORY ++#define O_DIRECTORY 0 ++#endif ++#ifndef O_NOFOLLOW ++#define O_NOFOLLOW 0 ++#endif ++ + static bool_t write_struct(char *, xdrproc_t, void *); + static bool_t read_struct(char *, xdrproc_t, void *); + +@@ -139,8 +143,33 @@ error: + } + + void ++mkdir_warmstart(int uid) ++{ ++ /* Already exists? */ ++ if (access(RPCBIND_STATEDIR, X_OK) == 0) ++ return; ++ ++ if (mkdir(RPCBIND_STATEDIR, 0770) == 0) { ++ int fd = open(RPCBIND_STATEDIR, O_RDONLY | O_DIRECTORY | O_NOFOLLOW); ++ if (fd >= 0) { ++ if (fchown(fd, uid, -1) < 0) { ++ syslog(LOG_ERR, ++ "mkdir_warmstart: open failed '%s', errno %d (%s)", ++ RPCBIND_STATEDIR, errno, strerror(errno)); ++ } ++ close(fd); ++ } else ++ syslog(LOG_ERR, "mkdir_warmstart: open failed '%s', errno %d (%s)", ++ RPCBIND_STATEDIR, errno, strerror(errno)); ++ } else ++ syslog(LOG_ERR, "mkdir_warmstart: mkdir failed '%s', errno %d (%s)", ++ RPCBIND_STATEDIR, errno, strerror(errno)); ++} ++ ++void + write_warmstart() + { ++ (void) mkdir(RPCBIND_STATEDIR, 0770); + (void) write_struct(RPCBFILE, (xdrproc_t)xdr_rpcblist_ptr, &list_rbl); + #ifdef PORTMAP + (void) write_struct(PMAPFILE, (xdrproc_t)xdr_pmaplist_ptr, &list_pml); diff --git a/rpcbind-0.2.3-systemd-envfile.patch b/rpcbind-0.2.3-systemd-envfile.patch new file mode 100644 index 0000000..2bfc248 --- /dev/null +++ b/rpcbind-0.2.3-systemd-envfile.patch @@ -0,0 +1,11 @@ +diff -up rpcbind-0.2.4/systemd/rpcbind.service.in.orig rpcbind-0.2.4/systemd/rpcbind.service.in +--- rpcbind-0.2.4/systemd/rpcbind.service.in.orig 2017-12-16 15:49:07.830889473 -0500 ++++ rpcbind-0.2.4/systemd/rpcbind.service.in 2017-12-16 15:49:43.156610673 -0500 +@@ -12,6 +12,7 @@ Wants=rpcbind.target + [Service] + Type=notify + # distro can provide a drop-in adding EnvironmentFile=-/??? if needed. ++EnvironmentFile=/etc/sysconfig/rpcbind + ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f + + [Install] diff --git a/rpcbind-0.2.3-systemd-tmpfiles.patch b/rpcbind-0.2.3-systemd-tmpfiles.patch new file mode 100644 index 0000000..b9a8457 --- /dev/null +++ b/rpcbind-0.2.3-systemd-tmpfiles.patch @@ -0,0 +1,40 @@ +diff -up rpcbind-1.2.5/configure.ac.orig rpcbind-1.2.5/configure.ac +--- rpcbind-1.2.5/configure.ac.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/configure.ac 2018-08-15 11:14:23.933946110 -0400 +@@ -56,6 +56,17 @@ AC_ARG_WITH([systemdsystemunitdir], + fi + AM_CONDITIONAL(SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) + ++AC_ARG_WITH([systemdtmpfilesdir], ++ AS_HELP_STRING([--with-systemdtmpfilesdir=DIR], [Directory for systemd tmp files]), ++ [], [with_systemdtmpfilesdir=$($PKG_CONFIG --variable=tmpfilesdir systemd)]) ++ if test "x$with_systemdtmpfilesdir" != xno; then ++ AC_SUBST([systemdtmpfilesdir], [$with_systemdtmpfilesdir]) ++ PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [], ++ [PKG_CHECK_MODULES([SYSTEMD], [libsystemd-daemon], [], ++ AC_MSG_ERROR([libsystemd support requested but found]))]) ++ fi ++AM_CONDITIONAL(SYSTEMD, [test -n "$with_systemdtmpfilesdir" -a "x$with_systemdtmpfilesdir" != xno ]) ++ + AS_IF([test x$enable_libwrap = xyes], [ + AC_CHECK_LIB([wrap], [hosts_access], , + AC_MSG_ERROR([libwrap support requested but unable to find libwrap])) +diff -up rpcbind-1.2.5/Makefile.am.orig rpcbind-1.2.5/Makefile.am +--- rpcbind-1.2.5/Makefile.am.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/Makefile.am 2018-08-15 11:14:23.934946111 -0400 +@@ -59,6 +59,9 @@ rpcbind_LDADD += $(SYSTEMD_LIBS) + systemdsystemunit_DATA = \ + systemd/rpcbind.service \ + systemd/rpcbind.socket ++ ++systemdtmpfiles_DATA = \ ++ systemd/rpcbind.conf + endif + + rpcinfo_SOURCES = src/rpcinfo.c +diff -up rpcbind-1.2.5/systemd/rpcbind.conf.orig rpcbind-1.2.5/systemd/rpcbind.conf +--- rpcbind-1.2.5/systemd/rpcbind.conf.orig 2018-08-15 11:14:23.934946111 -0400 ++++ rpcbind-1.2.5/systemd/rpcbind.conf 2018-08-15 11:14:23.934946111 -0400 +@@ -0,0 +1,2 @@ ++#Type Path Mode UID GID Age Argument ++D /run/rpcbind 0700 rpc rpc - - diff --git a/rpcbind-0.2.4-runstatdir.patch b/rpcbind-0.2.4-runstatdir.patch new file mode 100644 index 0000000..90c1dae --- /dev/null +++ b/rpcbind-0.2.4-runstatdir.patch @@ -0,0 +1,61 @@ +diff -up rpcbind-1.2.5/configure.ac.orig rpcbind-1.2.5/configure.ac +--- rpcbind-1.2.5/configure.ac.orig 2018-08-15 11:15:14.188974027 -0400 ++++ rpcbind-1.2.5/configure.ac 2018-08-15 11:15:44.948991114 -0400 +@@ -26,8 +26,8 @@ AC_ARG_ENABLE([rmtcalls], + AM_CONDITIONAL(RMTCALLS, test x$enable_rmtcalls = xyes) + + AC_ARG_WITH([statedir], +- AS_HELP_STRING([--with-statedir=ARG], [use ARG as state dir @<:@default=/var/run/rpcbind@:>@]) +- ,, [with_statedir=/var/run/rpcbind]) ++ AS_HELP_STRING([--with-statedir=ARG], [use ARG as state dir @<:@default=/run/rpcbind@:>@]) ++ ,, [with_statedir=/run/rpcbind]) + AC_SUBST([statedir], [$with_statedir]) + + AC_ARG_WITH([rpcuser], +diff -up rpcbind-1.2.5/configure.orig rpcbind-1.2.5/configure +--- rpcbind-1.2.5/configure.orig 2018-08-15 11:00:32.000000000 -0400 ++++ rpcbind-1.2.5/configure 2018-08-15 11:15:44.951991115 -0400 +@@ -1391,7 +1391,7 @@ Optional Features: + Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) +- --with-statedir=ARG use ARG as state dir [default=/var/run/rpcbind] ++ --with-statedir=ARG use ARG as state dir [default=/run/rpcbind] + + --with-rpcuser=ARG use ARG for RPC [default=root] + +@@ -3901,7 +3901,7 @@ fi + if test "${with_statedir+set}" = set; then : + withval=$with_statedir; + else +- with_statedir=/var/run/rpcbind ++ with_statedir=/run/rpcbind + fi + + statedir=$with_statedir +diff -up rpcbind-1.2.5/man/rpcbind-fr.8.orig rpcbind-1.2.5/man/rpcbind-fr.8 +--- rpcbind-1.2.5/man/rpcbind-fr.8.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/man/rpcbind-fr.8 2018-08-15 11:15:44.951991115 -0400 +@@ -138,8 +138,8 @@ est redémarré. + .Xr rpcbind 3 , + .Xr rpcinfo 8 + .Sh FILES +-.Bl -tag -width /var/run/rpcbind.sock -compact +-.It Pa /var/run/rpcbind.sock ++.Bl -tag -width /run/rpcbind.sock -compact ++.It Pa /run/rpcbind.sock + .Sh TRADUCTION + Aurelien CHARBON (Sept 2003) + .El +diff -up rpcbind-1.2.5/src/rpcbind.c.orig rpcbind-1.2.5/src/rpcbind.c +--- rpcbind-1.2.5/src/rpcbind.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/rpcbind.c 2018-08-15 11:15:44.952991116 -0400 +@@ -106,7 +106,7 @@ char *nss_modules = "files"; + /* who to suid to if -s is given */ + #define RUN_AS "daemon" + +-#define RPCBINDDLOCK "/var/run/rpcbind.lock" ++#define RPCBINDDLOCK RPCBIND_STATEDIR "/rpcbind.lock" + + int runasdaemon = 0; + int insecure = 0; diff --git a/rpcbind-0.2.4-systemd-rundir.patch b/rpcbind-0.2.4-systemd-rundir.patch new file mode 100644 index 0000000..da08d7a --- /dev/null +++ b/rpcbind-0.2.4-systemd-rundir.patch @@ -0,0 +1,35 @@ +diff -up rpcbind-0.2.4/src/rpcbind.c.orig rpcbind-0.2.4/src/rpcbind.c +--- rpcbind-0.2.4/src/rpcbind.c.orig 2017-03-21 10:12:35.005190509 -0400 ++++ rpcbind-0.2.4/src/rpcbind.c 2017-03-21 10:36:45.510507649 -0400 +@@ -144,6 +144,8 @@ static void rbllist_add(rpcprog_t, rpcve + static void terminate(int); + static void parseargs(int, char *[]); + ++char *systemdtmp = "/usr/bin/systemd-tmpfiles --create rpcbind.conf"; ++ + int + main(int argc, char *argv[]) + { +@@ -151,13 +153,21 @@ main(int argc, char *argv[]) + void *nc_handle; /* Net config handle */ + struct rlimit rl; + int maxrec = RPC_MAXDATASIZE; ++ int once = 1; + + parseargs(argc, argv); + ++tryagain: + /* Check that another rpcbind isn't already running. */ + if ((rpcbindlockfd = (open(RPCBINDDLOCK, +- O_RDONLY|O_CREAT, 0444))) == -1) ++ O_RDONLY|O_CREAT, 0444))) == -1) { ++ if (once) { ++ once = system(systemdtmp); /* set once to avoid a warning */ ++ once = 0; ++ goto tryagain; ++ } + err(1, "%s", RPCBINDDLOCK); ++ } + + if(flock(rpcbindlockfd, LOCK_EX|LOCK_NB) == -1 && errno == EWOULDBLOCK) + errx(1, "another rpcbind is already running. Aborting"); diff --git a/rpcbind-0.2.4-systemd-service.patch b/rpcbind-0.2.4-systemd-service.patch new file mode 100644 index 0000000..0350020 --- /dev/null +++ b/rpcbind-0.2.4-systemd-service.patch @@ -0,0 +1,13 @@ +diff -up rpcbind-0.2.4/systemd/rpcbind.service.in.orig rpcbind-0.2.4/systemd/rpcbind.service.in +--- rpcbind-0.2.4/systemd/rpcbind.service.in.orig 2017-12-16 15:46:12.896270101 -0500 ++++ rpcbind-0.2.4/systemd/rpcbind.service.in 2017-12-16 15:46:43.672027210 -0500 +@@ -7,7 +7,8 @@ RequiresMountsFor=@statedir@ + # Make sure we use the IP addresses listed for + # rpcbind.socket, no matter how this unit is started. + Requires=rpcbind.socket +-Wants=rpcbind.target ++Wants=rpcbind.target systemd-tmpfiles-setup.service ++After=systemd-tmpfiles-setup.service + + [Service] + Type=notify diff --git a/rpcbind-1.2.5-rc1.patch b/rpcbind-1.2.5-rc1.patch new file mode 100644 index 0000000..6d09254 --- /dev/null +++ b/rpcbind-1.2.5-rc1.patch @@ -0,0 +1,249 @@ +diff -up rpcbind-1.2.5/src/pmap_svc.c.orig rpcbind-1.2.5/src/pmap_svc.c +--- rpcbind-1.2.5/src/pmap_svc.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/pmap_svc.c 2019-11-11 09:50:09.051438608 -0500 +@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)pmap_svc.c 1 + #include + #include + #include ++#include + #include + #include + #include +diff -up rpcbind-1.2.5/src/rpcbind.c.orig rpcbind-1.2.5/src/rpcbind.c +--- rpcbind-1.2.5/src/rpcbind.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/rpcbind.c 2019-11-11 09:50:09.050438602 -0500 +@@ -42,11 +42,10 @@ + + #include + #include +-#include + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -340,7 +339,7 @@ init_transport(struct netconfig *nconf) + { + int fd = -1; + struct t_bind taddr; +- struct addrinfo hints, *res; ++ struct addrinfo hints, *res = NULL; + struct __rpc_sockinfo si; + SVCXPRT *my_xprt = NULL; + int status; /* bound checking ? */ +@@ -817,8 +816,12 @@ got_socket: + } + #endif + ++ if (res != NULL) ++ freeaddrinfo(res); + return (0); + error: ++ if (res != NULL) ++ freeaddrinfo(res); + close(fd); + return (1); + } +diff -up rpcbind-1.2.5/src/rpcb_stat.c.orig rpcbind-1.2.5/src/rpcb_stat.c +--- rpcbind-1.2.5/src/rpcb_stat.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/rpcb_stat.c 2019-11-11 09:50:09.051438608 -0500 +@@ -151,7 +151,7 @@ rpcbs_rmtcall(rpcvers_t rtype, rpcproc_t + rpcbs_rmtcalllist *rl; + struct netconfig *nconf; + +- if (rtype > RPCBVERS_STAT) ++ if (rtype >= RPCBVERS_STAT) + return; + for (rl = inf[rtype].rmtinfo; rl; rl = rl->next) { + +diff -up rpcbind-1.2.5/src/rpcb_svc_com.c.orig rpcbind-1.2.5/src/rpcb_svc_com.c +--- rpcbind-1.2.5/src/rpcb_svc_com.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/rpcb_svc_com.c 2019-11-11 09:50:09.050438602 -0500 +@@ -42,7 +42,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +diff -up rpcbind-1.2.5/src/rpcinfo.c.orig rpcbind-1.2.5/src/rpcinfo.c +--- rpcbind-1.2.5/src/rpcinfo.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/rpcinfo.c 2019-11-11 09:50:09.052438613 -0500 +@@ -693,11 +693,11 @@ reply_proc (res, who, nconf) + } + if (!(uaddr = taddr2uaddr (nconf, who))) + { +- uaddr = UNKNOWN; ++ printf ("%s\t%s\n", UNKNOWN, hostname); ++ } else { ++ printf ("%s\t%s\n", uaddr, hostname); ++ free ((char *) uaddr); + } +- printf ("%s\t%s\n", uaddr, hostname); +- if (strcmp (uaddr, UNKNOWN)) +- free ((char *) uaddr); + return (FALSE); + } + +@@ -973,6 +973,7 @@ rpcbdump (dumptype, netid, argc, argv) + (" program version(s) netid(s) service owner\n"); + for (rs = rs_head; rs; rs = rs->next) + { ++ size_t netidmax = sizeof(buf) - 1; + char *p = buf; + + printf ("%10ld ", rs->prog); +@@ -985,12 +986,22 @@ rpcbdump (dumptype, netid, argc, argv) + } + printf ("%-10s", buf); + buf[0] = '\0'; +- for (nl = rs->nlist; nl; nl = nl->next) +- { +- strcat (buf, nl->netid); +- if (nl->next) +- strcat (buf, ","); +- } ++ ++ for (nl = rs->nlist; nl; nl = nl->next) ++ { ++ strncat (buf, nl->netid, netidmax); ++ if (strlen (nl->netid) < netidmax) ++ netidmax -= strlen(nl->netid); ++ else ++ break; ++ ++ if (nl->next && netidmax > 1) ++ { ++ strncat (buf, ",", netidmax); ++ netidmax --; ++ } ++ } ++ + printf ("%-32s", buf); + rpc = getrpcbynumber (rs->prog); + if (rpc) +diff -up rpcbind-1.2.5/src/util.c.orig rpcbind-1.2.5/src/util.c +--- rpcbind-1.2.5/src/util.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/util.c 2019-11-11 09:50:09.051438608 -0500 +@@ -45,7 +45,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -103,7 +103,7 @@ char * + addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, + char *netid) + { +- struct ifaddrs *ifap, *ifp = NULL, *bestif; ++ struct ifaddrs *ifap, *ifp = NULL, *bestif, *exactif; + struct netbuf *serv_nbp = NULL, *hint_nbp = NULL, tbuf; + struct sockaddr *caller_sa, *hint_sa, *ifsa, *ifmasksa, *serv_sa; + struct sockaddr_storage ss; +@@ -157,7 +157,10 @@ addrmerge(struct netbuf *caller, char *s + * network portion of its address is equal to that of the client. + * If so, we have found the interface that we want to use. + */ +- bestif = NULL; ++ bestif = NULL; /* first interface UP with same network & family */ ++ exactif = NULL; /* the interface requested by the client */ ++ u_int8_t maskAllAddrBits[16] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, ++ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; /* 16 bytes for IPv6 */ + for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) { + ifsa = ifap->ifa_addr; + ifmasksa = ifap->ifa_netmask; +@@ -175,8 +178,16 @@ addrmerge(struct netbuf *caller, char *s + if (!bitmaskcmp(&SA2SINADDR(ifsa), + &SA2SINADDR(hint_sa), &SA2SINADDR(ifmasksa), + sizeof(struct in_addr))) { +- bestif = ifap; +- goto found; ++ if(!bestif) /* for compatibility with previous code */ ++ bestif = ifap; ++ /* Is this an exact match? */ ++ if (!bitmaskcmp(&SA2SINADDR(ifsa), ++ &SA2SINADDR(hint_sa), maskAllAddrBits, ++ sizeof(struct in_addr))) { ++ exactif = ifap; ++ goto found; ++ } ++ /* else go-on looking for an exact match */ + } + break; + #ifdef INET6 +@@ -197,8 +208,16 @@ addrmerge(struct netbuf *caller, char *s + } else if (!bitmaskcmp(&SA2SIN6ADDR(ifsa), + &SA2SIN6ADDR(hint_sa), &SA2SIN6ADDR(ifmasksa), + sizeof(struct in6_addr))) { +- bestif = ifap; +- goto found; ++ if(!bestif) /* for compatibility with previous code */ ++ bestif = ifap; ++ /* Is this an exact match? */ ++ if (!bitmaskcmp(&SA2SIN6ADDR(ifsa), ++ &SA2SIN6ADDR(hint_sa), maskAllAddrBits, ++ sizeof(struct in6_addr))) { ++ exactif = ifap; ++ goto found; ++ } ++ /* else go-on looking for an exact match */ + } + break; + #endif +@@ -215,10 +234,13 @@ addrmerge(struct netbuf *caller, char *s + (bestif->ifa_flags & (IFF_LOOPBACK | IFF_POINTOPOINT)))) + bestif = ifap; + } ++ + if (bestif == NULL) + goto freeit; + + found: ++ if(exactif) ++ bestif = exactif; + /* + * Construct the new address using the the address from + * `bestif', and the port number from `serv_uaddr'. +@@ -322,9 +344,10 @@ network_init() + /* + * Now join the RPC ipv6 multicast group on all interfaces. + */ +- if (getifaddrs(&ifp) < 0) ++ if (getifaddrs(&ifp) < 0) { ++ freeaddrinfo (res); + return; +- ++ } + mreq6.ipv6mr_interface = 0; + inet_pton(AF_INET6, RPCB_MULTICAST_ADDR, &mreq6.ipv6mr_multiaddr); + +@@ -352,8 +375,8 @@ network_init() + perror("setsockopt v6 multicast"); + } + #endif +- +- /* close(s); */ ++ freeaddrinfo (res); ++ close(s); + } + + struct sockaddr * +diff -up rpcbind-1.2.5/src/warmstart.c.orig rpcbind-1.2.5/src/warmstart.c +--- rpcbind-1.2.5/src/warmstart.c.orig 2018-08-15 10:51:19.000000000 -0400 ++++ rpcbind-1.2.5/src/warmstart.c 2019-11-11 09:50:09.051438608 -0500 +@@ -35,6 +35,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/rpcbind-1.2.5-rpcinfo-bufoverflow.patch b/rpcbind-1.2.5-rpcinfo-bufoverflow.patch new file mode 100644 index 0000000..e9cd522 --- /dev/null +++ b/rpcbind-1.2.5-rpcinfo-bufoverflow.patch @@ -0,0 +1,64 @@ +commit 0bc1c0ae7ce61a7ac8a8e9a9b2086268f011abf0 +Author: Steve Dickson +Date: Tue Oct 9 09:19:50 2018 -0400 + + rpcinfo: Fix stack buffer overflow + + *** buffer overflow detected ***: rpcinfo terminated + ======= Backtrace: ========= + /lib64/libc.so.6(+0x721af)[0x7ff24c4451af] + /lib64/libc.so.6(__fortify_fail+0x37)[0x7ff24c4ccdc7] + /lib64/libc.so.6(+0xf8050)[0x7ff24c4cb050] + rpcinfo(+0x435f)[0xef3be2635f] + rpcinfo(+0x1c62)[0xef3be23c62] + /lib64/libc.so.6(__libc_start_main+0xf5)[0x7ff24c3f36e5] + rpcinfo(+0x2739)[0xef3be24739] + ======= Memory map: ======== + ... + The patch below fixes it. + + Reviewed-by: Chuck Lever + Signed-off-by: Thomas Blume + Signed-off-by: Steve Dickson + +diff --git a/src/rpcinfo.c b/src/rpcinfo.c +index 9b46864..cfdba88 100644 +--- a/src/rpcinfo.c ++++ b/src/rpcinfo.c +@@ -973,6 +973,7 @@ rpcbdump (dumptype, netid, argc, argv) + (" program version(s) netid(s) service owner\n"); + for (rs = rs_head; rs; rs = rs->next) + { ++ size_t netidmax = sizeof(buf) - 1; + char *p = buf; + + printf ("%10ld ", rs->prog); +@@ -985,12 +986,22 @@ rpcbdump (dumptype, netid, argc, argv) + } + printf ("%-10s", buf); + buf[0] = '\0'; +- for (nl = rs->nlist; nl; nl = nl->next) +- { +- strcat (buf, nl->netid); +- if (nl->next) +- strcat (buf, ","); +- } ++ ++ for (nl = rs->nlist; nl; nl = nl->next) ++ { ++ strncat (buf, nl->netid, netidmax); ++ if (strlen (nl->netid) < netidmax) ++ netidmax -= strlen(nl->netid); ++ else ++ break; ++ ++ if (nl->next && netidmax > 1) ++ { ++ strncat (buf, ",", netidmax); ++ netidmax --; ++ } ++ } ++ + printf ("%-32s", buf); + rpc = getrpcbynumber (rs->prog); + if (rpc) diff --git a/rpcbind.init b/rpcbind.init new file mode 100755 index 0000000..54bff53 --- /dev/null +++ b/rpcbind.init @@ -0,0 +1,101 @@ +#! /bin/sh +# +# rpcbind Start/Stop RPCbind +# +# chkconfig: 2345 13 87 +# description: The rpcbind utility is a server that converts RPC program \ +# numbers into universal addresses. It must be running on the \ +# host to be able to make RPC calls on a server on that machine. +# +# processname: rpcbind +# probe: true +# config: /etc/sysconfig/rpcbind + + +# This is an interactive program, we need the current locale +[ -f /etc/profile.d/lang.sh ] && . /etc/profile.d/lang.sh +# We can't Japanese on normal console at boot time, so force LANG=C. +if [ "$LANG" = "ja" -o "$LANG" = "ja_JP.eucJP" ]; then + if [ "$TERM" = "linux" ] ; then + LANG=C + fi +fi + +# Source function library. +. /etc/init.d/functions + +# Source networking configuration. +[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network + +prog="rpcbind" +[ -f /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +RETVAL=0 +uid=`id | cut -d\( -f1 | cut -d= -f2` + +start() { + # Check that networking is up. + [ "$NETWORKING" = "yes" ] || exit 6 + + [ -f /sbin/$prog ] || exit 5 + + # Make sure the rpcbind is not already running. + if status $prog > /dev/null ; then + exit 0 + fi + + # Only root can start the service + [ $uid -ne 0 ] && exit 4 + + echo -n $"Starting $prog: " + daemon $prog $RPCBIND_ARGS $1 + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog + return $RETVAL +} + + +stop() { + echo -n $"Stopping $prog: " + killproc $prog + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && { + rm -f /var/lock/subsys/$prog + rm -f /var/run/rpcbind* + } + return $RETVAL +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $prog + RETVAL=$? + ;; + restart | reload| force-reload) + $0 stop + $0 start + RETVAL=$? + ;; + condrestart | try-restart) + if [ -f /var/lock/subsys/$prog ]; then + $0 stop + $0 start -w + RETVAL=$? + fi + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|try-restart}" + RETVAL=2 + ;; +esac + +exit $RETVAL diff --git a/rpcbind.spec b/rpcbind.spec new file mode 100644 index 0000000..64ac130 --- /dev/null +++ b/rpcbind.spec @@ -0,0 +1,488 @@ +# These are macros to be usable outside of the build section +%global rpcbind_user_group rpc +%global rpcbind_state_dir %{_rundir}/rpcbind + +Name: rpcbind +Version: 1.2.5 +Release: 5.rc1%{?dist}.3 +Summary: Universal Addresses to RPC Program Number Mapper +License: BSD +URL: http://nfsv4.bullopensource.org + +Source0: http://downloads.sourceforge.net/rpcbind/%{name}-%{version}.tar.bz2 +Source1: %{name}.sysconfig + +Requires: glibc-common setup +Conflicts: man-pages < 2.43-12 +BuildRequires: automake, autoconf, libtool, systemd, systemd-devel +BuildRequires: libtirpc-devel, quota-devel +Requires(pre): coreutils shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd coreutils + +Patch001: rpcbind-1.2.5-rc1.patch + +Patch100: rpcbind-0.2.3-systemd-envfile.patch +Patch101: rpcbind-0.2.3-systemd-tmpfiles.patch +Patch102: rpcbind-0.2.4-runstatdir.patch +Patch103: rpcbind-0.2.4-systemd-service.patch +Patch104: rpcbind-0.2.4-systemd-rundir.patch + +Provides: portmap = %{version}-%{release} +Obsoletes: portmap <= 4.0-65.3 + +%description +The rpcbind utility is a server that converts RPC program numbers into +universal addresses. It must be running on the host to be able to make +RPC calls on a server on that machine. + +%prep +%setup -q +# 1637562 - rpcinfo: Fix stack buffer overflow +%patch001 -p1 + +%patch100 -p1 +%patch101 -p1 +%patch102 -p1 +%patch103 -p1 +%patch104 -p1 +%build +autoreconf -fisv +%configure \ + --enable-warmstarts \ + --with-statedir="%rpcbind_state_dir" \ + --with-rpcuser="%rpcbind_user_group" \ + --with-nss-modules="files altfiles" \ + --sbindir=%{_bindir} \ + --enable-rmtcalls \ + --enable-debug + +make all + +%install +mkdir -p %{buildroot}{%{_sbindir},%{_bindir},/etc/sysconfig} +mkdir -p %{buildroot}%{_unitdir} +mkdir -p %{buildroot}%{_tmpfilesdir} +mkdir -p %{buildroot}%{_mandir}/man8 +mkdir -p %{buildroot}%{rpcbind_state_dir} +make DESTDIR=$RPM_BUILD_ROOT install + +install -m644 %{SOURCE1} %{buildroot}/etc/sysconfig/rpcbind + +# The binaries now live in /usr/bin, moving from /usr/sbin +# For compatibility create a couple symlinks. +cd ${RPM_BUILD_ROOT}%{_sbindir} +ln -sf ../bin/rpcbind +ln -sf ../bin/rpcinfo + + +%pre + +# Softly static allocate the rpc uid and gid. +getent group rpc >/dev/null || groupadd -f -g 32 -r rpc +if ! getent passwd rpc >/dev/null ; then + if ! getent passwd 32 >/dev/null ; then + useradd -l -c "Rpcbind Daemon" -d /var/lib/rpcbind \ + -g rpc -M -s /sbin/nologin -o -u 32 rpc > /dev/null 2>&1 + else + useradd -l -c "Rpcbind Daemon" -d /var/lib/rpcbind \ + -g rpc -M -s /sbin/nologin rpc > /dev/null 2>&1 + fi +fi + +%post +%systemd_post rpcbind.service rpcbind.socket + +%preun +%systemd_preun rpcbind.service rpcbind.socket + +%postun +%systemd_postun_with_restart rpcbind.service rpcbind.socket + +%triggerin -- rpcbind > 0.2.2-2.0 +if systemctl -q is-enabled rpcbind.socket +then + /bin/systemctl reenable rpcbind.socket >/dev/null 2>&1 || : + /bin/systemctl restart rpcbind.socket >/dev/null 2>&1 || : +fi + +%files +%license COPYING +%config(noreplace) /etc/sysconfig/rpcbind +%doc AUTHORS ChangeLog README +%{_bindir}/rpcbind +%{_bindir}/rpcinfo +%{_sbindir}/rpcbind +%{_sbindir}/rpcinfo +%{_mandir}/man8/* +%{_unitdir}/%{name}.service +%{_unitdir}/%{name}.socket +%{_tmpfilesdir}/%{name}.conf +%attr(0700, %{rpcbind_user_group}, %{rpcbind_user_group}) %dir %{rpcbind_state_dir} + +%changelog +* Sat Aug 01 2020 Fedora Release Engineering - 1.2.5-5.rc1.3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.2.5-5.rc1.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jan 30 2020 Fedora Release Engineering - 1.2.5-5.rc1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Mon Nov 11 2019 Steve Dickson - 1.2.5-5.rc1 +- Updated to latest upstream RC release: rpcbind-1_2_5-rc1 (bz 1431574) + +* Thu Sep 19 2019 Steve Dickson - 1.2.5-5 +- Enable remote calls which are used by NIS and other packages (bz 1630672) + +* Fri Jul 26 2019 Fedora Release Engineering - 1.2.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 1.2.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 17 2018 Peter Robinson 1.2.5-2 +- Drop old sys-v migration bits +- Ship the license file, minor spec cleanups + +* Tue Oct 9 2018 Steve Dickson - 1.2.5-1 +- Fixed stack buffer overflow in rpcinfo (bz 1637562) + +* Wed Aug 15 2018 Steve Dickson - 1.2.5-0 +- Updated to latest upstream release: 1_2_5 + +* Sat Jul 14 2018 Fedora Release Engineering - 0.2.4-10.rc3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Sat Feb 24 2018 Florian Weimer - 0.2.4-10.rc3 +- Use default build flags from redhat-rpm-config + +* Fri Feb 09 2018 Fedora Release Engineering - 0.2.4-9.rc3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Dec 18 2017 Steve Dickson - 0.2.4-9.rc3 +- Removed tcp_wrappers dependency (bz 1518780) + +* Sat Dec 16 2017 Steve Dickson - 0.2.4-8.rc3 +- Updated to latest upstream RC release: rpcbind-0_2_5-rc3 (bz 1431574) + +* Wed Sep 06 2017 Nils Philippsen - 0.2.4-8.rc2 +- create and formally own the state directory so it is available from the time + of first installation until reboot + +* Thu Aug 03 2017 Fedora Release Engineering - 0.2.4-7.rc2.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.2.4-7.rc2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue May 30 2017 Steve Dickson - 0.2.4-7.rc2 +- Updated to latest upstream RC release: rpcbind-0_2_5-rc2 (bz 1450765) + +* Mon May 15 2017 Steve Dickson - 0.2.4-7.rc1 +- Fixed typo in memory leaks patch (bz 1448128) + +* Thu May 11 2017 Steve Dickson - 0.2.4-6.rc1 +- Fixed memory leaks (bz 1448128) + +* Tue Mar 21 2017 Steve Dickson - 0.2.4-6 +- Try creating statdir once when opening lock file fails (bz 1401561) + +* Sat Feb 11 2017 Fedora Release Engineering - 0.2.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Jan 28 2017 Steve Dickson - 0.2.4-4 +- Corrected boot dependency in systemd files (bz 1401561) + +* Mon Jan 23 2017 Steve Dickson - 0.2.4-3 +- Create a systemd dependency for tmpfiles-setup.service (bz 1401561) + +* Mon Jan 16 2017 Steve Dickson - 0.2.4-2 +- Document /run/rpcbind is the state directory (bz 1401561) + +* Tue Jan 3 2017 Steve Dickson - 0.2.4-1 +- Fix boot dependency in systemd service file (bz 1401561) + +* Wed Nov 30 2016 Steve Dickson - 0.2.4-0 +- Update to the latest upstream release: 0.2.4 + +* Sat Nov 19 2016 Steve Dickson - 0.2.3-13.rc2 +- Create the statedir under /run/rpcbind by systemd-tmpfiles. + +* Sat Nov 12 2016 Steve Dickson - 0.2.3-12.rc2 +- Stop enable rpcbind.socket with every update (bz 1393721) + +* Mon Nov 7 2016 Steve Dickson - 0.2.3-11.rc2 +- Updated to the latest RC release rpcbind-0_2_4-rc1 + +* Mon Aug 1 2016 Steve Dickson - 0.2.3-11.rc1 +- Removing the braces from the ${RPCBIND_ARGS} in rpcbind.service (bz 1362201) +- Stop enable rpcbind.socket with every update (bz 1324666) + +* Mon Apr 4 2016 Steve Dickson - 0.2.3-10.rc1 +- Restart rpcbind.socket on restarts (bz 1306824) +- Soft static allocate rpc uid/gid (bz 1301288) + +* Sat Feb 20 2016 Steve Dickson - 0.2.3-9.rc1 +- Updated to the latest RC release rpcbind-0_2_4-rc1 + +* Thu Feb 04 2016 Fedora Release Engineering - 0.2.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Nov 18 2015 Steve Dickson - 0.2.3-7 +- Delete the unix socket only if we have created it (bz 1279076) + +* Tue Nov 3 2015 Steve Dickson - 0.2.3-0.6 +- handle_reply: Don't use the xp_auth pointer directly + +* Mon Nov 2 2015 Steve Dickson - 0.2.3-0.5 +- Support nss-altfiles by adding 'altfiles' to nss lookup path (bz 1159941). + +* Mon Nov 2 2015 Steve Dickson - 0.2.3-0.4 +- Fixed Seg fault in PMAP_CALLIT code (bz1264351) + +* Sun Nov 01 2015 Kalev Lember - 0.2.3-0.3 +- Rebuilt for libtirpc soname bump + +* Thu Jun 18 2015 Fedora Release Engineering - 0.2.3-0.2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 Steve Dickson - 0.2.3-0.0 +- Make sure rpcbind.socket always gets enabled (bz 1214496) + +* Tue Apr 28 2015 Steve Dickson - 0.2.3-0.0 +- Updated to latest upstream release: 0.2.3 +- Change RPCBDIR to be /tmp since that will exist after a + reboot and bindings wil be perserved during upgrades + but not reboots. + +* Thu Mar 19 2015 Steve Dickson - 0.2.2-2.2 +- Changed RPCBDIR to be /var/run so bindings are perserved + during upgrades but not reboots. +- Make sure rpcbind.socket gets enabled + +* Thu Feb 5 2015 Steve Dickson - 0.2.2-2.1 +- Added xlogging debugging to rpcbind + +* Wed Feb 4 2015 Steve Dickson - 0.2.2-2.0 +- Updated to the latest rc release: rpcbind-0_2_3-rc1 (bz 1095021) + +* Wed Dec 17 2014 Steve Dickson - 0.2.2-1.1 +- Fixed NULL fp problem remove error message on warmstart patch + +* Tue Dec 16 2014 Steve Dickson - 0.2.2-1.0 +- Updated to the latest rc release: rpcbind-0_2_3-rc1 + +* Wed Nov 26 2014 Steve Dickson - 0.2.2-0.0 +- Updated to the latest upstream release: 0.2.2 (bz 747363) +- Added BuildRequires systemd-compat-libs + +* 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) + +* Thu Oct 23 2014 Steve Dickson - 0.2.1-2.1 +- Stop re-enabling with systemd (bz 1087951) + +* Thu Aug 21 2014 Kevin Fenzi - 0.2.1-2.0 +- Rebuild for rpm bug 1131960 + +* Mon Aug 18 2014 Steve Dickson - 0.2.1-1.0 +- Updated to the latest rc release: rpcbind-0_2_2-rc1 + +* Mon Aug 18 2014 Fedora Release Engineering - 0.2.1-0.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 0.2.1-0.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Mon Dec 2 2013 Steve Dickson - 0.2.1-0.2 +- Removed unnecessary targets from rpcbind.service (bz 963189) + +* Wed Aug 21 2013 Steve Dickson - 0.2.1-0.1 +- Fixed typo in configure.ac file causing rpcuser not to be set. + +* Mon Aug 19 2013 Steve Dickson - 0.2.1-0 +- Update to the latest upstream release: 0.2.1 + +* Sun Aug 04 2013 Fedora Release Engineering - 0.2.0-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 0.2.0-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Oct 23 2012 Steve Dickson - 0.2.0-20 +- Update to the latest upstream release: rpcbind-0_2_1-rc4 (bz 869365) + +* Tue Oct 16 2012 Steve Dickson - 0.2.0-19 +- Renamed RPCBINDOPTS to RPCBIND_ARGS for backward compatibility (bz 861025) + +* Sun Oct 14 2012 Steve Dickson - 0.2.0-18 +- Fixed typo causing rpcbind to run as root (bz 734598) +- Added /etc/sysconfig/rpcbind config file (bz 861025) + +* Sat Jul 21 2012 Fedora Release Engineering - 0.2.0-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sat Jan 14 2012 Fedora Release Engineering - 0.2.0-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Sep 12 2011 Steve Dickson - 0.2.0-15 +- Bumped up the tigger version to this version, 0.2.0-15 (bz 713574) + +* Fri Sep 9 2011 Tom Callaway - 0.2.0-14 +- fix scriptlets to enable service by default + +* Fri Jul 8 2011 Steve Dickson - 0.2.0-13 +- Spec file clean up + +* Thu Jul 7 2011 Steve Dickson - 0.2.0-12 +- Migrated SysV initscripts to systemd (bz 713574) + +* Thu Mar 17 2011 Steve Dickson - 0.2.0-11 +- Updated to the latest upstream release: rpcbind-0_2_1-rc3 + +* Wed Feb 09 2011 Fedora Release Engineering - 0.2.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 13 2010 Steve Dickson - 0.2.0-9 +- Fixed an incorrect exit code for service rpcbind status (bz 662411) + +* Tue Nov 30 2010 Steve Dickson - 0.2.0-8 +- Updated to the latest upstream release: rpcbind-0.2.1-rc2 + +* Fri Jul 16 2010 Tom "spot" Callaway - 0.2.0-7 +- correct license tag to BSD + +* Tue Jul 13 2010 Steve Dickson - 0.2.0-6 +- Made initscript LSB compliant (bz 614193) +- Added no fork patch + +* Tue Jul 6 2010 Steve Dickson - 0.2.0-5 +- Set SO_REUSEADDR on listening sockets (bz 597356) + +* Sun Jul 26 2009 Fedora Release Engineering - 0.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 06 2009 Adam Jackson 0.2.0-3 +- Requires(pre): coreutils for cut(1). + +* Thu Jun 25 2009 Steve Dickson - 0.2.0-2 +- Fixed pre scriptle failure during upgrades (bz 507364) +- Corrected the usage info to match what the rpcbind man + page says. (bz 466332) +- Correct package issues (bz 503508) + +* Fri May 29 2009 Steve Dickson - 0.2.0-1 +- Updated to latest upstream release: 0.2.0 + +* Tue May 19 2009 Tom "spot" Callaway - 0.1.7-3 +- Replace the Sun RPC license with the BSD license, with the explicit permission of Sun Microsystems + +* Wed Feb 25 2009 Fedora Release Engineering - 0.1.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Nov 19 2008 Steve Dickson 0.1.7-1 +- Update to latest upstream release: 0.1.7 + +* Tue Sep 30 2008 Steve Dickson 0.1.6-3 +- Fixed a typo in the rpcbind.init script that stop warm starts + from happening with conrestarts +- Fixed scriptlet failure (bz 462533) + +* Tue Sep 16 2008 Steve Dickson 0.1.6-2 +- Added usptream patches 01 thru 03 that do: + * Introduce helpers for ipprot/netid mapping + * Change how we decide on the netids to use for portmap + * Simplify port live check in pmap_svc.c + +* Wed Jul 9 2008 Steve Dickson 0.1.6-1 +- Updated to latest upstream release 0.1.6 + +* Wed Jul 2 2008 Steve Dickson 0.1.5-5 +- Fixed SYNOPSIS section in the rpcinfo man page (bz 453729) + +* Fri Jun 27 2008 Steve Dickson 0.1.5-4 +- Removed the documentation about the non-existent + '-L' flag (bz 446915) + +* Fri Jun 27 2008 Steve Dickson 0.1.5-3 +- Set password and service lookups to be local (bz 447092) + +* Mon Jun 23 2008 Steve Dickson 0.1.5-2 +- rpcbind needs to downgrade to non-priviledgied group. + +* Mon Jun 23 2008 Steve Dickson 0.1.5-1 +- Updated to latest upstream release 0.1.5 + +* Mon Feb 11 2008 Steve Dickson 0.1.4-14 +- Fixed a warning in pmap_svc.c +- Cleaned up warmstarts so uid are longer needed, also + changed condrestarts to use warmstarts. (bz 428496) + +* Thu Jan 24 2008 Steve Dickson 0.1.4-13 +- Fixed connectivity with Mac OS clients by making sure handle_reply() + sets the correct fromlen in its recvfrom() call (bz 244492) + +* Mon Dec 17 2007 Steve Dickson 0.1.4-12 +- Changed is_loopback() and check_access() see if the calling + address is an address on a local interface, just not a loopback + address (bz 358621). + +* Wed Oct 17 2007 Steve Dickson 0.1.4-11 +- Reworked logic in initscript so the correct exit is + used when networking does not exist or is set up + incorrectly. + +* Tue Oct 16 2007 Steve Dickson 0.1.4-10 +- Corrected a typo in the initscript from previous + commit. + +* Mon Oct 15 2007 Steve Dickson 0.1.4-9 +- Fixed typo in Summary (bz 331811) +- Corrected init script (bz 247046) + +* Sat Sep 15 2007 Steve Dickson 0.1.4-8 +- Fixed typo in init script (bz 248285) +- Added autoconf rules to turn on secure host checking + via libwrap. Also turned on host check by default (bz 248284) +- Changed init script to start service in runlevel 2 (bz 251568) +- Added a couple missing Requires(pre) (bz 247134) + +* Fri May 25 2007 Steve Dickson 0.1.4-7 +- Fixed condrestarts (bz 241332) + +* Tue May 22 2007 Steve Dickson 0.1.4-6 +- Fixed an ipv6 related segfault on startup (bz 240873) + +* Wed Apr 18 2007 Steve Dickson 0.1.4-5 +- Added dependency on setup which contains the correct + rpcbind /etc/service entry which in turns stops + rpcbind from haning when NIS is enabled. (bz 236865) + +* Wed Apr 11 2007 Jeremy Katz - 0.1.4-4 +- change man-pages requires into a conflicts as we don't have to have + man-pages installed, but if we do, we need the newer version + +* Fri Apr 6 2007 Steve Dickson 0.1.4-3 +- Fixed the Provides and Obsoletes statments to correctly + obsolete the portmap package. +* Tue Apr 3 2007 Steve Dickson 0.1.4-2 +- Added dependency on glibc-common which allows the + rpcinfo command to be installed in the correct place. +- Added dependency on man-pages so the rpcinfo man + pages don't conflict. +- Added the creation of /var/lib/rpcbind which will be + used to store state files. +- Make rpcbind run with the 'rpc' uid/gid when it exists. + +* Wed Feb 21 2007 Steve Dickson 0.1.4-1 +- Initial commit +- Spec reviewed (bz 228894) +- Added the Provides/Obsoletes which should + cause rpcbind to replace portmapper diff --git a/rpcbind.sysconfig b/rpcbind.sysconfig new file mode 100644 index 0000000..4b35e37 --- /dev/null +++ b/rpcbind.sysconfig @@ -0,0 +1,3 @@ +# +# Optional arguments passed to rpcbind. See rpcbind(8) +RPCBIND_ARGS="" diff --git a/sources b/sources new file mode 100644 index 0000000..12c7885 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (rpcbind-1.2.5.tar.bz2) = e884c4757950ccead0f9a07f50625a63e6f18f9bfae9fcfffa3e5fa4b7a66c3a99d9fa303061848fe8211509d5456f24ff26e4579af6e161a35522268f3ef3e4