Merge pull request #11143 from Andy2244/smbd-rename_ksmbd-update-3.1.1-(19.07)

[19.07] smbd: update to 3.1.1, rename to "ksmbd", "ksmbd-tools"
This commit is contained in:
Rosen Penev 2020-01-27 15:48:22 -08:00 committed by GitHub
commit cd81e4f06f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 153 additions and 156 deletions

View file

@ -1,12 +1,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=smbd PKG_NAME:=ksmbd
PKG_VERSION:=3.0.2 PKG_VERSION:=3.1.1
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/cifsd-team/$(PKG_NAME)/archive/$(PKG_VERSION)/ 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_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later PKG_LICENSE:=GPL-2.0-or-later
@ -15,11 +15,11 @@ PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/kernel.mk include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define KernelPackage/fs-smbd define KernelPackage/fs-ksmbd
SUBMENU:=Filesystems SUBMENU:=Filesystems
TITLE:=SMB kernel server support TITLE:=SMB kernel server support
URL:=https://github.com/cifsd-team/smbd URL:=https://github.com/cifsd-team/ksmbd
FILES:=$(PKG_BUILD_DIR)/smbd.ko FILES:=$(PKG_BUILD_DIR)/ksmbd.ko
DEPENDS:= \ DEPENDS:= \
+kmod-nls-base \ +kmod-nls-base \
+kmod-nls-utf8 \ +kmod-nls-utf8 \
@ -36,8 +36,8 @@ define KernelPackage/fs-smbd
+kmod-crypto-gcm +kmod-crypto-gcm
endef endef
define KernelPackage/fs-smbd/description define KernelPackage/fs-ksmbd/description
Smbd is an In-kernel SMB2/3 fileserver. 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. It's an implementation of the SMB protocol in kernel space for sharing files and IPC services over network.
endef endef
@ -48,4 +48,4 @@ define Build/Compile
modules modules
endef endef
$(eval $(call KernelPackage,fs-smbd)) $(eval $(call KernelPackage,fs-ksmbd))

View file

@ -1,8 +1,8 @@
--- a/glob.h 2019-12-08 --- a/glob.h 2019-12-08
+++ b/glob.h 2019-12-08 +++ b/glob.h 2019-12-08
@@ -7,6 +7,8 @@ @@ -7,6 +7,8 @@
#ifndef __SMBD_GLOB_H #ifndef __KSMBD_GLOB_H
#define __SMBD_GLOB_H #define __KSMBD_GLOB_H
+#undef CONFIG_MODULE_STRIPPED +#undef CONFIG_MODULE_STRIPPED
+ +

113
net/ksmbd-tools/Makefile Normal file
View file

@ -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))

View file

@ -1,3 +1,3 @@
config globals config globals
option 'workgroup' 'WORKGROUP' option 'workgroup' 'WORKGROUP'
option 'description' 'SMBD on OpenWrt' option 'description' 'Ksmbd on OpenWrt'

View file

@ -1,5 +1,5 @@
config globals config globals
option 'description' 'SMBD on OpenWrt' option 'description' 'Ksmbd on OpenWrt'
config share config share
option name 'testshare' option name 'testshare'

View file

