commit f18fb252729cde6c899808649e28ea974e507a67 Author: Jay Larson Date: Thu Jul 26 19:28:35 2018 -0500 First check in diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..04cfe92 --- /dev/null +++ b/Makefile @@ -0,0 +1,84 @@ +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation here: +# (http://www.gnu.org/licenses/gpl-2.0.html) +# +# 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. + +DEPENDS = glibc,libtirpc +ARCH = x86_64 +URL = https://sourceforge.net/projects/rpcbind/ +REPO = main +BRIEF = RPC service +DESC = The rpcbind utility is a server that converts RPC program numbers \ +into universal addresses +SNAPVER = 0 + +ARCHIVE := $(PWD)/SRC/$(shell ls SRC|egrep '(bz2|gz|tar|xz)$$'|tail -1) +TYPE := $(shell file -ib $(ARCHIVE)|cut -d';' -f1|tr -d '\n') +SRCDIR := $(shell tar -tf $(ARCHIVE)|head -1|sed 's/\/.*//') +PATCHDIR := $(PWD)/SRC/patches +VERSION := $(shell echo $(SRCDIR)|egrep -o '\-[0-9].*'|sed 's/^-//')-$(SNAPVER) + +include /usr/share/snap/Makefile.snaplinux + +$(SRCDIR)/configure: $(ARCHIVE) + @if [ '$(TYPE)' == 'application/x-bzip2' ]; then \ + tar -jxf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-gzip' ]; then \ + tar -zxf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-tar' ]; then \ + tar -xf $(ARCHIVE); \ + elif [ '$(TYPE)' == 'application/x-xz' ]; then \ + tar -xf $(ARCHIVE); \ + else \ + echo 'Unable to determine archive type'; \ + exit 1; \ + fi + @touch $(SRCDIR)/configure + +$(SRCDIR)/config.log: $(SRCDIR)/configure + @cd $(SRCDIR) && \ + for patch in `find $(PATCHDIR) -name \*.patch|sort`; do \ + patch --verbose -Np1 -i $$patch; \ + done + @cd $(SRCDIR); \ + ./configure \ + --prefix=/usr \ + --bindir=/sbin \ + --with-rpcuser=root \ + --enable-warmstarts \ + --without-systemdsystemunitdir \ + --build=x86_64-snap-linux-gnu \ + --host=x86_64-snap-linux-gnu \ + --target=x86_64-snap-linux-gnu + +$(SRCDIR)/binfile: $(SRCDIR)/config.log + @cd $(SRCDIR) && make + +$(ROOT): $(SRCDIR)/binfile + @if [ -d $(ROOT) ]; then \ + touch $(ROOT); \ + else \ + mkdir -v $(ROOT); \ + fi + + @cd $(SRCDIR) && make install DESTDIR=$(ROOT) && \ + install -d -m 0755 $(ROOT)/etc/init.d && \ + install -m 0755 $(SNAPDIR)/rpcbind.init \ + $(ROOT)/etc/init.d/rpcbind + +test: $(ROOT) + @cd $(SRCDIR); \ + make check + +clean: + @rm -rvf $(ROOT) \ + $(SNAPINFO) \ + $(MANIFEST) \ + $(FILES) \ + $(SRCDIR) + diff --git a/SNAP/README b/SNAP/README new file mode 100644 index 0000000..cb756b1 --- /dev/null +++ b/SNAP/README @@ -0,0 +1,5 @@ +This is the directory where the manifest, snapinfo, +and files.tar.gz files will be created. It is also +where the usher file should be placed if it is +required by the package. Any other files that need +to be included could also be placed here. diff --git a/SNAP/rpcbind.init b/SNAP/rpcbind.init new file mode 100755 index 0000000..bbe99d4 --- /dev/null +++ b/SNAP/rpcbind.init @@ -0,0 +1,58 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: rpcbind $portmap +# Required-Start: $network $syslog +# Required-Stop: $network $syslog +# Should-Start: +# Should-Stop: +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: RPC Daemon +### END INIT INFO + +. /lib/lsb/init-functions +[ -r /etc/default/rpcbind ] && . /etc/default/rpcbind + +DAEMON=/sbin/rpcbind +PIDFILE=/var/run/rpcbind.pid + +case "$1" in + start) + log_init_msg "Starting RPC server" + start_daemon -p "$PIDFILE" "$DAEMON" "$RPC_OPTS" \ + && log_success_msg || log_failure_msg + ;; + stop) + pid=$(pidofproc -p "$PIDFILE" "$DAEMON") + + if [ "$?" -ne 0 ]; then + log_init_msg "RPC server not running" && log_success_msg + exit 0 + fi + + log_init_msg "Stopping RPC server" + + killproc -p "$PIDFILE" "$DAEMON" -TERM && log_success_msg \ + || log_failure_msg + ;; + restart) + $0 stop + sleep 1 + $0 start + ;; + status) + pid=$(pidofproc -p "$PIDFILE" "$DAEMON") + + if [ "$?" -ne 0 ]; then + echo "RPC server not running" + else + echo "RPC server running with PID: $pid" + fi + ;; + *) + echo "Usage: $0 [start|stop|restart|status]" + exit 1 + ;; +esac + +exit 0 diff --git a/SRC/patches/01_fix-servname.patch b/SRC/patches/01_fix-servname.patch new file mode 100644 index 0000000..4f53890 --- /dev/null +++ b/SRC/patches/01_fix-servname.patch @@ -0,0 +1,12 @@ +diff -Naur a/src/rpcbind.c b/src/rpcbind.c +--- a/src/rpcbind.c 2016-11-28 14:47:28.000000000 -0600 ++++ b/src/rpcbind.c 2018-05-28 16:54:13.485776100 -0500 +@@ -133,7 +133,7 @@ + char *udp_uaddr; /* Universal UDP address */ + char *tcp_uaddr; /* Universal TCP address */ + #endif +-static char servname[] = "rpcbind"; ++static char servname[] = "sunrpc"; + static char superuser[] = "superuser"; + + int main(int, char *[]); diff --git a/SRC/patches/README b/SRC/patches/README new file mode 100644 index 0000000..976577a --- /dev/null +++ b/SRC/patches/README @@ -0,0 +1,3 @@ +Place any patch files here and preface each with a +number indicating the order of execution. Patch +files are expected to use a .patch extension. diff --git a/SRC/rpcbind-0.2.4.tar.bz2 b/SRC/rpcbind-0.2.4.tar.bz2 new file mode 100644 index 0000000..8ceaf1e Binary files /dev/null and b/SRC/rpcbind-0.2.4.tar.bz2 differ diff --git a/SRC/rpcbind-0.2.4.tar.bz2.sha1 b/SRC/rpcbind-0.2.4.tar.bz2.sha1 new file mode 100644 index 0000000..197e33a --- /dev/null +++ b/SRC/rpcbind-0.2.4.tar.bz2.sha1 @@ -0,0 +1 @@ +8a6045dd3397e9f71bf3a7c9d269e255cca537bd