Selaa lähdekoodia

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.
Waldemar Brodkorb 14 vuotta sitten
vanhempi
commit
53b2ff052e

+ 4 - 1
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

+ 1 - 0
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"

+ 35 - 21
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

+ 1 - 1
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

+ 0 - 2
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

+ 1 - 1
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

+ 3 - 0
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
+

+ 36 - 0
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

+ 28 - 0
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 $?

+ 5 - 0
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

+ 11 - 0
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

+ 34 - 9
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

+ 9 - 1
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