Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Aug 2008 22:12:02 -0300
From:      "Alejandro Pulver" <alepulver@FreeBSD.org>
To:        "FreeBSD gnats submit" <FreeBSD-gnats-submit@FreeBSD.org>
Subject:   ports/126439: [UPDATE] sysutils/ntfsprogs: update to version 2.0.0 with write support
Message-ID:  <1218417122.57453@deimos.mars.bsd>
Resent-Message-ID: <200808110140.m7B1e5FN063261@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         126439
>Category:       ports
>Synopsis:       [UPDATE] sysutils/ntfsprogs: update to version 2.0.0 with write support
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Aug 11 01:40:05 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Alejandro Pulver
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
>Environment:


System: FreeBSD 7.0-STABLE #1: Thu Mar 13 17:36:42 ART 2008
    root@deimos.mars.bsd:/usr/obj/usr/src/sys/PHOBOS-7



>Description:


- Update to version 2.0.0.
- Use SF macro.
- Add port specific README about FUSE/UBLIO.


>How-To-Repeat:





>Fix:


--- ntfsprogs.diff begins here ---
Index: ntfsprogs/Makefile
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/Makefile,v
retrieving revision 1.33
diff -u -r1.33 Makefile
--- ntfsprogs/Makefile	19 Apr 2008 17:53:46 -0000	1.33
+++ ntfsprogs/Makefile	11 Aug 2008 01:09:23 -0000
@@ -6,60 +6,43 @@
 #
 
 PORTNAME=	ntfsprogs
-PORTVERSION=	1.13.1
-PORTREVISION=	5
+PORTVERSION=	2.0.0
 CATEGORIES=	sysutils
-MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
+MASTER_SITES=	SF
 MASTER_SITE_SUBDIR=	linux-ntfs
 
 MAINTAINER=	farrokhi@FreeBSD.org
 COMMENT=	Utilities and library to manipulate NTFS partitions
 
 WANT_GNOME=	yes
+USE_BZIP2=	yes
 USE_LDCONFIG=	yes
 GNU_CONFIGURE=	yes
-CONFIGURE_ARGS=	--program-transform-name=""
-CONFIGURE_ENV=	PKG_CONFIG=${LOCALBASE}/bin/pkg-config \
-		CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
+CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib"
 CONFIGURE_TARGET=	--build=${ARCH}-portbld-freebsd${OSREL}
 
-OPTIONS=	FUSE "Compile with Fuse interface" off \
+OPTIONS=	FUSE "Build FUSE interface (ntfsmount)" on \
 		GNOMEVFS2 "Install GnomeVFS 2.0 libntfs interface" off \
-		LOCK "Lock the device when mounting (avoids access)" off \
-		UBLIO "Enable user space cache for improved speed" on
-
-MAN8=		libntfs-gnomevfs.8 \
-		mkntfs.8	\
-		ntfscat.8	\
-		ntfsclone.8	\
-		ntfscluster.8	\
-		ntfscmp.8	\
-		ntfscp.8	\
-		ntfsfix.8	\
-		ntfsinfo.8	\
-		ntfslabel.8	\
-		ntfsls.8	\
-		ntfsmount.8	\
-		ntfsprogs.8	\
-		ntfsresize.8	\
-		ntfsundelete.8
-
-MLINKS=		mkntfs.8 mkfs.ntfs.8
+		LOCK "Lock the device when mounting (avoids access)" on \
+		UBLIO "Enable user space cache for improved speed" on \
+		UUID "Generate DCE compliant UUIDs" off
+
+MAN8=	libntfs.8 libntfs-gnomevfs.8 mkntfs.8 \
+	ntfscat.8 ntfsclone.8 ntfscluster.8 ntfscmp.8 \
+	ntfscp.8 ntfsfix.8 ntfsinfo.8 ntfslabel.8 ntfsls.8 ntfsmount.8 \
+	ntfsprogs.8 ntfsresize.8 ntfsundelete.8
 
 .include <bsd.port.pre.mk>
 
 .if defined(WITH_FUSE) || defined(WITH_UBLIO)
 SUB_FILES+=	pkg-message
