소스 검색

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 년 전
부모
커밋
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