From 53b2ff052e3a164154d4ee17f189b213e4600ecb Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 31 Jan 2010 18:43:34 +0100 Subject: fix nfs server stuff If you need ipv6, you should choose TIRPC flavour. This will install rpcbind, which is similar to portmap. For ipv4 only you can just use nfs-utils without TIRPC and portmap will be installed. Fix some kernel module dependencies. Add a new package rpcbind. --- mk/modules.mk | 5 ++- package/Config.in | 1 + package/nfs-utils/Makefile | 56 +++++++++++++++++---------- package/nfs-utils/files/nfs-utils.postinst | 2 +- package/nfs-utils/files/nfsd.init | 2 - package/portmap/files/portmap.init | 2 +- package/portmap/files/portmap.postinst | 3 ++ package/rpcbind/Makefile | 36 +++++++++++++++++ package/rpcbind/files/rpcbind.init | 28 ++++++++++++++ package/rpcbind/files/rpcbind.postinst | 5 +++ package/rpcbind/patches/patch-src_Makefile_in | 11 ++++++ target/Config.in | 43 +++++++++++++++----- target/linux/config/Config.in.fsnet | 10 ++++- 13 files changed, 168 insertions(+), 36 deletions(-) create mode 100644 package/rpcbind/Makefile create mode 100644 package/rpcbind/files/rpcbind.init create mode 100644 package/rpcbind/files/rpcbind.postinst create mode 100644 package/rpcbind/patches/patch-src_Makefile_in diff --git a/mk/modules.mk b/mk/modules.mk index c208b80a7..b7074a143 100644 --- a/mk/modules.mk +++ b/mk/modules.mk @@ -858,9 +858,12 @@ $(eval $(call KMOD_template,RPCSEC_GSS_KRB5,rpcsec-gss-krb5,\ $(MODULES_DIR)/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5 \ ,26)) +$(eval $(call KMOD_template,LOCKD,lockd,\ + $(MODULES_DIR)/kernel/fs/lockd/lockd \ +,27)) + ifneq ($(ADK_KERNEL_NFS_FS),y) $(eval $(call KMOD_template,NFS_FS,nfs-fs,\ - $(MODULES_DIR)/kernel/fs/lockd/lockd \ $(MODULES_DIR)/kernel/fs/nfs/nfs \ ,30)) endif diff --git a/package/Config.in b/package/Config.in index 41db9ecfd..c1db8eb17 100644 --- a/package/Config.in +++ b/package/Config.in @@ -445,6 +445,7 @@ source "package/pipacs/Config.in" #source "package/pmacct/Config.in" source "package/portmap/Config.in" source "package/rarpd/Config.in" +source "package/rpcbind/Config.in" source "package/rrs/Config.in" source "package/rsync/Config.in" source "package/shat/Config.in" diff --git a/package/nfs-utils/Makefile b/package/nfs-utils/Makefile index 76c7e66cc..bb36d9a2b 100644 --- a/package/nfs-utils/Makefile +++ b/package/nfs-utils/Makefile @@ -5,32 +5,38 @@ include ${TOPDIR}/rules.mk PKG_NAME:= nfs-utils PKG_VERSION:= 1.2.1 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_MD5SUM:= c3ccd16c147befd49fe4541a506dd177 PKG_DESCR:= Utilities for NFS kernel server implementation PKG_SECTION:= net -PKG_DEPENDS:= portmap libtirpc -PKG_BUILDDEP+= libtirpc +PKG_DEPENDS:= kmod-nfsd + ifeq (${ADK_PACKAGE_NFS_UTILS_WITH_KERBEROS},y) +PKG_DEPENDS+= krb5-libs libevent libnfsidmap librpcsecgss libcom-err libgssglue PKG_BUILDDEP+= libnfsidmap krb5 libevent libgssglue librpcsecgss endif + +ifeq ($(ADK_PACKAGE_NFS_UTILS_WITH_TIRPC),y) +PKG_DEPENDS+= libtirpc rpcbind +PKG_BUILDDEP+= libtirpc rpcbind +else +PKG_DEPENDS:= portmap +endif + PKG_URL:= http://sourceforge.net/projects/nfs PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=nfs/} DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 -PKG_FLAVOURS:= WITH_KERBEROS +PKG_FLAVOURS:= WITH_KERBEROS WITH_TIRPC PKGFD_WITH_KERBEROS:= enable Kerberos support (MIT) +PKGFD_WITH_TIRPC:= enable Transport Independent RPC include ${TOPDIR}/mk/package.mk -ifeq ($(ADK_PACKAGE_NFS_UTILS_WITH_KERBEROS),y) -PKG_DEPENDS+= krb5-libs libevent libnfsidmap librpcsecgss libcom-err libgssglue -endif - $(eval $(call PKG_template,NFS_UTILS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) -TCPPFLAGS+= -I${LINUX_DIR}/include +#TCPPFLAGS+= -I${LINUX_DIR}/include ifeq ($(ADK_PACKAGE_NFS_UTILS_WITH_KERBEROS),y) CONFIGURE_ARGS+= --enable-nfsv4 \ @@ -42,11 +48,16 @@ CONFIGURE_ARGS+= --disable-nfsv4 \ --disable-gss endif +ifeq ($(ADK_PACKAGE_NFS_UTILS_WITH_TIRPC),y) +CONFIGURE_ARGS+= --enable-tirpc \ + --with-tirpcinclude=${STAGING_DIR}/usr/include/tirpc +else +CONFIGURE_ARGS+= --disable-tirpc +endif + CONFIGURE_ENV+= knfsd_cv_bsd_signals=no \ ac_cv_lib_nsl_gethostbyname=no CONFIGURE_ARGS+= --without-tcp-wrappers \ - --enable-tirpc \ - --with-tirpcinclude=${STAGING_DIR}/usr/include/tirpc \ --disable-uuid CONFIGURE_STYLE:= gnu @@ -54,20 +65,23 @@ BUILD_STYLE:= auto INSTALL_STYLE:= auto post-install: - ${INSTALL_DIR} ${IDIR_NFS_UTILS}/usr/sbin - ${INSTALL_DIR} ${IDIR_NFS_UTILS}/etc + ${INSTALL_DIR} ${IDIR_NFS_UTILS}/usr/sbin ${IDIR_NFS_UTILS}/etc ${INSTALL_DATA} ./files/rpc ${IDIR_NFS_UTILS}/etc - ${INSTALL_BIN} ${WRKBUILD}/utils/exportfs/exportfs ${IDIR_NFS_UTILS}/usr/sbin/ - ${INSTALL_DIR} ${IDIR_NFS_UTILS}/usr/sbin + ${INSTALL_BIN} ${WRKBUILD}/utils/exportfs/exportfs \ + ${IDIR_NFS_UTILS}/usr/sbin/ ${INSTALL_DATA} ./files/nfsd.exports ${IDIR_NFS_UTILS}/etc/exports - ${INSTALL_BIN} ${WRKBUILD}/utils/statd/statd ${IDIR_NFS_UTILS}/usr/sbin/ - ${INSTALL_BIN} ${WRKBUILD}/utils/nfsd/nfsd ${IDIR_NFS_UTILS}/usr/sbin/ - ${INSTALL_BIN} ${WRKBUILD}/utils/mountd/mountd ${IDIR_NFS_UTILS}/usr/sbin/ + ${INSTALL_BIN} ${WRKBUILD}/utils/nfsd/nfsd \ + ${IDIR_NFS_UTILS}/usr/sbin/ + ${INSTALL_BIN} ${WRKBUILD}/utils/mountd/mountd \ + ${IDIR_NFS_UTILS}/usr/sbin/ ifeq ($(ADK_PACKAGE_NFS_UTILS_WITH_KERBEROS),y) ${INSTALL_DATA} ./files/idmapd.conf ${IDIR_NFS_UTILS}/etc - ${INSTALL_BIN} ${WRKBUILD}/utils/gssd/gssd ${IDIR_NFS_UTILS}/usr/sbin/ - ${INSTALL_BIN} ${WRKBUILD}/utils/gssd/svcgssd ${IDIR_NFS_UTILS}/usr/sbin/ - ${INSTALL_BIN} ${WRKBUILD}/utils/idmapd/idmapd ${IDIR_NFS_UTILS}/usr/sbin/ + ${INSTALL_BIN} ${WRKBUILD}/utils/gssd/gssd \ + ${IDIR_NFS_UTILS}/usr/sbin/ + ${INSTALL_BIN} ${WRKBUILD}/utils/gssd/svcgssd \ + ${IDIR_NFS_UTILS}/usr/sbin/ + ${INSTALL_BIN} ${WRKBUILD}/utils/idmapd/idmapd \ + ${IDIR_NFS_UTILS}/usr/sbin/ endif include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/nfs-utils/files/nfs-utils.postinst b/package/nfs-utils/files/nfs-utils.postinst index bfb7481d0..131ed1608 100644 --- a/package/nfs-utils/files/nfs-utils.postinst +++ b/package/nfs-utils/files/nfs-utils.postinst @@ -2,7 +2,7 @@ . $IPKG_INSTROOT/etc/functions.sh add_rcconf "kernel nfs server" nfs_server NO add_rcconf "kernel nfs server version" nfs_server_version 3 -add_service nfs 2049/tdp +add_service nfs 2049/tcp add_service nfs 2049/udp gid=$(get_next_gid) add_group nfs $gid diff --git a/package/nfs-utils/files/nfsd.init b/package/nfs-utils/files/nfsd.init index 9379d6a39..8d438e219 100644 --- a/package/nfs-utils/files/nfsd.init +++ b/package/nfs-utils/files/nfsd.init @@ -21,7 +21,6 @@ start) /usr/sbin/exportfs -r /usr/sbin/mountd /usr/sbin/nfsd - /usr/sbin/statd if [ ${nfs_server_version} -eq 4 ];then mkdir -p /var/lib/nfs/rpc_pipefs mount -t rpc_pipefs rpc_pipefs /var/lib/nfs/rpc_pipefs @@ -32,7 +31,6 @@ start) stop) pkill nfsd pkill mountd - pkill statd if [ ${nfs_server_version} -eq 4 ];then pkill idmapd pkill svcgssd diff --git a/package/portmap/files/portmap.init b/package/portmap/files/portmap.init index a42c2e2e0..ad0c2b075 100644 --- a/package/portmap/files/portmap.init +++ b/package/portmap/files/portmap.init @@ -15,7 +15,7 @@ start) portmap -t /tmp/.portmap ;; stop) - kill $(pidof portmap|cut -d ' ' -f 3) + pkill portmap ;; restart) sh $0 stop diff --git a/package/portmap/files/portmap.postinst b/package/portmap/files/portmap.postinst index 1017d2251..b8b30f45b 100644 --- a/package/portmap/files/portmap.postinst +++ b/package/portmap/files/portmap.postinst @@ -3,3 +3,6 @@ add_rcconf portmap add_group portmap 20 add_user portmap 20 20 /tmp/.portmap +add_service sunrpc 111/tcp +add_service sunrpc 111/udp + diff --git a/package/rpcbind/Makefile b/package/rpcbind/Makefile new file mode 100644 index 000000000..6afd4b8bd --- /dev/null +++ b/package/rpcbind/Makefile @@ -0,0 +1,36 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= rpcbind +PKG_VERSION:= 0.2.0 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 1a77ddb1aaea8099ab19c351eeb26316 +PKG_DESCR:= converts RPC program numbers into universal addresses +PKG_SECTION:= net +PKG_DEPENDS:= libtirpc +PKG_BUILDDEP+= libtirpc +PKG_URL:= http://sourceforge.net/projects/rpcbind/ +PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=rpcbind/} + +DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2 + +include $(TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,RPCBIND,$(PKG_NAME),$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +TCFLAGS+= -I${STAGING_DIR}/usr/include/tirpc +CONFIGURE_STYLE:= gnu +CONFIGURE_ARGS+= --disable-libwrap +BUILD_STYLE:= auto +INSTALL_STYLE:= auto + +post-install: + $(INSTALL_DIR) $(IDIR_RPCBIND)/usr/bin + $(INSTALL_BIN) $(WRKINST)/usr/bin/rpcbind \ + $(IDIR_RPCBIND)/usr/bin + $(INSTALL_BIN) $(WRKINST)/usr/bin/rpcinfo \ + $(IDIR_RPCBIND)/usr/bin + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/rpcbind/files/rpcbind.init b/package/rpcbind/files/rpcbind.init new file mode 100644 index 000000000..d11f01100 --- /dev/null +++ b/package/rpcbind/files/rpcbind.init @@ -0,0 +1,28 @@ +#!/bin/sh +#PKG rpcbind +#INIT 60 + +. /etc/rc.conf + +case $1 in +autostop) ;; +autostart) + test x"${rpcbind:-NO}" = x"NO" && exit 0 + exec sh $0 start + ;; +start) + rpcbind + ;; +stop) + pkill rpcbind + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + exit 1 + ;; +esac +exit $? diff --git a/package/rpcbind/files/rpcbind.postinst b/package/rpcbind/files/rpcbind.postinst new file mode 100644 index 000000000..7d26be995 --- /dev/null +++ b/package/rpcbind/files/rpcbind.postinst @@ -0,0 +1,5 @@ +#!/bin/sh +. $IPKG_INSTROOT/etc/functions.sh +add_rcconf rpcbind +add_service rpcbind 111/tcp +add_service rpcbind 111/udp diff --git a/package/rpcbind/patches/patch-src_Makefile_in b/package/rpcbind/patches/patch-src_Makefile_in new file mode 100644 index 000000000..037bff1b3 --- /dev/null +++ b/package/rpcbind/patches/patch-src_Makefile_in @@ -0,0 +1,11 @@ +--- rpcbind-0.2.0.orig/src/Makefile.in 2009-05-29 18:37:50.000000000 +0200 ++++ rpcbind-0.2.0/src/Makefile.in 2010-01-31 17:27:20.000000000 +0100 +@@ -207,7 +207,7 @@ rpcinfo_LDFLAGS = -lpthread -ltirpc + rpcinfo_LDADD = $(LIB_TIRPC) + rpcbind_LDFLAGS = -lpthread -ltirpc + rpcbind_LDADD = $(LIB_TIRPC) +-AM_CPPFLAGS = -I/usr/include/tirpc -DCHECK_LOCAL -DPORTMAP \ ++AM_CPPFLAGS = -DCHECK_LOCAL -DPORTMAP \ + -DFACILITY=LOG_MAIL -DSEVERITY=LOG_INFO + + all: config.h diff --git a/target/Config.in b/target/Config.in index cf229eb84..44d6a4465 100644 --- a/target/Config.in +++ b/target/Config.in @@ -831,6 +831,33 @@ config ADK_TARGET_INITRAMFS_COMPRESSION_LZMA endchoice +choice +prompt "Compression method for Kernel" + depends on ADK_LINUX_QEMU || ADK_LINUX_ALIX + +config ADK_TARGET_KERNEL_COMPRESSION_GZIP + boolean + prompt "gzip" + select ADK_KERNEL_KERNEL_GZIP + help + Select gzip compression for Kernel. + +config ADK_TARGET_KERNEL_COMPRESSION_BZIP2 + boolean + prompt "bzip2" + select ADK_KERNEL_KERNEL_BZIP2 + help + Select BZIP2 compression for Kernel. + +config ADK_TARGET_KERNEL_COMPRESSION_LZMA + boolean + prompt "lzma" + select ADK_KERNEL_KERNEL_LZMA + help + Select LZMA compression for Kernel. + +endchoice + config ADK_COMPRESSION_TOOL string default "gzip -n9" if ADK_TARGET_INITRAMFS_COMPRESSION_GZIP @@ -838,7 +865,6 @@ config ADK_COMPRESSION_TOOL default "lzma -9" if ADK_TARGET_INITRAMFS_COMPRESSION_LZMA help - choice prompt "Root filesystem type" depends on ADK_TARGET_ROOTFS_ARCHIVE @@ -886,7 +912,7 @@ config ADK_PACKAGE_SUFFIX string default "ipk" if ADK_TARGET_PACKAGE_IPKG default "tar.gz" if ADK_TARGET_PACKAGE_TGZ - default "rpm" if ADK_TARGET_PACKAGE_RPM +# default "rpm" if ADK_TARGET_PACKAGE_RPM help choice @@ -910,13 +936,12 @@ config ADK_TARGET_PACKAGE_TGZ directory. There will be no package manager installed onto the target. -config ADK_TARGET_PACKAGE_RPM - boolean - prompt "rpm package format" - help - Create rpm packages and use rpm package management on the - target. WARNING: NOT YET IMPLEMENTED +#config ADK_TARGET_PACKAGE_RPM +# boolean +# prompt "rpm package format" +# help +# Create rpm packages and use rpm package management on the +# target. WARNING: NOT YET IMPLEMENTED endchoice - endmenu diff --git a/target/linux/config/Config.in.fsnet b/target/linux/config/Config.in.fsnet index f87aeb9db..1db9d72b6 100644 --- a/target/linux/config/Config.in.fsnet +++ b/target/linux/config/Config.in.fsnet @@ -49,6 +49,7 @@ config ADK_KPACKAGE_KMOD_NFS_FS default n select ADK_KERNEL_NFS_V3 select ADK_KPACKAGE_KMOD_SUNRPC + select ADK_KPACKAGE_KMOD_LOCKD depends on !ADK_TARGET_ROOTFS_NFSROOT help If you are connected to some other (usually local) Unix computer @@ -94,7 +95,8 @@ config ADK_KPACKAGE_KMOD_NFSD default n select ADK_KPACKAGE_KMOD_EXPORTFS if !ADK_KERNEL_EXPORTFS select ADK_KERNEL_NFSD_V3 - depends on ADK_KPACKAGE_KMOD_NFS_FS + select ADK_KPACKAGE_KMOD_SUNRPC + select ADK_KPACKAGE_KMOD_LOCKD help If you want your Linux box to act as an NFS *server*, so that other computers on your local network which support NFS can access certain @@ -126,14 +128,20 @@ config ADK_KERNEL_NFSD_V4 help NFSv4 with Kerberos authentication. +config ADK_KPACKAGE_KMOD_LOCKD + tristate + default n + config ADK_KPACKAGE_KMOD_SUNRPC tristate default n config ADK_KPACKAGE_KMOD_SUNRPC_GSS tristate + select ADK_KPACKAGE_KMOD_SUNRPC default n config ADK_KPACKAGE_KMOD_RPCSEC_GSS_KRB5 tristate + select ADK_KPACKAGE_KMOD_SUNRPC_GSS default n -- cgit v1.2.3