[oe] [meta-networking][PATCH] netkit-rsh: add new package

Armin Kuster akuster808 at gmail.com
Sun Dec 14 16:54:34 UTC 2014


V2: added PAM config option
    fixed link bug
    moved files to PN location
    fixed BSD license

Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 .../netkit-rsh/netkit-rsh/no_pam_build_fix.patch   | 32 ++++++++++++++++++
 .../netkit-rsh/netkit-rsh/rexec.xinetd.netkit      | 20 ++++++++++++
 .../netkit-rsh/netkit-rsh/rlogin.xinetd.netkit     | 23 +++++++++++++
 .../rsh-redone_link_order_file.patch               | 15 ++++++++-
 .../netkit-rsh/netkit-rsh/rsh.xinetd.netkit        | 21 ++++++++++++
 .../recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb   | 38 +++++++++++++---------
 6 files changed, 132 insertions(+), 17 deletions(-)
 create mode 100644 meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch
 create mode 100644 meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit
 create mode 100644 meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit
 rename meta-networking/recipes-netkit/netkit-rsh/{files => netkit-rsh}/rsh-redone_link_order_file.patch (81%)
 create mode 100644 meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit

diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch
new file mode 100644
index 0000000..3200a2d
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/no_pam_build_fix.patch
@@ -0,0 +1,32 @@
+Index: netkit-rsh-0.17/rshd/rshd.c
+===================================================================
+--- netkit-rsh-0.17.orig/rshd/rshd.c
++++ netkit-rsh-0.17/rshd/rshd.c
+@@ -110,9 +110,11 @@ extern	char	**environ;
+ static void error(const char *fmt, ...);
+ static void doit(struct sockaddr *fromp, socklen_t fromlen);
+ static char *getstr(char *, size_t, const char *);
++#ifdef USE_PAM
+ static int err_conv(
+ 	int, const struct pam_message **, struct pam_response **, void *
+ );
++#endif /* USE_PAM */
+ 
+ extern int _check_rhosts_file;
+ 
+@@ -256,6 +258,7 @@ static void stderr_parent(int sock, int
+ }
+ 
+ 
++#ifdef USE_PAM
+ static int err_conv(
+ 	int num_msg, const struct pam_message **msg,
+ 	struct pam_response **resp, void *appdata_ptr
+@@ -266,6 +269,7 @@ static int err_conv(
+ 	(void) appdata_ptr;
+ 	return PAM_CONV_ERR;
+ }
++#endif
+ 
+ static struct passwd *doauth(const char *remuser, 
+ 			     const char *hostname, 
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit
new file mode 100644
index 0000000..80aed36
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rexec.xinetd.netkit
@@ -0,0 +1,20 @@
+# default: off
+# description:
+# Rexecd is the server for the rexec program. The server provides remote 
+# execution facilities with authentication based on user names and 
+# passwords.
+#
+service exec
+{
+	socket_type	= stream
+	protocol	= tcp
+	flags		= NAMEINARGS
+	wait		= no
+	user		= root
+	group		= root
+	log_on_success	+= USERID
+	log_on_failure	+= USERID
+	server		= /usr/bin/tcpd
+	server_args	= /usr/sbin/in.rexecd
+	disable		= yes
+}
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit
new file mode 100644
index 0000000..00dbf93
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rlogin.xinetd.netkit
@@ -0,0 +1,23 @@
+# default: off
+# description:
+# Rlogind is a server for the rlogin program. The server provides remote 
+# execution with authentication based on privileged port numbers from trusted
+# host
+#
+service login
+{
+	socket_type	= stream
+	protocol	= tcp
+	flags		= NAMEINARGS
+	wait		= no
+	user		= root
+	group		= root
+	log_on_success	+= USERID
+	log_on_failure	+= USERID
+	server		= /usr/bin/tcpd
+	server_args	= /usr/sbin/in.rlogind -a
+	disable		= yes
+}
+							
+							
+							
diff --git a/meta-networking/recipes-netkit/netkit-rsh/files/rsh-redone_link_order_file.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch
similarity index 81%
rename from meta-networking/recipes-netkit/netkit-rsh/files/rsh-redone_link_order_file.patch
rename to meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch
index bded510..c12ee9b 100644
--- a/meta-networking/recipes-netkit/netkit-rsh/files/rsh-redone_link_order_file.patch
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch
@@ -45,7 +45,7 @@ Index: netkit-rsh-0.17/rlogin/Makefile
  
  $(PROG): $(OBJS)
 -	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
-+	$(CC) $^ -o $@ $(LDFLAGS) $(LIBS) 
++	$(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
  
  install: $(PROG)
  	install -o root -m$(SUIDMODE) $(PROG) $(INSTALLROOT)$(BINDIR)
@@ -62,3 +62,16 @@ Index: netkit-rsh-0.17/rlogind/Makefile
  
  rlogind.o: pathnames.h logwtmp.h rlogind.h ../version.h
  logwtmp.o: logwtmp.h
+Index: netkit-rsh-0.17/rexecd/Makefile
+===================================================================
+--- netkit-rsh-0.17.orig/rexecd/Makefile
++++ netkit-rsh-0.17/rexecd/Makefile
+@@ -24,7 +24,7 @@ endif
+ CFLAGS += -DRESTRICT_FTP=1
+ 
+ rexecd: rexecd.o
+-	$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
++	$(CC) $^ -o $@ $(LDFLAGS) $(LIBS)
+ 
+ install: rexecd
+ 	install -m$(DAEMONMODE) rexecd $(INSTALLROOT)$(SBINDIR)/in.rexecd
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit
new file mode 100644
index 0000000..ad59b62
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh.xinetd.netkit
@@ -0,0 +1,21 @@
+# default: off
+# description:
+# The rshd server is a server for the rcmd(3) routine and, 
+# consequently, for the rsh(1) program. The server provides 
+# remote execution facilities with authentication based on 
+# privileged port numbers from trusted hosts.
+#
+service shell
+{
+	socket_type	= stream
+	protocol	= tcp
+	flags		= NAMEINARGS
+	wait		= no
+	user		= root
+	group		= root
+	log_on_success	+= USERID
+	log_on_failure	+= USERID
+	server		= /usr/bin/tcpd
+	server_args	= /usr/sbin/in.rshd -aL
+	disable		= yes
+}
diff --git a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
index 9866b3f..8b42fa7 100644
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
@@ -1,14 +1,15 @@
 DESCRIPTION = "netkit-rsh includes the rsh daemon and client."
 SECTION = "networking"
 HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-LICENSE = "BSD"
-DEPENDS = "xinetd libpam libgcrypt"
+LICENSE = "BSD-4-Clause"
+DEPENDS = "xinetd libgcrypt"
 
 LIC_FILES_CHKSUM = "file://rsh/rsh.c;beginline=2;endline=3;md5=25737e9d21d9df251dd26b7dcbd8ee29"
 
 SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=archive \
             ${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}-15.diff.gz;name=patch15 \
             file://rsh-redone_link_order_file.patch \
+            file://no_pam_build_fix.patch \
             file://rexec.xinetd.netkit \
             file://rlogin.xinetd.netkit \
             file://rsh.xinetd.netkit \
@@ -19,16 +20,22 @@ SRC_URI[archive.sha256sum] = "edcac7fa18015f0bc04e573f3f54ae3b638d71335df1ad7dae
 SRC_URI[patch15.md5sum] = "655efc0d541b03ca5de0ae506c805ea3"
 SRC_URI[patch15.sha256sum] = "2bc071c438e8b0ed42a0bd2db2d8b681b27a1e9b1798694d9874733293bc2aa9"
 
-inherit distro_features_check
+inherit pkgconfig
 
 CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations"
-LDFLAGS += " -lutil"
+LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG += " ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam", "", d)}"
+PACKAGECONFIG[pam] = " , --without-pam, libpam, libpam"
 
 do_configure () {
     ./configure --prefix=${prefix}
-    echo "USE_PAM=1" > MCONFIG
-    echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
-    echo "INSTALLROOT=${D}" >> MCONFIG
+    echo "INSTALLROOT=${D}" > MCONFIG
+
+    if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then
+        echo "USE_PAM=1" >> MCONFIG
+    fi
 
     # didn't want to patch these next changes
     sed -i 's/netkit-//' ${S}/rsh/pathnames.h
@@ -40,7 +47,6 @@ do_install () {
     install -d ${D}${sbindir}
     install -d ${D}${mandir}/man1
     install -d ${D}${mandir}/man8
-    install -d ${D}${sysconfdir}/pam.d
     install -d ${D}${sysconfdir}/xinetd.d
 
     oe_runmake 'INSTALLROOT=${D}' 'BINMODE=0755' \
@@ -49,11 +55,13 @@ do_install () {
     'BINDIR=${bindir}' 'SBINDIR=${sbindir}' \
     'MANDIR=${mandir}' install
 
-    install -m 0644 debian/hosts.equiv ${D}/${sysconfdir}
-    install -m 0644 debian/pam.d/rexec ${D}/${sysconfdir}/pam.d
-    install -m 0644 debian/pam.d/rlogin ${D}/${sysconfdir}/pam.d
-    install -m 0644 debian/pam.d/rsh ${D}/${sysconfdir}/pam.d
-
+    if [ "${@base_contains('PACKAGECONFIG', 'pam', 'pam', '', d)}" != "" ]; then
+        install -d ${D}${sysconfdir}/pam.d
+        install -m 0644 debian/hosts.equiv ${D}/${sysconfdir}
+        install -m 0644 debian/pam.d/rexec ${D}/${sysconfdir}/pam.d
+        install -m 0644 debian/pam.d/rlogin ${D}/${sysconfdir}/pam.d
+        install -m 0644 debian/pam.d/rsh ${D}/${sysconfdir}/pam.d
+    fi
     cp ${WORKDIR}/rexec.xinetd.netkit  ${D}/${sysconfdir}/xinetd.d/rexec
     cp ${WORKDIR}/rlogin.xinetd.netkit  ${D}/${sysconfdir}/xinetd.d/rlogin
     cp ${WORKDIR}/rsh.xinetd.netkit  ${D}/${sysconfdir}/xinetd.d/rsh
@@ -80,6 +88,4 @@ ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind"
 RCONFLICTS_${PN}-client += "inetutils-rshd"
 RPROVIDES_${PN}-rshd = "rshd"
 
-RDEPENDS_${PN} = "libpam xinetd"
-
-REQUIRED_DISTRO_FEATURES ?= "pam"
+RDEPENDS_${PN} = "xinetd"
-- 
1.9.1




More information about the Openembedded-devel mailing list