Import ntfs-3g (2013.1.13)

NTFS-3G is a stable, full-featured, read-write NTFS driver for Linux,
Android, Mac OS X, FreeBSD, NetBSD, OpenBSD, OpenSolaris, QNX, Haiku,
and other operating systems. It provides safe handling of the
Windows XP, Windows Server 2003, Windows 2000, Windows Vista,
Windows Server 2008 and Windows 7 NTFS file systems.


This still needs a few patches in libfuse that will be committed soon
and of course a kernel with FUSE enabled.

Until these issues are fixed the port won't be linked to the build.

Tested on amd64 on a 32G NTFS partition. Reads and writes seem to work
like a charm.


Okay landry@, ajacoutot@
This commit is contained in:
pirofti 2013-06-14 13:49:50 +00:00
parent e1eea44e5b
commit 82076df1d1
10 changed files with 224 additions and 0 deletions

25
sysutils/ntfs-3g/Makefile Normal file
View File

@ -0,0 +1,25 @@
# $OpenBSD: Makefile,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
COMMENT = FUSE NTFS driver with read/write support
V = 2013.1.13
DISTNAME = ntfs-3g_ntfsprogs-${V}
PKGNAME = ntfs_3g-${V}
SHARED_LIBS += ntfs-3g 0.0 # .84
CATEGORIES = sysutils
HOMEPAGE = http://www.tuxera.com/
MAINTAINER = Paul Irofti <pirofti@openbsd.org>
# GPLv2
PERMIT_PACKAGE_CDROM = Yes
MASTER_SITES = ${HOMEPAGE}/opensource/
EXTRACT_SUFX = .tgz
WANTLIB = c
CONFIGURE_STYLE = gnu
.include <bsd.port.mk>

View File

@ -0,0 +1,2 @@
SHA256 (ntfs-3g_ntfsprogs-2013.1.13.tgz) = Szg/AHSjq3aDM50fGCIrEHqutJg9sRkpLEPCsnXO+yc=
SIZE (ntfs-3g_ntfsprogs-2013.1.13.tgz) = 1176304

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-configure,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- configure.orig Thu Jun 13 09:23:47 2013
+++ configure Thu Jun 13 09:24:04 2013
@@ -20385,7 +20385,7 @@ else
fi
;;
- darwin*|netbsd*|kfreebsd*-gnu)
+ darwin*|netbsd*|kfreebsd*-gnu|openbsd*)
with_fuse="external"
;;
freebsd*)

View File

@ -0,0 +1,19 @@
$OpenBSD: patch-libntfs-3g_Makefile_in,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- libntfs-3g/Makefile.in.orig Sun Jan 13 08:46:46 2013
+++ libntfs-3g/Makefile.in Fri Jun 14 12:23:11 2013
@@ -852,15 +852,9 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-local
# We may need to move .so files to root
# And create ldscript or symbolic link from /usr
install-exec-hook: install-rootlibLTLIBRARIES
-@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
-@INSTALL_LIBRARY_TRUE@ $(MV) -f "$(DESTDIR)/$(libdir)"/libntfs-3g.so* "$(DESTDIR)/$(rootlibdir)"; \
-@INSTALL_LIBRARY_TRUE@ fi
@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ $(install_sh_PROGRAM) "libntfs-3g.script.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
@GENERATE_LDSCRIPT_TRUE@@INSTALL_LIBRARY_TRUE@ fi
-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ if [ ! "$(rootlibdir)" -ef "$(libdir)" ]; then \
-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ $(LN_S) "$(rootlibdir)/libntfs-3g.so" "$(DESTDIR)/$(libdir)/libntfs-3g.so"; \
-@GENERATE_LDSCRIPT_FALSE@@INSTALL_LIBRARY_TRUE@ fi
uninstall-local:
@INSTALL_LIBRARY_TRUE@ $(RM) -f "$(DESTDIR)/$(rootlibdir)"/libntfs-3g.so*

View File