-
-post-install:
-	@${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
 .endif
 
 .if defined(WITH_FUSE)
+BUILD_DEPENDS+=	fusefs-libs>2.5:${PORTSDIR}/sysutils/fusefs-libs
+USE_GNOME+=	pkgconfig
 CONFIGURE_ARGS+=--enable-fuse-module
 PLIST_SUB+=	FUSE=""
-USE_GNOME+=	pkgconfig
-BUILD_DEPENDS+=	fusefs-libs>2.5:${PORTSDIR}/sysutils/fusefs-libs
 MLINKS+=	ntfsmount.8 mount_ntfs-fuse.8
 .else
 CONFIGURE_ARGS+=--disable-fuse-module
@@ -79,6 +62,13 @@
 CFLAGS+=	-DUSE_LOCK
 .endif
 
+.if defined(WITH_UUID)
+LIB_DEPENDS+=	uuid.1:${PORTSDIR}/misc/e2fsprogs-libuuid
+CONFIGURE_ARGS+=--enable-uuid
+.else
+CONFIGURE_ARGS+=--disable-uuid
+.endif
+
 .if defined(WITH_UBLIO)
 LIB_DEPENDS+=	ublio.1:${PORTSDIR}/devel/libublio
 CFLAGS+=	-DUSE_UBLIO
@@ -89,16 +79,20 @@
 	@${ECHO_MSG}
 .endif
 
-post-patch:
-	@${REINPLACE_CMD} -e 's|$$(DESTDIR)/sbin|$$(DESTDIR)/${PREFIX}/sbin|' \
-		${WRKSRC}/ntfsprogs/Makefile.in
-	@${REINPLACE_CMD} -e \
-		's|$$(libdir)/\(gnome-vfs-2.0/modules\)|${LOCALBASE}/lib/\1|; \
-		 s|$$(sysconfdir)/\(gnome-vfs-2.0/modules\)|${LOCALBASE}/etc/\1|' \
-		${WRKSRC}/libntfs/Makefile.in
 .if defined(WITH_UBLIO)
+post-patch:
 	@${REINPLACE_CMD} -e 's|^libntfs_la_LIBADD =|& -lublio|' \
 		${WRKSRC}/libntfs/Makefile.in
 .endif
 
+post-install:
+.if !defined(NOPORTDOCS)
+	${MKDIR} ${DOCSDIR}
+	${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}
+	${INSTALL_DATA} ${FILESDIR}/README.FreeBSD ${DOCSDIR}
+.endif
+.if defined(WITH_FUSE) || defined(WITH_UBLIO)
+	@${ECHO_CMD}; ${CAT} ${PKGMESSAGE}; ${ECHO_CMD}
+.endif
+
 .include <bsd.port.post.mk>
Index: ntfsprogs/distinfo
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/distinfo,v
retrieving revision 1.7
diff -u -r1.7 distinfo
--- ntfsprogs/distinfo	18 Aug 2006 20:52:48 -0000	1.7
+++ ntfsprogs/distinfo	11 Aug 2008 01:09:23 -0000
@@ -1,3 +1,3 @@
-MD5 (ntfsprogs-1.13.1.tar.gz) = 23160eb8d34abe3d2a88cd6d054faa47
-SHA256 (ntfsprogs-1.13.1.tar.gz) = d89f90e6b565d6fc0ebaf190799ea40fc1e25329dd120dff0c85db65f9af42b6
-SIZE (ntfsprogs-1.13.1.tar.gz) = 870260
+MD5 (ntfsprogs-2.0.0.tar.bz2) = 2b39dece8897bc748f4ab4c40ec7699e
+SHA256 (ntfsprogs-2.0.0.tar.bz2) = ad36e19706c7303b10aa0a9bf2c2dd0309b91cd0171f1c9eb361d94a85017432
+SIZE (ntfsprogs-2.0.0.tar.bz2) = 678114
Index: ntfsprogs/pkg-descr
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/pkg-descr,v
retrieving revision 1.3
diff -u -r1.3 pkg-descr
--- ntfsprogs/pkg-descr	30 Oct 2007 03:22:03 -0000	1.3
+++ ntfsprogs/pkg-descr	11 Aug 2008 01:09:23 -0000
@@ -1,12 +1,12 @@
-The goals of this project are: create a new Linux kernel driver for the NTFS
-file system (v1.2 and later 3.0), user space utilities (e.g. format, ntfs
-check, etc.) and a library to avoid code duplication and provide access to
-NTFS to other GPLed programs.
+The goals of the Linux-NTFS project are to develop reliable and full feature
+access to NTFS by the Linux kernel driver and by a user space driver
+(ntfsmount), and to provide a wide collection of NTFS utilities and a
+developer's library for other GPLed programs. We have already achieved a lot,
+with high quality results. Includes the following:
 
-It includes a read-only fusefs driver to mount NTFS volumes, but a read-write
-version exists in sysutils/fusefs-ntfs. They can be installed simultaneously.
+ntfsmount: fast, reliable, read/write, userspace.
+ntfsprogs: various tools for managing ntfs, namely mkntfs, ntfsresize,
+           ntfsclone, ntfsfix, ntfsundelete, ntfswipe and ntfsdecrypt.
 
-WWW: http://www.linux-ntfs.org/
 
-- Florent Thoumie
-flz@xbsd.org
+WWW: http://www.linux-ntfs.org/
Index: ntfsprogs/pkg-plist
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/pkg-plist,v
retrieving revision 1.14
diff -u -r1.14 pkg-plist
--- ntfsprogs/pkg-plist	19 Apr 2008 17:53:46 -0000	1.14
+++ ntfsprogs/pkg-plist	11 Aug 2008 01:09:23 -0000
@@ -5,8 +5,8 @@
 bin/ntfsinfo
 bin/ntfsls
 %%FUSE%%bin/ntfsmount
-%%FUSE%%@exec ln -fs %D/%F /usr/sbin/mount_ntfs-fuse
-%%FUSE%%@unexec rm -f /usr/sbin/mount_ntfs-fuse
+%%FUSE%%@exec ln -fs %D/%F /usr/sbin/mount_fuse-ntfs
+%%FUSE%%@unexec rm -f /usr/sbin/mount_fuse-ntfs
 include/ntfs/attrib.h
 include/ntfs/attrlist.h
 include/ntfs/bitmap.h
@@ -14,14 +14,15 @@
 include/ntfs/collate.h
 include/ntfs/compat.h
 include/ntfs/compress.h
+include/ntfs/crypto.h
 include/ntfs/debug.h
 include/ntfs/device.h
 include/ntfs/device_io.h
 include/ntfs/dir.h
-include/ntfs/index.h
 include/ntfs/endians.h
 include/ntfs/gnome-vfs-method.h
 include/ntfs/gnome-vfs-module.h
+include/ntfs/index.h
 include/ntfs/inode.h
 include/ntfs/layout.h
 include/ntfs/lcnalloc.h
@@ -31,11 +32,9 @@
 include/ntfs/mft.h
 include/ntfs/mst.h
 include/ntfs/ntfstime.h
-include/ntfs/rich.h
 include/ntfs/runlist.h
 include/ntfs/security.h
 include/ntfs/support.h
-include/ntfs/tree.h
 include/ntfs/types.h
 include/ntfs/unistr.h
 include/ntfs/version.h
@@ -43,17 +42,19 @@
 lib/libntfs.a
 lib/libntfs.la
 lib/libntfs.so
-lib/libntfs.so.9
+lib/libntfs.so.10
 sbin/mkntfs
-sbin/mkfs.ntfs
 sbin/ntfsclone
 sbin/ntfscp
 sbin/ntfslabel
 sbin/ntfsresize
 sbin/ntfsundelete
-@dirrm include/ntfs
 %%GNOMEVFS2%%etc/gnome-vfs-2.0/modules/libntfs.conf
 %%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.a
 %%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.la
 %%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.so
 %%GNOMEVFS2%%lib/gnome-vfs-2.0/modules/libntfs-gnomevfs.so.1
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%PORTDOCS%%%%DOCSDIR%%/README.FreeBSD
+@dirrm include/ntfs
+%%PORTDOCS%%@dirrm %%DOCSDIR%%
Index: ntfsprogs/files/README.FreeBSD
===================================================================
RCS file: ntfsprogs/files/README.FreeBSD
diff -N ntfsprogs/files/README.FreeBSD
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntfsprogs/files/README.FreeBSD	11 Aug 2008 01:09:23 -0000
@@ -0,0 +1,151 @@
+==============================================================================
+Linux-NTFS README for the FreeBSD port
+==============================================================================
+
+1. Introduction
+2. Port specific notes
+3. Mounting at startup with /etc/fstab
+4. Ublio configuration
+5. Known issues
+6. Reporting bugs
+
+==============================================================================
+1. Introduction
+==============================================================================
+
+The Linux-NTFS project provides a read/write filesystem driver for NTFS. It uses
+the FUSE library (a OS independent library to create filesystem drivers), more
+precisely FUSE's library with fuse4bsd's kernel module (port of the kernel
+dependent part of FUSE). For more information see:
+
+Linux-NTFS site:	http://www.linux-ntfs.org/
+FUSE site:		http://fuse.sourceforge.net/
+fuse4bsd site:		http://fuse4bsd.creo.hu/
+
+==============================================================================
+2. Port specific notes
+==============================================================================
+
+The port has a patch to align read/write operations to the media block size
+(required on FreeBSD).
+
+The port has 3 related options: FUSE (build driver to mount NTFS filesystems),
+LOCK (to prevent access to the device by external programs than ntfsmount once
+mounted, default on Linux) and UBLIO (use a user space cache library, see
+devel/libublio, not required on Linux).
+
+The reason for using UBLIO is that FreeBSD removed support for block devices,
+being them now character devices. The former ones had a cache, and Linux-NTFS
+was optimized for it (Linux still uses them). The same happens on Mac OS X
+(based on FreeBSD 5). So using UBLIO both improves performance (~10 times
+faster), and reduces disk load.
+
+==============================================================================
+3. Mounting at startup with /etc/fstab
+==============================================================================
+
+To mount at startup you need to have the following line in /etc/rc.conf:
+
+fusefs_enable="YES"
+
+And add the appropiate line to /etc/fstab: the filesystem should be
+"ntfs-fuse" instead of "ntfs", and the additional "late" parameter is
+required. Example:
+
+/dev/ad4s1		/wxp	ntfs-fuse	rw,late		0	0
+
+Note that in FreeBSD 7.x, mount(8) has a fixed (hard coded) list of external
+mount_XXX programs that can be called, so to make this work you have to do one
+of the following:
+
+1. Rename /sbin/mount_ntfs, symlink ntfsmount as the former, and use just
+   "ntfs" as the type in /etc/fstab.
+   # mv /sbin/mount_ntfs /sbin/mount_ntfs-kern
+   # ln -s /usr/sbin/mount_ntfs-fuse /usr/sbin/mount_ntfs
+2. Apply a patch to src/sbin/mount/mount.c to add "ntfs-fuse" as a valid type.
+3. Apply a patch to src/sbin/mount/mount.c to make it work like in 6.x (better
+   than the previous one as will allow any external type). It can be found at:
+   http://people.freebsd.org/~alepulver/current-7.0-mount.diff
+
+==============================================================================
+4. Ublio configuration
+==============================================================================
+
+The UBLIO layer is configured through environment variables, which are read
+when mounting the filesystem. The following are available:
+
+NTFS_USE_UBLIO	- Enable the UBLIO cache.
+UBLIO_BLOCKSIZE	- Actual reads/writes will be multiples of this quantity.
+UBLIO_ITEMS	- Number of cache entries, each of UBLIO_BLOCKSIZE length.
+UBLIO_GRACE	- Number of times a cache entry will refuse being recycled.
+UBLIO_SYNC_IO	- If enabled, all writes will be immediatly executed.
+
+To give an idea about tuning, here are the default values with some notes
+(they are only based on some simple benchmarks, and may be wrong):
+
+NTFS_USE_UBLIO	- 1. Disabling it drastically decreases performance.
+UBLIO_BLOCKSIZE	- 262144 (256KB). Larger improves reading/writing speed of
+		  large files, and smaller makes filesystem operations
+		  (creation, deletion, moving, find(1)) perform faster.
+		  Try 2/4MB and 512/256KB for the different approaches. Note
+		  that after that points performance descreases again.
+UBLIO_ITEMS	- 64. Higher increases speed of filesystem operations. Try 128.
+UBLIO_GRACE	- 32. Makes the cache items have more chances to be reused.
+UBLIO_SYNC_IO	- 0. If enabled, highly decreases writing speed, but the data
+		  is immediatly written to the disk.
+
+For example (improves performance over large files, but read below):
+
+# env UBLIO_BLOCKSIZE=2097152 ntfsmount /dev/ad0s1 /mnt
+
+Alternatively these variables could be set in the shell startup file. For
+example if you are using it in /etc/fstab add them to /etc/profile. If you use
+it as a user, instead, editing the shell startup in HOME is enough.
+
+Note that higher values for UBLIO_BLOCKSIZE and UBLIO_ITEMS increase the
+memory usage by their product in bytes. For example, if you set it to 1MB it
+would consume 64MB. To decrease it to 16MB you could set UBLIO_BLOCKSIZE to
+256KB (currently this is the default). Small values like 4096 can be used and
+also perform fine.
+
+It is also possible to enforce block aligned I/O on regular files by setting
+the FORCE_ALIGNED_IO variable (it will be set to 512 bytes), but this is only
+useful for testing purposes and in practice has no use.
+
+==============================================================================
+5. Known issues
+==============================================================================
+
+When reading/writting the same file repeatedly while doing many simultaneous
+operations on different files sometimes the former one fails: read(2) returns
+-1 and sets errno to EAGAIN. This is because of a difference between the FUSE
+kernel implementation in Linux and FreeBSD, and is being worked on. An example
+scenario would be playing a song in XMMS, while building many ports, which
+could cause XMMS skip the song. Another observed problem is the current
+directory not being found, but entering again would work. The details are
+described in fuse4bsd (sysutils/fusefs-kmod) documentation (Linux access is
+path based while FreeBSD is vnode based, which may be reused).
+
+==============================================================================
+6. Reporting bugs
+==============================================================================
+
+About the port itself, you can ask the maintainer (preferable) and/or in the
+ports@FreeBSD.org mailing list.
+
+About general NTFS problems (corruptions, etc) ask in the Linux-NTFS forum
+(see below).
+
+But often (even on Linux, 50% of the issues are related to these) the problems
+reside on the FUSE implementation (the library itself, or fuse4bsd portion).
+
+For reporting kernel panics, see:
+
+http://fuse.sourceforge.net/wiki/index.php/DebugFreeBSDPanicsHowto
+
+And you can report them to the fuse4bsd author (preferable), or here:
+
+Linux-NTFS forum:	http://forum.linux-ntfs.org/
+FreeBSD PRs:		http://www.freebsd.org/send-pr.html
+
+==============================================================================
Index: ntfsprogs/files/patch-libntfs-device_io.c
===================================================================
RCS file: ntfsprogs/files/patch-libntfs-device_io.c
diff -N ntfsprogs/files/patch-libntfs-device_io.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ntfsprogs/files/patch-libntfs-device_io.c	11 Aug 2008 01:09:23 -0000
@@ -0,0 +1,14 @@
+--- libntfs/device_io.c.orig	2007-09-26 15:28:34.000000000 -0300
++++ libntfs/device_io.c	2008-08-10 20:27:34.000000000 -0300
+@@ -28,11 +28,6 @@
+ /* On Cygwin; use Win32 low level device operations. */
+ #include "win32_io.c"
+ 
+-#elif defined(__FreeBSD__)
+-
+-/* On FreeBSD; need to use sector aligned i/o. */
+-#include "freebsd_io.c"
+-
+ #else
+ 
+ /*
Index: ntfsprogs/files/patch-libntfs-unix_io.c
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/files/patch-libntfs-unix_io.c,v
retrieving revision 1.1
diff -u -r1.1 patch-libntfs-unix_io.c
--- ntfsprogs/files/patch-libntfs-unix_io.c	30 Oct 2007 03:22:04 -0000	1.1
+++ ntfsprogs/files/patch-libntfs-unix_io.c	11 Aug 2008 01:09:23 -0000
@@ -1,5 +1,5 @@
---- libntfs/unix_io.c.orig	Fri Feb  3 23:42:42 2006
-+++ libntfs/unix_io.c	Mon Sep 10 17:56:18 2007
+--- ./libntfs/unix_io.c.orig	2007-09-26 15:28:34.000000000 -0300
++++ ./libntfs/unix_io.c	2008-08-10 17:44:16.000000000 -0300
 @@ -54,19 +54,112 @@
  #include <linux/fd.h>
  #endif
@@ -114,7 +114,7 @@
  /**
   * ntfs_device_unix_io_open - Open a device and lock it exclusively
   * @dev:
-@@ -78,30 +171,87 @@
+@@ -78,24 +171,76 @@
   */
  static int ntfs_device_unix_io_open(struct ntfs_device *dev, int flags)
  {
@@ -128,7 +128,6 @@
 -	int err;
 +	struct unix_filehandle *ufh;
 +	int err = 0;
-+	int is_special = 0;
 +#if USE_UBLIO
 +	struct ublio_param up;
 +	int use_ublio = 0;
@@ -139,14 +138,13 @@
  		errno = EBUSY;
  		return -1;
  	}
--	if (!(dev->d_private = malloc(sizeof(int))))
-+
-+	if (S_ISBLK(sbuf.st_mode) || S_ISCHR(sbuf.st_mode))
-+		is_special = 1;
+-	if (!(dev->d_private = ntfs_malloc(sizeof(int))))
 +
 +	ufh = malloc(sizeof(*ufh));
 +	if (!ufh)
  		return -1;
+-	*(int*)dev->d_private = open(dev->d_name, flags);
+-	if (*(int*)dev->d_private == -1) {
 +	dev->d_private = ufh;
 +#if USE_ALIGNED_IO
 +	ufh->fd = -1;
@@ -155,15 +153,6 @@
 +	ufh->media_size = 0;
 +#endif
 +
- 	/*
- 	 * Open the device/file obtaining the file descriptor for exclusive
- 	 * access (but only if mounting r/w).
- 	 */ 
--	if ((flags & O_RDWR) == O_RDWR)
-+	if (!is_special && (flags & O_RDWR) == O_RDWR)
- 		flags |= O_EXCL;
--	*(int*)dev->d_private = open(dev->d_name, flags);
--	if (*(int*)dev->d_private == -1) {
 +	ufh->fd = open(dev->d_name, flags);
 +	if (ufh->fd == -1) {
  		err = errno;
@@ -172,7 +161,6 @@
  	/* Setup our read-only flag. */
  	if ((flags & O_RDWR) != O_RDWR)
  		NDevSetReadOnly(dev);
-+
 +#if USE_UBLIO
 +	ufh->ublio_fh = NULL;
 +	if ((xenv = getenv("NTFS_USE_UBLIO")) &&
@@ -207,7 +195,7 @@
  	/* Acquire exclusive (mandatory) lock on the whole device. */
  	memset(&flk, 0, sizeof(flk));
  	if (NDevReadOnly(dev))
-@@ -110,7 +260,21 @@
+@@ -104,7 +249,21 @@
  		flk.l_type = F_WRLCK;
  	flk.l_whence = SEEK_SET;
  	flk.l_start = flk.l_len = 0LL;
@@ -228,10 +216,10 @@
 +#if USE_LOCK
 +	if (!NDevBlock(dev) && fcntl(DEV_FD(dev), F_SETLK, &flk)) {
  		err = errno;
- 		ntfs_log_debug("ntfs_device_unix_io_open: Could not lock %s for %s\n",
- 				dev->d_name, NDevReadOnly(dev) ? "reading" : "writing");
-@@ -119,6 +283,16 @@
- 					"close %s", dev->d_name);
+ 		ntfs_log_debug("ntfs_device_unix_io_open: Could not lock %s "
+ 				"for %s\n", dev->d_name, NDevReadOnly(dev) ?
+@@ -114,6 +273,16 @@
+ 					"Could not close %s", dev->d_name);
  		goto err_out;
  	}
 +#endif
@@ -247,7 +235,7 @@
  	/* Determine if device is a block device or not, ignoring errors. */
  	if (!fstat(DEV_FD(dev), &sbuf) && S_ISBLK(sbuf.st_mode))
  		NDevSetBlock(dev);
-@@ -142,7 +316,10 @@
+@@ -137,7 +306,10 @@
   */
  static int ntfs_device_unix_io_close(struct ntfs_device *dev)
  {
@@ -258,7 +246,7 @@
  
  	if (!NDevOpen(dev)) {
  		errno = EBADF;
-@@ -150,14 +327,20 @@
+@@ -145,14 +317,20 @@
  	}
  	if (NDevDirty(dev))
  		fsync(DEV_FD(dev));
@@ -280,7 +268,7 @@
  	/* Close the file descriptor and clear our open flag. */
  	if (close(DEV_FD(dev)))
  		return -1;
-@@ -180,10 +363,235 @@
+@@ -175,9 +353,234 @@
  static s64 ntfs_device_unix_io_seek(struct ntfs_device *dev, s64 offset,
  		int whence)
  {
@@ -317,8 +305,8 @@
 +#else
  	return lseek(DEV_FD(dev), offset, whence);
 +#endif
-+}
-+
+ }
+ 
 +#if USE_ALIGNED_IO
 +
 +#if USE_UBLIO
@@ -400,9 +388,9 @@
 +	if (nr > count)
 +		nr = count;
 +	return nr;
- }
- 
- /**
++}
++
++/**
 + * aligned_pwrite - Perform an aligned positioned write from the device
 + */
 +static s64 aligned_pwrite(struct ntfs_device *dev, void *buf, s64 count, s64 offset)
@@ -512,11 +500,10 @@
 +
 +#endif
 +
-+/**
+ /**
   * ntfs_device_unix_io_read - Read from the device, from the current location
   * @dev:
-  * @buf:
-@@ -196,6 +604,29 @@
+@@ -191,6 +594,29 @@
  static s64 ntfs_device_unix_io_read(struct ntfs_device *dev, void *buf,
  		s64 count)
  {
@@ -546,7 +533,7 @@
  	return read(DEV_FD(dev), buf, count);
  }
  
-@@ -217,6 +648,28 @@
+@@ -212,6 +638,28 @@
  		return -1;
  	}
  	NDevSetDirty(dev);
@@ -575,7 +562,7 @@
  	return write(DEV_FD(dev), buf, count);
  }
  
-@@ -234,6 +687,13 @@
+@@ -229,6 +677,13 @@
  static s64 ntfs_device_unix_io_pread(struct ntfs_device *dev, void *buf,
  		s64 count, s64 offset)
  {
@@ -586,10 +573,10 @@
 +		return ublio_pread(DEV_HANDLE(dev)->ublio_fh, buf, count,
 +		    offset);
 +#endif
- 	return ntfs_pread(dev, offset, count, buf);
+ 	return pread(DEV_FD(dev), buf, count, offset);
  }
  
-@@ -256,6 +716,13 @@
+@@ -251,6 +706,13 @@
  		return -1;
  	}
  	NDevSetDirty(dev);
@@ -600,10 +587,10 @@
 +		return ublio_pwrite(DEV_HANDLE(dev)->ublio_fh, (void *)buf,
 +		    count, offset);
 +#endif
- 	return ntfs_pwrite(dev, offset, count, buf);
+ 	return pwrite(DEV_FD(dev), buf, count, offset);
  }
  
-@@ -269,8 +736,17 @@
+@@ -264,8 +726,17 @@
   */
  static int ntfs_device_unix_io_sync(struct ntfs_device *dev)
  {
Index: ntfsprogs/files/patch-ntfsprogs-Makefile.in
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/files/patch-ntfsprogs-Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 patch-ntfsprogs-Makefile.in
--- ntfsprogs/files/patch-ntfsprogs-Makefile.in	30 Oct 2007 03:22:04 -0000	1.1
+++ ntfsprogs/files/patch-ntfsprogs-Makefile.in	11 Aug 2008 01:09:23 -0000
@@ -1,19 +1,21 @@
---- ntfsprogs/Makefile.in.orig	Wed Jun 21 05:41:46 2006
-+++ ntfsprogs/Makefile.in	Mon Sep 10 15:47:08 2007
-@@ -914,13 +914,14 @@
+--- ntfsprogs/Makefile.in.orig	2007-09-28 19:12:39.000000000 -0300
++++ ntfsprogs/Makefile.in	2008-08-10 20:53:50.000000000 -0300
+@@ -1072,15 +1072,12 @@
  
  install-exec-hook:
  	$(INSTALL) -d $(DESTDIR)/sbin
+-	$(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs
+-@ENABLE_FUSE_TRUE@	$(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/sbin/mount.ntfs-fuse
+-@ENABLE_FUSE_TRUE@	$(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/sbin/mount.fuse.ntfs
 +	$(INSTALL) -d $(DESTDIR)/usr/sbin
- 	$(LN_S) -f $(sbindir)/mkntfs $(DESTDIR)/sbin/mkfs.ntfs
--@ENABLE_FUSE_MODULE_TRUE@	$(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/sbin/mount.ntfs-fuse
-+@ENABLE_FUSE_MODULE_TRUE@	$(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/usr/sbin/mount_ntfs-fuse
++@ENABLE_FUSE_TRUE@	$(LN_S) -f $(bindir)/ntfsmount $(DESTDIR)/usr/sbin/mount_ntfs-fuse
  
  install-data-hook:
  	$(INSTALL) -d $(DESTDIR)$(man8dir)
- 	$(LN_S) -f mkntfs.8 $(DESTDIR)$(man8dir)/mkfs.ntfs.8
--@ENABLE_FUSE_MODULE_TRUE@	$(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount.ntfs-fuse.8
-+@ENABLE_FUSE_MODULE_TRUE@	$(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount_ntfs-fuse.8
+-	$(LN_S) -f mkntfs.8 $(DESTDIR)$(man8dir)/mkfs.ntfs.8
+-@ENABLE_FUSE_TRUE@	$(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount.ntfs-fuse.8
+-@ENABLE_FUSE_TRUE@	$(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount.fuse.ntfs.8
++@ENABLE_FUSE_TRUE@	$(LN_S) -f ntfsmount.8 $(DESTDIR)$(man8dir)/mount_ntfs-fuse.8
  
  uninstall-local:
  	$(RM) -f $(DESTDIR)/sbin/mkfs.ntfs
Index: ntfsprogs/files/pkg-message.in
===================================================================
RCS file: /home/pcvs/ports/sysutils/ntfsprogs/files/pkg-message.in,v
retrieving revision 1.1
diff -u -r1.1 pkg-message.in
--- ntfsprogs/files/pkg-message.in	30 Oct 2007 03:22:04 -0000	1.1
+++ ntfsprogs/files/pkg-message.in	11 Aug 2008 01:09:23 -0000
@@ -1,13 +1,10 @@
 ==============================================================================
 
-If UBLIO (cache for improving performance) was enabled, see the following to
-know more about it: "ports/sysutils/fusefs-ntfs/files/pkg-message.in" (only
-the relevant parts).
+Linux-NTFS has been installed, for information, known issues and how to report
+bugs see the FreeBSD README (describes FUSE and UBLIO options):
 
-If FUSE (mount support) was enabled, note that there is no write capability
-and does not allow to browse directories with programs like the GTK+ file
-browser, Midnight Commander, etc. So for mounting it's better to use
-"sysutils/fusefs-ntfs". Note that the mount(8) filesystem type installed by
-this port is called "ntfs-fuse".
+%%DOCSDIR%%/README.FreeBSD
+
+Also see the official README (platform independent).
 
 ==============================================================================
--- ntfsprogs.diff ends here ---



>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1218417122.57453>