smbd: update to 3.1.1, rename to "ksmbd", "ksmbd-tools"
authorAndy Walsh <redacted>
Sun, 26 Jan 2020 15:32:53 +0000 (16:32 +0100)
committerAndy Walsh <redacted>
Sun, 26 Jan 2020 15:32:53 +0000 (16:32 +0100)
* rename smbd->ksmbd (upstream name change)
* ksmbd-tools: build with static glib2 (usmbd = ~90kb, smbuseradd = ~40kb)
* new etc folder location = /etc/ksmbd/smb.conf
* new database name = /etc/ksmbd/ksmbdpwd.db
* fixes "map to guest = Bad User" while userdb is also used
* fixes missing ipv6 support
* update/rename to "luci-app-ksmbd"
* remove UCI samba compatibility code for section names (ksmbd uses [share] + [globals] not [sambashare] + [global])

* ksmbd: release 3.1.1 version
* ksmbd: does not work if ipv6 module is not loaded or compiled in
* ksmbd: capsule ifdef CONFIG_SMB_INSECURE_SERVER with smb1 codes
* ksmbd: release 3.1.0 version
* ksmbd: fix over 80 character warnings
* ksmbd: rename smbd-tools to ksmbd-tools in travis.yml
* ksmbd: fix password db file location in travis.yml
* ksmbd: rename smbd prefix function to ksmbd
* ksmbd: rename smbd prefix source files to ksmbd
* Revert "smbd: set connection status with SMBD_SESS_EXITING instead of direct destory"
* ksmbd: rename smbd to ksmbd in .travis.yml
* smbd: rename module name to ksmbd.ko
* smbd: set connection status with SMBD_SESS_EXITING instead of direct destory
* smbd: previous session with same user and same password should be deleted
* smbd: only use global session table in smb2 session
* smbd: add support for ipv6
* smbd: fix empty macro issue from smbd_debug
* cifsd: fix printing of file names in find_next

Signed-off-by: Andy Walsh <redacted>
kernel/ksmbd/Makefile [moved from kernel/smbd/Makefile with 74% similarity]
kernel/ksmbd/patches/01-keep_kmod_metadata.patch [moved from kernel/smbd/patches/01-keep_kmod_metadata.patch with 76% similarity]
net/ksmbd-tools/Makefile [new file with mode: 0644]
net/ksmbd-tools/files/ksmbd.config [moved from net/smbd-tools/files/smbd.config with 53% similarity]
net/ksmbd-tools/files/ksmbd.config.example [moved from net/smbd-tools/files/smbd.config.example with 82% similarity]
net/ksmbd-tools/files/ksmbd.init [moved from net/smbd-tools/files/smbd.init with 70% similarity]
net/ksmbd-tools/files/smb.conf.template [moved from net/smbd-tools/files/smb.conf.template with 100% similarity]
net/smbd-tools/Makefile [deleted file]

similarity index 74%
rename from kernel/smbd/Makefile
rename to kernel/ksmbd/Makefile
index f5c541fb54ab42c508e667ecc200bddcdf05ca19..b6d93678f37a2f9dd50bf28175d6b9b16d65d5a2 100644 (file)
@@ -1,12 +1,12 @@
 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
@@ -15,11 +15,11 @@ PKG_LICENSE_FILES:=COPYING
 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 \
@@ -37,8 +37,8 @@ define KernelPackage/fs-smbd
                +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
 
@@ -49,4 +49,4 @@ define Build/Compile
        modules
 endef
 
-$(eval $(call KernelPackage,fs-smbd))
+$(eval $(call KernelPackage,fs-ksmbd))
similarity index 76%
rename from kernel/smbd/patches/01-keep_kmod_metadata.patch
rename to kernel/ksmbd/patches/01-keep_kmod_metadata.patch
index 9240852c806132d1eb74a913b8b3bf8a210c0cca..9fc547f2a6895631a9c3aa12d8423c487153726f 100644 (file)
@@ -1,8 +1,8 @@
 --- 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
 +
diff --git a/net/ksmbd-tools/Makefile b/net/ksmbd-tools/Makefile
new file mode 100644 (file)
index 0000000..5543a7f
--- /dev/null
@@ -0,0 +1,113 @@
+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))
similarity index 53%
rename from net/smbd-tools/files/smbd.config
rename to net/ksmbd-tools/files/ksmbd.config
index 0393ea7babb2840c214841a6ed4f4f7cd23d5e09..52c65185cf14feb3589df088b5532dddf6999f77 100644 (file)
@@ -1,3 +1,3 @@
 config globals
        option 'workgroup'              'WORKGROUP'
-       option 'description'    'SMBD on OpenWrt'
+       option 'description'    'Ksmbd on OpenWrt'
similarity index 82%
rename from net/smbd-tools/files/smbd.config.example
rename to net/ksmbd-tools/files/ksmbd.config.example
index 2c515d9c7c2bf47e45ee12c9475c183e8310b1c6..9a457e03b88f173b31d76ca9cd19ab37d3f41377 100644 (file)
@@ -1,5 +1,5 @@
 config globals
-       option 'description'    'SMBD on OpenWrt'
+       option 'description'    'Ksmbd on OpenWrt'
 
 config share
        option name 'testshare'
similarity index 70%
rename from net/smbd-tools/files/smbd.init
rename to net/ksmbd-tools/files/ksmbd.init
index 00f1cf71a3e27ca5ce16eb3fe8775bb115f3515c..6ae7cdb641b0ef46fa3a41efe7dbe09a301b70f6 100644 (file)
@@ -28,18 +28,18 @@ smb_header()
        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
 }
 
@@ -113,26 +113,23 @@ smb_add_share()
 
                [ -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
@@ -142,10 +139,10 @@ service_triggers()
 
 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
 }
@@ -154,44 +151,44 @@ start_service()
 {
        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() {
diff --git a/net/smbd-tools/Makefile b/net/smbd-tools/Makefile
deleted file mode 100644 (file)
index b8e4a0a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-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))
git clone https://git.99rst.org/PROJECT