include $(TOPDIR)/rules.mk
-PKG_NAME:=smbd
-PKG_VERSION:=3.0.2
+PKG_NAME:=ksmbd
+PKG_VERSION:=3.1.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/cifsd-team/$(PKG_NAME)/archive/$(PKG_VERSION)/
-PKG_HASH:=13e256fed6992fddec5027d0866bc1eb4ff8da1e5f6a41b3296007f5cceb1a0a
+PKG_HASH:=5cf00902b77206a56f20b8ec499aea061292a15003bbdd8194fcb2299fb2343e
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
-define KernelPackage/fs-smbd
+define KernelPackage/fs-ksmbd
SUBMENU:=Filesystems
TITLE:=SMB kernel server support
- URL:=https://github.com/cifsd-team/smbd
- FILES:=$(PKG_BUILD_DIR)/smbd.ko
+ URL:=https://github.com/cifsd-team/ksmbd
+ FILES:=$(PKG_BUILD_DIR)/ksmbd.ko
DEPENDS:= \
+kmod-nls-base \
+kmod-nls-utf8 \
+kmod-crypto-gcm
endef
-define KernelPackage/fs-smbd/description
- Smbd is an In-kernel SMB2/3 fileserver.
+define KernelPackage/fs-ksmbd/description
+ Ksmbd is an In-kernel SMB2/3 fileserver.
It's an implementation of the SMB protocol in kernel space for sharing files and IPC services over network.
endef
modules
endef
-$(eval $(call KernelPackage,fs-smbd))
+$(eval $(call KernelPackage,fs-ksmbd))
--- a/glob.h 2019-12-08
+++ b/glob.h 2019-12-08
@@ -7,6 +7,8 @@
- #ifndef __SMBD_GLOB_H
- #define __SMBD_GLOB_H
+ #ifndef __KSMBD_GLOB_H
+ #define __KSMBD_GLOB_H
+#undef CONFIG_MODULE_STRIPPED
+
--- /dev/null
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ksmbd-tools
+PKG_VERSION:=3.1.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://github.com/cifsd-team/$(PKG_NAME)/archive/$(PKG_VERSION)/
+PKG_HASH:=7a01b327028cb52824a394dc2c4e706d15145b823fd0ff399c359f7a4c991c4a
+
+PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
+PKG_LICENSE:=GPL-2.0-or-later
+PKG_LICENSE_FILES:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+PKG_REMOVE_FILES:=autogen.sh
+
+PKG_BUILD_DEPENDS:=glib2
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/ksmbd-tools/Default
+ SECTION:=net
+ CATEGORY:=Network
+ SUBMENU:=Filesystem
+ TITLE:=Kernel SMB
+ URL:=https://github.com/cifsd-team/ksmbd-tools
+ DEPENDS:= $(ICONV_DEPENDS) $(INTL_DEPENDS)
+endef
+
+define Package/ksmbd-tools/Default/description
+ Userspace tools to manage the SMB kernel fileserver (ksmbd.ko).
+ The config file location is /etc/ksmbd/smb.conf
+endef
+
+define Package/ksmbd-server
+ $(call Package/ksmbd-tools/Default)
+ TITLE+= server
+ DEPENDS+= +kmod-fs-ksmbd +libnl-core +libnl-genl
+endef
+
+define Package/ksmbd-server/description
+ installs: usmbd
+
+ This provides the basic fileserver service and is the minimum needed to serve 'guest only' file shares or use a existing user database file ksmbdpwd.db.
+endef
+
+define Package/ksmbd-server/config
+ select PACKAGE_wsdd2
+endef
+
+define Package/ksmbd-utils
+ $(call Package/ksmbd-tools/Default)
+ TITLE+= user management-util
+endef
+
+define Package/ksmbd-utils/description
+ installs: smbuseradd (smbshareadd)
+
+ Tool needed to create the ksmbdpwd.db, to manage per user share passwords.
+ NOTE: Not needed for 'guest only' shares.
+endef
+
+define Package/ksmbd-utils/config
+ config KSMBD_UTILS_SHAREADD
+ bool "Add smbshareadd util"
+ depends on PACKAGE_ksmbd-utils
+ help
+ Add the smbshareadd tool, to directly manipulate the /etc/ksmbd/smb.conf.
+ default n
+endef
+
+CONFIGURE_ARGS += \
+ --disable-shared \
+ --enable-static
+
+CONFIGURE_VARS += GLIB_LIBS="$(STAGING_DIR)/usr/lib/libglib-2.0.a"
+
+TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
+TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -liconv $(if $(INTL_FULL),-lintl)
+
+define Package/ksmbd-server/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/usmbd $(1)/usr/sbin/
+ $(INSTALL_DIR) $(1)/etc/config $(1)/etc/ksmbd $(1)/etc/init.d
+ $(INSTALL_CONF) ./files/ksmbd.config $(1)/etc/config/ksmbd
+ $(INSTALL_DATA) ./files/smb.conf.template $(1)/etc/ksmbd/
+ $(INSTALL_BIN) ./files/ksmbd.init $(1)/etc/init.d/ksmbd
+ # copy examples until we have a wiki page
+ $(INSTALL_DATA) ./files/ksmbd.config.example $(1)/etc/ksmbd/
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/Documentation/configuration.txt $(1)/etc/ksmbd/
+endef
+
+define Package/ksmbd-utils/install
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbuseradd $(1)/usr/sbin/
+ifeq ($(CONFIG_KSMBD_UTILS_SHAREADD),y)
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbshareadd $(1)/usr/sbin/
+endif
+endef
+
+define Package/ksmbd-server/conffiles
+/etc/config/ksmbd
+/etc/ksmbd/smb.conf.template
+/etc/ksmbd/smb.conf
+/etc/ksmbd/ksmbdpwd.db
+endef
+
+$(eval $(call BuildPackage,ksmbd-server))
+$(eval $(call BuildPackage,ksmbd-utils))
config globals
option 'workgroup' 'WORKGROUP'
- option 'description' 'SMBD on OpenWrt'
+ option 'description' 'Ksmbd on OpenWrt'
config globals
- option 'description' 'SMBD on OpenWrt'
+ option 'description' 'Ksmbd on OpenWrt'
config share
option name 'testshare'
hostname="$(cat /proc/sys/kernel/hostname)"
config_get workgroup $1 workgroup "WORKGROUP"
- config_get description $1 description "SMBD on OpenWrt"
+ config_get description $1 description "Ksmbd on OpenWrt"
sed -e "s#|NAME|#$hostname#g" \
-e "s#|WORKGROUP|#$workgroup#g" \
-e "s#|DESCRIPTION|#$description#g" \
-e "s#|INTERFACES|#$interfaces#g" \
- /etc/smbd/smb.conf.template > /var/etc/smbd/smb.conf
+ /etc/ksmbd/smb.conf.template > /var/etc/ksmbd/smb.conf
- [ -e /etc/smbd/smb.conf ] || ln -nsf /var/etc/smbd/smb.conf /etc/smbd/smb.conf
+ [ -e /etc/ksmbd/smb.conf ] || ln -nsf /var/etc/ksmbd/smb.conf /etc/ksmbd/smb.conf
- if [ ! -L /etc/smbd/smb.conf ]; then
- logger -p daemon.warn -t 'smbd' "Local custom /etc/smbd/smb.conf file detected, all UCI/Luci config settings are ignored!"
+ if [ ! -L /etc/ksmbd/smb.conf ]; then
+ logger -p daemon.warn -t 'ksmbd' "Local custom /etc/ksmbd/smb.conf file detected, all UCI/Luci config settings are ignored!"
fi
}
[ -n "$hide_dot_files" ] && printf "\thide dot files = %s\n" "$hide_dot_files"
[ -n "$veto_files" ] && printf "\tveto files = %s\n" "$veto_files"
- } >> /var/etc/smbd/smb.conf
+ } >> /var/etc/ksmbd/smb.conf
}
init_config()
{
- mkdir -p /var/etc/smbd
+ mkdir -p /var/etc/ksmbd
- config_load smbd
- # allow copy&paste from samba UCI configs (we dont have a smbd wiki yet)
+ config_load ksmbd
config_foreach smb_header globals
- config_foreach smb_header samba
config_foreach smb_add_share share
- config_foreach smb_add_share sambashare
}
service_triggers()
{
# PROCD_RELOAD_DELAY=1000
- procd_add_reload_trigger "dhcp" "system" "smbd"
+ procd_add_reload_trigger "dhcp" "system" "ksmbd"
local i
for i in $SMBD_IFACE; do
kill_server()
{
- if [ -e /sys/module/smbd ]; then
- if [ -e /sys/class/smbd-control/kill_server ]; then
- logger -p daemon.info -t 'smbd' "triggering kill_server"
- echo hard > /sys/class/smbd-control/kill_server
+ if [ -e /sys/module/ksmbd ]; then
+ if [ -e /sys/class/ksmbd-control/kill_server ]; then
+ logger -p daemon.info -t 'ksmbd' "triggering kill_server"
+ echo hard > /sys/class/ksmbd-control/kill_server
fi
fi
}
{
init_config
- if [ ! -e /etc/smbd/smb.conf ]; then
- logger -p daemon.error -t 'smbd' "missing config /etc/smbd/smb.conf!"
+ if [ ! -e /etc/ksmbd/smb.conf ]; then
+ logger -p daemon.error -t 'ksmbd' "missing config /etc/ksmbd/smb.conf!"
exit 1
fi
# NOTE: We don't do a soft-reload via signal, since [global] smb.conf setting changes will be ignored, so always reset hard.
kill_server
- [ ! -e /sys/module/smbd ] && modprobe smbd 2> /dev/null
- if [ ! -e /sys/module/smbd ]; then
- logger -p daemon.error -t 'smbd' "modprobe of smbd module failed, can\'t start smbd!"
+ [ ! -e /sys/module/ksmbd ] && modprobe ksmbd 2> /dev/null
+ if [ ! -e /sys/module/ksmbd ]; then
+ logger -p daemon.error -t 'ksmbd' "modprobe of ksmbd module failed, can\'t start ksmbd!"
exit 1
fi
- logger -p daemon.notice -t 'smbd' "Starting SMBD userspace service."
+ logger -p daemon.notice -t 'ksmbd' "Starting Ksmbd userspace service."
procd_open_instance
procd_add_mdns "smb" "tcp" "445"
procd_set_param command /usr/sbin/usmbd --n
- procd_set_param file /etc/smbd/smb.conf
+ procd_set_param file /etc/ksmbd/smb.conf
procd_set_param limits nofile=16384
procd_close_instance
}
stop_service()
{
- logger -p daemon.notice -t 'smbd' "Stopping SMBD userspace service."
+ logger -p daemon.notice -t 'ksmbd' "Stopping Ksmbd userspace service."
killall usmbd > /dev/null 2>&1
- [ -e /sys/module/smbd ] && rmmod smbd > /dev/null 2>&1
+ [ -e /sys/module/ksmbd ] && rmmod ksmbd > /dev/null 2>&1
# kill server if we cant rmmod
- [ -e /sys/module/smbd ] && kill_server
+ [ -e /sys/module/ksmbd ] && kill_server
# next try
- [ -e /sys/module/smbd ] && rmmod smbd > /dev/null 2>&1
+ [ -e /sys/module/ksmbd ] && rmmod ksmbd > /dev/null 2>&1
- if [ -e /sys/module/smbd ]; then
- logger -p daemon.error -t 'smbd' "module still loaded after kill_server?"
+ if [ -e /sys/module/ksmbd ]; then
+ logger -p daemon.error -t 'ksmbd' "module still loaded after kill_server?"
fi
- [ -f /tmp/smbd.lock ] && rm /tmp/smbd.lock
+ [ -f /tmp/usmbd.lock ] && rm /tmp/usmbd.lock
}
# reload_service() {
+++ /dev/null
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=smbd-tools
-PKG_VERSION:=3.0.1
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/cifsd-team/$(PKG_NAME)/archive/$(PKG_VERSION)/
-PKG_HASH:=29f85de8b39608d28ec406c8b557264e004f5dce9b307a37f8324508cdea6217
-
-PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
-PKG_LICENSE:=GPL-2.0-or-later
-PKG_LICENSE_FILES:=COPYING
-
-PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
-PKG_BUILD_PARALLEL:=1
-PKG_REMOVE_FILES:=autogen.sh
-
-PKG_BUILD_DEPENDS:=glib2
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/smbd-tools/Default
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Filesystem
- TITLE:=Kernel SMB
- URL:=https://github.com/cifsd-team/smbd-tools
- DEPENDS:= +glib2 $(ICONV_DEPENDS) $(INTL_DEPENDS)
-endef
-
-define Package/smbd-tools/Default/description
- Userspace tools for the SMB kernel fileserver (smbd.ko).
- The config file location is /etc/smbd/smb.conf
-endef
-
-define Package/smbd-server
- $(call Package/smbd-tools/Default)
- TITLE+= server
- DEPENDS+= +kmod-fs-smbd +libnl-core +libnl-genl
-endef
-
-define Package/smbd-server/description
- installs: usmbd
-
- This provides the basic fileserver service and is the minimum needed to serve 'guest only' file shares or use a existing smbdpwd.db.
-endef
-
-define Package/smbd-server/config
- select PACKAGE_wsdd2
-endef
-
-define Package/smbd-utils
- $(call Package/smbd-tools/Default)
- TITLE+= user management-util
-endef
-
-define Package/smbd-utils/description
- installs: smbuseradd (smbshareadd)
-
- Tool needed to create the smbdpwd.db, to manage per user share passwords.
- NOTE: Not needed for 'guest only' shares.
-endef
-
-define Package/smbd-utils/config
- config SMBD_UTILS_SHAREADD
- bool "Add smbshareadd util"
- depends on PACKAGE_smbd-utils
- help
- Add the smbshareadd tool, to directly manipulate the /etc/smbd/smb.conf.
- default n
-endef
-
-CONFIGURE_ARGS += \
- --disable-shared \
- --enable-static
-
-# CONFIGURE_VARS += GLIB_LIBS="$(STAGING_DIR)/usr/lib/libglib-2.0.a"
-
-TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
-TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -liconv $(if $(INTL_FULL),-lintl)
-
-define Package/smbd-server/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/usmbd $(1)/usr/sbin/
- $(INSTALL_DIR) $(1)/etc/config $(1)/etc/smbd $(1)/etc/init.d
- $(INSTALL_CONF) ./files/smbd.config $(1)/etc/config/smbd
- $(INSTALL_DATA) ./files/smb.conf.template $(1)/etc/smbd/
- $(INSTALL_BIN) ./files/smbd.init $(1)/etc/init.d/smbd
- # copy examples until we have a wiki page
- $(INSTALL_DATA) ./files/smbd.config.example $(1)/etc/smbd/
- $(INSTALL_DATA) $(PKG_BUILD_DIR)/Documentation/configuration.txt $(1)/etc/smbd/
-endef
-
-define Package/smbd-utils/install
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbuseradd $(1)/usr/sbin/
-ifeq ($(CONFIG_SMBD_UTILS_SHAREADD),y)
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/smbshareadd $(1)/usr/sbin/
-endif
-endef
-
-define Package/smbd-server/conffiles
-/etc/config/smbd
-/etc/smbd/smb.conf.template
-/etc/smbd/smb.conf
-/etc/smbd/smbdpwd.db
-endef
-
-$(eval $(call BuildPackage,smbd-server))
-$(eval $(call BuildPackage,smbd-utils))