|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=ntfs-3g
|
|
PKG_VERSION:=2021.8.22
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE:=$(PKG_NAME)_ntfsprogs-$(PKG_VERSION).tgz
|
|
PKG_SOURCE_URL:=https://www.tuxera.com/opensource/
|
|
PKG_HASH:=55b883aa05d94b2ec746ef3966cb41e66bed6db99f22ddd41d1b8b94bb202efb
|
|
|
|
PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
|
|
PKG_LICENSE:=GPL-2.0-only LGPL-2.1-or-later
|
|
PKG_LICENSE_FILES:=COPYING COPYING.LIB
|
|
PKG_CPE_ID:=cpe:/a:ntfs-3g:ntfs-3g
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_INSTALL:=1
|
|
PKG_BUILD_PARALLEL:=1
|
|
|
|
# release contains fuseext/int hint
|
|
PKG_RELEASE:=$(PKG_RELEASE)$(if $(CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE),-fuseext,-fuseint)
|
|
|
|
# define build dir, respect fuseext/int
|
|
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/ntfs-3g/common
|
|
SECTION:=utils
|
|
CATEGORY:=Utilities
|
|
URL:=https://www.tuxera.com
|
|
SUBMENU:=Filesystem
|
|
TITLE:=Stable Read/Write NTFS Driver
|
|
endef
|
|
|
|
define Package/ntfs-3g
|
|
$(call Package/ntfs-3g/common)
|
|
DEPENDS+= +kmod-fuse +PACKAGE_NTFS-3G_USE_LIBFUSE:libfuse +libpthread
|
|
endef
|
|
|
|
define Package/ntfs-3g/description
|
|
Ntfs-3g is a NTFS driver, which can create, remove, rename,
|
|
move files, directories, hard links, and streams. It can read
|
|
and write files, including streams and sparse files. It can
|
|
handle special files like symbolic links, devices, and FIFOs.
|
|
Moreover it can also read transparently compressed files.
|
|
|
|
Contains:
|
|
- ntfs-3g
|
|
- ntfs-3g.probe
|
|
- mount.ntfs-3g (symlink to ntfs-3g)
|
|
|
|
endef
|
|
|
|
define Package/ntfs-3g/config
|
|
config PACKAGE_NTFS-3G_USE_LIBFUSE
|
|
bool "use external FUSE library, selects package libfuse"
|
|
depends on PACKAGE_ntfs-3g
|
|
help
|
|
Ntfs-3g by default uses a minimalized lite version of FUSE.
|
|
If libfuse is part of your filesystem anyway (because of sshfs, owfs
|
|
etc.) it makes sense to activate this option and save some kilobytes
|
|
of space.
|
|
|
|
config PACKAGE_NTFS-3G_HAS_PROBE
|
|
bool "install the ntfs-3g.probe utility"
|
|
depends on PACKAGE_ntfs-3g
|
|
default y
|
|
endef
|
|
|
|
define Package/ntfs-3g-low
|
|
$(call Package/ntfs-3g/common)
|
|
TITLE:=lowntfs-3g (alternative using the fuse low-level interface)
|
|
DEPENDS+= +ntfs-3g
|
|
endef
|
|
|
|
define Package/ntfs-3g-low/description
|
|
Contains:
|
|
- lowntfs-3g
|
|
- mount.lowntfs-3g (symlink to lowntfs-3g)
|
|
|
|
A driver variant using the fuse low-level interface missing some of the
|
|
enhanced functionality for streams or the like. You might want to check:
|
|
http://www.tuxera.com/community/ntfs-3g-manual/
|
|
|
|
endef
|
|
|
|
|
|
define Package/ntfs-3g-utils/description
|
|
Suite of NTFS utilities for doing neat things with NTFS.
|
|
Contains:
|
|
- mkntfs - Create an NTFS filesystem.
|
|
- ntfscat - Dump a file's content to the standard output.
|
|
- ntfsclone - Efficiently clone, backup, restore or rescue NTFS.
|
|
- ntfscluster - Locate the files which use the given sectors or clusters.
|
|
- ntfscmp - Compare two NTFS filesystems and tell the differences.
|
|
- ntfscp - Copy a file to an NTFS volume.
|
|
- ntfssecaudit - Display ownership and permissions, check consistency
|
|
- ntfsfix - Check and fix some common errors, clear the LogFile.
|
|
- ntfsinfo - Show information about NTFS or one of the files or directories within it.
|
|
- ntfslabel - Show, or set, an NTFS filesystem's volume label.
|
|
- ntfsls - List information about files in a directory residing on an NTFS.
|
|
- ntfsresize - Resize NTFS without losing data.
|
|
- ntfsundelete - Recover deleted files from NTFS.
|
|
- ntfsusermap - Define mapping of Windows accounts to Linux logins
|
|
endef
|
|
|
|
define Package/ntfs-3g-utils
|
|
$(call Package/ntfs-3g/common)
|
|
TITLE:=ntfs-3g utilities
|
|
DEPENDS+= +ntfs-3g +libgcrypt +libuuid
|
|
endef
|
|
|
|
CONFIGURE_ARGS += \
|
|
--enable-shared \
|
|
--enable-static \
|
|
--with-uuid
|
|
|
|
# configure/make according selection
|
|
ifdef CONFIG_PACKAGE_NTFS-3G_USE_LIBFUSE
|
|
CONFIGURE_ARGS += --with-fuse=external
|
|
TARGET_CPPFLAGS:=-I$(STAGING_DIR)/usr/include/fuse $(TARGET_CPPFLAGS)
|
|
else
|
|
CONFIGURE_ARGS += --with-fuse=internal
|
|
TARGET_CPPFLAGS:=-I../include/fuse-lite $(TARGET_CPPFLAGS)
|
|
endif
|
|
|
|
# enable ntfsprogs and extras
|
|
ifneq ($(CONFIG_PACKAGE_ntfs-3g-utils)$(SDK)$(DEVELOPER),)
|
|
CONFIGURE_ARGS += --enable-ntfsprogs --enable-extras
|
|
else
|
|
CONFIGURE_ARGS += --disable-ntfsprogs --disable-extras
|
|
endif
|
|
|
|
# redefine prepare to extract to our build dir
|
|
# apply patches
|
|
define Build/Prepare
|
|
rm -rf $(PKG_BUILD_DIR)/
|
|
mkdir -p $(PKG_BUILD_DIR)/
|
|
$(TAR) -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip 1
|
|
$(Build/Patch)
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(INSTALL_DIR) $(1)/usr/include
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/include/ntfs-3g $(1)/usr/include/
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libntfs-3g.{la,a,so*} $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/ntfs-3g/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ntfs-3g $(1)/usr/bin/
|
|
$(if $(CONFIG_PACKAGE_NTFS-3G_HAS_PROBE),$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/ntfs-3g.probe $(1)/usr/bin/,)
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libntfs-3g.so.* $(1)/usr/lib/
|
|
$(INSTALL_DIR) $(1)/sbin
|
|
$(LN) ../usr/bin/ntfs-3g $(1)/sbin/mount.ntfs-3g
|
|
endef
|
|
|
|
define Package/ntfs-3g/postinst
|
|
#!/bin/sh
|
|
FILE="$${IPKG_INSTROOT}/etc/filesystems"
|
|
ID="ntfs-3g"
|
|
|
|
if ! [ -f '/etc/filesystems' ]; then
|
|
echo "Create '$$FILE'."
|
|
touch "$$FILE"
|
|
fi
|
|
|
|
if ! grep -q -e '^ntfs-3g$$' "$$FILE"; then
|
|
echo "Add '$$ID' to known filesystems."
|
|
echo "$$ID" >> "$$FILE"
|
|
fi
|
|
|
|
endef
|
|
|
|
define Package/ntfs-3g-low/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/lowntfs-3g $(1)/usr/bin/
|
|
$(INSTALL_DIR) $(1)/sbin
|
|
$(LN) ../usr/bin/lowntfs-3g $(1)/sbin/mount.lowntfs-3g
|
|
endef
|
|
|
|
define Package/ntfs-3g-low/postinst
|
|
#!/bin/sh
|
|
FILE="$${IPKG_INSTROOT}/etc/filesystems"
|
|
ID="lowntfs-3g"
|
|
|
|
if ! [ -f '/etc/filesystems' ]; then
|
|
echo "Create '$$FILE'."
|
|
touch "$$FILE"
|
|
fi
|
|
|
|
if ! grep -q -e '^ntfs-3g$$' "$$FILE"; then
|
|
echo "Add '$$ID' to known filesystems."
|
|
echo "$$ID" >> "$$FILE"
|
|
fi
|
|
|
|
endef
|
|
|
|
define Package/ntfs-3g-utils/install
|
|
rm -f $(PKG_INSTALL_DIR)/usr/sbin/mkfs.ntfs
|
|
$(INSTALL_DIR) $(1)/usr/{bin,sbin}
|
|
$(FIND) $(PKG_INSTALL_DIR)/usr/bin/ -type f ! -regex '.*[^/]*ntfs-3g[^/]*' -exec $(INSTALL_BIN) {} $(1)/usr/bin/ \;
|
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
|
|
$(LN) mkntfs $(1)/usr/sbin/mkfs.ntfs
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,ntfs-3g))
|
|
$(eval $(call BuildPackage,ntfs-3g-low))
|
|
$(eval $(call BuildPackage,ntfs-3g-utils))
|