diff --git a/package/kernel/ksmbd/Makefile b/package/kernel/ksmbd/Makefile new file mode 100644 index 000000000..33fb4e478 --- /dev/null +++ b/package/kernel/ksmbd/Makefile @@ -0,0 +1,51 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=ksmbd +PKG_VERSION:=2024.10.14 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/namjaejeon/ksmbd.git +PKG_SOURCE_VERSION:=0ee56e8d7da200ba5ddaa63d71fc6903919e6f99 +PKG_MIRROR_HASH:=7b244dcc78515be0d2dd4a4d2b6ec27582d8addc34654ce4ff74db4d17760aca + +PKG_LICENSE:=GPL-2.0-or-later +PKG_LICENSE_FILES:=COPYING + +include $(INCLUDE_DIR)/kernel.mk +include $(INCLUDE_DIR)/package.mk + +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-ecb \ + +kmod-crypto-des \ + +kmod-crypto-sha256 \ + +kmod-crypto-cmac \ + +kmod-crypto-sha512 \ + +kmod-crypto-aead \ + +kmod-crypto-ccm \ + +kmod-crypto-gcm \ + +kmod-asn1-decoder \ + +kmod-oid-registry +endef + + +# The last two DEPENDS are hacks in order to get CONFIG_ASN1 and CONFIG_OID_REGISTRY +# which it seems can't be selected independently. Some bug in either base or upstream. + +define Build/Compile + $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \ + CONFIG_SMB_SERVER=m \ + modules +endef + +$(eval $(call KernelPackage,fs-ksmbd)) diff --git a/package/kernel/ksmbd/patches/01-keep_kmod_metadata.patch b/package/kernel/ksmbd/patches/01-keep_kmod_metadata.patch new file mode 100644 index 000000000..b2c6687d0 --- /dev/null +++ b/package/kernel/ksmbd/patches/01-keep_kmod_metadata.patch @@ -0,0 +1,11 @@ +--- a/glob.h ++++ b/glob.h +@@ -7,6 +7,8 @@ + #ifndef __KSMBD_GLOB_H + #define __KSMBD_GLOB_H + ++#undef CONFIG_MODULE_STRIPPED ++ + #include + + #include "unicode.h" diff --git a/package/kernel/ksmbd/patches/02-fix-build-with-kernel-6.12.patch b/package/kernel/ksmbd/patches/02-fix-build-with-kernel-6.12.patch new file mode 100644 index 000000000..42ef122fa --- /dev/null +++ b/package/kernel/ksmbd/patches/02-fix-build-with-kernel-6.12.patch @@ -0,0 +1,15 @@ +--- a/unicode.c ++++ b/unicode.c +@@ -8,7 +8,12 @@ + */ + #include + #include ++#include ++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0) + #include ++#else ++#include ++#endif + #include "glob.h" + #include "unicode.h" + #include "uniupr.h" diff --git a/package/kernel/linux/modules/fs.mk b/package/kernel/linux/modules/fs.mk index 55fc853bd..443126999 100644 --- a/package/kernel/linux/modules/fs.mk +++ b/package/kernel/linux/modules/fs.mk @@ -359,42 +359,6 @@ endef $(eval $(call KernelPackage,fs-jfs)) -define KernelPackage/fs-ksmbd - SUBMENU:=$(FS_MENU) - TITLE:=SMB kernel server support - DEPENDS:= \ - +kmod-nls-base \ - +kmod-nls-utf8 \ - +kmod-crypto-md5 \ - +kmod-crypto-hmac \ - +kmod-crypto-ecb \ - +kmod-crypto-des \ - +kmod-crypto-sha256 \ - +kmod-crypto-cmac \ - +kmod-crypto-sha512 \ - +kmod-crypto-aead \ - +kmod-crypto-ccm \ - +kmod-crypto-gcm \ - +kmod-asn1-decoder \ - +kmod-oid-registry \ - +kmod-fs-smbfs-common - KCONFIG:= \ - CONFIG_SMB_SERVER \ - CONFIG_SMB_SERVER_SMBDIRECT=n \ - CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=n \ - CONFIG_SMB_SERVER_KERBEROS5=n - FILES:= \ - $(LINUX_DIR)/fs/smb/server/ksmbd.ko - AUTOLOAD:=$(call AutoLoad,41,ksmbd) -endef - -define KernelPackage/fs-ksmbd/description - Kernel module for SMB kernel server support -endef - -$(eval $(call KernelPackage,fs-ksmbd)) - - define KernelPackage/fs-minix SUBMENU:=$(FS_MENU) TITLE:=Minix filesystem support