Changes 1.13.0:

* mkntfs now creates NTFS 3.1 (Windows XP) volumes by default
* ntfsmount can deal with symbolic links and device files
* bug fixes and improvements
This commit is contained in:
adam 2006-03-03 10:15:46 +00:00
parent 6836968b1d
commit 1025591688
15 changed files with 45 additions and 282 deletions

View file

@ -1,17 +1,16 @@
# $NetBSD: Makefile,v 1.3 2006/01/26 21:43:51 adam Exp $
# $NetBSD: Makefile,v 1.4 2006/03/03 10:15:46 adam Exp $
DISTNAME= ntfsprogs-1.12.1
DISTNAME= ntfsprogs-1.13.0
CATEGORIES= sysutils
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=linux-ntfs/}
MAINTAINER= tech-pkg@NetBSD.org
HOMEPAGE= http://linux-ntfs.sourceforge.net/
HOMEPAGE= http://www.linux-ntfs.org/
COMMENT= Linux-NTFS project utilities for the Windows NT Filesystem
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-debug
# XXX support for this should be possibly integrated with other
# gnome pkgsrc and this could be a configurable option

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.2 2006/01/26 21:43:51 adam Exp $
@comment $NetBSD: PLIST,v 1.3 2006/03/03 10:15:46 adam Exp $
bin/ntfscat
bin/ntfscluster
bin/ntfsfix
@ -24,12 +24,15 @@ include/ntfs/layout.h
include/ntfs/lcnalloc.h
include/ntfs/list.h
include/ntfs/logfile.h
include/ntfs/logging.h
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

View file

@ -1,18 +1,11 @@
$NetBSD: distinfo,v 1.7 2006/02/20 23:10:05 wiz Exp $
$NetBSD: distinfo,v 1.8 2006/03/03 10:15:46 adam Exp $
SHA1 (ntfsprogs-1.12.1.tar.gz) = 111e323234d395e57b8250e623ab40e1c2f22756
RMD160 (ntfsprogs-1.12.1.tar.gz) = 4197df10e943d129b5324dbbcaac4fa9e1e19e5a
Size (ntfsprogs-1.12.1.tar.gz) = 801124 bytes
SHA1 (patch-aa) = f1c8899120e50082ecbcb150886fd3e0b5cf4ccb
SHA1 (patch-ab) = 1ca19ac57b37db532ae3e55443eaa8fdd1fc9443
SHA1 (patch-ac) = 82eefe0dfc6a92dcd422248d0798b21b548e84ae
SHA1 (patch-ad) = b56115b7a536eade1a0e5e6404cc2166865fc02e
SHA1 (patch-ae) = 58cd1998510bdfa99454fcccfa23c715e598d367
SHA1 (patch-af) = c8cbc8a7a825fa98c3467f1de5d97e07447ddeb0
SHA1 (patch-ag) = 4da5b589cc260bcbaabdbc695ce4716dbadded15
SHA1 (ntfsprogs-1.13.0.tar.gz) = 14dc4c6e47974d1c9d9cd2175557e30819054b41
RMD160 (ntfsprogs-1.13.0.tar.gz) = 17f1f185f68ce77c538058dfb05fbfb56985f3eb
Size (ntfsprogs-1.13.0.tar.gz) = 860532 bytes
SHA1 (patch-ab) = cde641aad8d76e2b7abe14b9634c5d23c459f4a6
SHA1 (patch-ac) = e8205fc7e2e3acc18c1289a2d99800507779b89e
SHA1 (patch-ae) = 7c3f009489a97673e2f1c7667b7650d1da70cd52
SHA1 (patch-af) = b3ea3caaf4b9eaef9f8906508d7aad1f7e470660
SHA1 (patch-ah) = b6da89fc9b5bbc83fa503dd887f3f2ec493ad7c7
SHA1 (patch-ai) = b6a018460eb4d6c49a32052caae360fae61a7d41
SHA1 (patch-aj) = a607fa5dd4e0b7d0075089bf35306560e5a2fe05
SHA1 (patch-ak) = e3c7c4fd68e804f896e529635774c426368cb396
SHA1 (patch-al) = d6a5ef4f3daaf7d237bd95c4fde445784181b0f0
SHA1 (patch-am) = eec72f1264edcf58c924e436d5c0043c3009be9c
SHA1 (patch-am) = 937c0c34c8b11b6953c12f5012c0d6ea0b946ec6

