aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/nfs-kernel-server/Config.in8
-rw-r--r--net/nfs-kernel-server/Makefile57
-rw-r--r--net/nfs-kernel-server/files/nfsd.init2
3 files changed, 58 insertions, 9 deletions
diff --git a/net/nfs-kernel-server/Config.in b/net/nfs-kernel-server/Config.in
new file mode 100644
index 000000000..454a44e6a
--- /dev/null
+++ b/net/nfs-kernel-server/Config.in
@@ -0,0 +1,8 @@
+menu "Select nfs-kernel-server configuration options"
+ depends on PACKAGE_nfs-kernel-server
+
+config NFS_KERNEL_SERVER_V4
+ bool "Include support for NFSv4"
+ default y
+
+endmenu
diff --git a/net/nfs-kernel-server/Makefile b/net/nfs-kernel-server/Makefile
index dcb98d029..e9f2fd574 100644
--- a/net/nfs-kernel-server/Makefile
+++ b/net/nfs-kernel-server/Makefile
@@ -20,7 +20,10 @@ PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=$(PKG_NAME)/host
HOST_BUILD_DEPENDS:=libtirpc/host
-PKG_CONFIG_DEPENDS:= CONFIG_IPV6
+
+PKG_CONFIG_DEPENDS:= \
+ CONFIG_IPV6 \
+ CONFIG_NFS_KERNEL_SERVER_V4
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
@@ -37,13 +40,17 @@ endef
define Package/nfs-kernel-server
$(call Package/nfs-kernel-server/Default)
TITLE:=Kernel NFS server support
- DEPENDS+= +kmod-fs-nfsd +kmod-fs-nfs +rpcbind
+ DEPENDS+= +kmod-fs-nfsd +kmod-fs-nfs +NFS_KERNEL_SERVER_V4:kmod-fs-nfs-v4 +rpcbind +NFS_KERNEL_SERVER_V4:nfs-utils-libs +NFS_KERNEL_SERVER_V4:libkeyutils +NFS_KERNEL_SERVER_V4:libdevmapper
endef
define Package/nfs-kernel-server/description
Kernel NFS server support
endef
+define Package/nfs-kernel-server/config
+ source "$(SOURCE)/Config.in"
+endef
+
define Package/nfs-kernel-server-utils
$(call Package/nfs-kernel-server/Default)
TITLE:=NFS server utils
@@ -58,11 +65,17 @@ define Package/nfs-kernel-server/conffiles
/etc/exports
endef
-define Package/nfs-utils
+define Package/nfs-utils/Default
$(call Package/nfs-kernel-server/Default)
SECTION:=utils
CATEGORY:=Utilities
- DEPENDS+= +libevent2
+ DEPENDS+= +libevent2 +NFS_KERNEL_SERVER_V4:libkeyutils +NFS_KERNEL_SERVER_V4:libdevmapper
+ URL:=http://nfs.sourceforge.net/
+ MAINTAINER:=Peter Wagner <tripolar@gmx.at>
+endef
+
+define Package/nfs-utils
+ $(call Package/nfs-utils/Default)
TITLE:=updated mount utility (includes nfs4)
endef
@@ -70,6 +83,15 @@ define Package/nfs-utils/description
Updated mount.nfs command - allows mounting nfs4 volumes
endef
+define Package/nfs-utils-libs
+ $(call Package/nfs-utils/Default)
+ TITLE:=libraries provided by nfs-utils
+endef
+
+define Package/nfs-utils-libs/description
+ Libraries provided by nfs-utils
+endef
+
TARGET_CFLAGS += -Wno-error=implicit-function-declaration \
-Wno-error=strict-prototypes \
-Wno-error=incompatible-pointer-types \
@@ -81,12 +103,14 @@ TARGET_LDFLAGS += -Wl,-rpath-link=$(STAGING_DIR)/usr/lib \
-L$(STAGING_DIR)/usr/lib/libevent
CONFIGURE_ARGS += \
+ --disable-caps \
--disable-gss \
- --disable-nfsv4 \
- --disable-nfsv41 \
- --enable-static \
+ --disable-nfsdcld \
+ --disable-nfsdcltrack \
--enable-shared \
- --disable-caps
+ --enable-static \
+ $(if $(CONFIG_NFS_KERNEL_SERVER_V4),--enable,--disable)-nfsv4 \
+ $(if $(CONFIG_NFS_KERNEL_SERVER_V4),--enable,--disable)-nfsv41
ifeq ($(CONFIG_IPV6),n)
CONFIGURE_ARGS += --disable-ipv6
@@ -156,13 +180,28 @@ define Package/nfs-kernel-server-utils/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsstat/nfsstat $(1)/usr/sbin
endef
+define Package/nfs-utils/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/nfsidmap.h $(1)/usr/include/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfsidmap.{a,la,so*} $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnfsidmap.pc $(1)/usr/lib/pkgconfig/
+endef
+
define Package/nfs-utils/install
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/mount.nfs $(1)/sbin/
(cd $(1)/sbin; ln -sf mount.nfs mount.nfs4; ln -sf mount.nfs umount.nfs; ln -sf mount.nfs umount.nfs4)
endef
+define Package/nfs-utils-libs/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfsidmap.so* $(1)/usr/lib/
+endef
+
$(eval $(call HostBuild))
+$(eval $(call BuildPackage,nfs-utils))
+$(eval $(call BuildPackage,nfs-utils-libs))
$(eval $(call BuildPackage,nfs-kernel-server))
$(eval $(call BuildPackage,nfs-kernel-server-utils))
-$(eval $(call BuildPackage,nfs-utils))
diff --git a/net/nfs-kernel-server/files/nfsd.init b/net/nfs-kernel-server/files/nfsd.init
index af36c12cd..394bf2efd 100644
--- a/net/nfs-kernel-server/files/nfsd.init
+++ b/net/nfs-kernel-server/files/nfsd.init
@@ -7,12 +7,14 @@ STOP=60
USE_PROCD=1
NFS_D=/var/lib/nfs
+RECOVERY_D=$NFS_D/v4recovery
LOCK_D=/var/lib/nfs/sm
start_service() {
grep -q /proc/fs/nfsd /proc/mounts || \
mount -t nfsd nfsd /proc/fs/nfsd
mkdir -p $NFS_D
+ mkdir -p $RECOVERY_D
mkdir -p $LOCK_D
touch $NFS_D/rmtab