-# Copyright (C) 2009-2019 OpenWrt.org
+# Copyright (C) 2009-2025 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
PKG_NAME:=nfs-kernel-server
PKG_VERSION:=2.8.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_HASH:=11c4cc598a434d7d340bad3e072a373ba1dcc2c49f855d44b202222b78ecdbf5
-PKG_SOURCE_URL:=@KERNEL/linux/utils/nfs-utils/$(PKG_VERSION)
PKG_SOURCE:=nfs-utils-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@KERNEL/linux/utils/nfs-utils/$(PKG_VERSION)
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_CPE_ID:=cpe:/a:nfs_project:nfs-utils
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/nfs-utils-$(PKG_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/nfs-utils-$(PKG_VERSION)
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=$(PKG_NAME)/host libevent2
HOST_BUILD_DEPENDS:=libtirpc/host
-
-PKG_CONFIG_DEPENDS:= \
- CONFIG_IPV6 \
- CONFIG_NFS_KERNEL_SERVER_V4
+PKG_CONFIG_DEPENDS:=CONFIG_IPV6
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
URL:=http://nfs.sourceforge.net/
endef
+define Package/nfs-utils/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ SUBMENU:=Filesystem
+ URL:=http://nfs.sourceforge.net/
+endef
+
define Package/nfs-kernel-server
$(call Package/nfs-kernel-server/Default)
- TITLE:=Kernel NFS server support
- 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
+ TITLE:=Kernel NFS server (NFSv3)
+ DEPENDS+= +kmod-fs-nfsd +kmod-fs-nfs +rpcbind
+ VARIANT:=v3
USERID:=nfs:nfs
endef
define Package/nfs-kernel-server/description
-Kernel NFS server support
+Kernel NFS server with NFSv3 support
endef
-define Package/nfs-kernel-server/config
- source "$(SOURCE)/Config.in"
-endef
-
-define Package/nfs-kernel-server-utils
+define Package/nfs-kernel-server-v4
$(call Package/nfs-kernel-server/Default)
- TITLE:=NFS server utils
- DEPENDS:=nfs-kernel-server
+ TITLE:=Kernel NFS server (NFSv4.x)
+ DEPENDS+= +kmod-fs-nfsd +kmod-fs-nfs +rpcbind +kmod-fs-nfs-v4 +libkeyutils +libdevmapper +libevent2-core +libreadline
+ CONFLICTS:=nfs-kernel-server
+ VARIANT:=v4
+ PROVIDES:=nfs-kernel-server
+ USERID:=nfs:nfs
endef
-define Package/nfs-kernel-server-utils/description
-NFS server utils
+define Package/nfs-kernel-server-v4/description
+Kernel NFS server with NFSv4.x support
endef
-define Package/nfs-kernel-server/conffiles
-/etc/exports
+define Package/nfs-utils
+ $(call Package/nfs-utils/Default)
+ TITLE:=NFS mount and umount utils (NFSv3)
+ DEPENDS:=+libtirpc
+ VARIANT:=v3
endef
-define Package/nfs-utils/Default
- $(call Package/nfs-kernel-server/Default)
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS+= +NFS_KERNEL_SERVER_V4:libkeyutils +NFS_KERNEL_SERVER_V4:libdevmapper
- URL:=http://nfs.sourceforge.net/
+define Package/nfs-utils/description
+Mount/umount utilities for NFSv3
endef
-define Package/nfs-utils
+define Package/nfs-utils-v4
$(call Package/nfs-utils/Default)
- TITLE:=updated mount utility (includes nfs4)
+ TITLE:=NFS mount and umount utils (NFSv4.x)
+ DEPENDS:=+libtirpc +libkeyutils +libdevmapper
+ CONFLICTS:=nfs-utils
+ VARIANT:=v4
+ PROVIDES:=nfs-utils
endef
-define Package/nfs-utils/description
-Updated mount.nfs command - allows mounting nfs4 volumes
+define Package/nfs-utils-v4/description
+Mount/umount utilities for NFSv4.x
endef
-define Package/nfs-utils-libs
- $(call Package/nfs-utils/Default)
- TITLE:=libraries provided by nfs-utils
+define Package/nfs-kernel-server-utils
+ $(call Package/nfs-kernel-server/Default)
+ TITLE:=NFS server utils
+ DEPENDS:=nfs-kernel-server +libtirpc
endef
-define Package/nfs-utils-libs/description
-Libraries provided by nfs-utils
+define Package/nfs-kernel-server-utils/description
+NFS server utils including showmount and nfsstat
endef
TARGET_CFLAGS += -Wno-error=implicit-function-declaration \
- -Wno-error=strict-prototypes \
- -Wno-error=incompatible-pointer-types \
- -Wno-error=format-security \
- -Wno-error=undef \
- -Wno-error=missing-include-dirs
+ -Wno-error=strict-prototypes \
+ -Wno-error=incompatible-pointer-types \
+ -Wno-error=format-security \
+ -Wno-error=undef \
+ -Wno-error=missing-include-dirs
ifneq ($(CONFIG_USE_MUSL),)
- TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
+ TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
endif
TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib/libevent
CONFIGURE_ARGS += \
--disable-caps \
--disable-gss \
- --disable-nfsdcld \
- --disable-nfsdcltrack \
- --enable-shared \
--enable-static \
- --with-rpcgen=internal \
- $(if $(CONFIG_NFS_KERNEL_SERVER_V4),--enable,--disable)-nfsv4 \
- $(if $(CONFIG_NFS_KERNEL_SERVER_V4),--enable,--disable)-nfsv41 \
- $(if $(CONFIG_NFS_KERNEL_SERVER_V4),--enable,--disable)-nfsv42
+ --with-rpcgen=internal
ifeq ($(CONFIG_IPV6),n)
CONFIGURE_ARGS += --disable-ipv6
endif
+ifeq ($(BUILD_VARIANT),v3)
+ CONFIGURE_ARGS += \
+ --disable-nfsdcld \
+ --disable-nfsv4server \
+ --disable-nfsv4 \
+ --disable-nfsv41 \
+ --disable-nfsv42
+endif
+
+ifeq ($(BUILD_VARIANT),v4)
+ CONFIGURE_ARGS += \
+ --enable-nfsdcld \
+ --enable-nfsv4server \
+ --enable-nfsv4 \
+ --enable-nfsv41 \
+ --enable-nfsv42
+endif
+
CONFIGURE_VARS += \
libblkid_cv_is_recent=yes \
ac_cv_lib_resolv___res_querydomain=yes \
- ac_cv_lib_bsd_daemon=no \
- CONFIG_SQLITE3_TRUE="\#" \
- CONFIG_NFSDCLD_TRUE="\#"
+ ac_cv_lib_bsd_daemon=no
MAKE_FLAGS += \
OPT="$(TARGET_CFLAGS)" \
HOST_CONFIGURE_ARGS += \
--disable-gss \
- --disable-nfsv4 \
- --disable-nfsv41 \
--disable-nfsrahead \
--disable-nfsdctl \
--without-tcp-wrappers \
GSSGLUE_LIBS=" " \
RPCSECGSS_CFLAGS=" " \
RPCSECGSS_LIBS=" " \
- CONFIG_SQLITE3_TRUE="\#" \
- CONFIG_NFSDCLD_TRUE="\#" \
ac_cv_lib_event_core_event_base_dispatch=yes \
ac_cv_header_event2_event_h=yes \
c_cv_lib_sqlite3_sqlite3_libversion_number=yes \
- libsqlite3_cv_is_recent=yes
+ libsqlite3_cv_is_recent=yes \
+ ac_cv_header_libdevmapper_h=yes \
+ ac_cv_lib_devmapper_dm_task_create=yes
define Host/Compile
$(MAKE) -C $(HOST_BUILD_DIR)/tools/rpcgen all
$(INSTALL_BIN) $(HOST_BUILD_DIR)/tools/rpcgen/rpcgen $(STAGING_DIR_HOSTPKG)/bin/rpcgen
endef
-define Package/nfs-kernel-server/install
- $(INSTALL_DIR) $(1)/etc/init.d $(1)/usr/sbin
- $(INSTALL_DATA) ./files/nfsd.exports $(1)/etc/exports
- $(INSTALL_BIN) ./files/nfsd.init $(1)/etc/init.d/nfsd
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/statd/sm-notify $(1)/usr/sbin/
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/statd/statd $(1)/usr/sbin/rpc.statd
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsd/nfsd $(1)/usr/sbin/rpc.nfsd
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/mountd/mountd $(1)/usr/sbin/rpc.mountd
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/exportfs/exportfs $(1)/usr/sbin/
+define Package/nfs-kernel-server/conffiles
+/etc/exports
endef
-define Package/nfs-kernel-server-utils/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/showmount/showmount $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsstat/nfsstat $(1)/usr/sbin
-endef
+Package/nfs-kernel-server-v4/conffiles = $(Package/nfs-kernel-server/conffiles)
define Package/nfs-utils/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libnfsidmap.pc $(1)/usr/lib/pkgconfig/
endef
+define Package/nfs-kernel-server/install
+ $(INSTALL_DIR) $(1)/etc/config $(1)/usr/sbin $(1)/etc/init.d
+ $(INSTALL_DATA) ./files/nfsd.v3.exports $(1)/etc/exports
+ $(INSTALL_BIN) ./files/nfsd.v3.init $(1)/etc/init.d/nfsd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/statd/sm-notify $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/statd/statd $(1)/usr/sbin/rpc.statd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsd/nfsd $(1)/usr/sbin/rpc.nfsd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/mountd/mountd $(1)/usr/sbin/rpc.mountd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/exportfs/exportfs $(1)/usr/sbin/
+endef
+
+define Package/nfs-kernel-server-v4/install
+ $(INSTALL_DIR) $(1)/etc/config $(1)/usr/sbin $(1)/etc/init.d
+ $(INSTALL_DATA) ./files/nfsd.v4.exports $(1)/etc/exports
+ $(INSTALL_BIN) ./files/nfsd.v4.init $(1)/etc/init.d/nfsd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/statd/sm-notify $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsd/nfsd $(1)/usr/sbin/rpc.nfsd
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/exportfs/exportfs $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsdcld/nfsdcld $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/rpc.idmapd $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nfsv4.exportd $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfsidmap.so* $(1)/usr/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfsidmap/*.so $(1)/usr/lib/
+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 umount.nfs)
+endef
+
+define Package/nfs-utils-v4/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
- $(if $(CONFIG_NFS_KERNEL_SERVER_V4),$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnfsidmap.so* $(1)/usr/lib/,)
+define Package/nfs-kernel-server-utils/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/showmount/showmount $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/utils/nfsstat/nfsstat $(1)/usr/sbin
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-v4))
+$(eval $(call BuildPackage,nfs-utils))
+$(eval $(call BuildPackage,nfs-utils-v4))
$(eval $(call BuildPackage,nfs-kernel-server-utils))