View file

@ -1,13 +0,0 @@
$NetBSD: patch-aa,v 1.2 2006/01/26 21:43:51 adam Exp $
--- include/ntfs/debug.h.orig 2004-09-09 16:27:59.000000000 +0200
+++ include/ntfs/debug.h
@@ -63,6 +63,8 @@ extern void __Dputs(const char *s);
extern void __Dperror(const char *s);
#define Dperror(s) __Dperror(s)
+extern FILE *ntfs_err_out;
+
extern void ntfs_debug_runlist_dump(const struct _runlist_element *rl);
#else /* if !DEBUG */

View file

@ -1,8 +1,8 @@
$NetBSD: patch-ab,v 1.2 2006/01/26 21:43:51 adam Exp $
$NetBSD: patch-ab,v 1.3 2006/03/03 10:15:46 adam Exp $
--- include/ntfs/types.h.orig 2005-07-09 21:55:23.000000000 +0200
--- include/ntfs/types.h.orig 2006-02-22 15:15:54.000000000 +0100
+++ include/ntfs/types.h
@@ -61,6 +61,16 @@ typedef sle64 leVCN;
@@ -68,6 +68,16 @@ typedef sle64 leVCN;
typedef s64 LCN;
typedef sle64 leLCN;

View file

@ -1,8 +1,8 @@
$NetBSD: patch-ac,v 1.2 2006/01/26 21:43:51 adam Exp $
$NetBSD: patch-ac,v 1.3 2006/03/03 10:15:46 adam Exp $
--- libntfs/attrib.c.orig 2005-09-30 21:17:02.000000000 +0200
--- libntfs/attrib.c.orig 2006-02-24 10:17:49.000000000 +0100
+++ libntfs/attrib.c
@@ -739,7 +739,7 @@ map_rl:
@@ -763,7 +763,7 @@ map_rl:
*/
s64 ntfs_attr_pread(ntfs_attr *na, const s64 pos, s64 count, void *b)
{
@ -11,15 +11,15 @@ $NetBSD: patch-ac,v 1.2 2006/01/26 21:43:51 adam Exp $
ntfs_volume *vol;
runlist_element *rl;
@@ -767,6 +767,7 @@ s64 ntfs_attr_pread(ntfs_attr *na, const
}
@@ -795,6 +795,7 @@ s64 ntfs_attr_pread(ntfs_attr *na, const
ntfs_inode_update_atime(na->ni);
if (!count)
return 0;
+ origcount = count;
/* Truncate reads beyond end of attribute. */
if (pos + count > na->data_size) {
if (pos >= na->data_size)
@@ -858,7 +859,7 @@ res_err_out:
@@ -885,13 +886,19 @@ res_err_out:
continue;
}
/* It is a real lcn, read it into @dst. */
@ -27,9 +27,8 @@ $NetBSD: patch-ac,v 1.2 2006/01/26 21:43:51 adam Exp $
+ to_read = min(origcount, (rl->length << vol->cluster_size_bits) -
ofs);
retry:
Dprintf("%s(): Reading 0x%llx bytes from vcn 0x%llx, "
@@ -866,6 +867,12 @@ retry:
to_read, rl->vcn, rl->lcn, ofs);
ntfs_log_trace("Reading 0x%llx bytes from vcn 0x%llx, lcn 0x%llx, "
"ofs 0x%llx.\n", to_read, rl->vcn, rl->lcn, ofs);
br = ntfs_pread(vol->dev, (rl->lcn << vol->cluster_size_bits) +
ofs, to_read, b);
+ /* Zero any overage that we may have read */

View file

@ -1,119 +0,0 @@
$NetBSD: patch-ad,v 1.2 2006/01/26 21:43:51 adam Exp $
--- libntfs/debug.c.orig 2004-09-09 09:54:06.000000000 +0200
+++ libntfs/debug.c
@@ -25,18 +25,20 @@
#include "attrib.h"
#include "debug.h"
+FILE *ntfs_err_out = stderr;
+
/**
- * Sprintf - silencable output to stderr
- * @silent: if 0 string is output to stderr
+ * Sprintf - silencable output to ntfs_err_out
+ * @silent: if 0 string is output to ntfs_err_out
* @fmt: printf style format string
* @...: optional arguments for the printf style format string
*
- * If @silent is 0, output the string @fmt to stderr.
+ * If @silent is 0, output the string @fmt to ntfs_err_out.
*
* This is basically a replacement for:
*
* if (!silent)
- * fprintf(stderr, fmt, ...);
+ * fprintf(ntfs_err_out, fmt, ...);
*
* It is more convenient to use Sprintf instead of the above code and perhaps
* more importantly, Sprintf makes it much easier to turn it into a "do
@@ -48,18 +50,22 @@ void __Sprintf(const int silent, const c
int eo;
va_list ap;
- if (silent)
+ if (silent || !ntfs_err_out)
return;
eo = errno;
va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
+ vfprintf(ntfs_err_out, fmt, ap);
va_end(ap);
+ fflush(ntfs_err_out);
errno = eo;
}
#ifdef DEBUG
-/* Debug output to stderr. To get it run ./configure --enable-debug. */
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+/* Debug output to ntfs_err_out. To get it run ./configure --enable-debug. */
void __ntfs_error(const char *function, const char *fmt, ...)
{
@@ -68,13 +74,16 @@ void __ntfs_error(const char *function,
va_list args;
char err_buf[1024];
+ if (!ntfs_err_out)
+ return;
if (function)
flen = strlen(function);
va_start(args, fmt);
- vsnprintf(err_buf, sizeof(err_buf), fmt, args);
+ vsnprintf(ntfs_err_out, sizeof(err_buf), fmt, args);
va_end(args);
- fprintf(stderr, "NTFS error: %s(): %s\n", flen ? function : "",
+ fprintf(ntfs_err_out, "NTFS error: %s(): %s\n", flen ? function : "",
err_buf);
+ fflush(ntfs_err_out);
errno = eo;
}
@@ -86,13 +95,16 @@ void __ntfs_debug (const char *file, int
va_list args;
char err_buf[1024];
+ if (!ntfs_err_out)
+ return;
if (function)
flen = strlen(function);
va_start(args, fmt);
- vsnprintf(err_buf, sizeof(err_buf), fmt, args);
+ vsnprintf(ntfs_err_out, sizeof(err_buf), fmt, args);
va_end(args);
- fprintf(stderr, "NTFS DEBUG (%s, %d): %s(): %s\n", file, line,
+ fprintf(ntfs_err_out, "NTFS DEBUG (%s, %d): %s(): %s\n", file, line,
flen ? function : "", err_buf);
+ fflush(ntfs_err_out);
errno = eo;
}
@@ -101,16 +113,23 @@ void __Dprintf(const char *fmt, ...)
int eo = errno;
va_list ap;
+ if (!ntfs_err_out)
+ return;
va_start(ap, fmt);
- vfprintf(stderr, fmt, ap);
+ vfprintf(ntfs_err_out, fmt, ap);
va_end(ap);
+ fflush(ntfs_err_out);
errno = eo;
}
void __Dputs(const char *s)
{
int eo = errno;
- fprintf(stderr, "%s\n", s);
+
+ if (!ntfs_err_out)
+ return;
+ fprintf(ntfs_err_out, "%s\n", s);
+ fflush(ntfs_err_out);
errno = eo;
}

View file

@ -1,18 +1,9 @@
$NetBSD: patch-ae,v 1.3 2006/01/26 21:43:51 adam Exp $
$NetBSD: patch-ae,v 1.4 2006/03/03 10:15:46 adam Exp $
--- libntfs/device.c.orig 2005-09-28 15:46:04.000000000 +0200
--- libntfs/device.c.orig 2006-02-24 16:48:40.000000000 +0100
+++ libntfs/device.c
@@ -55,6 +55,8 @@
# include <linux/hdreg.h>
#endif
+#include "compat.h"
+
#include "types.h"
#include "mst.h"
#include "debug.h"
@@ -70,6 +72,10 @@
#define HDIO_GETGEO 0x0301 /* Get device geometry. */
@@ -85,6 +87,10 @@
# define BLKBSZSET _IOW(0x12,113,size_t) /* Set device block size in bytes. */
#endif
+#if defined(__NetBSD__)
@ -21,8 +12,8 @@ $NetBSD: patch-ae,v 1.3 2006/01/26 21:43:51 adam Exp $
+
/**
* ntfs_device_alloc - allocate an ntfs device structure and pre-initialize it
* name: name of the device (must be present)
@@ -519,6 +525,23 @@ s64 ntfs_device_size_get(struct ntfs_dev
* @name: name of the device (must be present)
@@ -531,6 +537,23 @@ s64 ntfs_device_size_get(struct ntfs_dev
}
}
#endif
@ -36,7 +27,7 @@ $NetBSD: patch-ae,v 1.3 2006/01/26 21:43:51 adam Exp $
+ if (dev->d_ops->ioctl(dev, DIOCGDINFO, &disklabel) >= 0) {
+ secsize = disklabel.d_secsize;
+ psize = disklabel.d_partitions[DISKPART(st.st_rdev)].p_size;
+ Dprintf("DIOCGPART nr %d byte blocks = %lld (0x%llx)\n",
+ ntfs_log_debug("DIOCGPART nr %d byte blocks = %lld (0x%llx)\n",
+ secsize, psize, psize);
+ return psize * secsize / block_size;
+ }

View file

@ -1,8 +1,8 @@
$NetBSD: patch-af,v 1.4 2006/01/26 21:43:51 adam Exp $
$NetBSD: patch-af,v 1.5 2006/03/03 10:15:46 adam Exp $
--- ntfsprogs/ntfsclone.c.orig 2005-10-07 15:58:47.000000000 +0200
--- ntfsprogs/ntfsclone.c.orig 2006-02-08 22:46:40.000000000 +0100
+++ ntfsprogs/ntfsclone.c
@@ -52,6 +52,19 @@
@@ -55,6 +55,19 @@
#include <getopt.h>
#endif
@ -22,7 +22,7 @@ $NetBSD: patch-af,v 1.4 2006/01/26 21:43:51 adam Exp $
#include "debug.h"
#include "types.h"
#include "support.h"
@@ -99,7 +112,11 @@ struct {
@@ -108,7 +121,11 @@ struct {
int restore_image;
char *output;
char *volume;
@ -34,27 +34,7 @@ $NetBSD: patch-af,v 1.4 2006/01/26 21:43:51 adam Exp $
} opt;
struct bitmap {
@@ -387,15 +404,10 @@ static void parse_options(int argc, char
msg_out = stdout;
- /* FIXME: this is a workaround for loosing debug info if stdout != stderr
- and for the uncontrollable verbose messages in libntfs. Ughhh. */
- if (opt.std_out)
- msg_out = stderr;
- else if (opt.debug)
- stderr = stdout;
- else
- if (!(stderr = fopen("/dev/null", "rw")))
- perr_exit("Couldn't open /dev/null");
+#ifdef DEBUG
+ if (!opt.debug)
+ ntfs_err_out = NULL;
+#endif
}
static void progress_init(struct progress_bar *p, u64 start, u64 stop, int res)
@@ -538,7 +550,7 @@ static void copy_cluster(int rescue, u64
@@ -559,7 +576,7 @@ static void copy_cluster(int rescue, u64
if (write_all(&fd_out, buff, csize) == -1) {
int err = errno;
perr_printf("Write failed");
@ -63,12 +43,12 @@ $NetBSD: patch-af,v 1.4 2006/01/26 21:43:51 adam Exp $
Printf("Apparently you tried to clone to a remote "
"Windows computer but they don't\nhave "
"efficient sparse file handling by default. "
@@ -1243,7 +1255,7 @@ static void set_filesize(s64 filesize)
@@ -1322,7 +1339,7 @@ static void set_filesize(s64 filesize)
Printf("WARNING: Couldn't get filesystem type: "
"%s\n", strerror(errno));
else
else
- fs_type = opt.stfs.f_type;
+ fs_type = opt.stfs.F_TYPE;
if (fs_type == 0x52654973)
Printf("WARNING: You're using ReiserFS, it has very poor "

View file

@ -1,18 +0,0 @@
$NetBSD: patch-ag,v 1.2 2006/01/26 21:43:51 adam Exp $
--- ntfsprogs/ntfsresize.c.orig 2005-10-07 15:57:31.000000000 +0200
+++ ntfsprogs/ntfsresize.c
@@ -527,12 +527,9 @@ static int parse_options(int argc, char
}
}
- stderr = stdout;
-
#ifdef DEBUG
if (!opt.debug)
- if (!(stderr = fopen("/dev/null", "rw")))
- perr_exit("Couldn't open /dev/null");
+ ntfs_err_out = NULL;
#endif
if (ver)

View file

@ -1,13 +0,0 @@
$NetBSD: patch-ai,v 1.2 2006/01/26 21:43:51 adam Exp $
--- libntfs/attrlist.c.orig 2005-09-28 15:41:31.000000000 +0200
+++ libntfs/attrlist.c
@@ -30,6 +30,8 @@
#include <errno.h>
#endif
+#include "compat.h"
+
#include "types.h"
#include "layout.h"
#include "attrib.h"

View file

@ -1,13 +0,0 @@
$NetBSD: patch-aj,v 1.2 2006/01/26 21:43:51 adam Exp $
--- libntfs/volume.c.orig 2005-10-10 14:47:06.000000000 +0200
+++ libntfs/volume.c
@@ -47,6 +47,8 @@
#include <limits.h>
#endif
+#include "compat.h"
+
#include "volume.h"
#include "attrib.h"
#include "mft.h"

View file

@ -1,13 +0,0 @@
$NetBSD: patch-ak,v 1.2 2006/01/26 21:43:51 adam Exp $
--- libntfs/win32_io.c.orig 2005-10-10 09:55:22.000000000 +0200
+++ libntfs/win32_io.c
@@ -42,6 +42,8 @@
#include <fcntl.h>
#endif
+#include "compat.h"
+
/*
* Cannot use "../include/types.h" since it conflicts with "wintypes.h".
* define our own...

View file

@ -1,13 +0,0 @@
$NetBSD: patch-al,v 1.2 2006/01/26 21:43:51 adam Exp $
--- ntfsprogs/mkntfs.c.orig 2005-10-07 15:56:09.000000000 +0200
+++ ntfsprogs/mkntfs.c
@@ -126,6 +126,8 @@
# define BLKSSZGET _IO(0x12,104) /* Get device sector size in bytes. */
#endif
+#include "compat.h"
+
#include "types.h"
#include "attrib.h"
#include "bitmap.h"

View file

@ -1,8 +1,8 @@
$NetBSD: patch-am,v 1.1 2006/02/20 23:10:05 wiz Exp $
$NetBSD: patch-am,v 1.2 2006/03/03 10:15:46 adam Exp $
--- ntfsprogs/Makefile.in.orig 2005-10-10 13:09:18.000000000 +0000
--- ntfsprogs/Makefile.in.orig 2006-02-27 10:12:13.000000000 +0100
+++ ntfsprogs/Makefile.in
@@ -842,7 +842,6 @@ install-data-am: install-man
@@ -848,7 +848,6 @@ install-data-am: install-man
install-exec-am: install-binPROGRAMS install-sbinPROGRAMS
@$(NORMAL_INSTALL)