Author: baggins Date: Fri Sep 17 12:14:11 2010 GMT Module: packages Tag: HEAD ---- Log message: - rel 2 - bugfixes from upstream
---- Files affected: packages/rpcbind: rpcbind.spec (1.17 -> 1.18) , rpcbind-SO_REUSEADDR.patch (NONE -> 1.1) (NEW), rpcbind-nofork.patch (NONE -> 1.1) (NEW), rpcbind-usage.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/rpcbind/rpcbind.spec diff -u packages/rpcbind/rpcbind.spec:1.17 packages/rpcbind/rpcbind.spec:1.18 --- packages/rpcbind/rpcbind.spec:1.17 Wed Apr 21 15:04:10 2010 +++ packages/rpcbind/rpcbind.spec Fri Sep 17 14:14:06 2010 @@ -3,7 +3,7 @@ Summary(pl.UTF-8): Demon odwzorowujący adresy uniwersalne na numery programów RPC Name: rpcbind Version: 0.2.0 -Release: 1 +Release: 2 License: GPL Group: Daemons Source0: http://dl.sourceforge.net/rpcbind/%{name}-%{version}.tar.bz2 @@ -13,6 +13,9 @@ Patch0: %{name}-libwrap.patch Patch1: %{name}-syslog.patch Patch2: %{name}-sunrpc.patch +Patch3: %{name}-usage.patch +Patch4: %{name}-SO_REUSEADDR.patch +Patch5: %{name}-nofork.patch # http://nfsv4.bullopensource.org/doc/tirpc_rpcbind.php URL: http://sourceforge.net/projects/rpcbind/ BuildRequires: autoconf @@ -48,6 +51,9 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build %{__libtoolize} @@ -112,6 +118,10 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.18 2010/09/17 12:14:06 baggins +- rel 2 +- bugfixes from upstream + Revision 1.17 2010/04/21 13:04:10 baggins - 0.2.0 ================================================================ Index: packages/rpcbind/rpcbind-SO_REUSEADDR.patch diff -u /dev/null packages/rpcbind/rpcbind-SO_REUSEADDR.patch:1.1 --- /dev/null Fri Sep 17 14:14:11 2010 +++ packages/rpcbind/rpcbind-SO_REUSEADDR.patch Fri Sep 17 14:14:05 2010 @@ -0,0 +1,47 @@ +commit 68556dc512493868960b367406e04d7169c003a8 +Author: Jeff Layton <[email protected]> +Date: Tue Jun 22 17:33:14 2010 -0400 + + nd: set SO_REUSEADDR on NC_TPI_COTS listening sockets + + I previously sent this patch to the libtirpc-devel list but got no + response. Resending with wider distribution... + + If we don't set SO_REUSEADDR, then if there are any sockets on this port + in TIME_WAIT state when rpcbind is restarted then that will prevent the + bind() call from succeeding. + + Details of the problem are here: + + https://bugzilla.redhat.com/show_bug.cgi?id=597356 + + Signed-off-by: Jeff Layton <[email protected]> + Signed-off-by: Steve Dickson <[email protected]> + +diff --git a/src/rpcbind.c b/src/rpcbind.c +index ddf2cfc..c8f0d9f 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -276,6 +276,7 @@ init_transport(struct netconfig *nconf) + int addrlen = 0; + int nhostsbak; + int checkbind; ++ int on = 1; + struct sockaddr *sa = NULL; + u_int32_t host_addr[4]; /* IPv4 or IPv6 */ + struct sockaddr_un sun; +@@ -493,6 +494,14 @@ init_transport(struct netconfig *nconf) + } + oldmask = umask(S_IXUSR|S_IXGRP|S_IXOTH); + __rpc_fd2sockinfo(fd, &si); ++ if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, ++ sizeof(on)) != 0) { ++ syslog(LOG_ERR, "cannot set SO_REUSEADDR on %s", ++ nconf->nc_netid); ++ if (res != NULL) ++ freeaddrinfo(res); ++ return 1; ++ } + if (bind(fd, sa, addrlen) < 0) { + syslog(LOG_ERR, "cannot bind %s: %m", nconf->nc_netid); + if (res != NULL) ================================================================ Index: packages/rpcbind/rpcbind-nofork.patch diff -u /dev/null packages/rpcbind/rpcbind-nofork.patch:1.1 --- /dev/null Fri Sep 17 14:14:11 2010 +++ packages/rpcbind/rpcbind-nofork.patch Fri Sep 17 14:14:06 2010 @@ -0,0 +1,72 @@ +commit eb36cf198795b09c1ba796044fc99fa40c5a2b33 +Author: Steve Dickson <[email protected]> +Date: Tue Jul 13 15:52:18 2010 -0400 + + rpcbind: add no-fork mode + + Signed-off-by: Lennart Poettering <[email protected]> + Signed-off-by: Steve Dickson <[email protected]> + +diff --git a/man/rpcbind.8 b/man/rpcbind.8 +index 32806d4..c5b8fb7 100644 +--- a/man/rpcbind.8 ++++ b/man/rpcbind.8 +@@ -82,6 +82,8 @@ during operation, and will abort on certain errors if + is also specified. + With this option, the name-to-address translation consistency + checks are shown in detail. ++.It Fl f ++Do not fork and become a background process. + .It Fl h + Specify specific IP addresses to bind to for UDP requests. + This option +diff --git a/src/rpcbind.c b/src/rpcbind.c +index c8f0d9f..63023e1 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -77,6 +77,7 @@ + + int debugging = 0; /* Tell me what's going on */ + int doabort = 0; /* When debugging, do an abort on errors */ ++int dofork = 1; /* fork? */ + + rpcblist_ptr list_rbl; /* A list of version 3/4 rpcbind services */ + +@@ -213,8 +214,8 @@ main(int argc, char *argv[]) + printf("\n"); + } + #endif +- } else { +- if (daemon(0, 0)) ++ } else if (dofork) { ++ if (daemon(0, 0)) + err(1, "fork failed"); + } + +@@ -740,7 +741,7 @@ parseargs(int argc, char *argv[]) + { + int c; + oldstyle_local = 1; +- while ((c = getopt(argc, argv, "adh:ilsw")) != -1) { ++ while ((c = getopt(argc, argv, "adh:ilswf")) != -1) { + switch (c) { + case 'a': + doabort = 1; /* when debugging, do an abort on */ +@@ -767,13 +768,16 @@ parseargs(int argc, char *argv[]) + case 's': + runasdaemon = 1; + break; ++ case 'f': ++ dofork = 0; ++ break; + #ifdef WARMSTART + case 'w': + warmstart = 1; + break; + #endif + default: /* error */ +- fprintf(stderr, "usage: rpcbind [-adhilsw]\n"); ++ fprintf(stderr, "usage: rpcbind [-adhilswf]\n"); + exit (1); + } + } ================================================================ Index: packages/rpcbind/rpcbind-usage.patch diff -u /dev/null packages/rpcbind/rpcbind-usage.patch:1.1 --- /dev/null Fri Sep 17 14:14:11 2010 +++ packages/rpcbind/rpcbind-usage.patch Fri Sep 17 14:14:06 2010 @@ -0,0 +1,31 @@ +commit c5e04d3ef1b4d9a24741dc865aaa55b07fe3c89f +Author: Steve Dickson <[email protected]> +Date: Thu Jun 25 08:41:29 2009 -0400 + + Corrected the usage info to match what the rpcbind man + page says. + + Signed-off-by: Steve Dickson <[email protected]> + +diff --git a/src/rpcbind.c b/src/rpcbind.c +index 525ffba..ddf2cfc 100644 +--- a/src/rpcbind.c ++++ b/src/rpcbind.c +@@ -731,7 +731,7 @@ parseargs(int argc, char *argv[]) + { + int c; + oldstyle_local = 1; +- while ((c = getopt(argc, argv, "dwah:ils")) != -1) { ++ while ((c = getopt(argc, argv, "adh:ilsw")) != -1) { + switch (c) { + case 'a': + doabort = 1; /* when debugging, do an abort on */ +@@ -764,7 +764,7 @@ parseargs(int argc, char *argv[]) + break; + #endif + default: /* error */ +- fprintf(stderr, "usage: rpcbind [-Idwils]\n"); ++ fprintf(stderr, "usage: rpcbind [-adhilsw]\n"); + exit (1); + } + } ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/rpcbind/rpcbind.spec?r1=1.17&r2=1.18&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
