Hello community, here is the log from the commit of package rpcbind for openSUSE:Factory checked in at 2014-12-16 14:47:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rpcbind (Old) and /work/SRC/openSUSE:Factory/.rpcbind.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rpcbind" Changes: -------- --- /work/SRC/openSUSE:Factory/rpcbind/rpcbind.changes 2014-11-24 11:14:26.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.rpcbind.new/rpcbind.changes 2014-12-16 14:47:06.000000000 +0100 @@ -1,0 +2,50 @@ +Fri Dec 12 17:01:44 UTC 2014 - [email protected] + +- 0002-rpcinfo_warmstart-no_warning_about_missing_file.patch: fix + merge issue causing segfaults on missing file (bnc#909619). + +------------------------------------------------------------------- +Thu Dec 11 13:07:09 CET 2014 - [email protected] + +- Split off 0003-systemd-no-dualmode.patch from + 0001-systemd-enhancements.patch for easier upstream submission. +- Split off 0004-systemd-sd_notify.patch from + 0001-systemd-enhancements.patch for easier upstream submission. +- Rename 0001-systemd-enhancements.patch to 0001-systemd-unit-files.patch + +------------------------------------------------------------------- +Tue Dec 9 15:52:01 CET 2014 - [email protected] + +- Update to latest rpcbind 0.2.2 upstream release. +- Following patches are upstream: + - 0001-Fix-building-one-systems-w-out-nss.h.patch + - 0002-Rename-configure.in-to-configure.ac.patch + - 0003-rpcbind-rpcuser-not-being-set-in-Makefile.am.patch + - 0004-Silence-a-warning-about-setgroups-being-implicitly-d.patch +- Adjust following patches: + - 0005-Remove-obsolete-function-in6_fillscopeid.patch + - 0006-In-init_transport-move-creation-of-COTS-sockets-clos.patch + - 0018-configure-check-for-nss.h.patch +- Obsolete patches: + - 0015-When-using-systemd-activation-make-rpcbind-notify-sy.patch + - 0016-Notify-systemd-unconditionally.patch + - 0012-Support-systemd-activation.patch + - 0013-socket-activation-Fix-rpcbind.service-to-use-separat.patch + - 0017-Pull-the-sysconfig-file-into-rpcbind.service-and-use.patch + - 0025-rpcinfo-warmstat_no-warning-about-missing-file.patch + - 0026-systemd-no-default-dep + - 0027-socket-before-service.patch + - 0028-rpcbind-after-var-run.patch + - 0029-rpcbind-sd-notify-stupid-errmsg.patch +- New patches: + - 0001-systemd-enhancements.patch + - 0002-rpcinfo_warmstart-no_warning_about_missing_file.patch +- Disabled patches: + - 0008-First-part-of-init_transport-refactoring.patch + - 0009-init_transport-move-the-registration-code-into-a-sep.patch + - 0010-Fix-the-behavior-when-specifying-the-h-option.patch + - 0011-Clean-up-the-way-we-handle-the-h-option-in-init_tran.patch + - 0014-When-using-systemd-redirect-syslog-calls-to-the-syst.patch + - 0024-rpcinfo-remove-obsolete-function-get_inet_address.patch + +------------------------------------------------------------------- Old: ---- 0001-Fix-building-one-systems-w-out-nss.h.patch 0002-Rename-configure.in-to-configure.ac.patch 0003-rpcbind-rpcuser-not-being-set-in-Makefile.am.patch 0004-Silence-a-warning-about-setgroups-being-implicitly-d.patch 0012-Support-systemd-activation.patch 0013-socket-activation-Fix-rpcbind.service-to-use-separat.patch 0015-When-using-systemd-activation-make-rpcbind-notify-sy.patch 0016-Notify-systemd-unconditionally.patch 0017-Pull-the-sysconfig-file-into-rpcbind.service-and-use.patch 0025-rpcinfo-warmstat_no-warning-about-missing-file.patch 0026-systemd-no-default-dep 0027-socket-before-service.patch 0028-rpcbind-after-var-run.patch 0029-rpcbind-sd-notify-stupid-errmsg.patch rpcbind-0.2.1_rc4.tar.bz2 New: ---- 0001-systemd-unit-files.patch 0002-rpcinfo_warmstart-no_warning_about_missing_file.patch 0003-systemd-no-dualmode.patch 0004-systemd-sd_notify.patch rpcbind-0.2.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rpcbind.spec ++++++ --- /var/tmp/diff_new_pack.DscvdY/_old 2014-12-16 14:47:08.000000000 +0100 +++ /var/tmp/diff_new_pack.DscvdY/_new 2014-12-16 14:47:08.000000000 +0100 @@ -17,7 +17,7 @@ Name: rpcbind -Version: 0.2.1_rc4 +Version: 0.2.2 Release: 0 Summary: Transport independent RPC portmapper License: BSD-4-Clause @@ -35,37 +35,25 @@ BuildRequires: pkgconfig(libsystemd-daemon) PreReq: %fillup_prereq Requires(pre): /usr/sbin/useradd - -# The next three are from upstream, applied directly on top of rc4. -Patch0: 0001-Fix-building-one-systems-w-out-nss.h.patch -Patch1: 0002-Rename-configure.in-to-configure.ac.patch -Patch2: 0003-rpcbind-rpcuser-not-being-set-in-Makefile.am.patch -Patch3: 0004-Silence-a-warning-about-setgroups-being-implicitly-d.patch -Patch4: 0005-Remove-obsolete-function-in6_fillscopeid.patch -Patch5: 0006-In-init_transport-move-creation-of-COTS-sockets-clos.patch -Patch6: 0007-The-use-of-AI_NUMERICHOST-in-init_transport-is-broke.patch -Patch7: 0008-First-part-of-init_transport-refactoring.patch -Patch8: 0009-init_transport-move-the-registration-code-into-a-sep.patch -Patch9: 0010-Fix-the-behavior-when-specifying-the-h-option.patch -Patch10: 0011-Clean-up-the-way-we-handle-the-h-option-in-init_tran.patch -Patch11: 0012-Support-systemd-activation.patch -Patch12: 0013-socket-activation-Fix-rpcbind.service-to-use-separat.patch -Patch13: 0014-When-using-systemd-redirect-syslog-calls-to-the-syst.patch -Patch14: 0015-When-using-systemd-activation-make-rpcbind-notify-sy.patch -Patch15: 0016-Notify-systemd-unconditionally.patch -Patch16: 0017-Pull-the-sysconfig-file-into-rpcbind.service-and-use.patch -Patch17: 0018-configure-check-for-nss.h.patch -Patch18: 0019-rpcinfo-ip_ping-clean-up-client-ping-create-destroy.patch -Patch19: 0020-rpcinfo-introduce-new-helper-function-ip_getclient.patch -Patch20: 0021-rpcinfo-make-t-u-options-support-IPv6-addresses-too.patch -Patch21: 0022-rpcinfo-remove-obsolete-function-clnt_com_create.patch -Patch22: 0023-Make-rpcinfo-p-support-IPv6-addresses-too.patch -Patch23: 0024-rpcinfo-remove-obsolete-function-get_inet_address.patch -Patch24: 0025-rpcinfo-warmstat_no-warning-about-missing-file.patch -Patch25: 0026-systemd-no-default-dep -Patch26: 0027-socket-before-service.patch -Patch27: 0028-rpcbind-after-var-run.patch -Patch28: 0029-rpcbind-sd-notify-stupid-errmsg.patch +Patch1: 0001-systemd-unit-files.patch +Patch2: 0002-rpcinfo_warmstart-no_warning_about_missing_file.patch +Patch3: 0003-systemd-no-dualmode.patch +Patch4: 0004-systemd-sd_notify.patch +Patch5: 0005-Remove-obsolete-function-in6_fillscopeid.patch +Patch6: 0006-In-init_transport-move-creation-of-COTS-sockets-clos.patch +Patch7: 0007-The-use-of-AI_NUMERICHOST-in-init_transport-is-broke.patch +Patch8: 0008-First-part-of-init_transport-refactoring.patch +Patch9: 0009-init_transport-move-the-registration-code-into-a-sep.patch +Patch10: 0010-Fix-the-behavior-when-specifying-the-h-option.patch +Patch11: 0011-Clean-up-the-way-we-handle-the-h-option-in-init_tran.patch +Patch14: 0014-When-using-systemd-redirect-syslog-calls-to-the-syst.patch +Patch18: 0018-configure-check-for-nss.h.patch +Patch19: 0019-rpcinfo-ip_ping-clean-up-client-ping-create-destroy.patch +Patch20: 0020-rpcinfo-introduce-new-helper-function-ip_getclient.patch +Patch21: 0021-rpcinfo-make-t-u-options-support-IPv6-addresses-too.patch +Patch22: 0022-rpcinfo-remove-obsolete-function-clnt_com_create.patch +Patch23: 0023-Make-rpcinfo-p-support-IPv6-addresses-too.patch +Patch24: 0024-rpcinfo-remove-obsolete-function-get_inet_address.patch %define statefile /var/lib/portmap.state %{?systemd_requires} @@ -81,7 +69,6 @@ %prep %setup -q cp %{SOURCE4} . -%patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 @@ -89,27 +76,18 @@ %patch5 -p1 %patch6 -p1 %patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 +#%patch8 -p1 +#%patch9 -p1 +#%patch10 -p1 +#%patch11 -p1 +#%patch14 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 -%patch24 -p0 -%patch25 -p1 -%patch26 -p1 -%patch27 -p1 -%patch28 -p1 +#%patch24 -p0 %build autoreconf -fiv ++++++ 0001-systemd-unit-files.patch ++++++ Add systemd unit files Signed-off-by: Thorsten Kukuk <[email protected]> --- a/Makefile.am +++ b/Makefile.am 2014/12/10 13:27:31 @@ -45,6 +45,14 @@ AM_CPPFLAGS += $(SYSTEMD_CFLAGS) -DSYSTEMD rpcbind_LDADD += $(SYSTEMD_LIBS) + +systemd/rpcbind.service: systemd/rpcbind.service.in Makefile + sed -e 's,@bindir\@,$(bindir),g' \ + < $< > $@ || rm $@ + +systemdsystemunit_DATA = \ + systemd/rpcbind.service \ + systemd/rpcbind.socket endif rpcinfo_SOURCES = src/rpcinfo.c --- a/systemd/.gitignore +++ b/systemd/.gitignore 2014/12/10 13:27:31 @@ -0,0 +1 @@ +rpcbind.service --- a/systemd/rpcbind.service.in +++ b/systemd/rpcbind.service.in 2014/12/10 13:27:31 @@ -0,0 +1,16 @@ +[Unit] +Description=RPC Bind +Documentation=man:rpcbind(8) +DefaultDependencies=no +Requires=rpcbind.socket +Wants=var-run.mount +After=var-run.mount + +[Service] +Type=notify +EnvironmentFile=-/etc/sysconfig/rpcbind +ExecStart=@bindir@/rpcbind $RPCBIND_OPTIONS -w -f + +[Install] +WantedBy=multi-user.target +Also=rpcbind.socket --- a/systemd/rpcbind.socket +++ b/systemd/rpcbind.socket 2014/12/10 13:27:58 @@ -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 ++++++ 0002-rpcinfo_warmstart-no_warning_about_missing_file.patch ++++++ From: Thorsten Kukuk <[email protected]> Subject: rpcinfo: warmstart - no warning about missing file Don't print an error message on warmstart if the startup files don't exist. --- src/warmstart.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- a/src/warmstart.c +++ b/src/warmstart.c @@ -106,9 +106,10 @@ read_struct(char *filename, xdrproc_t st fprintf(stderr, "rpcbind: using '%s' startup file\n", filename); if ((fp = fopen(filename, "r")) == NULL) { - syslog(LOG_ERR, - "Cannot open '%s' file for reading, errno %d (%s)", - filename, errno, strerror(errno)); + if (errno != ENOENT) + syslog(LOG_ERR, + "Cannot open '%s' file for reading, errno %d (%s)", + filename, errno, strerror(errno)); goto error; } ++++++ 0003-systemd-no-dualmode.patch ++++++ Systemd will, by default, pass a socket that provides both IPv4 and IPv6 services. RPC netconfig requires that sockets be either IPv4 or IPv6. Add a warning to rpcbind should the user encounter an issue. Signed-off-by: Jeff Mahoney <[email protected]> --- a/src/rpcbind.c +++ b/src/rpcbind.c 2014/12/10 13:48:28 @@ -50,6 +50,7 @@ #include <sys/file.h> #include <sys/socket.h> #include <sys/un.h> +#include <netinet/in.h> #include <rpc/rpc.h> #include <rpc/rpc_com.h> #ifdef PORTMAP @@ -277,6 +285,31 @@ } /* + * Normally systemd will open sockets in dual ipv4/ipv6 mode. + * That won't work with netconfig and we'll only match + * the ipv6 socket. Convert it to IPV6_V6ONLY and issue + * a warning for the user to fix their systemd config. + */ +static int +handle_ipv6_socket(int fd) +{ + int opt; + socklen_t len = sizeof(opt); + + if (getsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &opt, &len)) { + syslog(LOG_ERR, "failed to get ipv6 socket opts: %m"); + return -1; + } + + if (opt) /* socket is already in V6ONLY mode */ + return 0; + + syslog(LOG_ERR, "systemd has passed an IPv4/IPv6 dual-mode socket."); + syslog(LOG_ERR, "Please fix your systemd config by specifying IPv4 and IPv6 sockets separately and using BindIPv6Only=ipv6-only."); + return -1; +} + +/* * Adds the entry into the rpcbind database. * If PORTMAP, then for UDP and TCP, it adds the entries for version 2 also * Returns 0 if succeeds, else fails @@ -361,6 +394,9 @@ goto error; } + if (sa.sa.sa_family == AF_INET6 && handle_ipv6_socket(fd)) + goto error; + /* Copy the address */ taddr.addr.maxlen = taddr.addr.len = addrlen; taddr.addr.buf = malloc(addrlen); ++++++ 0004-systemd-sd_notify.patch ++++++ Always notify systemd that rpcbind is ready and running. Signed-off-by: Thorsten Kukuk <[email protected]> --- a/src/rpcbind.c +++ b/src/rpcbind.c 2014/12/10 13:48:28 @@ -268,6 +269,13 @@ network_init(); +#ifdef SYSTEMD + /* Try to notify system of successful startup, regardless of whether we + * used systemd socket activation or not. When started from the command + * line, this should not hurt either. + */ + sd_notify(0, "READY=1"); +#endif my_svc_run(); syslog(LOG_ERR, "svc_run returned unexpectedly"); rpcbind_abort(); ++++++ 0005-Remove-obsolete-function-in6_fillscopeid.patch ++++++ --- /var/tmp/diff_new_pack.DscvdY/_old 2014-12-16 14:47:08.000000000 +0100 +++ /var/tmp/diff_new_pack.DscvdY/_new 2014-12-16 14:47:08.000000000 +0100 @@ -19,7 +19,7 @@ index 9a5fb69..a6c835b 100644 --- a/src/util.c +++ b/src/util.c -@@ -71,9 +71,6 @@ static struct sockaddr_in6 *local_in6; +@@ -71,9 +71,6 @@ #endif static int bitmaskcmp __P((void *, void *, void *, int)); @@ -29,7 +29,7 @@ /* * For all bits set in "mask", compare the corresponding bits in -@@ -93,26 +90,6 @@ bitmaskcmp(void *dst, void *src, void *mask, int bytelen) +@@ -93,28 +90,6 @@ } /* @@ -41,12 +41,14 @@ -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; - } - } -} @@ -56,7 +58,7 @@ * Find a server address that can be used by `caller' to contact * the local service specified by `serv_uaddr'. If `clnt_uaddr' is * non-NULL, it is used instead of `caller' as a hint suggesting -@@ -209,7 +186,6 @@ addrmerge(struct netbuf *caller, char *serv_uaddr, char *clnt_uaddr, +@@ -211,7 +186,6 @@ * a link-local address then use the scope id to see * which one. */ @@ -64,6 +66,4 @@ if (IN6_IS_ADDR_LINKLOCAL(&SA2SIN6ADDR(ifsa)) && IN6_IS_ADDR_LINKLOCAL(&SA2SIN6ADDR(caller_sa)) && IN6_IS_ADDR_LINKLOCAL(&SA2SIN6ADDR(hint_sa))) { --- -1.7.12.4 ++++++ 0006-In-init_transport-move-creation-of-COTS-sockets-clos.patch ++++++ --- /var/tmp/diff_new_pack.DscvdY/_old 2014-12-16 14:47:08.000000000 +0100 +++ /var/tmp/diff_new_pack.DscvdY/_new 2014-12-16 14:47:08.000000000 +0100 @@ -13,9 +13,9 @@ index 7ed72bc..f562f7a 100644 --- a/src/rpcbind.c +++ b/src/rpcbind.c -@@ -309,18 +309,6 @@ init_transport(struct netconfig *nconf) - } - #endif +@@ -389,18 +389,6 @@ + if (my_xprt != NULL) + goto got_socket; - /* - * XXX - using RPC library internal functions. For NC_TPI_CLTS @@ -29,10 +29,10 @@ - } - } - - if (!__rpc_nconf2sockinfo(nconf, &si)) { - syslog(LOG_ERR, "cannot get information for %s", - nconf->nc_netid); -@@ -487,6 +475,12 @@ init_transport(struct netconfig *nconf) + if ((strcmp(nconf->nc_netid, "local") == 0) || + (strcmp(nconf->nc_netid, "unix") == 0)) { + memset(&sun, 0, sizeof sun); +@@ -561,6 +549,12 @@ if (!checkbind) return 1; } else { /* NC_TPI_COTS */ @@ -45,6 +45,3 @@ if ((strcmp(nconf->nc_netid, "local") != 0) && (strcmp(nconf->nc_netid, "unix") != 0)) { if ((aicode = getaddrinfo(NULL, servname, &hints, &res))!= 0) { --- -1.7.12.4 - ++++++ 0018-configure-check-for-nss.h.patch ++++++ --- /var/tmp/diff_new_pack.DscvdY/_old 2014-12-16 14:47:08.000000000 +0100 +++ /var/tmp/diff_new_pack.DscvdY/_new 2014-12-16 14:47:08.000000000 +0100 @@ -1,7 +1,4 @@ -From 87b31d8406e6049fb4facfc483f4d8c9339d6f46 Mon Sep 17 00:00:00 2001 -From: Olaf Kirch <[email protected]> -Date: Tue, 14 Jan 2014 16:40:55 +0100 -Subject: [PATCH 18/24] configure: check for <nss.h> +configure: check for <nss.h> There's code in rpcbind that tries to configure nss lookups so that it avoids NIS when resolving user names or service names. Unfortunately, this @@ -13,18 +10,12 @@ configure.ac | 1 + 1 file changed, 1 insertion(+) -diff --git a/configure.ac b/configure.ac -index 6d91dcd..8cdd08f 100644 --- a/configure.ac +++ b/configure.ac -@@ -40,6 +40,7 @@ AC_ARG_WITH([systemdsystemunitdir], - fi - AM_CONDITIONAL(SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ]) +@@ -55,4 +55,6 @@ -+AC_CHECK_HEADERS(nss.h) + AC_SEARCH_LIBS([pthread_create], [pthread]) - AS_IF([test x$enable_libwrap = xyes], [ - AC_CHECK_LIB([wrap], [hosts_access], , --- -1.7.12.4 - ++AC_CHECK_HEADERS(nss.h) ++ + AC_OUTPUT([Makefile]) ++++++ rpcbind-0.2.1_rc4.tar.bz2 -> rpcbind-0.2.2.tar.bz2 ++++++ ++++ 10113 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/HEAD new/rpcbind-0.2.2/.git/HEAD --- old/rpcbind-0.2.1_rc4/.git/HEAD 2014-01-23 17:29:28.000000000 +0100 +++ new/rpcbind-0.2.2/.git/HEAD 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -86036582c001e99075f4d74cb3829df39f2a9ddf diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/config new/rpcbind-0.2.2/.git/config --- old/rpcbind-0.2.1_rc4/.git/config 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/config 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -[core] - repositoryformatversion = 0 - filemode = true - bare = false - logallrefupdates = true -[remote "origin"] - url = git://git.infradead.org/users/steved/rpcbind.git - fetch = +refs/heads/*:refs/remotes/origin/* -[branch "master"] - remote = origin - merge = refs/heads/master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/description new/rpcbind-0.2.2/.git/description --- old/rpcbind-0.2.1_rc4/.git/description 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/description 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -Unnamed repository; edit this file 'description' to name the repository. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/gitk.cache new/rpcbind-0.2.2/.git/gitk.cache --- old/rpcbind-0.2.1_rc4/.git/gitk.cache 2014-01-23 17:29:38.000000000 +0100 +++ new/rpcbind-0.2.2/.git/gitk.cache 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -1 1 -b3b031b07cc5909aaf964f9d4cf46f6097769320 f4aea95069461d06bd8a13e189e1a77e9ca03d75 {5618b2f89a752e8bacf9f7c847fd99484a9d3bbc c4814d539434391df4dfa61551e5e2e96947326d 86036582c001e99075f4d74cb3829df39f2a9ddf e81d689a6a8605cfc3b90a62a357705e180f532c c60e2ef90b95380e35076679a71563ff39d73c10 d94d9d1cddb0757fc2d290c64984276edae51ff2 1d9fba5b631b517094c85a80f45f6f7ba1665e2a baa19e40d997cdd75ceefd99bb5c4677fd4f260f a81ad2e02d4bdf4066a987ba7363c3e9dcd33f42 7c79c279f3f2f80a1cf01707c88c2b29da9aa7ad 79d890c3982ac007001688b975b4d04c4453d007 8d7a0708f14b22df100d64bcadfb66598052a950 135d4cfbe25d012b1343b0fb71be947444e33c6a afd71b8fc0df036a884b3af14ddb875674a49a85 eb36cf198795b09c1ba796044fc99fa40c5a2b33 68556dc512493868960b367406e04d7169c003a8 c5e04d3ef1b4d9a24741dc865aaa55b07fe3c89f b29ff67243a574a2ffd7ab28c007990ccbddfd77 96353340fc1e87f29ea551108fad3ff27131998f f0ce398219c1d80acb2072386c84ce047e84dabc d7ff87010339a0e0f444df4b867e6b860967de43 93944d5904856b053dfd0f9d95536e243917cec7 2e80f5f16fdbe93880a61adbd3d5939b4660dc48 d6e777e547939cdf08c365e8eb8c478dcab6839e bdc14d4d867a26010466138ecb37336b1f489dcb 3d33ad8d37ea2f955a8b06beedade424bc22efbc 1ee34cfa8cf3ce56f43690eba44215aafb1835a5 98ca016d5a2fb7a7da9e2332e3c59b123b820477 9266c745930cd052713e83c7ecb0917c17f33505 0b847172bb5413d200da01618402897d493f40b1 49e8a7c963c27ca3face271200b103a5efc50b05 62a20676c31a1887f8151a5b0ca42932205c4f4b 3d9f63a9c308b305dfca745dafae63d8f96b313c 1d92cd58eb471765eba08ec819f7b5ae1d5e96ab 566f261ff6bae2842e2e64aaf70d2e31acc1efe7 1a94b830a6b5a248faa6fa0e4b7818d9394f6369 3e4c74ab527375f37b6633f528e7eab0c363967b 3942a3b4dcd451a2c41ad95a45f3f1462cb3f133 da8d47b8d57312405a5de1d183a905f0f3830c78 b497f8799b3fdd0057b3bc49ad5b1de31d99e598 a37d65c960f5a3682b3cf5146bc31856fdba632d 718ab7ebcf913051f901939b8ae4c7ae67ffcafe 77f7556878d1fe03dc3e285c97dd822db38f618c f7d18d511767e892e52932f8c6f6e49755a8e5bc 592d6b53f1ccf0bb9b7861395df689d1fca901f1 34e3fdf4d72e222bb2cf884ba000716689a0a932 ddba830815b26d94c54b7bdecedaa46c36fda46b 40009ddc661a43883d0f7841f6bbd71e0c9b530a a28ded4f011bcc3f75a359f5fe842bf8cd2b00f3 464d2aed4506a217aa53df9cf0e0144bab5bbfd9 37117c6984ea5c640a19e6206dfa4b97710b6f37 24bc988ad64b927c062f2464963151da70c0ce68 29827c82fbb78725478eaf53b140e14a77fad42f c24026e7c2949ede4fc292335df1a08c3f6575fe 9b1aaa62d44515fa97bc62c00d3eae6c6c3e3c3d 208ebb96f63907ae24a4ab44bb284f08fdd4e63b 2d03c93306242fd3a86a4825ad6b6e3a22784ffe f4aea95069461d06bd8a13e189e1a77e9ca03d75} -1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/applypatch-msg.sample new/rpcbind-0.2.2/.git/hooks/applypatch-msg.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/applypatch-msg.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/applypatch-msg.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,15 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message taken by -# applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. The hook is -# allowed to edit the commit message file. -# -# To enable this hook, rename this file to "applypatch-msg". - -. git-sh-setup -test -x "$GIT_DIR/hooks/commit-msg" && - exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} -: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/commit-msg.sample new/rpcbind-0.2.2/.git/hooks/commit-msg.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/commit-msg.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/commit-msg.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,24 +0,0 @@ -#!/bin/sh -# -# An example hook script to check the commit log message. -# Called by "git commit" with one argument, the name of the file -# that has the commit message. The hook should exit with non-zero -# status after issuing an appropriate message if it wants to stop the -# commit. The hook is allowed to edit the commit message file. -# -# To enable this hook, rename this file to "commit-msg". - -# Uncomment the below to add a Signed-off-by line to the message. -# Doing this in a hook is a bad idea in general, but the prepare-commit-msg -# hook is more suited to it. -# -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" - -# This example catches duplicate Signed-off-by lines. - -test "" = "$(grep '^Signed-off-by: ' "$1" | - sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { - echo >&2 Duplicate Signed-off-by lines. - exit 1 -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/post-update.sample new/rpcbind-0.2.2/.git/hooks/post-update.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/post-update.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/post-update.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,8 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare a packed repository for use over -# dumb transports. -# -# To enable this hook, rename this file to "post-update". - -exec git update-server-info diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/pre-applypatch.sample new/rpcbind-0.2.2/.git/hooks/pre-applypatch.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/pre-applypatch.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/pre-applypatch.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed -# by applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-applypatch". - -. git-sh-setup -test -x "$GIT_DIR/hooks/pre-commit" && - exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} -: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/pre-commit.sample new/rpcbind-0.2.2/.git/hooks/pre-commit.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/pre-commit.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/pre-commit.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,50 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git commit" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message if -# it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-commit". - -if git rev-parse --verify HEAD >/dev/null 2>&1 -then - against=HEAD -else - # Initial commit: diff against an empty tree object - against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 -fi - -# If you want to allow non-ascii filenames set this variable to true. -allownonascii=$(git config hooks.allownonascii) - -# Redirect output to stderr. -exec 1>&2 - -# Cross platform projects tend to avoid non-ascii filenames; prevent -# them from being added to the repository. We exploit the fact that the -# printable range starts at the space character and ends with tilde. -if [ "$allownonascii" != "true" ] && - # Note that the use of brackets around a tr range is ok here, (it's - # even required, for portability to Solaris 10's /usr/bin/tr), since - # the square bracket bytes happen to fall in the designated range. - test $(git diff --cached --name-only --diff-filter=A -z $against | - LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 -then - echo "Error: Attempt to add a non-ascii file name." - echo - echo "This can cause problems if you want to work" - echo "with people on other platforms." - echo - echo "To be portable it is advisable to rename the file ..." - echo - echo "If you know what you are doing you can disable this" - echo "check using:" - echo - echo " git config hooks.allownonascii true" - echo - exit 1 -fi - -# If there are whitespace errors, print the offending file names and fail. -exec git diff-index --check --cached $against -- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/pre-rebase.sample new/rpcbind-0.2.2/.git/hooks/pre-rebase.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/pre-rebase.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/pre-rebase.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,169 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2006, 2008 Junio C Hamano -# -# The "pre-rebase" hook is run just before "git rebase" starts doing -# its job, and can prevent the command from running by exiting with -# non-zero status. -# -# The hook is called with the following parameters: -# -# $1 -- the upstream the series was forked from. -# $2 -- the branch being rebased (or empty when rebasing the current branch). -# -# This sample shows how to prevent topic branches that are already -# merged to 'next' branch from getting rebased, because allowing it -# would result in rebasing already published history. - -publish=next -basebranch="$1" -if test "$#" = 2 -then - topic="refs/heads/$2" -else - topic=`git symbolic-ref HEAD` || - exit 0 ;# we do not interrupt rebasing detached HEAD -fi - -case "$topic" in -refs/heads/??/*) - ;; -*) - exit 0 ;# we do not interrupt others. - ;; -esac - -# Now we are dealing with a topic branch being rebased -# on top of master. Is it OK to rebase it? - -# Does the topic really exist? -git show-ref -q "$topic" || { - echo >&2 "No such branch $topic" - exit 1 -} - -# Is topic fully merged to master? -not_in_master=`git rev-list --pretty=oneline ^master "$topic"` -if test -z "$not_in_master" -then - echo >&2 "$topic is fully merged to master; better remove it." - exit 1 ;# we could allow it, but there is no point. -fi - -# Is topic ever merged to next? If so you should not be rebasing it. -only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` -only_next_2=`git rev-list ^master ${publish} | sort` -if test "$only_next_1" = "$only_next_2" -then - not_in_topic=`git rev-list "^$topic" master` - if test -z "$not_in_topic" - then - echo >&2 "$topic is already up-to-date with master" - exit 1 ;# we could allow it, but there is no point. - else - exit 0 - fi -else - not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` - /usr/bin/perl -e ' - my $topic = $ARGV[0]; - my $msg = "* $topic has commits already merged to public branch:\n"; - my (%not_in_next) = map { - /^([0-9a-f]+) /; - ($1 => 1); - } split(/\n/, $ARGV[1]); - for my $elem (map { - /^([0-9a-f]+) (.*)$/; - [$1 => $2]; - } split(/\n/, $ARGV[2])) { - if (!exists $not_in_next{$elem->[0]}) { - if ($msg) { - print STDERR $msg; - undef $msg; - } - print STDERR " $elem->[1]\n"; - } - } - ' "$topic" "$not_in_next" "$not_in_master" - exit 1 -fi - -exit 0 - -################################################################ - -This sample hook safeguards topic branches that have been -published from being rewound. - -The workflow assumed here is: - - * Once a topic branch forks from "master", "master" is never - merged into it again (either directly or indirectly). - - * Once a topic branch is fully cooked and merged into "master", - it is deleted. If you need to build on top of it to correct - earlier mistakes, a new topic branch is created by forking at - the tip of the "master". This is not strictly necessary, but - it makes it easier to keep your history simple. - - * Whenever you need to test or publish your changes to topic - branches, merge them into "next" branch. - -The script, being an example, hardcodes the publish branch name -to be "next", but it is trivial to make it configurable via -$GIT_DIR/config mechanism. - -With this workflow, you would want to know: - -(1) ... if a topic branch has ever been merged to "next". Young - topic branches can have stupid mistakes you would rather - clean up before publishing, and things that have not been - merged into other branches can be easily rebased without - affecting other people. But once it is published, you would - not want to rewind it. - -(2) ... if a topic branch has been fully merged to "master". - Then you can delete it. More importantly, you should not - build on top of it -- other people may already want to - change things related to the topic as patches against your - "master", so if you need further changes, it is better to - fork the topic (perhaps with the same name) afresh from the - tip of "master". - -Let's look at this example: - - o---o---o---o---o---o---o---o---o---o "next" - / / / / - / a---a---b A / / - / / / / - / / c---c---c---c B / - / / / \ / - / / / b---b C \ / - / / / / \ / - ---o---o---o---o---o---o---o---o---o---o---o "master" - - -A, B and C are topic branches. - - * A has one fix since it was merged up to "next". - - * B has finished. It has been fully merged up to "master" and "next", - and is ready to be deleted. - - * C has not merged to "next" at all. - -We would want to allow C to be rebased, refuse A, and encourage -B to be deleted. - -To compute (1): - - git rev-list ^master ^topic next - git rev-list ^master next - - if these match, topic has not merged in next at all. - -To compute (2): - - git rev-list master..topic - - if this is empty, it is fully merged to "master". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/prepare-commit-msg.sample new/rpcbind-0.2.2/.git/hooks/prepare-commit-msg.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/prepare-commit-msg.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/prepare-commit-msg.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare the commit log message. -# Called by "git commit" with the name of the file that has the -# commit message, followed by the description of the commit -# message's source. The hook's purpose is to edit the commit -# message file. If the hook fails with a non-zero status, -# the commit is aborted. -# -# To enable this hook, rename this file to "prepare-commit-msg". - -# This hook includes three examples. The first comments out the -# "Conflicts:" part of a merge commit. -# -# The second includes the output of "git diff --name-status -r" -# into the message, just before the "git status" output. It is -# commented because it doesn't cope with --amend or with squashed -# commits. -# -# The third example adds a Signed-off-by line to the message, that can -# still be edited. This is rarely a good idea. - -case "$2,$3" in - merge,) - /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; - -# ,|template,) -# /usr/bin/perl -i.bak -pe ' -# print "\n" . `git diff --cached --name-status -r` -# if /^#/ && $first++ == 0' "$1" ;; - - *) ;; -esac - -# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/hooks/update.sample new/rpcbind-0.2.2/.git/hooks/update.sample --- old/rpcbind-0.2.1_rc4/.git/hooks/update.sample 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/hooks/update.sample 1970-01-01 01:00:00.000000000 +0100 @@ -1,128 +0,0 @@ -#!/bin/sh -# -# An example hook script to blocks unannotated tags from entering. -# Called by "git receive-pack" with arguments: refname sha1-old sha1-new -# -# To enable this hook, rename this file to "update". -# -# Config -# ------ -# hooks.allowunannotated -# This boolean sets whether unannotated tags will be allowed into the -# repository. By default they won't be. -# hooks.allowdeletetag -# This boolean sets whether deleting tags will be allowed in the -# repository. By default they won't be. -# hooks.allowmodifytag -# This boolean sets whether a tag may be modified after creation. By default -# it won't be. -# hooks.allowdeletebranch -# This boolean sets whether deleting branches will be allowed in the -# repository. By default they won't be. -# hooks.denycreatebranch -# This boolean sets whether remotely creating branches will be denied -# in the repository. By default this is allowed. -# - -# --- Command line -refname="$1" -oldrev="$2" -newrev="$3" - -# --- Safety check -if [ -z "$GIT_DIR" ]; then - echo "Don't run this script from the command line." >&2 - echo " (if you want, you could supply GIT_DIR then run" >&2 - echo " $0 <ref> <oldrev> <newrev>)" >&2 - exit 1 -fi - -if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then - echo "Usage: $0 <ref> <oldrev> <newrev>" >&2 - exit 1 -fi - -# --- Config -allowunannotated=$(git config --bool hooks.allowunannotated) -allowdeletebranch=$(git config --bool hooks.allowdeletebranch) -denycreatebranch=$(git config --bool hooks.denycreatebranch) -allowdeletetag=$(git config --bool hooks.allowdeletetag) -allowmodifytag=$(git config --bool hooks.allowmodifytag) - -# check for no description -projectdesc=$(sed -e '1q' "$GIT_DIR/description") -case "$projectdesc" in -"Unnamed repository"* | "") - echo "*** Project description file hasn't been set" >&2 - exit 1 - ;; -esac - -# --- Check types -# if $newrev is 0000...0000, it's a commit to delete a ref. -zero="0000000000000000000000000000000000000000" -if [ "$newrev" = "$zero" ]; then - newrev_type=delete -else - newrev_type=$(git cat-file -t $newrev) -fi - -case "$refname","$newrev_type" in - refs/tags/*,commit) - # un-annotated tag - short_refname=${refname##refs/tags/} - if [ "$allowunannotated" != "true" ]; then - echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 - echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 - exit 1 - fi - ;; - refs/tags/*,delete) - # delete tag - if [ "$allowdeletetag" != "true" ]; then - echo "*** Deleting a tag is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/tags/*,tag) - # annotated tag - if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 - then - echo "*** Tag '$refname' already exists." >&2 - echo "*** Modifying a tag is not allowed in this repository." >&2 - exit 1 - fi - ;; - refs/heads/*,commit) - # branch - if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then - echo "*** Creating a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/heads/*,delete) - # delete branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/remotes/*,commit) - # tracking branch - ;; - refs/remotes/*,delete) - # delete tracking branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a tracking branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - *) - # Anything else (is there anything else?) - echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 - exit 1 - ;; -esac - -# --- Finished -exit 0 Files old/rpcbind-0.2.1_rc4/.git/index and new/rpcbind-0.2.2/.git/index differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/info/exclude new/rpcbind-0.2.2/.git/info/exclude --- old/rpcbind-0.2.1_rc4/.git/info/exclude 2014-01-23 17:29:10.000000000 +0100 +++ new/rpcbind-0.2.2/.git/info/exclude 1970-01-01 01:00:00.000000000 +0100 @@ -1,6 +0,0 @@ -# git ls-files --others --exclude-from=.git/info/exclude -# Lines that start with '#' are comments. -# For a project mostly in C, the following would be a good set of -# exclude patterns (uncomment them if you want to use them): -# *.[oa] -# *~ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/logs/HEAD new/rpcbind-0.2.2/.git/logs/HEAD --- old/rpcbind-0.2.1_rc4/.git/logs/HEAD 2014-01-23 17:29:28.000000000 +0100 +++ new/rpcbind-0.2.2/.git/logs/HEAD 1970-01-01 01:00:00.000000000 +0100 @@ -1,2 +0,0 @@ -0000000000000000000000000000000000000000 b3b031b07cc5909aaf964f9d4cf46f6097769320 Olaf Kirch <[email protected]> 1390494554 +0100 clone: from git://git.infradead.org/users/steved/rpcbind.git -b3b031b07cc5909aaf964f9d4cf46f6097769320 86036582c001e99075f4d74cb3829df39f2a9ddf Olaf Kirch <[email protected]> 1390494569 +0100 checkout: moving from master to rpcbind-0_2_1-rc4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/logs/refs/heads/master new/rpcbind-0.2.2/.git/logs/refs/heads/master --- old/rpcbind-0.2.1_rc4/.git/logs/refs/heads/master 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/logs/refs/heads/master 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -0000000000000000000000000000000000000000 b3b031b07cc5909aaf964f9d4cf46f6097769320 Olaf Kirch <[email protected]> 1390494554 +0100 clone: from git://git.infradead.org/users/steved/rpcbind.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/logs/refs/remotes/origin/HEAD new/rpcbind-0.2.2/.git/logs/refs/remotes/origin/HEAD --- old/rpcbind-0.2.1_rc4/.git/logs/refs/remotes/origin/HEAD 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/logs/refs/remotes/origin/HEAD 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -0000000000000000000000000000000000000000 b3b031b07cc5909aaf964f9d4cf46f6097769320 Olaf Kirch <[email protected]> 1390494554 +0100 clone: from git://git.infradead.org/users/steved/rpcbind.git Files old/rpcbind-0.2.1_rc4/.git/objects/pack/pack-db89367471103635cc2d62c828ca68b252ffcfcb.idx and new/rpcbind-0.2.2/.git/objects/pack/pack-db89367471103635cc2d62c828ca68b252ffcfcb.idx differ Files old/rpcbind-0.2.1_rc4/.git/objects/pack/pack-db89367471103635cc2d62c828ca68b252ffcfcb.pack and new/rpcbind-0.2.2/.git/objects/pack/pack-db89367471103635cc2d62c828ca68b252ffcfcb.pack differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/packed-refs new/rpcbind-0.2.2/.git/packed-refs --- old/rpcbind-0.2.1_rc4/.git/packed-refs 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/packed-refs 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -# pack-refs with: peeled -b3b031b07cc5909aaf964f9d4cf46f6097769320 refs/remotes/origin/master -34e3fdf4d72e222bb2cf884ba000716689a0a932 refs/tags/rpcbind-0_1_5 -2e80f5f16fdbe93880a61adbd3d5939b4660dc48 refs/tags/rpcbind-0_1_7 -b29ff67243a574a2ffd7ab28c007990ccbddfd77 refs/tags/rpcbind-0_2_0 -eb36cf198795b09c1ba796044fc99fa40c5a2b33 refs/tags/rpcbind-0_2_1-rc1 -79d890c3982ac007001688b975b4d04c4453d007 refs/tags/rpcbind-0_2_1-rc2 -1d9fba5b631b517094c85a80f45f6f7ba1665e2a refs/tags/rpcbind-0_2_1-rc3 -86036582c001e99075f4d74cb3829df39f2a9ddf refs/tags/rpcbind-0_2_1-rc4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/refs/heads/master new/rpcbind-0.2.2/.git/refs/heads/master --- old/rpcbind-0.2.1_rc4/.git/refs/heads/master 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/refs/heads/master 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -b3b031b07cc5909aaf964f9d4cf46f6097769320 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/.git/refs/remotes/origin/HEAD new/rpcbind-0.2.2/.git/refs/remotes/origin/HEAD --- old/rpcbind-0.2.1_rc4/.git/refs/remotes/origin/HEAD 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/.git/refs/remotes/origin/HEAD 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -ref: refs/remotes/origin/master diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/Makefile.am new/rpcbind-0.2.2/Makefile.am --- old/rpcbind-0.2.1_rc4/Makefile.am 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/Makefile.am 2014-11-25 21:34:48.000000000 +0100 @@ -1,3 +1,5 @@ +AUTOMAKE_OPTIONS = subdir-objects + AM_CPPFLAGS = \ -DCHECK_LOCAL \ -DPORTMAP \ @@ -6,6 +8,7 @@ -DINET6 \ -DRPCBIND_STATEDIR="\"$(statedir)\"" \ -DRPCBIND_USER="\"$(rpcuser)\"" \ + -DNSS_MODULES="\"$(nss_modules)\"" \ -D_GNU_SOURCE \ $(TIRPC_CFLAGS) @@ -38,6 +41,12 @@ src/warmstart.c rpcbind_LDADD = $(TIRPC_LIBS) +if SYSTEMD +AM_CPPFLAGS += $(SYSTEMD_CFLAGS) -DSYSTEMD + +rpcbind_LDADD += $(SYSTEMD_LIBS) +endif + rpcinfo_SOURCES = src/rpcinfo.c rpcinfo_LDADD = $(TIRPC_LIBS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/configure.ac new/rpcbind-0.2.2/configure.ac --- old/rpcbind-0.2.1_rc4/configure.ac 1970-01-01 01:00:00.000000000 +0100 +++ new/rpcbind-0.2.2/configure.ac 2014-11-25 21:34:48.000000000 +0100 @@ -0,0 +1,58 @@ +AC_INIT(rpcbind, 0.2.2) + +AM_INIT_AUTOMAKE +AC_CONFIG_SRCDIR([src/rpcbind.c]) +AC_PREFIX_DEFAULT(/usr) +AC_PROG_CC + +AC_ARG_ENABLE([libwrap], + AS_HELP_STRING([--enable-libwrap], [Enables host name checking through tcpd @<:@default=no@:>@])) +AM_CONDITIONAL(LIBWRAP, test x$enable_libwrap = xyes) + +AC_ARG_ENABLE([debug], + AS_HELP_STRING([--enable-debug], [Turns on rpcbind debugging @<:@default=no@:>@])) +AM_CONDITIONAL(DEBUG, test x$enable_debug = xyes) + +AC_ARG_ENABLE([warmstarts], + AS_HELP_STRING([--enable-warmstarts], [Enables Warm Starts @<:@default=no@:>@])) +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]) +AC_SUBST([statedir], [$with_statedir]) + +AC_ARG_WITH([rpcuser], + 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]) + +PKG_PROG_PKG_CONFIG +AC_ARG_WITH([systemdsystemunitdir], + AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]), + [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)]) + if test "x$with_systemdsystemunitdir" != xno; then + AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir]) + 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_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != 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])) +]) + +AC_SEARCH_LIBS([pthread_create], [pthread]) + +AC_OUTPUT([Makefile]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/configure.in new/rpcbind-0.2.2/configure.in --- old/rpcbind-0.2.1_rc4/configure.in 2014-01-23 17:29:28.000000000 +0100 +++ new/rpcbind-0.2.2/configure.in 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -AC_INIT(rpcbind, 0.2.0) - -AM_INIT_AUTOMAKE -AC_CONFIG_SRCDIR([src/rpcbind.c]) -AC_PREFIX_DEFAULT(/usr) -AC_PROG_CC - -AC_ARG_ENABLE([libwrap], - AS_HELP_STRING([--enable-libwrap], [Enables host name checking through tcpd @<:@default=no@:>@])) -AM_CONDITIONAL(LIBWRAP, test x$enable_libwrap = xyes) - -AC_ARG_ENABLE([debug], - AS_HELP_STRING([--enable-debug], [Turns on rpcbind debugging @<:@default=no@:>@])) -AM_CONDITIONAL(DEBUG, test x$enable_debug = xyes) - -AC_ARG_ENABLE([warmstarts], - AS_HELP_STRING([--enable-warmstarts], [Enables Warm Starts @<:@default=no@:>@])) -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]) -AC_SUBST([statedir], [$with_statedir]) - -AC_ARG_WITH([rpcuser], - AS_HELP_STRING([--with-rpcuser=ARG], [use ARG for RPC @<:@default=root@:>@]), - ,, [with_rpcuser=root]) -AC_SUBST([rpcuser], [$with_rpcuser]) - -PKG_CHECK_MODULES([TIRPC], [libtirpc]) - -AS_IF([test x$enable_libwrap = xyes], [ - AC_CHECK_LIB([wrap], [hosts_access], , - AC_MSG_ERROR([libwrap support requested but unable to find libwrap])) -]) - -AC_SEARCH_LIBS([pthread_create], [pthread]) - -AC_OUTPUT([Makefile]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/man/rpcinfo.8 new/rpcbind-0.2.2/man/rpcinfo.8 --- old/rpcbind-0.2.1_rc4/man/rpcinfo.8 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/man/rpcinfo.8 2014-11-25 21:34:48.000000000 +0100 @@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/missing new/rpcbind-0.2.2/missing --- old/rpcbind-0.2.1_rc4/missing 1970-01-01 01:00:00.000000000 +0100 +++ new/rpcbind-0.2.2/missing 2014-11-25 21:53:51.000000000 +0100 @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2012-06-26.16; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard <[email protected]>, 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to <[email protected]>." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'automa4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/src/rpcbind.c new/rpcbind-0.2.2/src/rpcbind.c --- old/rpcbind-0.2.1_rc4/src/rpcbind.c 2014-01-23 17:29:28.000000000 +0100 +++ new/rpcbind-0.2.2/src/rpcbind.c 2014-11-25 21:34:48.000000000 +0100 @@ -56,18 +56,26 @@ #include <netinet/in.h> #endif #include <arpa/inet.h> +#ifdef SYSTEMD +#include <systemd/sd-daemon.h> +#endif #include <fcntl.h> #include <netdb.h> #include <stdio.h> #include <netconfig.h> #include <stdlib.h> #include <unistd.h> +#include <grp.h> #include <syslog.h> #include <err.h> #include <pwd.h> #include <string.h> #include <errno.h> +#ifdef HAVE_NSS_H #include <nss.h> +#else +static inline void __nss_configure_lookup(const char *db, const char *s) {} +#endif #include "rpcbind.h" /*#define RPCBIND_DEBUG*/ @@ -86,6 +94,12 @@ 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" @@ -160,7 +174,7 @@ * 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) { @@ -226,7 +240,7 @@ * 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); @@ -285,6 +299,7 @@ u_int32_t host_addr[4]; /* IPv4 or IPv6 */ struct sockaddr_un sun; mode_t oldmask; + int n; res = NULL; if ((nconf->nc_semantics != NC_TPI_CLTS) && @@ -303,6 +318,76 @@ fprintf(stderr, "[%d] - %s\n", i, *s); } #endif + if (!__rpc_nconf2sockinfo(nconf, &si)) { + syslog(LOG_ERR, "cannot get information for %s", + nconf->nc_netid); + return (1); + } + +#ifdef SYSTEMD + n = sd_listen_fds(0); + if (n < 0) { + syslog(LOG_ERR, "failed to acquire systemd sockets: %s", strerror(-n)); + return 1; + } + + /* Try to find if one of the systemd sockets we were given match + * our netconfig structure. */ + + for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + n; fd++) { + struct __rpc_sockinfo si_other; + union { + struct sockaddr sa; + struct sockaddr_un un; + struct sockaddr_in in4; + struct sockaddr_in6 in6; + struct sockaddr_storage storage; + } sa; + socklen_t addrlen = sizeof(sa); + + if (!__rpc_fd2sockinfo(fd, &si_other)) { + syslog(LOG_ERR, "cannot get information for fd %i", fd); + return 1; + } + + if (si.si_af != si_other.si_af || + si.si_socktype != si_other.si_socktype || + si.si_proto != si_other.si_proto) + continue; + + if (getsockname(fd, &sa.sa, &addrlen) < 0) { + syslog(LOG_ERR, "failed to query socket name: %s", + strerror(errno)); + goto error; + } + + /* Copy the address */ + taddr.addr.maxlen = taddr.addr.len = addrlen; + taddr.addr.buf = malloc(addrlen); + if (taddr.addr.buf == NULL) { + syslog(LOG_ERR, + "cannot allocate memory for %s address", + nconf->nc_netid); + goto error; + } + memcpy(taddr.addr.buf, &sa, addrlen); + + my_xprt = (SVCXPRT *)svc_tli_create(fd, nconf, &taddr, + RPC_MAXDATASIZE, RPC_MAXDATASIZE); + if (my_xprt == (SVCXPRT *)NULL) { + syslog(LOG_ERR, "%s: could not create service", + nconf->nc_netid); + goto error; + } + } + + /* + * If none of the systemd sockets matched, we set up the socket in + * the normal way: + */ +#endif + if (my_xprt != NULL) + goto got_socket; /* * XXX - using RPC library internal functions. For NC_TPI_CLTS @@ -316,12 +401,6 @@ } } - if (!__rpc_nconf2sockinfo(nconf, &si)) { - syslog(LOG_ERR, "cannot get information for %s", - nconf->nc_netid); - return (1); - } - if ((strcmp(nconf->nc_netid, "local") == 0) || (strcmp(nconf->nc_netid, "unix") == 0)) { memset(&sun, 0, sizeof sun); @@ -558,6 +637,7 @@ goto error; } } +got_socket: #ifdef PORTMAP /* @@ -722,11 +802,9 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/rpcbind-0.2.1_rc4/src/util.c new/rpcbind-0.2.2/src/util.c --- old/rpcbind-0.2.1_rc4/src/util.c 2014-01-23 17:29:13.000000000 +0100 +++ new/rpcbind-0.2.2/src/util.c 2014-11-25 21:34:48.000000000 +0100 @@ -101,12 +101,14 @@ 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; } } } -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
