diff --git a/.gitignore b/.gitignore index d7a7da0..1a0073b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -rpcbind-0.2.4 -/rpcbind-0.2.4.tar.bz2 x86_64 Makefile +rpcbind-1.2.8-build/ +/rpcbind-1.2.8.tar.bz2 diff --git a/rpcbind-0.2.3-systemd-envfile.patch b/rpcbind-0.2.3-systemd-envfile.patch deleted file mode 100644 index 18382c4..0000000 --- a/rpcbind-0.2.3-systemd-envfile.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up rpcbind-0.2.3/systemd/rpcbind.service.in.orig rpcbind-0.2.3/systemd/rpcbind.service.in ---- rpcbind-0.2.3/systemd/rpcbind.service.in.orig 2016-11-07 14:45:17.440658739 -0500 -+++ rpcbind-0.2.3/systemd/rpcbind.service.in 2016-11-07 14:46:50.968844715 -0500 -@@ -10,7 +10,7 @@ After=rpcbind.socket - - [Service] - Type=notify --# distro can provide a drop-in adding EnvironmentFile=-/??? if needed. -+EnvironmentFile=/etc/sysconfig/rpcbind - ExecStart=@_bindir@/rpcbind $RPCBIND_OPTIONS -w -f - - [Install] diff --git a/rpcbind-0.2.3-systemd-tmpfiles.patch b/rpcbind-0.2.3-systemd-tmpfiles.patch index e916680..20f57b1 100644 --- a/rpcbind-0.2.3-systemd-tmpfiles.patch +++ b/rpcbind-0.2.3-systemd-tmpfiles.patch @@ -1,35 +1,7 @@ -commit b47e0f12cfa005bb120e018257410663efbd7254 -Author: Steve Dickson -Date: Tue Nov 15 13:32:40 2016 -0500 - - Use systemd-tmpfiles to create the warmstart directory - - When systemd is available have it create the /run/rpcbind - warmstart directory. Note, the new rpcbind.conf file - expects 'rpc' user and group since that those will be - the id/gid that will own the directory. - - Signed-off-by: Steve Dickson - -diff --git a/Makefile.am b/Makefile.am -index 43c2710..d7ca426 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -54,6 +54,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 --git a/configure.ac b/configure.ac -index acc6914..81adafc 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -52,6 +52,17 @@ AC_ARG_WITH([systemdsystemunitdir], +diff -up rpcbind-1.2.7/configure.ac.orig rpcbind-1.2.7/configure.ac +--- rpcbind-1.2.7/configure.ac.orig 2024-07-25 11:55:23.000000000 -0400 ++++ rpcbind-1.2.7/configure.ac 2024-07-25 16:55:38.334208493 -0400 +@@ -73,6 +73,17 @@ AC_ARG_WITH([systemdsystemunitdir], fi AM_CONDITIONAL(SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) @@ -47,11 +19,22 @@ index acc6914..81adafc 100644 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 --git a/systemd/rpcbind.conf b/systemd/rpcbind.conf -new file mode 100644 -index 0000000..2f8af45 ---- /dev/null -+++ b/systemd/rpcbind.conf +diff -up rpcbind-1.2.7/Makefile.am.orig rpcbind-1.2.7/Makefile.am +--- rpcbind-1.2.7/Makefile.am.orig 2024-07-25 11:55:23.000000000 -0400 ++++ rpcbind-1.2.7/Makefile.am 2024-07-25 16:55:38.335208500 -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.7/systemd/rpcbind.conf.orig rpcbind-1.2.7/systemd/rpcbind.conf +--- rpcbind-1.2.7/systemd/rpcbind.conf.orig 2024-07-25 16:55:38.335208500 -0400 ++++ rpcbind-1.2.7/systemd/rpcbind.conf 2024-07-25 16:55:38.335208500 -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-rc1.patch b/rpcbind-0.2.4-rc1.patch deleted file mode 100644 index be4b115..0000000 --- a/rpcbind-0.2.4-rc1.patch +++ /dev/null @@ -1,193 +0,0 @@ -diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c -index ff9ce6b..148fe42 100644 ---- a/src/rpcb_svc_com.c -+++ b/src/rpcb_svc_com.c -@@ -536,10 +536,6 @@ create_rmtcall_fd(struct netconfig *nconf) - rmttail->next = rmt; - rmttail = rmt; - } -- /* XXX not threadsafe */ -- if (fd > svc_maxfd) -- svc_maxfd = fd; -- FD_SET(fd, &svc_fdset); - return (fd); - } - -@@ -1056,9 +1052,6 @@ free_slot_by_index(int index) - fi = &FINFO[index]; - if (fi->flag & FINFO_ACTIVE) { - netbuffree(fi->caller_addr); -- /* XXX may be too big, but can't access xprt array here */ -- if (fi->forward_fd >= svc_maxfd) -- svc_maxfd--; - free(fi->uaddr); - fi->flag &= ~FINFO_ACTIVE; - rpcb_rmtcalls--; -@@ -1097,35 +1090,28 @@ netbuffree(struct netbuf *ap) - } - - --#define MASKVAL (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND) --extern bool_t __svc_clean_idle(fd_set *, int, bool_t); -- - void - my_svc_run() - { -- size_t nfds; -- struct pollfd pollfds[FD_SETSIZE]; - int poll_ret, check_ret; - int n; --#ifdef SVC_RUN_DEBUG -- int i; --#endif -- register struct pollfd *p; -- fd_set cleanfds; - - for (;;) { -- p = pollfds; -- for (n = 0; n <= svc_maxfd; n++) { -- if (FD_ISSET(n, &svc_fdset)) { -- p->fd = n; -- p->events = MASKVAL; -- p++; -- } -- } -- nfds = p - pollfds; -- poll_ret = 0; -+ struct pollfd my_pollfd[svc_max_pollfd]; -+ int i; -+ -+ if (svc_max_pollfd == 0 && svc_pollfd == NULL) -+ return; - -- switch (poll_ret = poll(pollfds, nfds, 30 * 1000)) { -+ -+ for (i = 0; i < svc_max_pollfd; ++i) -+ { -+ my_pollfd[i].fd = svc_pollfd[i].fd; -+ my_pollfd[i].events = svc_pollfd[i].events; -+ my_pollfd[i].revents = 0; -+ } -+ -+ switch (poll_ret = poll(my_pollfd, svc_max_pollfd, 30 * 1000)) { - case -1: - /* - * We ignore all errors, continuing with the assumption -@@ -1133,8 +1119,6 @@ my_svc_run() - * other outside event) and not caused by poll(). - */ - case 0: -- cleanfds = svc_fdset; -- __svc_clean_idle(&cleanfds, 30, FALSE); - continue; - default: - /* -@@ -1144,10 +1128,10 @@ my_svc_run() - * don't call svc_getreq_poll. Otherwise, there - * must be another so we must call svc_getreq_poll. - */ -- if ((check_ret = check_rmtcalls(pollfds, nfds)) == -+ if ((check_ret = check_rmtcalls(my_pollfd, svc_max_pollfd)) == - poll_ret) - continue; -- svc_getreq_poll(pollfds, poll_ret-check_ret); -+ svc_getreq_poll(my_pollfd, poll_ret-check_ret); - } - } - } -@@ -1183,12 +1167,33 @@ check_rmtcalls(struct pollfd *pfds, int nfds) - return (ncallbacks_found); - } - -+/* -+ * This is really a helper function defined in libtirpc, -+ * but unfortunately, it hasn't been exported yet. -+ */ -+static struct netbuf * -+__rpc_set_netbuf(struct netbuf *nb, const void *ptr, size_t len) -+{ -+ if (nb->len != len) { -+ if (nb->len) -+ mem_free(nb->buf, nb->len); -+ nb->buf = mem_alloc(len); -+ if (nb->buf == NULL) -+ return NULL; -+ -+ nb->maxlen = nb->len = len; -+ } -+ memcpy(nb->buf, ptr, len); -+ return nb; -+} -+ - static void - xprt_set_caller(SVCXPRT *xprt, struct finfo *fi) - { -+ const struct netbuf *caller = fi->caller_addr; - u_int32_t *xidp; - -- *(svc_getrpccaller(xprt)) = *(fi->caller_addr); -+ __rpc_set_netbuf(svc_getrpccaller(xprt), caller->buf, caller->len); - xidp = __rpcb_get_dg_xidp(xprt); - *xidp = fi->caller_xid; - } -@@ -1274,10 +1279,17 @@ handle_reply(int fd, SVCXPRT *xprt) - a.rmt_localvers = fi->versnum; - - xprt_set_caller(xprt, fi); -+#if defined(SVC_XP_AUTH) -+ SVC_XP_AUTH(xprt) = svc_auth_none; -+#else - xprt->xp_auth = &svc_auth_none; -+#endif - svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a); -+#if !defined(SVC_XP_AUTH) - SVCAUTH_DESTROY(xprt->xp_auth); - xprt->xp_auth = NULL; -+#endif -+ - done: - if (buffer) - free(buffer); -diff --git a/src/rpcbind.c b/src/rpcbind.c -index 045daa1..c4265cd 100644 ---- a/src/rpcbind.c -+++ b/src/rpcbind.c -@@ -87,6 +87,7 @@ static inline void __nss_configure_lookup(const char *db, const char *s) {} - int debugging = 0; /* Tell me what's going on */ - int doabort = 0; /* When debugging, do an abort on errors */ - int dofork = 1; /* fork? */ -+int createdsocket = 0; /* Did I create the socket or systemd did it for me? */ - - rpcblist_ptr list_rbl; /* A list of version 3/4 rpcbind services */ - -@@ -445,6 +446,7 @@ init_transport(struct netconfig *nconf) - memset(&sun, 0, sizeof sun); - sun.sun_family = AF_LOCAL; - unlink(_PATH_RPCBINDSOCK); -+ createdsocket = 1; /* We are now in the process of creating the unix socket */ - strcpy(sun.sun_path, _PATH_RPCBINDSOCK); - addrlen = SUN_LEN(&sun); - sa = (struct sockaddr *)&sun; -@@ -846,7 +848,8 @@ static void - terminate(int dummy /*__unused*/) - { - close(rpcbindlockfd); -- unlink(_PATH_RPCBINDSOCK); -+ if(createdsocket) -+ unlink(_PATH_RPCBINDSOCK); - unlink(RPCBINDDLOCK); - #ifdef WARMSTART - write_warmstart(); /* Dump yourself */ -diff --git a/src/security.c b/src/security.c -index 0c9453f..c54ce26 100644 ---- a/src/security.c -+++ b/src/security.c -@@ -17,6 +17,8 @@ - #include - #include - -+#include "xlog.h" -+ - /* - * XXX for special case checks in check_callit. - */ diff --git a/rpcbind-0.2.4-rc2.patch b/rpcbind-0.2.4-rc2.patch deleted file mode 100644 index c29d949..0000000 --- a/rpcbind-0.2.4-rc2.patch +++ /dev/null @@ -1,474 +0,0 @@ -diff --git a/.gitignore b/.gitignore -index 321dff6..a8f1fed 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -27,3 +27,4 @@ rpcbind - rpcinfo - # cscope database files - cscope.* -+systemd/rpcbind.service -diff --git a/Makefile.am b/Makefile.am -index 5ec8cd6..43c2710 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -50,6 +50,10 @@ if SYSTEMD - AM_CPPFLAGS += $(SYSTEMD_CFLAGS) -DSYSTEMD - - rpcbind_LDADD += $(SYSTEMD_LIBS) -+ -+systemdsystemunit_DATA = \ -+ systemd/rpcbind.service \ -+ systemd/rpcbind.socket - endif - - rpcinfo_SOURCES = src/rpcinfo.c -diff --git a/configure.ac b/configure.ac -index af4b74b..f84921e 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -61,4 +61,9 @@ AC_SEARCH_LIBS([pthread_create], [pthread]) - - AC_CHECK_HEADERS([nss.h rpcsvc/mount.h]) - --AC_OUTPUT([Makefile]) -+# make sbindir available for substitution in config file -+# 2 "evals" needed to expand variable names -+AC_SUBST([_sbindir]) -+AC_CONFIG_COMMANDS_PRE([eval eval _sbindir=$sbindir]) -+ -+AC_OUTPUT([Makefile systemd/rpcbind.service]) -diff --git a/src/check_bound.c b/src/check_bound.c -index c70b845..92bfd36 100644 ---- a/src/check_bound.c -+++ b/src/check_bound.c -@@ -70,7 +70,7 @@ static struct fdlist *fdhead; /* Link list of the check fd's */ - static struct fdlist *fdtail; - static char *nullstring = ""; - --static bool_t check_bound __P((struct fdlist *, char *uaddr)); -+static bool_t check_bound(struct fdlist *, char *uaddr); - - /* - * Returns 1 if the given address is bound for the given addr & transport -diff --git a/src/pmap_svc.c b/src/pmap_svc.c -index ad28b93..4c744fe 100644 ---- a/src/pmap_svc.c -+++ b/src/pmap_svc.c -@@ -60,11 +60,11 @@ static char sccsid[] = "@(#)pmap_svc.c 1.23 89/04/05 Copyr 1984 Sun Micro"; - #include "rpcbind.h" - #include "xlog.h" - #include /* svc_getcaller routine definition */ --static struct pmaplist *find_service_pmap __P((rpcprog_t, rpcvers_t, -- rpcprot_t)); --static bool_t pmapproc_change __P((struct svc_req *, SVCXPRT *, u_long)); --static bool_t pmapproc_getport __P((struct svc_req *, SVCXPRT *)); --static bool_t pmapproc_dump __P((struct svc_req *, SVCXPRT *)); -+static struct pmaplist *find_service_pmap(rpcprog_t, rpcvers_t, -+ rpcprot_t); -+static bool_t pmapproc_change(struct svc_req *, SVCXPRT *, u_long); -+static bool_t pmapproc_getport(struct svc_req *, SVCXPRT *); -+static bool_t pmapproc_dump(struct svc_req *, SVCXPRT *); - - /* - * Called for all the version 2 inquiries. -diff --git a/src/rpcb_svc.c b/src/rpcb_svc.c -index bd92201..709e3fb 100644 ---- a/src/rpcb_svc.c -+++ b/src/rpcb_svc.c -@@ -53,10 +53,10 @@ - #include "rpcbind.h" - #include "xlog.h" - --static void *rpcbproc_getaddr_3_local __P((void *, struct svc_req *, SVCXPRT *, -- rpcvers_t)); --static void *rpcbproc_dump_3_local __P((void *, struct svc_req *, SVCXPRT *, -- rpcvers_t)); -+static void *rpcbproc_getaddr_3_local(void *, struct svc_req *, SVCXPRT *, -+ rpcvers_t); -+static void *rpcbproc_dump_3_local(void *, struct svc_req *, SVCXPRT *, -+ rpcvers_t); - - /* - * Called by svc_getreqset. There is a separate server handle for -@@ -75,7 +75,7 @@ rpcb_service_3(struct svc_req *rqstp, SVCXPRT *transp) - } argument; - char *result; - xdrproc_t xdr_argument, xdr_result; -- void *(*local) __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); -+ void *(*local)(void *, struct svc_req *, SVCXPRT *, rpcvers_t); - rpcprog_t setprog = 0; - - rpcbs_procinfo(RPCBVERS_3_STAT, rqstp->rq_proc); -diff --git a/src/rpcb_svc_4.c b/src/rpcb_svc_4.c -index b673452..5094879 100644 ---- a/src/rpcb_svc_4.c -+++ b/src/rpcb_svc_4.c -@@ -54,13 +54,11 @@ - #include "rpcbind.h" - #include "xlog.h" - --static void *rpcbproc_getaddr_4_local __P((void *, struct svc_req *, SVCXPRT *, -- rpcvers_t)); --static void *rpcbproc_getversaddr_4_local __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); --static void *rpcbproc_getaddrlist_4_local -- __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); --static void free_rpcb_entry_list __P((rpcb_entry_list_ptr *)); --static void *rpcbproc_dump_4_local __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); -+static void *rpcbproc_getaddr_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); -+static void *rpcbproc_getversaddr_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); -+static void *rpcbproc_getaddrlist_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); -+static void free_rpcb_entry_list(rpcb_entry_list_ptr *); -+static void *rpcbproc_dump_4_local(void *, struct svc_req *, SVCXPRT *, rpcvers_t); - - /* - * Called by svc_getreqset. There is a separate server handle for -@@ -78,7 +76,7 @@ rpcb_service_4(struct svc_req *rqstp, SVCXPRT *transp) - } argument; - char *result; - xdrproc_t xdr_argument, xdr_result; -- void *(*local) __P((void *, struct svc_req *, SVCXPRT *, rpcvers_t)); -+ void *(*local)(void *, struct svc_req *, SVCXPRT *, rpcvers_t); - rpcprog_t setprog = 0; - - rpcbs_procinfo(RPCBVERS_4_STAT, rqstp->rq_proc); -diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c -index ff9ce6b..5862c26 100644 ---- a/src/rpcb_svc_com.c -+++ b/src/rpcb_svc_com.c -@@ -100,29 +100,29 @@ struct finfo { - static struct finfo FINFO[NFORWARD]; - - --static bool_t xdr_encap_parms __P((XDR *, struct encap_parms *)); --static bool_t xdr_rmtcall_args __P((XDR *, struct r_rmtcall_args *)); --static bool_t xdr_rmtcall_result __P((XDR *, struct r_rmtcall_args *)); --static bool_t xdr_opaque_parms __P((XDR *, struct r_rmtcall_args *)); --static int find_rmtcallfd_by_netid __P((char *)); --static SVCXPRT *find_rmtcallxprt_by_fd __P((int)); --static int forward_register __P((u_int32_t, struct netbuf *, int, char *, -- rpcproc_t, rpcvers_t, u_int32_t *)); --static struct finfo *forward_find __P((u_int32_t)); --static int free_slot_by_xid __P((u_int32_t)); --static int free_slot_by_index __P((int)); --static int netbufcmp __P((struct netbuf *, struct netbuf *)); --static struct netbuf *netbufdup __P((struct netbuf *)); --static void netbuffree __P((struct netbuf *)); --static int check_rmtcalls __P((struct pollfd *, int)); --static void xprt_set_caller __P((SVCXPRT *, struct finfo *)); --static void send_svcsyserr __P((SVCXPRT *, struct finfo *)); --static void handle_reply __P((int, SVCXPRT *)); --static void find_versions __P((rpcprog_t, char *, rpcvers_t *, rpcvers_t *)); --static rpcblist_ptr find_service __P((rpcprog_t, rpcvers_t, char *)); --static char *getowner __P((SVCXPRT *, char *, size_t)); --static int add_pmaplist __P((RPCB *)); --static int del_pmaplist __P((RPCB *)); -+static bool_t xdr_encap_parms(XDR *, struct encap_parms *); -+static bool_t xdr_rmtcall_args(XDR *, struct r_rmtcall_args *); -+static bool_t xdr_rmtcall_result(XDR *, struct r_rmtcall_args *); -+static bool_t xdr_opaque_parms(XDR *, struct r_rmtcall_args *); -+static int find_rmtcallfd_by_netid(char *); -+static SVCXPRT *find_rmtcallxprt_by_fd(int); -+static int forward_register(u_int32_t, struct netbuf *, int, char *, -+ rpcproc_t, rpcvers_t, u_int32_t *); -+static struct finfo *forward_find(u_int32_t); -+static int free_slot_by_xid(u_int32_t); -+static int free_slot_by_index(int); -+static int netbufcmp(struct netbuf *, struct netbuf *); -+static struct netbuf *netbufdup(struct netbuf *); -+static void netbuffree(struct netbuf *); -+static int check_rmtcalls(struct pollfd *, int); -+static void xprt_set_caller(SVCXPRT *, struct finfo *); -+static void send_svcsyserr(SVCXPRT *, struct finfo *); -+static void handle_reply(int, SVCXPRT *); -+static void find_versions(rpcprog_t, char *, rpcvers_t *, rpcvers_t *); -+static rpcblist_ptr find_service(rpcprog_t, rpcvers_t, char *); -+static char *getowner(SVCXPRT *, char *, size_t); -+static int add_pmaplist(RPCB *); -+static int del_pmaplist(RPCB *); - - /* - * Set a mapping of program, version, netid -@@ -536,10 +536,6 @@ create_rmtcall_fd(struct netconfig *nconf) - rmttail->next = rmt; - rmttail = rmt; - } -- /* XXX not threadsafe */ -- if (fd > svc_maxfd) -- svc_maxfd = fd; -- FD_SET(fd, &svc_fdset); - return (fd); - } - -@@ -1056,9 +1052,6 @@ free_slot_by_index(int index) - fi = &FINFO[index]; - if (fi->flag & FINFO_ACTIVE) { - netbuffree(fi->caller_addr); -- /* XXX may be too big, but can't access xprt array here */ -- if (fi->forward_fd >= svc_maxfd) -- svc_maxfd--; - free(fi->uaddr); - fi->flag &= ~FINFO_ACTIVE; - rpcb_rmtcalls--; -@@ -1097,35 +1090,28 @@ netbuffree(struct netbuf *ap) - } - - --#define MASKVAL (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND) --extern bool_t __svc_clean_idle(fd_set *, int, bool_t); -- - void - my_svc_run() - { -- size_t nfds; -- struct pollfd pollfds[FD_SETSIZE]; - int poll_ret, check_ret; - int n; --#ifdef SVC_RUN_DEBUG -- int i; --#endif -- register struct pollfd *p; -- fd_set cleanfds; - - for (;;) { -- p = pollfds; -- for (n = 0; n <= svc_maxfd; n++) { -- if (FD_ISSET(n, &svc_fdset)) { -- p->fd = n; -- p->events = MASKVAL; -- p++; -- } -- } -- nfds = p - pollfds; -- poll_ret = 0; -+ struct pollfd my_pollfd[svc_max_pollfd]; -+ int i; -+ -+ if (svc_max_pollfd == 0 && svc_pollfd == NULL) -+ return; - -- switch (poll_ret = poll(pollfds, nfds, 30 * 1000)) { -+ -+ for (i = 0; i < svc_max_pollfd; ++i) -+ { -+ my_pollfd[i].fd = svc_pollfd[i].fd; -+ my_pollfd[i].events = svc_pollfd[i].events; -+ my_pollfd[i].revents = 0; -+ } -+ -+ switch (poll_ret = poll(my_pollfd, svc_max_pollfd, 30 * 1000)) { - case -1: - /* - * We ignore all errors, continuing with the assumption -@@ -1133,8 +1119,6 @@ my_svc_run() - * other outside event) and not caused by poll(). - */ - case 0: -- cleanfds = svc_fdset; -- __svc_clean_idle(&cleanfds, 30, FALSE); - continue; - default: - /* -@@ -1144,10 +1128,10 @@ my_svc_run() - * don't call svc_getreq_poll. Otherwise, there - * must be another so we must call svc_getreq_poll. - */ -- if ((check_ret = check_rmtcalls(pollfds, nfds)) == -+ if ((check_ret = check_rmtcalls(my_pollfd, svc_max_pollfd)) == - poll_ret) - continue; -- svc_getreq_poll(pollfds, poll_ret-check_ret); -+ svc_getreq_poll(my_pollfd, poll_ret-check_ret); - } - } - } -@@ -1183,12 +1167,33 @@ check_rmtcalls(struct pollfd *pfds, int nfds) - return (ncallbacks_found); - } - -+/* -+ * This is really a helper function defined in libtirpc, -+ * but unfortunately, it hasn't been exported yet. -+ */ -+static struct netbuf * -+__rpc_set_netbuf(struct netbuf *nb, const void *ptr, size_t len) -+{ -+ if (nb->len != len) { -+ if (nb->len) -+ mem_free(nb->buf, nb->len); -+ nb->buf = mem_alloc(len); -+ if (nb->buf == NULL) -+ return NULL; -+ -+ nb->maxlen = nb->len = len; -+ } -+ memcpy(nb->buf, ptr, len); -+ return nb; -+} -+ - static void - xprt_set_caller(SVCXPRT *xprt, struct finfo *fi) - { -+ const struct netbuf *caller = fi->caller_addr; - u_int32_t *xidp; - -- *(svc_getrpccaller(xprt)) = *(fi->caller_addr); -+ __rpc_set_netbuf(svc_getrpccaller(xprt), caller->buf, caller->len); - xidp = __rpcb_get_dg_xidp(xprt); - *xidp = fi->caller_xid; - } -@@ -1274,10 +1279,17 @@ handle_reply(int fd, SVCXPRT *xprt) - a.rmt_localvers = fi->versnum; - - xprt_set_caller(xprt, fi); -+#if defined(SVC_XP_AUTH) -+ SVC_XP_AUTH(xprt) = svc_auth_none; -+#else - xprt->xp_auth = &svc_auth_none; -+#endif - svc_sendreply(xprt, (xdrproc_t) xdr_rmtcall_result, (char *) &a); -+#if !defined(SVC_XP_AUTH) - SVCAUTH_DESTROY(xprt->xp_auth); - xprt->xp_auth = NULL; -+#endif -+ - done: - if (buffer) - free(buffer); -diff --git a/src/rpcbind.c b/src/rpcbind.c -index 045daa1..87ccdc2 100644 ---- a/src/rpcbind.c -+++ b/src/rpcbind.c -@@ -87,6 +87,7 @@ static inline void __nss_configure_lookup(const char *db, const char *s) {} - int debugging = 0; /* Tell me what's going on */ - int doabort = 0; /* When debugging, do an abort on errors */ - int dofork = 1; /* fork? */ -+int createdsocket = 0; /* Did I create the socket or systemd did it for me? */ - - rpcblist_ptr list_rbl; /* A list of version 3/4 rpcbind services */ - -@@ -135,13 +136,13 @@ char *tcp_uaddr; /* Universal TCP address */ - static char servname[] = "rpcbind"; - static char superuser[] = "superuser"; - --int main __P((int, char *[])); -+int main(int, char *[]); - --static int init_transport __P((struct netconfig *)); --static void rbllist_add __P((rpcprog_t, rpcvers_t, struct netconfig *, -- struct netbuf *)); --static void terminate __P((int)); --static void parseargs __P((int, char *[])); -+static int init_transport(struct netconfig *); -+static void rbllist_add(rpcprog_t, rpcvers_t, struct netconfig *, -+ struct netbuf *); -+static void terminate(int); -+static void parseargs(int, char *[]); - - int - main(int argc, char *argv[]) -@@ -445,6 +446,7 @@ init_transport(struct netconfig *nconf) - memset(&sun, 0, sizeof sun); - sun.sun_family = AF_LOCAL; - unlink(_PATH_RPCBINDSOCK); -+ createdsocket = 1; /* We are now in the process of creating the unix socket */ - strcpy(sun.sun_path, _PATH_RPCBINDSOCK); - addrlen = SUN_LEN(&sun); - sa = (struct sockaddr *)&sun; -@@ -846,7 +848,8 @@ static void - terminate(int dummy /*__unused*/) - { - close(rpcbindlockfd); -- unlink(_PATH_RPCBINDSOCK); -+ if(createdsocket) -+ unlink(_PATH_RPCBINDSOCK); - unlink(RPCBINDDLOCK); - #ifdef WARMSTART - write_warmstart(); /* Dump yourself */ -diff --git a/src/security.c b/src/security.c -index 0c9453f..c54ce26 100644 ---- a/src/security.c -+++ b/src/security.c -@@ -17,6 +17,8 @@ - #include - #include - -+#include "xlog.h" -+ - /* - * XXX for special case checks in check_callit. - */ -diff --git a/src/util.c b/src/util.c -index a6c835b..74b0284 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -70,7 +70,7 @@ static struct sockaddr_in *local_in4; - static struct sockaddr_in6 *local_in6; - #endif - --static int bitmaskcmp __P((void *, void *, void *, int)); -+static int bitmaskcmp(void *, void *, void *, int); - - /* - * For all bits set in "mask", compare the corresponding bits in -diff --git a/src/warmstart.c b/src/warmstart.c -index b6eb73e..122a058 100644 ---- a/src/warmstart.c -+++ b/src/warmstart.c -@@ -58,8 +58,8 @@ - #define PMAPFILE RPCBIND_STATEDIR "/portmap.xdr" - #endif - --static bool_t write_struct __P((char *, xdrproc_t, void *)); --static bool_t read_struct __P((char *, xdrproc_t, void *)); -+static bool_t write_struct(char *, xdrproc_t, void *); -+static bool_t read_struct(char *, xdrproc_t, void *); - - static bool_t - write_struct(char *filename, xdrproc_t structproc, void *list) -diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in -new file mode 100644 -index 0000000..c173b83 ---- /dev/null -+++ b/systemd/rpcbind.service.in -@@ -0,0 +1,17 @@ -+[Unit] -+Description=RPC Bind -+Documentation=man:rpcbind(8) -+DefaultDependencies=no -+ -+# Make sure we use the IP addresses listed for -+# rpcbind.socket, no matter how this unit is started. -+Wants=rpcbind.socket -+After=rpcbind.socket -+ -+[Service] -+Type=notify -+# distro can provide a drop-in adding EnvironmentFile=-/??? if needed. -+ExecStart=@_sbindir@/rpcbind $RPCBIND_OPTIONS -w -f -+ -+[Install] -+WantedBy=multi-user.target -diff --git a/systemd/rpcbind.socket b/systemd/rpcbind.socket -new file mode 100644 -index 0000000..3b1a936 ---- /dev/null -+++ b/systemd/rpcbind.socket -@@ -0,0 +1,18 @@ -+[Unit] -+Description=RPCbind Server Activation Socket -+DefaultDependencies=no -+Wants=rpcbind.target -+Before=rpcbind.target -+ -+[Socket] -+ListenStream=/run/rpcbind.sock -+ -+# RPC netconfig can't handle ipv6/ipv4 dual sockets -+BindIPv6Only=ipv6-only -+ListenStream=0.0.0.0:111 -+ListenDatagram=0.0.0.0:111 -+ListenStream=[::]:111 -+ListenDatagram=[::]:111 -+ -+[Install] -+WantedBy=sockets.target diff --git a/rpcbind-0.2.4-runstatdir.patch b/rpcbind-0.2.4-runstatdir.patch deleted file mode 100644 index 53abb23..0000000 --- a/rpcbind-0.2.4-runstatdir.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff -up rpcbind-0.2.4/configure.ac.orig rpcbind-0.2.4/configure.ac ---- rpcbind-0.2.4/configure.ac.orig 2017-01-03 13:51:48.426758826 -0500 -+++ rpcbind-0.2.4/configure.ac 2017-01-16 11:19:12.888958858 -0500 -@@ -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=/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-0.2.4/configure.orig rpcbind-0.2.4/configure ---- rpcbind-0.2.4/configure.orig 2017-01-03 13:51:50.222749413 -0500 -+++ rpcbind-0.2.4/configure 2017-01-16 11:20:29.650978018 -0500 -@@ -1389,7 +1389,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] - -@@ -3887,7 +3887,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-0.2.4/man/rpcbind-fr.8.orig rpcbind-0.2.4/man/rpcbind-fr.8 ---- rpcbind-0.2.4/man/rpcbind-fr.8.orig 2016-11-28 15:47:28.000000000 -0500 -+++ rpcbind-0.2.4/man/rpcbind-fr.8 2017-01-16 11:19:12.888958858 -0500 -@@ -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-0.2.4/src/rpcbind.c.orig rpcbind-0.2.4/src/rpcbind.c ---- rpcbind-0.2.4/src/rpcbind.c.orig 2016-11-28 15:47:28.000000000 -0500 -+++ rpcbind-0.2.4/src/rpcbind.c 2017-01-16 11:20:16.499974736 -0500 -@@ -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..ffecb53 --- /dev/null +++ b/rpcbind-0.2.4-systemd-rundir.patch @@ -0,0 +1,35 @@ +diff -up rpcbind-1.2.8/src/rpcbind.c.orig rpcbind-1.2.8/src/rpcbind.c +--- rpcbind-1.2.8/src/rpcbind.c.orig 2025-07-26 16:57:24.000000000 -0400 ++++ rpcbind-1.2.8/src/rpcbind.c 2025-07-26 17:15:51.933467872 -0400 +@@ -214,6 +214,8 @@ static void version() + fprintf(stderr, "\n"); + } + ++char *systemdtmp = "/usr/bin/systemd-tmpfiles --create rpcbind.conf"; ++ + int + main(int argc, char *argv[]) + { +@@ -221,13 +223,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 deleted file mode 100644 index 4e5c20f..0000000 --- a/rpcbind-0.2.4-systemd-service.patch +++ /dev/null @@ -1,14 +0,0 @@ -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-01-28 11:47:59.505282030 -0500 -+++ rpcbind-0.2.4/systemd/rpcbind.service.in 2017-01-28 13:13:43.763324301 -0500 -@@ -6,8 +6,8 @@ RequiresMountsFor=@statedir@ - - # Make sure we use the IP addresses listed for - # rpcbind.socket, no matter how this unit is started. --Wants=rpcbind.socket --After=rpcbind.socket -+Wants=rpcbind.socket systemd-tmpfiles-setup.service -+After=rpcbind.socket systemd-tmpfiles-setup.service - - [Service] - Type=notify diff --git a/rpcbind-0.2.4-systemd-statdir.patch b/rpcbind-0.2.4-systemd-statdir.patch deleted file mode 100644 index f00b30d..0000000 --- a/rpcbind-0.2.4-systemd-statdir.patch +++ /dev/null @@ -1,27 +0,0 @@ -commit ee569be4d6189a68b38d2af162af00ff475b48e2 -Author: Yann Leprince -Date: Wed Dec 21 14:32:54 2016 -0500 - - Fix boot dependency in systemd service file - - From: Yann Leprince - - This fix ensures that a separate /var partition will be mounted before - rpcbind tries to write its status to /var/run. - - Acked-by: NeilBrown - Signed-off-by: Yann Leprince - Signed-off-by: Steve Dickson - -diff --git a/systemd/rpcbind.service.in b/systemd/rpcbind.service.in -index e7e86da..03a9e0b 100644 ---- a/systemd/rpcbind.service.in -+++ b/systemd/rpcbind.service.in -@@ -2,6 +2,7 @@ - Description=RPC Bind - Documentation=man:rpcbind(8) - DefaultDependencies=no -+RequiresMountsFor=@statedir@ - - # Make sure we use the IP addresses listed for - # rpcbind.socket, no matter how this unit is started. 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.spec b/rpcbind.spec index 15e5676..0676bb2 100644 --- a/rpcbind.spec +++ b/rpcbind.spec @@ -1,105 +1,87 @@ +# 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: 0.2.4 -Release: 5%{?dist} +Version: 1.2.8 +Release: 0%{?dist} Summary: Universal Addresses to RPC Program Number Mapper -Group: System Environment/Daemons -License: BSD +License: BSD-3-Clause URL: http://nfsv4.bullopensource.org -BuildRoot: %{_tmppath}/%{name}-%{version}-root-%(%{__id_u} -n) Source0: http://downloads.sourceforge.net/rpcbind/%{name}-%{version}.tar.bz2 Source1: %{name}.sysconfig Requires: glibc-common setup +Requires: libtirpc >= 1.3.5 Conflicts: man-pages < 2.43-12 +BuildRequires: make BuildRequires: automake, autoconf, libtool, systemd, systemd-devel -BuildRequires: libtirpc-devel, quota-devel, tcp_wrappers-devel -Requires(pre): coreutils shadow-utils -Requires(post): chkconfig systemd +BuildRequires: libtirpc-devel, quota-devel +Requires(pre): coreutils +Requires(post): systemd Requires(preun): systemd Requires(postun): systemd coreutils -Patch001: rpcbind-0.2.4-systemd-statdir.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 +Patch100: rpcbind-0.2.3-systemd-tmpfiles.patch +Patch101: rpcbind-0.2.4-systemd-rundir.patch Provides: portmap = %{version}-%{release} Obsoletes: portmap <= 4.0-65.3 +%if "%{_sbindir}" == "%{_bindir}" +# Compat symlinks for Requires in other packages. +# We rely on filesystem to create the symlinks for us. +Requires: filesystem(unmerged-sbin-symlinks) +Provides: /usr/sbin/rpcbind +Provides: /usr/sbin/rpcinfo +%endif + %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 +%autosetup -p1 -# 1401561 - rpcbind-0.2.3-12.rc2.fc24 fails to start at boot -%patch001 -p1 +# Create a sysusers.d config file +cat >rpcbind.sysusers.conf </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 +install -m0644 -D rpcbind.sysusers.conf %{buildroot}%{_sysusersdir}/rpcbind.conf %post %systemd_post rpcbind.service rpcbind.socket @@ -107,36 +89,181 @@ fi %preun %systemd_preun rpcbind.service rpcbind.socket +# NOTE: We only restart rpcbind.socket in the %postun scriptlet in order to +# avoid the race described in: +# +# https://github.com/systemd/systemd/issues/13271 +# https://github.com/systemd/systemd/issues/8102 +# +# Restarting rpcbind.socket causes rpcbind.service to be restarted automatically +# due to "Requires=rpcbind.socket" in the rpcbind.service unit file. %postun -%systemd_postun_with_restart rpcbind.service rpcbind.socket - -%triggerun -- rpcbind < 0.2.0-15 -%{_bindir}/systemd-sysv-convert --save rpcbind >/dev/null 2>&1 ||: -/bin/systemctl --no-reload enable rpcbind.service >/dev/null 2>&1 -/sbin/chkconfig --del rpcbind >/dev/null 2>&1 || : -/bin/systemctl try-restart rpcbind.service >/dev/null 2>&1 || : - -%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 +%systemd_postun_with_restart rpcbind.socket %files -%defattr(-,root,root) +%license COPYING %config(noreplace) /etc/sysconfig/rpcbind %doc AUTHORS ChangeLog README %{_bindir}/rpcbind %{_bindir}/rpcinfo +%if "%{_sbindir}" != "%{_bindir}" %{_sbindir}/rpcbind %{_sbindir}/rpcinfo +%endif %{_mandir}/man8/* %{_unitdir}/%{name}.service %{_unitdir}/%{name}.socket %{_tmpfilesdir}/%{name}.conf +%attr(0700, %{rpcbind_user_group}, %{rpcbind_user_group}) %dir %{rpcbind_state_dir} +%{_sysusersdir}/rpcbind.conf %changelog +* Sat Jul 26 2025 Steve Dickson 1.2.8-0 +- Updated to latest upstream release: rpcbind-1_2_8 (bz 2300081) + +* Fri Jul 25 2025 Fedora Release Engineering - 1.2.7-2.rc1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed May 7 2025 Scott Mayhew - 1.2.7-2.rc1 +- Fix rpm scriptlets to remove excessive restarts during upgrade + +* Wed Jan 29 2025 Zbigniew JÄ™drzejewski-Szmek - 1.2.7-1.rc1.4 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Sat Jan 18 2025 Fedora Release Engineering - 1.2.7-1.rc1.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Jan 14 2025 Panu Matilainen - 1.2.7-1.rc1.2 +- Add provides for the manually created rpc user and group + +* Sun Jan 12 2025 Zbigniew JÄ™drzejewski-Szmek - 1.2.7-1.rc1.1 +- Rebuilt for the bin-sbin merge (2nd attempt) + +* Mon Sep 9 2024 Steve Dickson 1.2.8-rc1 +- Updated to latest upstream RC release: rpcbind-1_2_8-rc1 + +* Tue Aug 13 2024 Steve Dickson 1.2.7-1 +- Added Requirement for libtirpc (bz 2304327) + +* Thu Jul 25 2024 Steve Dickson 1.2.7-0 +- Updated to latest upstream release: rpcbind-1_2_7 + +* Fri Jul 19 2024 Fedora Release Engineering - 1.2.6-5.rc3.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Apr 11 2024 Zbigniew JÄ™drzejewski-Szmek - 1.2.6-5.rc3 +- Prepare for bin-sbin merge + (https://fedoraproject.org/wiki/Changes/Unify_bin_and_sbin) + +* Mon Mar 18 2024 Steve Dickson 1.2.6-4.rc3 +- Updated to latest upstream RC release: rpcbind-1_2_7-rc3 + +* Fri Jan 26 2024 Fedora Release Engineering - 1.2.6-4.rc2.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.2.6-4.rc2.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Oct 16 2023 Pavel Reichl - 1.2.6-4.rc2.2 +- Convert License tag to SPDX format + +* Fri Jul 21 2023 Fedora Release Engineering - 1.2.6-4.rc2.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Feb 28 2023 Steve Dickson 1.2.6-4.rc2 +- Updated to latest upstream RC release: rpcbind-1_2_7-rc2 + +* Fri Jan 20 2023 Fedora Release Engineering - 1.2.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 1.2.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 1.2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1.2.6-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon May 17 2021 Steve Dickson 1.2.6-0 +- Updated to latest upstream release: rpcbind-1_2_6 (bz 1959127) + +* Tue Mar 02 2021 Zbigniew JÄ™drzejewski-Szmek - 1.2.5-5.rc1.5 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Jan 27 2021 Fedora Release Engineering - 1.2.5-5.rc1.4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* 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 diff --git a/sources b/sources index 9caa437..26c4f09 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -cf10cd41ed8228fc54c316191c1f07fe rpcbind-0.2.4.tar.bz2 +SHA512 (rpcbind-1.2.8.tar.bz2) = 66f3955a67c4d0142ec635614ceafbc9bdbea985f2edaeec903f17efaf3c2e98f6483e8e6b7f1358cf8d2c1c877b281d153a3bf1b6748b6d259ae7ad1465ee71