@ -28,18 +28,18 @@ smb_header()
hostname="$(cat /proc/sys/kernel/hostname)" hostname="$(cat /proc/sys/kernel/hostname)"
config_get workgroup $1 workgroup "WORKGROUP" 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" \ sed -e "s#|NAME|#$hostname#g" \
-e "s#|WORKGROUP|#$workgroup#g" \ -e "s#|WORKGROUP|#$workgroup#g" \
-e "s#|DESCRIPTION|#$description#g" \ -e "s#|DESCRIPTION|#$description#g" \
-e "s#|INTERFACES|#$interfaces#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 if [ ! -L /etc/ksmbd/smb.conf ]; then
logger -p daemon.warn -t 'smbd' "Local custom /etc/smbd/smb.conf file detected, all UCI/Luci config settings are ignored!" logger -p daemon.warn -t 'ksmbd' "Local custom /etc/ksmbd/smb.conf file detected, all UCI/Luci config settings are ignored!"
fi fi
} }
@ -113,26 +113,23 @@ smb_add_share()
[ -n "$hide_dot_files" ] && printf "\thide dot files = %s\n" "$hide_dot_files" [ -n "$hide_dot_files" ] && printf "\thide dot files = %s\n" "$hide_dot_files"
[ -n "$veto_files" ] && printf "\tveto files = %s\n" "$veto_files" [ -n "$veto_files" ] && printf "\tveto files = %s\n" "$veto_files"
} >> /var/etc/smbd/smb.conf } >> /var/etc/ksmbd/smb.conf
} }
init_config() init_config()
{ {
mkdir -p /var/etc/smbd mkdir -p /var/etc/ksmbd
config_load smbd config_load ksmbd
# allow copy&paste from samba UCI configs (we dont have a smbd wiki yet)
config_foreach smb_header globals config_foreach smb_header globals
config_foreach smb_header samba
config_foreach smb_add_share share config_foreach smb_add_share share
config_foreach smb_add_share sambashare
} }
service_triggers() service_triggers()
{ {
# PROCD_RELOAD_DELAY=1000 # PROCD_RELOAD_DELAY=1000
procd_add_reload_trigger "dhcp" "system" "smbd" procd_add_reload_trigger "dhcp" "system" "ksmbd"
local i local i
for i in $SMBD_IFACE; do for i in $SMBD_IFACE; do
@ -142,10 +139,10 @@ service_triggers()
kill_server() kill_server()
{ {
if [ -e /sys/module/smbd ]; then if [ -e /sys/module/ksmbd ]; then
if [ -e /sys/class/smbd-control/kill_server ]; then if [ -e /sys/class/ksmbd-control/kill_server ]; then
logger -p daemon.info -t 'smbd' "triggering kill_server" logger -p daemon.info -t 'ksmbd' "triggering kill_server"
echo hard > /sys/class/smbd-control/kill_server echo hard > /sys/class/ksmbd-control/kill_server
fi fi
fi fi
} }
@ -154,44 +151,44 @@ start_service()
{ {
init_config init_config
if [ ! -e /etc/smbd/smb.conf ]; then if [ ! -e /etc/ksmbd/smb.conf ]; then
logger -p daemon.error -t 'smbd' "missing config /etc/smbd/smb.conf!" logger -p daemon.error -t 'ksmbd' "missing config /etc/ksmbd/smb.conf!"
exit 1 exit 1
fi fi
# NOTE: We don't do a soft-reload via signal, since [global] smb.conf setting changes will be ignored, so always reset hard. # 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 kill_server
[ ! -e /sys/module/smbd ] && modprobe smbd 2> /dev/null [ ! -e /sys/module/ksmbd ] && modprobe ksmbd 2> /dev/null
if [ ! -e /sys/module/smbd ]; then if [ ! -e /sys/module/ksmbd ]; then
logger -p daemon.error -t 'smbd' "modprobe of smbd module failed, can\'t start smbd!" logger -p daemon.error -t 'ksmbd' "modprobe of ksmbd module failed, can\'t start ksmbd!"
exit 1 exit 1
fi 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_open_instance
procd_add_mdns "smb" "tcp" "445" procd_add_mdns "smb" "tcp" "445"
procd_set_param command /usr/sbin/usmbd --n 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_set_param limits nofile=16384
procd_close_instance procd_close_instance
} }
stop_service() 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 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 # kill server if we cant rmmod
[ -e /sys/module/smbd ] && kill_server [ -e /sys/module/ksmbd ] && kill_server
# next try # 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 if [ -e /sys/module/ksmbd ]; then
logger -p daemon.error -t 'smbd' "module still loaded after kill_server?" logger -p daemon.error -t 'ksmbd' "module still loaded after kill_server?"
fi fi
[ -f /tmp/smbd.lock ] && rm /tmp/smbd.lock [ -f /tmp/usmbd.lock ] && rm /tmp/usmbd.lock
} }
# reload_service() { # reload_service() {

View file

@ -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))