@ -0,0 +1,12 @@
$OpenBSD: patch-ntfsprogs_Makefile_in,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- ntfsprogs/Makefile.in.orig Sun Jan 13 08:46:46 2013
+++ ntfsprogs/Makefile.in Fri Jun 14 11:59:19 2013
@@ -1083,7 +1083,7 @@ uninstall-man: uninstall-man8
@ENABLE_NTFSPROGS_TRUE@install-exec-hook:
@ENABLE_NTFSPROGS_TRUE@ $(INSTALL) -d $(DESTDIR)/sbin
-@ENABLE_NTFSPROGS_TRUE@ $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs
+@ENABLE_NTFSPROGS_TRUE@ $(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/$(sbindir)/mkfs.ntfs
@ENABLE_NTFSPROGS_TRUE@install-data-hook:
@ENABLE_NTFSPROGS_TRUE@ $(INSTALL) -d $(DESTDIR)$(man8dir)

View File

@ -0,0 +1,21 @@
$OpenBSD: patch-ntfsprogs_ntfsclone_c,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- ntfsprogs/ntfsclone.c.orig Thu Jun 13 10:49:08 2013
+++ ntfsprogs/ntfsclone.c Thu Jun 13 10:51:37 2013
@@ -746,7 +746,7 @@ static void copy_cluster(int rescue, u64 rescue_lcn, u
#ifndef NO_STATFS
int err = errno;
perr_printf("Write failed");
- if (err == EIO && opt.stfs.f_type == 0x517b)
+ if (err == EIO && opt.stfs.f_fstypename == 0x517b)
Printf("Apparently you tried to clone to a remote "
"Windows computer but they don't\nhave "
"efficient sparse file handling by default. "
@@ -2056,7 +2056,7 @@ static void set_filesize(s64 filesize)
Printf("WARNING: Couldn't get filesystem type: "
"%s\n", strerror(errno));
else
- fs_type = opt.stfs.f_type;
+ fs_type = opt.stfs.f_fstypename;
if (fs_type == 0x52654973)
Printf("WARNING: You're using ReiserFS, it has very poor "

View File

@ -0,0 +1,35 @@
$OpenBSD: patch-src_Makefile_in,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- src/Makefile.in.orig Sun Jan 13 08:46:46 2013
+++ src/Makefile.in Fri Jun 14 14:18:50 2013
@@ -37,8 +37,7 @@ target_triplet = @target@
@ENABLE_NTFS_3G_TRUE@bin_PROGRAMS = ntfs-3g.probe$(EXEEXT) \
@ENABLE_NTFS_3G_TRUE@ ntfs-3g.usermap$(EXEEXT) \
@ENABLE_NTFS_3G_TRUE@ ntfs-3g.secaudit$(EXEEXT)
-@ENABLE_NTFS_3G_TRUE@rootbin_PROGRAMS = ntfs-3g$(EXEEXT) \
-@ENABLE_NTFS_3G_TRUE@ lowntfs-3g$(EXEEXT)
+@ENABLE_NTFS_3G_TRUE@rootbin_PROGRAMS = ntfs-3g$(EXEEXT)
subdir = src
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/ntfs-3g.8.in $(srcdir)/ntfs-3g.probe.8.in \
@@ -395,7 +394,7 @@ install-rootbinPROGRAMS: $(rootbin_PROGRAMS)
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(rootbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(rootbindir)/$$f'"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(rootbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(rootbindir)/$$f" || exit 1; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(rootbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -830,11 +829,10 @@ uninstall-man: uninstall-man8
@ENABLE_NTFS_3G_TRUE@drivers : $(FUSE_LIBS) ntfs-3g lowntfs-3g
@ENABLE_NTFS_3G_TRUE@@RUN_LDCONFIG_TRUE@install-exec-hook:
-@ENABLE_NTFS_3G_TRUE@@RUN_LDCONFIG_TRUE@ $(LDCONFIG)
@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@install-exec-local: install-rootbinPROGRAMS
@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(MKDIR_P) "$(DESTDIR)/sbin"
-@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g"
+@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(DESTDIR)/sbin/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g"
@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g"
@ENABLE_NTFS_3G_TRUE@install-data-local: install-man8

View File

@ -0,0 +1,11 @@
$OpenBSD: patch-src_ntfs-3g_c,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
--- src/ntfs-3g.c.orig Thu Jun 13 17:31:32 2013
+++ src/ntfs-3g.c Thu Jun 13 17:32:52 2013
@@ -28,6 +28,7 @@
#include "config.h"
#include <fuse.h>
+#include <fuse_opt.h>
#if !defined(FUSE_VERSION) || (FUSE_VERSION < 26)
#error "***********************************************************"

View File

@ -0,0 +1,5 @@
NTFS-3G is a stable, full-featured, read-write NTFS driver for Linux,
Android, Mac OS X, FreeBSD, NetBSD, OpenBSD, OpenSolaris, QNX, Haiku,
and other operating systems. It provides safe handling of the
Windows XP, Windows Server 2003, Windows 2000, Windows Vista,
Windows Server 2008 and Windows 7 NTFS file systems.

View File

@ -0,0 +1,82 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2013/06/14 13:49:50 pirofti Exp $
@bin bin/ntfs-3g
@bin bin/ntfs-3g.probe
@bin bin/ntfs-3g.secaudit
@bin bin/ntfs-3g.usermap
@bin bin/ntfscat
@bin bin/ntfscluster
@bin bin/ntfscmp
@bin bin/ntfsfix
@bin bin/ntfsinfo
@bin bin/ntfsls
include/ntfs-3g/
include/ntfs-3g/acls.h
include/ntfs-3g/attrib.h
include/ntfs-3g/attrlist.h
include/ntfs-3g/bitmap.h
include/ntfs-3g/bootsect.h
include/ntfs-3g/cache.h
include/ntfs-3g/collate.h
include/ntfs-3g/compat.h
include/ntfs-3g/compress.h
include/ntfs-3g/debug.h
include/ntfs-3g/device.h
include/ntfs-3g/device_io.h
include/ntfs-3g/dir.h
include/ntfs-3g/efs.h
include/ntfs-3g/endians.h
include/ntfs-3g/index.h
include/ntfs-3g/inode.h
include/ntfs-3g/layout.h
include/ntfs-3g/lcnalloc.h
include/ntfs-3g/logfile.h
include/ntfs-3g/logging.h
include/ntfs-3g/mft.h
include/ntfs-3g/misc.h
include/ntfs-3g/mst.h
include/ntfs-3g/ntfstime.h
include/ntfs-3g/object_id.h
include/ntfs-3g/param.h
include/ntfs-3g/realpath.h
include/ntfs-3g/reparse.h
include/ntfs-3g/runlist.h
include/ntfs-3g/security.h
include/ntfs-3g/support.h
include/ntfs-3g/types.h
include/ntfs-3g/unistr.h
include/ntfs-3g/volume.h
include/ntfs-3g/xattrs.h
lib/libntfs-3g.a
lib/libntfs-3g.la
@lib lib/libntfs-3g.so.${LIBntfs-3g_VERSION}
lib/pkgconfig/
lib/pkgconfig/libntfs-3g.pc
@man man/man8/mkfs.ntfs.8
@man man/man8/mkntfs.8
@man man/man8/mount.lowntfs-3g.8
@man man/man8/mount.ntfs-3g.8
@man man/man8/ntfs-3g.8
@man man/man8/ntfs-3g.probe.8
@man man/man8/ntfs-3g.secaudit.8
@man man/man8/ntfs-3g.usermap.8
@man man/man8/ntfscat.8
@man man/man8/ntfsclone.8
@man man/man8/ntfscluster.8
@man man/man8/ntfscmp.8
@man man/man8/ntfscp.8
@man man/man8/ntfsfix.8
@man man/man8/ntfsinfo.8
@man man/man8/ntfslabel.8
@man man/man8/ntfsls.8
@man man/man8/ntfsprogs.8
@man man/man8/ntfsresize.8
@man man/man8/ntfsundelete.8
@bin sbin/mkfs.ntfs
@bin sbin/mkntfs
@bin sbin/ntfsclone
@bin sbin/ntfscp
@bin sbin/ntfslabel
@bin sbin/ntfsresize
@bin sbin/ntfsundelete
share/doc/ntfs-3g/
share/doc/ntfs-3g/README