From: Jonatan Schlag Date: Sat, 7 May 2016 14:16:35 +0000 (+0200) Subject: Replace portmap with rpcbind X-Git-Tag: v2.19-core103~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e93a0b06fe1c55c41ce24c33449f16f4ce5e5c53;p=ipfire-2.x.git Replace portmap with rpcbind Portmap is not maintained anymore that's why it is replaced by rpcbind. Rpcbind provides also rpcinfo which is quite useful for debugging. Signed-off-by: Jonatan Schlag Signed-off-by: Michael Tremer --- diff --git a/config/rootfiles/common/armv5tel/initscripts b/config/rootfiles/common/armv5tel/initscripts index b827b1c19d..bc253c0456 100644 --- a/config/rootfiles/common/armv5tel/initscripts +++ b/config/rootfiles/common/armv5tel/initscripts @@ -103,13 +103,13 @@ etc/rc.d/init.d/ntp #etc/rc.d/init.d/nut #etc/rc.d/init.d/openvmtools etc/rc.d/init.d/partresize -#etc/rc.d/init.d/portmap #etc/rc.d/init.d/postfix #etc/rc.d/init.d/pound etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot etc/rc.d/init.d/rngd +#etc/rc.d/init.d/rpcbind #etc/rc.d/init.d/rtpproxy #etc/rc.d/init.d/samba #etc/rc.d/init.d/sane diff --git a/config/rootfiles/common/i586/initscripts b/config/rootfiles/common/i586/initscripts index 0976fe52e6..f1024a238d 100644 --- a/config/rootfiles/common/i586/initscripts +++ b/config/rootfiles/common/i586/initscripts @@ -104,13 +104,13 @@ etc/rc.d/init.d/ntp #etc/rc.d/init.d/nut #etc/rc.d/init.d/openvmtools etc/rc.d/init.d/partresize -#etc/rc.d/init.d/portmap #etc/rc.d/init.d/postfix #etc/rc.d/init.d/pound etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot etc/rc.d/init.d/rngd +#etc/rc.d/init.d/rpcbind #etc/rc.d/init.d/rtpproxy #etc/rc.d/init.d/samba #etc/rc.d/init.d/sane diff --git a/config/rootfiles/common/x86_64/initscripts b/config/rootfiles/common/x86_64/initscripts index 0976fe52e6..f1024a238d 100644 --- a/config/rootfiles/common/x86_64/initscripts +++ b/config/rootfiles/common/x86_64/initscripts @@ -104,13 +104,13 @@ etc/rc.d/init.d/ntp #etc/rc.d/init.d/nut #etc/rc.d/init.d/openvmtools etc/rc.d/init.d/partresize -#etc/rc.d/init.d/portmap #etc/rc.d/init.d/postfix #etc/rc.d/init.d/pound etc/rc.d/init.d/random etc/rc.d/init.d/rc etc/rc.d/init.d/reboot etc/rc.d/init.d/rngd +#etc/rc.d/init.d/rpcbind #etc/rc.d/init.d/rtpproxy #etc/rc.d/init.d/samba #etc/rc.d/init.d/sane diff --git a/config/rootfiles/packages/portmap b/config/rootfiles/packages/portmap deleted file mode 100644 index 4b60d64f12..0000000000 --- a/config/rootfiles/packages/portmap +++ /dev/null @@ -1,7 +0,0 @@ -etc/rc.d/init.d/portmap -sbin/portmap -#sbin/pmap_dump -#sbin/pmap_set -#usr/share/man/man8/pmap_dump.8 -#usr/share/man/man8/pmap_set.8 -#usr/share/man/man8/portmap.8 diff --git a/config/rootfiles/packages/rpcbind b/config/rootfiles/packages/rpcbind new file mode 100644 index 0000000000..52702076b5 --- /dev/null +++ b/config/rootfiles/packages/rpcbind @@ -0,0 +1,5 @@ +etc/rc.d/init.d/rpcbind +sbin/rpcbind +sbin/rpcinfo +#usr/share/man/man8/rpcbind.8 +#usr/share/man/man8/rpcinfo.8 diff --git a/lfs/nfs b/lfs/nfs index b6cef7b9bd..ee9b3a0593 100644 --- a/lfs/nfs +++ b/lfs/nfs @@ -34,7 +34,7 @@ TARGET = $(DIR_INFO)/$(THISAPP) PROG = nfs PAK_VER = 7 -DEPS = "portmap" +DEPS = "rpcbind" LIBNFSIDMAP = 0.25 diff --git a/lfs/portmap b/lfs/rpcbind similarity index 82% rename from lfs/portmap rename to lfs/rpcbind index c9035471ef..d9e28854ec 100644 --- a/lfs/portmap +++ b/lfs/rpcbind @@ -1,7 +1,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2016 IPFire Team # # # # 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 # @@ -24,17 +24,17 @@ include Config -VER = 6.0 +VER = 0.2.3 -THISAPP = portmap_$(VER) -DL_FILE = $(THISAPP).tgz +THISAPP = rpcbind-$(VER) +DL_FILE = $(THISAPP).tar.bz2 DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) -PROG = portmap -PAK_VER = 2 +PROG = rpcbind +PAK_VER = 1 -DEPS = "" +DEPS = "libtirpc" ############################################################################### # Top-level Rules @@ -44,7 +44,7 @@ objects = $(DL_FILE) $(DL_FILE) = $(DL_FROM)/$(DL_FILE) -$(DL_FILE)_MD5 = ac108ab68bf0f34477f8317791aaf1ff +$(DL_FILE)_MD5 = c8875246b2688a1adfbd6ad43480278d install : $(TARGET) @@ -54,7 +54,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects)) md5 : $(subst %,%_MD5,$(objects)) -dist: +dist: @$(PAK) ############################################################################### @@ -76,9 +76,10 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) - @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xvfz $(DIR_DL)/$(DL_FILE) -# cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/portmap-5beta-compilation_fixes-3.patch -# cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/portmap-5beta-glibc_errno_fix-1.patch + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && sed -i "/servname/s:rpcbind:sunrpc:" src/rpcbind.c + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/rpcbind/rpcbind-0.2.3-tirpc_fix-1.patch + cd $(DIR_APP) && ./configure --prefix=/usr --bindir=/sbin --with-rpcuser=root --without-systemdsystemunitdir --disable-ipv6 cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) cd $(DIR_APP) && make install @rm -rf $(DIR_APP) diff --git a/make.sh b/make.sh index 6219f290a7..3293fd87bc 100755 --- a/make.sh +++ b/make.sh @@ -679,7 +679,7 @@ buildipfire() { ipfiremake libevent ipfiremake libevent2 ipfiremake libtirpc - ipfiremake portmap + ipfiremake rpcbind ipfiremake nfs ipfiremake gnu-netcat ipfiremake ncat diff --git a/src/initscripts/init.d/portmap b/src/initscripts/init.d/portmap deleted file mode 100644 index 00516a2984..0000000000 --- a/src/initscripts/init.d/portmap +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# Begin $rc_base/init.d/portmap - -#$LastChangedBy: bdubbs $ -#$Date: 2005-08-01 14:29:19 -0500 (Mon, 01 Aug 2005) $ - -. /etc/sysconfig/rc -. $rc_functions - -case "$1" in - start) - boot_mesg "Starting RPC Portmap" - loadproc /sbin/portmap - ;; - - stop) - boot_mesg "Stopping Portmap" - killproc /sbin/portmap - ;; - - restart) - $0 stop - sleep 1 - $0 start - ;; - - status) - statusproc /sbin/portmap - ;; - - *) - echo "Usage: $0 {start|stop|restart|status}" - exit 1 - ;; - -esac - -# End $rc_base/init.d/portmap diff --git a/src/initscripts/init.d/rpcbind b/src/initscripts/init.d/rpcbind new file mode 100644 index 0000000000..7216acd906 --- /dev/null +++ b/src/initscripts/init.d/rpcbind @@ -0,0 +1,46 @@ +#!/bin/sh +######################################################################## +# Begin $rc_base/init.d/rpcbind +# +# Description : rpcbind init script +# +# Authors : Jonatan Schlag jonatan.schlag@ipfire.org +# +# Version : 01.00 +# +# Notes : +# +######################################################################## + +. /etc/sysconfig/rc +. $rc_functions + +case "$1" in + start) + boot_mesg "Starting rpcbind" + loadproc /sbin/rpcbind + ;; + + stop) + boot_mesg "Stopping rpcbind" + killproc /sbin/rpcbind + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + status) + statusproc /sbin/rpcbind + ;; + + *) + echo "Usage: $0 {start|stop|restart|status}" + exit 1 + ;; + +esac + +# End $rc_base/init.d/rpcbind diff --git a/src/paks/portmap/install.sh b/src/paks/rpcbind/install.sh similarity index 85% rename from src/paks/portmap/install.sh rename to src/paks/rpcbind/install.sh index 6c391d6712..e523183d88 100644 --- a/src/paks/portmap/install.sh +++ b/src/paks/rpcbind/install.sh @@ -22,8 +22,12 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh +# remove portmap +/etc/init.d/portmap stop +rm -rf /etc/rc.d/rc*.d/*portmap /sbin/portmap /etc/rc.d/init.d/portmap +# install rpcbind extract_files start_service --background ${NAME} -ln -sf ../init.d/portmap /etc/rc.d/rc0.d/K49portmap -ln -sf ../init.d/portmap /etc/rc.d/rc3.d/S22portmap -ln -sf ../init.d/portmap /etc/rc.d/rc6.d/K49portmap +ln -sf ../init.d/rpcbind /etc/rc.d/rc0.d/K49rpcbind +ln -sf ../init.d/rpcbind /etc/rc.d/rc3.d/S22rpcbind +ln -sf ../init.d/rpcbind /etc/rc.d/rc6.d/K49rpcbind diff --git a/src/paks/portmap/uninstall.sh b/src/paks/rpcbind/uninstall.sh similarity index 98% rename from src/paks/portmap/uninstall.sh rename to src/paks/rpcbind/uninstall.sh index 12ecada882..e705c8c579 100644 --- a/src/paks/portmap/uninstall.sh +++ b/src/paks/rpcbind/uninstall.sh @@ -24,4 +24,4 @@ . /opt/pakfire/lib/functions.sh stop_service ${NAME} remove_files -rm -rf /etc/rc.d/rc*.d/*portmap +rm -rf /etc/rc.d/rc*.d/*rpcbind diff --git a/src/paks/portmap/update.sh b/src/paks/rpcbind/update.sh similarity index 100% rename from src/paks/portmap/update.sh rename to src/paks/rpcbind/update.sh diff --git a/src/patches/rpcbind/rpcbind-0.2.3-tirpc_fix-1.patch b/src/patches/rpcbind/rpcbind-0.2.3-tirpc_fix-1.patch new file mode 100644 index 0000000000..bdf73a3311 --- /dev/null +++ b/src/patches/rpcbind/rpcbind-0.2.3-tirpc_fix-1.patch @@ -0,0 +1,48 @@ +Submitted By: Bruce Dubbs +Date: 2015-11-29 +Initial Package Version: 0.2.3 +Upstream Status: Already in upstream git repository +Origin: Upstream +Description: This patch fixes rpcbind to be able to build with + recent tirpc versions. + +From 9194122389f2a56b1cd1f935e64307e2e963c2da Mon Sep 17 00:00:00 2001 +From: Steve Dickson +Date: Mon, 2 Nov 2015 17:05:18 -0500 +Subject: [PATCH] handle_reply: Don't use the xp_auth pointer directly + +In the latest libtirpc version to access the xp_auth +one must use the SVC_XP_AUTH macro. To be backwards +compatible a couple ifdefs were added to use the +macro when it exists. + +Signed-off-by: Steve Dickson +--- + src/rpcb_svc_com.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/rpcb_svc_com.c b/src/rpcb_svc_com.c +index 4ae93f1..22d6c84 100644 +--- a/src/rpcb_svc_com.c ++++ b/src/rpcb_svc_com.c +@@ -1295,10 +1295,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); +-- +1.8.2.1 +