diff --git a/package/lean/ksmbd-tools/Makefile b/package/lean/ksmbd-tools/Makefile new file mode 100644 index 0000000000..e7a677e4bf --- /dev/null +++ b/package/lean/ksmbd-tools/Makefile @@ -0,0 +1,139 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=ksmbd-tools +PKG_VERSION:=3.2.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/cifsd-team/cifsd-tools/archive/$(PKG_VERSION)/ +PKG_HASH:=acb4d97cbb0b22ad42ed1536bdd2c28af2a3c698664c058da59a644d5e6df599 + +PKG_MAINTAINER:=Andy Walsh +PKG_LICENSE:=GPL-2.0-or-later +PKG_LICENSE_FILES:=COPYING + +PKG_FIXUP:=autoreconf +PKG_REMOVE_FILES:=autogen.sh +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=1 + +PKG_BUILD_DEPENDS:=glib2 + +include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk + +TAR_OPTIONS+= --strip-components 1 +TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS) + +define Package/ksmbd-tools/Default + SECTION:=net + CATEGORY:=Network + SUBMENU:=Filesystem + TITLE:=Kernel SMB + URL:=https://github.com/cifsd-team/cifsd-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: ksmbd.mountd + + 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: ksmbd.adduser (ksmbd.addshare) + + 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 ksmbd.addshare util" + depends on PACKAGE_ksmbd-utils + help + Add the ksmbd.addshare tool, to directly manipulate the /etc/ksmbd/smb.conf. + default n +endef + +define Package/ksmbd-avahi-service + $(call Package/ksmbd-tools/Default) + TITLE+= (Avahi service) + DEPENDS:= +avahi-daemon +endef + +define Package/ksmbd-avahi-service/description + installs: smb.service + + This package contains the service definition for announcing the + Ksmbd (smb/445) Daemon service via mDNS/DNS-SD. +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/ksmbd.mountd $(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/ksmbd.adduser $(1)/usr/sbin/ +ifeq ($(CONFIG_KSMBD_UTILS_SHAREADD),y) + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ksmbd.addshare $(1)/usr/sbin/ +endif +endef + +define Package/ksmbd-avahi-service/install + $(INSTALL_DIR) $(1)/etc/avahi/services + $(INSTALL_DATA) ./files/smb.service $(1)/etc/avahi/services/ +endef + +define Package/ksmbd-server/conffiles +/etc/config/ksmbd +/etc/ksmbd/smb.conf.template +/etc/ksmbd/smb.conf +/etc/ksmbd/ksmbdpwd.db +endef + +define Package/ksmbd-avahi-service/conffiles +/etc/avahi/services/smb.service +endef + +$(eval $(call BuildPackage,ksmbd-server)) +$(eval $(call BuildPackage,ksmbd-utils)) +$(eval $(call BuildPackage,ksmbd-avahi-service)) diff --git a/package/lean/ksmbd-tools/files/ksmbd.config b/package/lean/ksmbd-tools/files/ksmbd.config new file mode 100644 index 0000000000..52c65185cf --- /dev/null +++ b/package/lean/ksmbd-tools/files/ksmbd.config @@ -0,0 +1,3 @@ +config globals + option 'workgroup' 'WORKGROUP' + option 'description' 'Ksmbd on OpenWrt' diff --git a/package/lean/ksmbd-tools/files/ksmbd.config.example b/package/lean/ksmbd-tools/files/ksmbd.config.example new file mode 100644 index 0000000000..9a457e03b8 --- /dev/null +++ b/package/lean/ksmbd-tools/files/ksmbd.config.example @@ -0,0 +1,11 @@ +config globals + option 'description' 'Ksmbd on OpenWrt' + +config share + option name 'testshare' + option path '/tmp' + option read_only 'no' + option guest_ok 'yes' + option create_mask '0666' + option dir_mask '0777' + option force_root '1' diff --git a/package/lean/ksmbd-tools/files/ksmbd.init b/package/lean/ksmbd-tools/files/ksmbd.init new file mode 100644 index 0000000000..5eb3470851 --- /dev/null +++ b/package/lean/ksmbd-tools/files/ksmbd.init @@ -0,0 +1,207 @@ +#!/bin/sh /etc/rc.common + +START=98 +USE_PROCD=1 + +SMBD_IFACE="" + +smb_header() +{ + config_get SMBD_IFACE $1 interface "lan" + + # resolve interfaces + local interfaces + interfaces=$( + . /lib/functions/network.sh + + local net + for net in $SMBD_IFACE; do + local device + network_is_up $net || continue + network_get_device device "$net" + echo -n "${device:-$net} " + done + ) + + local workgroup description + local hostname + hostname="$(cat /proc/sys/kernel/hostname)" + + config_get workgroup $1 workgroup "WORKGROUP" + config_get description $1 description "Ksmbd on OpenWrt" + config_get_bool ALLOW_LEGACY_PROTOCOLS $1 allow_legacy_protocols 0 + + sed -e "s#|NAME|#$hostname#g" \ + -e "s#|WORKGROUP|#$workgroup#g" \ + -e "s#|DESCRIPTION|#$description#g" \ + -e "s#|INTERFACES|#$interfaces#g" \ + /etc/ksmbd/smb.conf.template > /var/etc/ksmbd/smb.conf + + { + printf "\n######### Dynamic written config options #########\n" + + if [ "$ALLOW_LEGACY_PROTOCOLS" -eq 1 ]; then + logger -p daemon.info -t 'ksmbd' "Legacy Protocols allowed, don't use this option for secure environments!" + printf "\tserver min protocol = NT1\n" + printf "\tserver signing = disabled\n" + fi + } >> /var/etc/ksmbd/smb.conf + + [ -e /etc/ksmbd/smb.conf ] || ln -nsf /var/etc/ksmbd/smb.conf /etc/ksmbd/smb.conf + + 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 +} + +smb_add_share() +{ + local name + local path + local comment + local users + local create_mask + local dir_mask + local browseable + local read_only + local writeable + local guest_ok + local force_root + local write_list + local read_list + local hide_dot_files + local veto_files + local inherit_owner + local force_create_mode + local force_directory_mode + + config_get name $1 name + config_get path $1 path + config_get comment $1 comment + config_get users $1 users + config_get create_mask $1 create_mask + config_get dir_mask $1 dir_mask + config_get browseable $1 browseable + config_get read_only $1 read_only + config_get writeable $1 writeable + config_get guest_ok $1 guest_ok + config_get_bool force_root $1 force_root 0 + config_get write_list $1 write_list + config_get read_list $1 read_list + config_get hide_dot_files $1 hide_dot_files + config_get veto_files $1 veto_files + config_get inherit_owner $1 inherit_owner + config_get force_create_mode $1 force_create_mode + config_get force_directory_mode $1 force_directory_mode + + [ -z "$name" ] || [ -z "$path" ] && return + + { + printf "\n[%s]\n\tpath = %s\n" "$name" "$path" + [ -n "$comment" ] && printf "\tcomment = %s\n" "$comment" + + if [ "$force_root" -eq 1 ]; then + printf "\tforce user = %s\n" "root" + printf "\tforce group = %s\n" "root" + else + [ -n "$users" ] && printf "\tvalid users = %s\n" "$users" + fi + + [ -n "$create_mask" ] && printf "\tcreate mask = %s\n" "$create_mask" + [ -n "$dir_mask" ] && printf "\tdirectory mask = %s\n" "$dir_mask" + [ -n "$force_create_mode" ] && printf "\tforce create mode = %s\n" "$force_create_mode" + [ -n "$force_directory_mode" ] && printf "\tforce directory mode = %s\n" "$force_directory_mode" + + [ -n "$browseable" ] && printf "\tbrowseable = %s\n" "$browseable" + [ -n "$read_only" ] && printf "\tread only = %s\n" "$read_only" + [ -n "$writeable" ] && printf "\twriteable = %s\n" "$writeable" + + [ -n "$guest_ok" ] && printf "\tguest ok = %s\n" "$guest_ok" + [ -n "$inherit_owner" ] && printf "\tinherit owner = %s\n" "$inherit_owner" + + [ -n "$write_list" ] && printf "\twrite list = %s\n" "$write_list" + [ -n "$read_list" ] && printf "\tread list = %s\n" "$read_list" + + [ -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/ksmbd/smb.conf +} + +init_config() +{ + mkdir -p /var/etc/ksmbd + + config_load ksmbd + config_foreach smb_header globals + config_foreach smb_add_share share +} + +service_triggers() +{ + # PROCD_RELOAD_DELAY=1000 + + procd_add_reload_trigger "dhcp" "system" "ksmbd" + + local i + for i in $SMBD_IFACE; do + procd_add_reload_interface_trigger $i + done +} + +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 +} + +start_service() +{ + init_config + + 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/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 'ksmbd' "Starting Ksmbd userspace service." + procd_open_instance + procd_add_mdns "smb" "tcp" "445" + procd_set_param command /usr/sbin/ksmbd.mountd --n + procd_set_param file /etc/ksmbd/smb.conf + procd_set_param limits nofile=16384 + procd_close_instance +} + +stop_service() +{ + logger -p daemon.notice -t 'ksmbd' "Stopping Ksmbd userspace service." + killall ksmbd.mountd > /dev/null 2>&1 + + [ -e /sys/module/ksmbd ] && rmmod ksmbd > /dev/null 2>&1 + # kill server if we cant rmmod + [ -e /sys/module/ksmbd ] && kill_server + # next try + [ -e /sys/module/ksmbd ] && rmmod ksmbd > /dev/null 2>&1 + + if [ -e /sys/module/ksmbd ]; then + logger -p daemon.error -t 'ksmbd' "module still loaded after kill_server?" + fi + [ -f /tmp/ksmbd.lock ] && rm /tmp/ksmbd.lock +} + +# reload_service() { + # restart "$@" +# } diff --git a/package/lean/ksmbd-tools/files/smb.conf.template b/package/lean/ksmbd-tools/files/smb.conf.template new file mode 100644 index 0000000000..4cb7be3c07 --- /dev/null +++ b/package/lean/ksmbd-tools/files/smb.conf.template @@ -0,0 +1,14 @@ +[global] + netbios name = |NAME| + server string = |DESCRIPTION| + workgroup = |WORKGROUP| + interfaces = |INTERFACES| + bind interfaces only = yes + ipc timeout = 20 + deadtime = 15 + map to guest = Bad User + smb2 max read = 64K + smb2 max write = 64K + smb2 max trans = 64K + cache read buffers = no + cache trans buffers = no diff --git a/package/lean/ksmbd-tools/files/smb.service b/package/lean/ksmbd-tools/files/smb.service new file mode 100644 index 0000000000..24e6430361 --- /dev/null +++ b/package/lean/ksmbd-tools/files/smb.service @@ -0,0 +1,9 @@ + + + + %h + + _smb._tcp + 445 + + diff --git a/package/lean/ksmbd/Makefile b/package/lean/ksmbd/Makefile new file mode 100644 index 0000000000..6a00b9ccc0 --- /dev/null +++ b/package/lean/ksmbd/Makefile @@ -0,0 +1,70 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=ksmbd +PKG_VERSION:=3.1.3 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/cifsd-team/cifsd/archive/$(PKG_VERSION)/ +PKG_HASH:=c3c4531d3806117218d23e0552edfe883f978a00b7293180dd2919694102fcb9 + +PKG_MAINTAINER:=Andy Walsh +PKG_LICENSE:=GPL-2.0-or-later +PKG_LICENSE_FILES:=COPYING + +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/package.mk + +TAR_OPTIONS+= --strip-components 1 +TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS) + +define KernelPackage/fs-ksmbd + SUBMENU:=Filesystems + TITLE:=SMB kernel server support + URL:=https://github.com/cifsd-team/cifsd + FILES:=$(PKG_BUILD_DIR)/ksmbd.ko + DEPENDS:= \ + +kmod-nls-base \ + +kmod-nls-utf8 \ + +kmod-crypto-md4 \ + +kmod-crypto-md5 \ + +kmod-crypto-hmac \ + +kmod-crypto-arc4 \ + +kmod-crypto-ecb \ + +kmod-crypto-des \ + +kmod-crypto-sha256 \ + +kmod-crypto-cmac \ + +kmod-crypto-sha512 \ + +kmod-crypto-aead \ + +kmod-crypto-ccm \ + +kmod-crypto-gcm +endef + +define KernelPackage/fs-ksmbd/description + Ksmbd is an In-kernel SMBv(1)2/3 fileserver. + It's an implementation of the SMB protocol in kernel space for sharing files and IPC services over network. +endef + +define KernelPackage/fs-ksmbd/config +config KSMBD_SMB_INSECURE_SERVER + bool "Support for insecure SMB1/CIFS and SMB2.0 protocols" + depends on PACKAGE_kmod-fs-ksmbd + help + This enables deprecated insecure protocols dialects: SMB1/CIFS and SMB2.0. + default y +endef + +ifeq ($(CONFIG_KSMBD_SMB_INSECURE_SERVER),y) +PKG_EXTRA_KCONFIG:=CONFIG_SMB_INSECURE_SERVER=y +EXTRA_CFLAGS += -DCONFIG_SMB_INSECURE_SERVER=1 +endif + +define Build/Compile + $(KERNEL_MAKE) SUBDIRS="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(PKG_EXTRA_KCONFIG) \ + CONFIG_SMB_SERVER=m \ + modules +endef + +$(eval $(call KernelPackage,fs-ksmbd)) diff --git a/package/lean/ksmbd/patches/01-keep_kmod_metadata.patch b/package/lean/ksmbd/patches/01-keep_kmod_metadata.patch new file mode 100644 index 0000000000..9fc547f2a6 --- /dev/null +++ b/package/lean/ksmbd/patches/01-keep_kmod_metadata.patch @@ -0,0 +1,10 @@ +--- a/glob.h 2019-12-08 ++++ b/glob.h 2019-12-08 +@@ -7,6 +7,8 @@ + #ifndef __KSMBD_GLOB_H + #define __KSMBD_GLOB_H + ++#undef CONFIG_MODULE_STRIPPED ++ + #include + #include diff --git a/package/lean/luci-app-cifsd/Makefile b/package/lean/luci-app-cifsd/Makefile index f04d828cb8..119ed542e6 100644 --- a/package/lean/luci-app-cifsd/Makefile +++ b/package/lean/luci-app-cifsd/Makefile @@ -3,11 +3,11 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Network Shares - CIFSD CIFS/SMB kernel fileserver -LUCI_DEPENDS:=+cifsd-tools +LUCI_DEPENDS:=+ksmbd-server LUCI_PKGARCH:=all PKG_NAME:=luci-app-cifsd PKG_VERSION:=1 -PKG_RELEASE:=5 +PKG_RELEASE:=6 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-cifsd/luasrc/controller/cifsd.lua b/package/lean/luci-app-cifsd/luasrc/controller/cifsd.lua index d9eaacabd6..7719be2745 100644 --- a/package/lean/luci-app-cifsd/luasrc/controller/cifsd.lua +++ b/package/lean/luci-app-cifsd/luasrc/controller/cifsd.lua @@ -3,7 +3,7 @@ module("luci.controller.cifsd", package.seeall) function index() - if not nixio.fs.access("/etc/config/cifsd") then + if not nixio.fs.access("/etc/config/ksmbd") then return end diff --git a/package/lean/luci-app-cifsd/luasrc/model/cbi/cifsd.lua b/package/lean/luci-app-cifsd/luasrc/model/cbi/cifsd.lua index 333900dfd3..218b2e6898 100644 --- a/package/lean/luci-app-cifsd/luasrc/model/cbi/cifsd.lua +++ b/package/lean/luci-app-cifsd/luasrc/model/cbi/cifsd.lua @@ -1,6 +1,6 @@ -- Licensed to the public under the Apache License 2.0. -m = Map("cifsd", translate("Network Shares (CIFSD)")) +m = Map("ksmbd", translate("Network Shares (CIFSD)")) s = m:section(TypedSection, "globals", translate("CIFSD is an opensource In-kernel SMB1/2/3 server")) s.anonymous = true @@ -8,28 +8,26 @@ s.anonymous = true s:tab("general", translate("General Settings")) s:tab("template", translate("Edit Template")) +s:taboption("general", Value, "description", translate("Description")) o = s:taboption("general", Value, "workgroup", translate("Workgroup")) o.placeholder = 'WORKGROUP' -s:taboption("general", Value, "description", translate("Description")) - - tmpl = s:taboption("template", Value, "_tmpl", translate("Edit the template that is used for generating the cifsd configuration."), - translate("This is the content of the file '/etc/cifs/smb.conf.template' from which your cifsd configuration will be generated. \ + translate("This is the content of the file '/etc/ksmbd/smb.conf.template' from which your cifsd configuration will be generated. \ Values enclosed by pipe symbols ('|') should not be changed. They get their values from the 'General Settings' tab.")) tmpl.template = "cbi/tvalue" tmpl.rows = 20 function tmpl.cfgvalue(self, section) - return nixio.fs.readfile("/etc/cifs/smb.conf.template") + return nixio.fs.readfile("/etc/ksmbd/smb.conf.template") end function tmpl.write(self, section, value) value = value:gsub("\r\n?", "\n") - nixio.fs.writefile("//etc/cifs/smb.conf.template", value) + nixio.fs.writefile("/etc/ksmbd/smb.conf.template", value) end @@ -83,5 +81,4 @@ dm.rmempty = true dm.size = 4 dm.default = "0777" - return m diff --git a/package/lean/luci-app-cifsd/po/zh-cn/cifsd.po b/package/lean/luci-app-cifsd/po/zh-cn/cifsd.po index 3b469f13cb..e552e418a9 100644 --- a/package/lean/luci-app-cifsd/po/zh-cn/cifsd.po +++ b/package/lean/luci-app-cifsd/po/zh-cn/cifsd.po @@ -97,12 +97,12 @@ msgstr "共享目录" #: applications/luci-app-cifsd/htdocs/luci-static/resources/view/cifsd.js:35 msgid "" -"This is the content of the file '/etc/cifs/smb.conf.template' from which " +"This is the content of the file '/etc/ksmbd/smb.conf.template' from which " "your cifsd configuration will be generated. Values enclosed by pipe symbols " "('|') should not be changed. They get their values from the 'General " "Settings' tab." msgstr "" -"这是将从其上生成 cifsd 配置的文件“/etc/cifs/smb.conf.template”的内容。由管道" +"这是将从其上生成 cifsd 配置的文件“/etc/ksmbd/smb.conf.template”的内容。由管道" "符(“|”)包围的值不应更改。它们将从“常规设置”标签中获取其值。" #: applications/luci-app-cifsd/htdocs/luci-static/resources/view/cifsd.js:27 diff --git a/package/lean/luci-app-cifsd/root/etc/uci-defaults/cifsd b/package/lean/luci-app-cifsd/root/etc/uci-defaults/cifsd index 806aae9fa2..286053d81a 100644 --- a/package/lean/luci-app-cifsd/root/etc/uci-defaults/cifsd +++ b/package/lean/luci-app-cifsd/root/etc/uci-defaults/cifsd @@ -1,9 +1,9 @@ #!/bin/sh uci -q batch <<-EOF >/dev/null - delete ucitrack.@cifsd[-1] - add ucitrack cifsd - set ucitrack.@cifsd[-1].init=cifsd + delete ucitrack.@ksmbd[-1] + add ucitrack ksmbd + set ucitrack.@ksmbd[-1].init=ksmbd commit ucitrack EOF diff --git a/package/lean/v2ray/Makefile b/package/lean/v2ray/Makefile index aaa46875fc..c1bd33f4df 100644 --- a/package/lean/v2ray/Makefile +++ b/package/lean/v2ray/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray PKG_VERSION:=4.22.1 -PKG_RELEASE:=6 +PKG_RELEASE:=8 PKG_BUILD_DIR:=$(BUILD_DIR)/v2ray-core-$(PKG_VERSION) PKG_SOURCE:=v2ray-core-$(PKG_VERSION).tar.gz @@ -61,7 +61,7 @@ GO_PKG:=v2ray.com/core GO_PKG_LDFLAGS:=-s -w GO_PKG_LDFLAGS_X:= \ v2ray.com/core.version=$(PKG_VERSION) \ - v2ray.com/core.build=R$(PKG_RELEASE) \ + v2ray.com/core.build=Lean \ v2ray.com/core.codename=OpenWrt include $(INCLUDE_DIR)/package.mk diff --git a/package/lean/wsdd2/Makefile b/package/lean/wsdd2/Makefile index 9b921dae99..222c792e6e 100644 --- a/package/lean/wsdd2/Makefile +++ b/package/lean/wsdd2/Makefile @@ -1,13 +1,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=wsdd2 -PKG_RELEASE:=3 +PKG_RELEASE:=5 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/Andy2244/wsdd2.git -PKG_SOURCE_DATE:=2018-07-24 -PKG_SOURCE_VERSION:=2c31ba3b720af81848c47dff7ad7c6c30c0c0f50 -PKG_MIRROR_HASH:=eb903a870d99c6001996dbfc22c15e1020278c45ed2441ceb61bc5395f417afa +PKG_SOURCE_DATE:=2019-12-15 +PKG_SOURCE_VERSION:=8bcc0c1a42767ba518977a7104fe934f5d89ef31 +PKG_MIRROR_HASH:=4eace9130b7e1ddbc5b965fa51286532d3ee2ee14bcd2e116840c7d6d48ad9bc PKG_MAINTAINER:=Andy Walsh PKG_LICENSE:=GPL-3.0-only diff --git a/package/lean/wsdd2/files/wsdd2.init b/package/lean/wsdd2/files/wsdd2.init index 29272f9420..24595e0f36 100755 --- a/package/lean/wsdd2/files/wsdd2.init +++ b/package/lean/wsdd2/files/wsdd2.init @@ -3,15 +3,84 @@ START=99 USE_PROCD=1 +SMB_CONF="" +BIND_IF_PARM="" +NB_PARM="" +WG_PARM="" +BI_PARM="" + start_service() { - procd_open_instance - procd_set_param command /usr/bin/wsdd2 -w + + . /lib/functions/network.sh + + if [ -e /etc/ksmbd/smb.conf ] && [ -e /etc/init.d/ksmbd ] && /etc/init.d/ksmbd running; then + SMB_CONF="/etc/ksmbd/smb.conf" + fi + + if [ -e /etc/samba/smb.conf ]; then + if [ -e /etc/init.d/samba4 ] && /etc/init.d/samba4 running; then + SMB_CONF="/etc/samba/smb.conf" + elif [ -e /etc/init.d/samba ] && /etc/init.d/samba running; then + SMB_CONF="/etc/samba/smb.conf" + fi + fi + + if [ -z "$SMB_CONF" ]; then + logger -p daemon.error -t 'wsdd2' "samba36/4 or ksmbd is not running, can't start wsdd2!" + exit 1 + fi + + local nb_name + nb_name="$(grep -i 'netbios name' $SMB_CONF | awk -F'=' '{print $2}' | tr -d ' \n')" + if [ -n "$nb_name" ]; then + NB_PARM="-N $nb_name" + else + local hostname + hostname="$(cat /proc/sys/kernel/hostname)" + NB_PARM="-N $hostname" + fi + + local wg_name + wg_name="$(grep -i 'workgroup' $SMB_CONF | awk -F'=' '{print $2}' | tr -d ' \n')" + if [ -n "$wg_name" ]; then + WG_PARM="-G $wg_name" + else + WG_PARM="-G WORKGROUP" + fi + + # resolve lan interface (BUG: No multi-interface binds atm) + local ifname + if network_get_device ifname lan; then + BIND_IF_PARM="-i $ifname" + fi + + local board_vendor + local board_model + local board_sku + + if [ -e /tmp/sysinfo/board_name ]; then + board_vendor="$(cat /tmp/sysinfo/board_name | awk -F',' '{print $1}' | tr ' ' '_' | tr -d ' \n')" + board_sku="$(cat /tmp/sysinfo/board_name | awk -F',' '{print $2}' | tr ' ' '_' | tr -d ' \n')" + fi + if [ -e /tmp/sysinfo/model ]; then + board_model="$(cat /tmp/sysinfo/model | tr ' ' '_' | tr -d ' \n')" + fi + if [ -n "$board_vendor" ] && [ -n "$board_model" ]; then + if [ -n "$board_sku" ]; then + BI_PARM="-b vendor:$board_vendor,model:$board_model,sku:$board_sku" + else + BI_PARM="-b vendor:$board_vendor,model:$board_model" + fi + fi + + procd_open_instance + procd_set_param command /usr/bin/wsdd2 -w $BIND_IF_PARM $NB_PARM $WG_PARM $BI_PARM procd_set_param respawn - procd_set_param file /var/etc/smb.conf + procd_set_param file $SMB_CONF procd_close_instance } service_triggers() { - PROCD_RELOAD_DELAY=3000 - procd_add_reload_trigger "dhcp" "system" "samba4" + PROCD_RELOAD_DELAY=1000 + procd_add_reload_trigger "dhcp" "system" "samba" "samba4" "ksmbd" } diff --git a/package/lean/wsdd2/patches/001-add_uuid_boot_id.patch b/package/lean/wsdd2/patches/001-add_uuid_boot_id.patch deleted file mode 100644 index 0c59365a1c..0000000000 --- a/package/lean/wsdd2/patches/001-add_uuid_boot_id.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/wsd.c 2018-07-24 -+++ b/wsd.c 2018-09-10 -@@ -96,13 +96,19 @@ static void uuid_endpoint(char *uuid, si - { - FILE *fp = fopen("/etc/machine-id", "r"); - int c, i = 0; -+ -+ if (!fp) { -+ fp = fopen("/proc/sys/kernel/random/boot_id", "r"); -+ } - -- if (!fp) -+ if (!fp) { -+ DEBUG(0, W, "Can't open required '/etc/machine-id' or '/proc/sys/kernel/random/boot_id'"); - return; -+ } - - while (i < 36 && (c = getc(fp)) != EOF && -- (isdigit(c) || (islower(c) && isxdigit(c)))) { -- if (i == 8 || i == 13 || i == 18 || i == 23) -+ ((c == '-') || isdigit(c) || (islower(c) && isxdigit(c)))) { -+ if ((c != '-') && (i == 8 || i == 13 || i == 18 || i == 23)) - uuid[i++] = '-'; - uuid[i++] = c; - } diff --git a/tools/upx/Makefile b/tools/upx/Makefile index 39ddae0336..127acd0dab 100644 --- a/tools/upx/Makefile +++ b/tools/upx/Makefile @@ -7,11 +7,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=upx -PKG_VERSION:=3.96 +PKG_VERSION:=3.95 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-src.tar.xz PKG_SOURCE_URL:=https://github.com/upx/upx/releases/download/v$(PKG_VERSION) -PKG_HASH:=47774df5c958f2868ef550fb258b97c73272cb1f44fe776b798e393465993714 +PKG_HASH:=3b0f55468d285c760fcf5ea865a070b27696393002712054c69ff40d8f7f5592 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)-src