include $(TOPDIR)/rules.mk
PKG_NAME:=ntfs-3g
-PKG_VERSION:=2010.1.16
-PKG_RELEASE:=2
+PKG_RELEASE:=1
+
+PKG_VERSION:=2010.8.8
+
+## 2010.3.6 needs a recent uclibc 0.9.30.2 or greater
+## this has been fixed in 2010.5.16, keeping this in case this happens again
+#PKG_UCLIBC_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
+#ifneq (,$(or $(findstring !0.9.29,!$(PKG_UCLIBC_VERSION)),$(findstring !0.9.30.1!,!$(PKG_UCLIBC_VERSION)!) ))
+# PKG_VERSION:=2010.1.16
+#endif
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=http://www.tuxera.com/opensource/
-PKG_MD5SUM:=e104c914e8d7d29ee83e63d46afbba25
+
+PKG_MD5SUM_2010.1.16:=e104c914e8d7d29ee83e63d46afbba25
+PKG_MD5SUM_2010.3.6:=12ce21aa044c6068a4df6e8cbd3c5cfa
+PKG_MD5SUM_2010.5.16:=aeff7659a4943c9223d79116f051a863
+PKG_MD5SUM_2010.5.22:=caa08c73220a7106c76f697b7a7915ec
+PKG_MD5SUM_2010.8.8:=6c109746c2708f679725a2ea441c61c6
+PKG_MD5SUM:=$(PKG_MD5SUM_$(PKG_VERSION))
PKG_FIXUP:=libtool
PKG_INSTALL:=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:=http://www.ntfs-3g.org
+ URL:=http://www.tuxera.com
SUBMENU:=Filesystem
- TITLE:=Stable Read/Write NTFS Driver (build options)
+ TITLE:=Stable Read/Write NTFS Driver
+ MAINTAINER:=Bud <wrt_buddhay@gmx.net>
+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 an 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.
+ 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
+
endef
-define Package/ntfs-3g
+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.
+
+endef
+
+define Package/ntfs-3g-utils
$(call Package/ntfs-3g/common)
- DEPENDS+= +LINUX_2_4:kmod-fuse24 +libpthread +LINUX_2_6:kmod-fuse
- MENU:=1
+ TITLE:=ntfs-3g utilities (ntfs-3g.secaudit, ntfs-3g.usermap)
+ DEPENDS+= +ntfs-3g
+endef
+
+define Package/ntfs-3g-utils/description
+ Additional ntfs-3g utilities. Not included by default for size
+ considerations. All binaries except ntfs-3g, ntfs-3g.probe.
+
+ Currently:
+ - ntfs-3g.secaudit
+ - ntfs-3g.usermap
+
endef
-define Package/externalFUSE
+define Package/mount.ntfs-3g
$(call Package/ntfs-3g/common)
- TITLE:=use external FUSE library (package libfuse)
- DEFAULT:=n
- DEPENDS+=ntfs-3g +libfuse
+ TITLE:=ntfs-3g mount helper
+ DEPENDS+= +ntfs-3g
endef
-define Package/externalFUSE/description
- Ntfs-3g by default uses a lite version of FUSE for the ease
- of use and some special features. If you'd rather like to use
- the systemwide standard FUSE library activate this option [M|*].
+define Package/mount.ntfs-3g/description
+ ntfs-3g mount helper. You must enable busybox mount helper too.
endef
CONFIGURE_ARGS += \
--enable-shared \
- --enable-static \
-
-# insert config with external libfuse
-ifdef CONFIG_PACKAGE_externalFUSE
- CONFIGURE_ARGS += --with-fuse=external \
- CPPFLAGS="-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include" \
- LDFLAGS="-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/lib"
- PKG_RELEASE:=$(PKG_RELEASE)-fuseext
+ --enable-static
+
+# 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
- PKG_RELEASE:=$(PKG_RELEASE)-fuseint
+ CONFIGURE_ARGS += --with-fuse=internal
+ TARGET_CPPFLAGS:=-I../include/fuse-lite $(TARGET_CPPFLAGS)
endif
-CONFIGURE_VARS+= \
- CFLAGS="$(TARGET_CFLAGS)" \
- $(TARGET_CONFIGURE_OPTS) CPPFLAGS='' LDFLAGS=''
-
-
-define Build/Configure
- (cd $(PKG_BUILD_DIR) ; \
- $(TARGET_CONFIGURE_OPTS) \
- CFLAGS="$(TARGET_CFLAGS)" \
- ./configure \
- $(CONFIGURE_ARGS) \
- )
+# redefine prepare to extract to our build dir
+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
endef
-MAKE_ARGS += ARCH="$(LINUX_KARCH)" \
- CROSS_COMPILE="$(TARGET_CROSS)"
-
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.{a,so*} $(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/
+ $(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/
endef
-# order matters!!! else a probably missing fuse lib might not be build beforehand
-$(eval $(call BuildPackage,externalFUSE))
+define Package/mount.ntfs-3g/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(CP) $(PKG_INSTALL_DIR)/sbin/mount.ntfs-3g $(1)/sbin/
+endef
+
+define Package/mount.ntfs-3g/postinst
+#!/bin/sh
+
+if [ -z "$$(grep ^\\ntfs-3g: $${IPKG_INSTROOT}/etc/filesystems)" ]; then
+ echo "ntfs-3g" >> $${IPKG_INSTROOT}/etc/filesystems
+fi
+
+endef
+
+define Package/ntfs-3g-utils/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(FIND) $(PKG_INSTALL_DIR)/usr/bin/ -type f ! -name ntfs-3g.probe ! -name ntfs-3g -exec $(INSTALL_BIN) {} $(1)/usr/bin/ \;
+endef
+
$(eval $(call BuildPackage,ntfs-3g))
+$(eval $(call BuildPackage,ntfs-3g-utils))
+$(eval $(call BuildPackage,mount.ntfs-3g))