diff --git a/package/diy/ntfs3-mount/Makefile b/package/diy/ntfs3-mount/Makefile new file mode 100644 index 0000000000..8b03be6199 --- /dev/null +++ b/package/diy/ntfs3-mount/Makefile @@ -0,0 +1,45 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=ntfs3-mount +PKG_RELEASE:=4 + +include $(INCLUDE_DIR)/package.mk + +define Package/ntfs3-mount + SECTION:=utils + CATEGORY:=Utilities + SUBMENU:=Filesystem + TITLE:=NTFS mount script for Paragon NTFS3 driver + DEPENDS:=+!LINUX_5_15:kmod-fs-ntfs3-oot +LINUX_5_15:kmod-fs-ntfs3 + PKGARCH:=all +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/ntfs3-mount/install + $(INSTALL_DIR) $(1)/sbin $(1)/sbin/fs + $(INSTALL_BIN) ./files/mount.ntfs $(1)/sbin + $(LN) /sbin/mount.ntfs $(1)/sbin/fs/mount.ntfs +endef + +define Package/ntfs3-mount/postinst +#!/bin/sh +FILE="$${IPKG_INSTROOT}/etc/filesystems" +ID="ntfs" + +if ! [ -f $$FILE ]; then + echo "Create '$$FILE'." + touch "$$FILE" +fi + +if ! grep -q -e '^'"$$ID"'$$' "$$FILE"; then + echo "Add '$$ID' to known filesystems." + echo "$$ID" >> "$$FILE" +fi +endef + +$(eval $(call BuildPackage,ntfs3-mount)) diff --git a/package/diy/ntfs3-mount/files/mount.ntfs b/package/diy/ntfs3-mount/files/mount.ntfs new file mode 100755 index 0000000000..68b7a2e68f --- /dev/null +++ b/package/diy/ntfs3-mount/files/mount.ntfs @@ -0,0 +1,2 @@ +#!/bin/sh +mount -t ntfs3 -o iocharset=utf8 "$@" diff --git a/package/diy/ntfs3-oot/Makefile b/package/diy/ntfs3-oot/Makefile new file mode 100644 index 0000000000..be3b1827bd --- /dev/null +++ b/package/diy/ntfs3-oot/Makefile @@ -0,0 +1,45 @@ +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/kernel.mk + +PKG_NAME:=ntfs3-oot +PKG_RELEASE:=2 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/LGA1150/ntfs3-oot.git +PKG_SOURCE_DATE:=2021-07-05 +PKG_SOURCE_VERSION:=46d199e7d7302879b23ad20097ba53b152257288 +PKG_MIRROR_HASH:=0c2ab3d15e5900c35b7cef3dcafb814991e8d98ef6ff715650b9c0b686364b81 + +PKG_MAINTAINER:= +PKG_LICENSE:=GPL-2.0-only + +include $(INCLUDE_DIR)/package.mk + +define KernelPackage/fs-ntfs3-oot + SECTION:=kernel + CATEGORY:=Kernel modules + SUBMENU:=Filesystems + TITLE:=Fully functional NTFS Read-Write driver + FILES:=$(PKG_BUILD_DIR)/ntfs3.ko + AUTOLOAD:=$(call AutoProbe,ntfs3) + DEPENDS:=@!LINUX_5_15 +kmod-nls-utf8 +endef + +define KernelPackage/fs-ntfs3-oot/description + This package provides the kernel module for ntfs3. +endef + +define Build/Compile + $(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \ + EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \ + $(PKG_EXTRA_KCONFIG) \ + CONFIG_NTFS3_FS=m \ + modules +endef + +$(eval $(call KernelPackage,fs-ntfs3-oot)) diff --git a/package/diy/ntfs3-oot/patches/100-compat-mount.patch b/package/diy/ntfs3-oot/patches/100-compat-mount.patch new file mode 100644 index 0000000000..4fb8339372 --- /dev/null +++ b/package/diy/ntfs3-oot/patches/100-compat-mount.patch @@ -0,0 +1,41 @@ +--- a/super.c ++++ b/super.c +@@ -219,7 +219,7 @@ enum Opt { + Opt_showmeta, + Opt_acl, + Opt_noatime, +- Opt_nls, ++ Opt_iocharset, + Opt_prealloc, + Opt_no_acs_rules, + Opt_err, +@@ -239,7 +239,7 @@ static const match_table_t ntfs_tokens = { + { Opt_acl, "acl" }, + { Opt_noatime, "noatime" }, + { Opt_showmeta, "showmeta" }, +- { Opt_nls, "nls=%s" }, ++ { Opt_iocharset, "iocharset=%s" }, + { Opt_prealloc, "prealloc" }, + { Opt_no_acs_rules, "no_acs_rules" }, + { Opt_err, NULL }, +@@ -342,7 +342,7 @@ static noinline int ntfs_parse_options(struct super_block *sb, char *options, + case Opt_showmeta: + opts->showmeta = 1; + break; +- case Opt_nls: ++ case Opt_iocharset: + match_strlcpy(nls_name, &args[0], sizeof(nls_name)); + break; + case Opt_prealloc: +@@ -581,9 +581,9 @@ static int ntfs_show_options(struct seq_file *m, struct dentry *root) + if (opts->dmask) + seq_printf(m, ",dmask=%04o", ~opts->fs_dmask_inv); + if (opts->nls) +- seq_printf(m, ",nls=%s", opts->nls->charset); ++ seq_printf(m, ",iocharset=%s", opts->nls->charset); + else +- seq_puts(m, ",nls=utf8"); ++ seq_puts(m, ",iocharset=utf8"); + if (opts->sys_immutable) + seq_puts(m, ",sys_immutable"); + if (opts->discard)