summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-01-31 18:43:34 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2010-01-31 18:43:34 +0100
commit53b2ff052e3a164154d4ee17f189b213e4600ecb (patch)
tree876b66d8afcdb3e83ec5f4cac90721c32fabcd07
parent69f8e5c7f61a46b79a3a75036d8cfe86830023c1 (diff)
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.
-rw-r--r--mk/modules.mk5
-rw-r--r--package/Config.in1
-rw-r--r--package/nfs-utils/Makefile56
-rw-r--r--package/nfs-utils/files/nfs-utils.postinst2
-rw-r--r--package/nfs-utils/files/nfsd.init2
-rw-r--r--package/portmap/files/portmap.init2
-rw-r--r--package/portmap/files/portmap.postinst3
-rw-r--r--package/rpcbind/Makefile36
-rw-r--r--package/rpcbind/files/rpcbind.init28
-rw-r--r--package/rpcbind/files/rpcbind.postinst5
-rw-r--r--package/rpcbind/patches/patch-src_Makefile_in11
-rw-r--r--target/Config.in43
-rw-r--r--target/linux/config/Config.in.fsnet10
13 files changed, 168 insertions, 36 deletions
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