Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > media > main-release > by-pkgid > e35d2914d4d6e735563b591f2df140d4 > files > 20

ntfsprogs-2.0.0-1mdv2008.1.x86_64.rpm

28/09/2007 - 2.0.0 - ntfsmount sports full read/write, libntfs can read
		     encrypted files and ntfsresize supports Vista.

	- ntfsmount now creates files and directories with security descriptor
	  that grant full access to everyone.  (Yura)
	- Fix typo that lead to incorrect sparse file size calculation.  (Yuval)
	- Fix long standing stupendously stupid bug in libntfs/attrib.c::
	  ntfs_external_attr_find() and also port a bugfix from the advanced
	  ntfs kernel driver to the same function.  (Anton)
	- Add new API ntfs_attr_exist() that checks whether attribute with
	  selected type and name already present in inode.  (Szaka)
	- Extend ntfs_index_{add_filename,rm} to support almost all cases of
	  index operations.  (Szaka)
	- Support index operations when index root is in the base MFT
	  record.  (Yura)
	- calloc/malloc -> ntfs_{calloc,malloc} conversions.  (Szaka)
	- ntfsclone: don't create image files with executable bit set.  (Szaka)
	- ntfsclone: metadata cloning: write out extent records.  (Szaka)
	- ntfsclone: fix sometimes missing error messages and be more
	  detailed.  (Szaka)
	- ntfsclone: fix crash in wipe_index_allocation_timestamps(): don't
	  dump empty index allocation attribute.  (Szaka)
	- ntfscmp: fine grained AT_INDEX_ALLOCATION comparison.  (Szaka)
	- ntfsinfo: rename 'Flags:' fields to be unique.  (Szaka)
	- ntfsinfo: add ntfs_dump_index_header(); dump full index attribute
	  INDEX_HEADER.  (Szaka)
	- ntfsinfo: add ntfs_dump_index_block() and use it.  (Szaka)
	- ntfsinfo: fix output indenting.  (Szaka)
	- ntfsinfo: make stdout line buffered.  (Szaka)
	- ntfsinfo: fix segfaults when SDS has absolute security
	  descriptor.  (Szaka)
	- ntfsinfo: redirect stderr to /dev/null if --debug isn't used in
	  debug mode.  (Szaka)
	- ntfsinfo: fix segfaults on corrupt index blocks.  (Szaka)
	- ntfsinfo: dump number of entries per block in index allocation
	  attributes.  (Szaka)
	- ntfsinfo: dump ATTR_LIST_ENTRY padding in verbose mode. (Szaka)
	- ntfsinfo: dump all VCN's in the same numeral system.  (Szaka)
	- ntfsinfo: dump the FILE_ATTR_DIRECTORY flag.  (Szaka)
	- ntfsinfo: dump padding between the Update Sequence Array and the
	  first attribute in verbose mode.  (Szaka)
	- ntfsinfo: Fix endianness.  (Yura)
	- ntfsinfo: Make more resilient to corrupt index entries in an index
	  node.  (Anton)
	- ntfsinfo: Print in both decimal and hexadecimal where it makes sense
	  and is useful.  (Anton)
	- ntfsclone: Define endianness safe image format.  (Anton)
	- ntfsclone: Redefine image format version number to be the image
	  format version and not the NTFS version of the imaged volume which is
	  totally useless.  (Anton)
	- ntfsclone: Make ntfsclone image format extensible.  (Anton)
	- ntfsclone: Fix endianness problems.  (Anton)
	- Allow ntfscp to create the destination file if it does not already
	  exists by calling ntfs_create().  (Hil)
	- Fix GUID to string conversion.  (Anton)
	- Multiple big-endianness fixes.  (zhanglinbao, Yuval)
	- Spelling mistake fixes.  (Yuval)
	- Remove inline keywords from static non-one-liners.  (Szaka, Yuval)
	- Memory leak fixes.  (Yura, Yuval)
	- Change ntfs_collate()'s signature to take size_t's.  (Yuval)
	- Move ntfs_is_collation_rule_supported() from collate.h to collate.c
	  and rewrite it to be clearer.  (Yuval)
	- Move ntfs_index_entry_mark_dirty() to index.c.  (Szaka)
	- Introduce misc.c. Move ntfs_[mc]alloc there.  (Szaka)
	- Change malloc() calls to ntfs_malloc().  (Szaka)
	- ntfsmount: require FUSE version >= 2.6.0 for build. Fixes fusermount
	  lookup problem and allows to drop compatibility code.  (Yura)
	- Rewrite ntfs_attr_add() algorithm to be faster and cleverer.  (Yura)
	- Rename MS_{RDONLY,NOATIME} to NTFS_MNT_{RDONLY,NOATIME}. Introduce
	  NTFS_MNT_CASE_SENSITIVE.  (Yura)
	- Treat filenames in POSIX namespace as case insensitive in case of
	  case insensitive mounts.  (Anton, Yura)
	- Windows cares only about first 4 records in $MFTMirr and ignores
	  everything beyond them. Update libntfs behaviour to be like in
	  windows.  (Yura)
	- ntfsmount: Fix free clusters and MFT records calculation.  (Yura)
	- ntfsmount: Fix st_blocks calculation for resident files.  (Yuval,
	  Yura)
	- ntfsmount: Umount volume in DESTROY. This is guarantees that all
	  data would be synced before umount return for volumes mounted with
	  blkdev option.  (Yura)
	- Introduce MNT_NTFS_NOT_EXCLUSIVE mount option that tells libntfs do
	  not open volume exclusively. Useful if libntfs user cares about this
	  himself, eg. FUSE with blkdev option.  (Yura)
	- Empty the journal at mount time.  (Anton)
	- Set the volume dirty bit at mount time (if it is not set already and
	  clear it again at umount time but only if it was not set to start
	  with.  (Anton)
	- Introduce NTFS_MNT_FORENSIC mount option for logfile dumping for
	  example otherwise the logfile gets wiped out by the mount attempt if
	  it is not read-only.  Also use it for ntfsresize as it wishes to do
	  its own logfile emptying and volume dirtying.  (Anton)
	- Raise FUSE dependence to 2.6.1 (the most stable and featured ATM),
	  rename --enable-fuse-module to more clear --enable-ntfsmount and
	  cleanup autotools scripts a bit.  (Yura)
	- ntfsclone: don't check free space if output file is FIFO.  (Andree
	  Leidenfrost)
	- Turn ntfs_pathname_to_inode() into ntfs_pathname_to_inode_num() which
	  returns ntfs inode number instead of opened inode itself.
	  Reimplement ntfs_pathname_to_inode() as wrapper to new API.  (Yura)
	- ntfsmount: fix rename if destination already exists.  (Yura)
	- ntfsfix: do not set VOLUME_MOUNTED_ON_NT4 flag as it causes Vista to
	  not boot any more.
	- Implement ntfs_pread() and ntfs_pwrite() in terms of device
	  operations pread() and pwrite() respectively and fall back to using
	  seek() + read()/write() if no pread()/pwrite() device operation is
	  supplied or the OS does not support the pread()/pwrite() system call.
	  Adapt unix_io pread()/pwrite() device operations to use pread()/
	  pwrite() system call and adapt win32_io device operations to not
	  supply pread()/pwrite().  (Csaba Henk, Anton)
	- mkntfs: Generate a random DCE compliant UUID for the created volume
	  and include --with-uuid[=PFX] and --without-uuid options.  (Anton)
	- configure.ac: Set language to C.  (Anton)
	- mkntfs: Always set default cluster size to 4096 bytes regardless of
	  volume size.  This is what Windows Vista does and it makes perfect
	  sense from a performance point of view.  (Anton)
	- mkntfs: As announced, remove the deprecated support for creation of
	  NTFS 1.2/3.0 volumes.  We now create NTFS 3.1 volumes only.  (Anton)
	- mkntfs: Remove lots of unused/unneeded debugging code.  (Anton)
	- libntfs: Add support for FreeBSD 5.0+ sector aligned access
	  requirements.  (Max Khon)
	- mkntfs: Create more Vista like volumes.  We now match the security
	  descriptor attributes (but not yet the security descriptors stored in
	  $Secure).  (Anton)
	- libntfs: Rewrite ntfs_upcase_table_build() to generate a Vista
	  compatible upcase table ($UpCase).  (Anton)
	- mkntfs: Remove own generation of upcase table, i.e. delete
	  ntfsprogs/upcase.[ch] and use ntfs_upcase_table_build() supplied by
	  libntfs.  (Anton)
	- Upgrade ntfsmount to new FUSE option parsing API.  (Yura)
	- ntfsmount: Remove "show_sys_files" as potential harmful and
	  introduce new "case_insensitive" option to support both case
	  sensitive and insensitive mounts.  (Yura)
	- ntfsmount: st_block calculation was wrong.  (Yuval)
	- mkntfs: Use Vista $Boot rather than XP one.  (Anton)
	- ntfsmount: use utimens() instead of deprecated utime().  (Yura)
	- libntfs: Ignore bootsector checksum inconsistencies as too many 3rd
	  party utilities update the boot sector without correcting the
	  checksum.  Ported change from kernel driver.  (Anton)
	- ntfsdecrypt: Major improvement!  We now validate the .pfx file to be
	  the right type of RSA key and we also determine the thumbprint and
	  compare the one in the keys to the one in the .pfx file thus we only
	  try to decrypt the FEK once we have the correct key.  Several other
	  bug fixes leading to crashes.  Also make compilation work on OS X
	  when gnutls is otherwise not found.  (Anton, Yura)
	- ntfsmount: fix errno in truncate() operation.  (Yura)
	- Add new API: __ntfs_attr_truncate that allow user to select whether
	  holes should be created or clusters allocated.  (Yura)
	- Add new API: ntfs_attr_map_runlist_range to map part of runlist from
	  selected VCN to selected VCN.  (Yura)
	- Make ntfs_attr_update_mapping_pairs to be mostly O(1) for normal
	  files.  (Yura)
	- Introduce sparse bitwise annotations to automatically catch endian
	  bugs. Adopt libntfs (and fix 2 bugs) and ntfsprogs (and fix lots of
	  bugs).  (Yura)
	- ntfsinfo: nicely dump special LCN values.  (Yura)
	- Transparently integrate reading of encrypted files into library.
	  This adds crypto.[ch], several exported functions that you are not
	  interested to use and dependency on >=libconfig-1.0.1 to read list of
	  PFX files with keys. See libntfs/config for example configuration
	  file.  (Yura)
	- Add new API ntfs_attr_get_name - returns pointer to unicode name of
	  attribute.  (Yura)
	- ntfsinfo: Dump raw content of LOGGED_UTILITY_STREAM in verbose
	  mode.  (Yura)
	- Export NTFS_EFS string.  (Yura)
	- Merge --enable-debug and --enable-debug-logging.  (Yura)
	- Add --enable-sparse configure option.  (Yura)
	- Fix corner case in hole instantiating in ntfs_attr_pwrite().  (Szaka)
	- Fix heavy memory usage during whole instantiating and add new API:
	  ntfs_rl_fill_zero.  (Szaka, Yura)
	- ntfs_delete() now takes pointer to pointer to ntfs_inode for file to
	  delete and closes inode only in cases there are no more hard links
	  left to file.  (Yura)
	- Library no longer perform time updates, only provides API for
	  performing time updates. Remove ntfs_inode_update_{a,}time() and
	  introduce ntfs_inode_update_times(). Make ntfsmount update time
	  according to SUS.  (Yura)
	- Fix cache handling in utils_attr_get_name.  (Bogdan, Yura)
	- ntfsmount: Submit inode number during readdir.  (Ted Anderson, Szaka)
	- Fix syslog logging handler to respect all logging flags.  (Yura)
	- ntfs_readdir, ntfs_fuse_filler: return with error if FUSE filler
	  failed.  (Szaka, Yura)
	- Fix rare directory corruption in index code.  (Szaka, Yura)
	- ntfsmount: Mount block devices with blkdev mount option.  (Yura)
	- ntfsmount: Add set-uid-root binary support.  (Yura)
	- ntfsmount: Implement {no,}relatime (relative atime) options.  (Yura)
	- Make libntfs keep track number of free clusters and MFT records.
	  Thanks to David Fox and Szabolcs Szakacsits for idea.  (Yura)
	- ntfsmount: Add bmap support.  (Szaka, Yura)
	- Introduce NTFS_MNT_FORCE instead of third parameter (force) of
	  utils_mount_volume.  (Yura)
	- ntfs_attr_pwrite: Write 4096 bytes blocks when possible.  (David Fox,
	  Szaka, Anton, Yura)
	- Allow mounting volumes with non-clean logfile with force mount
	  option. Thanks to Szaka for idea.  (Yura)
	- libntfs: Attach opened inodes to volume.  (Yura)
	- libntfs: Attach opened attributes to inode.  (Yura)
	- ntfsmount: Save pointer to ntfs_attr in (fuse_file_info *)->fh and
	  use it in ntfs_fuse_{read,write}.  (Yura)
	- ntfsmount: Implement .create(), .ftruncate(), .fgetattr().  (Yura)
	- libntfs: Sync and warn about not closed inodes in ntfs_umount.  (Yura)
	- ntfsmount: Cache directory in which was performed last
	  operation.  (Yura)
	- Install mount.fuse.ntfs symbolic link.  (Yura)
	- ntfsmount: Fill .st_mode in readdir().  (Szaka, Yura)

21/06/2006 - 1.13.1 - Various fixes.

	- Fix bug in ntfs_attr_pwrite() when we sometimes lose current run in
	  the runlist.  (Yura)
	- Fix build with --disable-gnome-vfs --enable-fuse-module.  (Gentoo)
	- ntfscluster: identify files even if their clusters aren't set
	  in $Bitmap (useful to find potentially corrupted files). (Szaka)
	- mkntfs: set the physical drive and the extended boot signature to
	  0x80 in the Extended BPB which are needed to boot from disk. (Szaka)
	- ntfsinfo: fix two freed memory usages when dumping $SDS and index
	  allocation entries.  (Szaka)
	- libntfs: add ntfs_attr_readall() which reads the entire data 
	  from an ntfs attribute.  (Szaka)
	- libntfs: add ntfs_index_root_get() which reads the index root of 
	  an attribute.  (Szaka)
	- ntfsclone: the --metadata option will wipe the timestamps in the
	  index allocation attributes as well. This further decreases the 
	  compressed metadata image size by 10-25% and more importantly it
	  eliminates non-interesting ntfscmp differences.  (Szaka)
	- Change utils_parse_size() to use a base of 0 instead of 10 when
	  calling strtoll().  This automatically allows specification of
	  numbers in hex (and octal if anyone is crazy enough to use that) in
	  addition to decimal numbers on the command line options to most if
	  not all utilities.  (Anton)
	- Fix comparison of $MFT and $MFTMirr to not bail out when there are
	  unused, invalid mft records which are the same in both $MFT and
	  $MFTMirr.  Ported from kernel driver 2.1.27 release and applied both
	  to libntfs/volume.c mount related code and to ntfsprogs/ntfsfix.c's
	  fixup code.  (Anton)
	- Change ntfsinfo to dump the key data as well as the keys themselves
	  when dumping the $ObjId/$O index.  (Anton)
	- ntfsinfo: dump either a minimal (default) or the entire attribute
	  header (--verbose) for all attribute types. Dump USA, USN and LSN
	  for index records. Removed a lot of redundant code, made some
	  formatting and stylistic corrections.  (Szaka)
	- libntfs: add ntfs_str2ucs(), ntfs_freeucs(), ntfs_mft_usn_dec()
	  and ntfs_inode_badclus_bad() functions, and convert all copy-pastes
	  to use them.  (Szaka)
	- Fix all incorrect getopt_long() return value usages.  (Szaka)
	- Fix VCN size in the index.c.  (Anton, Yura)
	- ntfscmp: support bad cluster list, compare full attribute headers
	  for non-resident attributes, added manual, build and install by 
	  default.  (Szaka)
	- configure.ac: set PKG_CONFIG_PATH during build time so we should
	  find .pc files in the most typical pkgconfig directories.  (Szaka)
	- Improve ntfsinfo to dump standard info completely and filename
	  attribute completely and index entry (filename) completely and all in
	  correct order.  Essential for hunting bugs in directory operations
	  code...  (Anton)
	- configure.ac fix for Cygwin.  (Yuval)
	- Fix bug with renaming directories with names in DOS and WIN32
	  namespaces.  (Yura)
	- ntfsclone: fix 64 bit destination size calculation on Mac OS X 
	  (Mike Bombich, Anton, Szaka)

27/02/2006 - 1.13.0 - Lots and lots and lots of fixes and enhancements.

	- Temporarily disable use of the legal ansi character checking in
	  libntfs/unistr.c::ntfs_names_collate() pending a proper fix at some
	  point.  (Anton)
	- Rewrite gcc version detection logic using the -dumpversion option.
	  Tested on various OS and architectures and gcc versions from 2.95 to
	  4.0.2 with some weird ones like 3.5-blah thrown in, too.  (Anton)
	- Fix bogus le16_to_cpu() which should be le32_to_cpu() when accessing
	  the attribute list entry attribute type in some places in
	  libntfs/attrib.c.  (Anton)
	- Fix silly bug introduced in 1.12.0 which breaks ntfsfix (and others
	  possibly) when calling ntfs_attr_lookup() with AT_UNNAMED name and
	  no ntfs inode in the search context.  (Anton)
	- Fix compilation on OSX in ntfsresize.c, ntfsclone.c, and ntfscmp.c
	  where stderr = stdout is not legal (but happens to work on Linux) to
	  do portable low-level file descriptor mangling.  (Anton)
	- Add test/runlist-data to EXTRA_DIST so it gets included in the
	  distribution otherwise make test fails on released sources.  Solution
	  is not perfect as it also adds the test/runlist-data/CVS directory
	  but it will do at least for me.  (Anton)
	- Fix compilation and warnings in ntfsdecrypt.c on OSX/gcc4.0.1.  The
	  compilation failure was because we use strnlen() which is gnu
	  specific and not present on my current version of OSX so ntfsdecrypt
	  now provides own version if it is not present on system.  (Anton)
	- Fix endianness bug (le16 instead of le32 when accessing mft record
	  bytes_in_use) in volume.c::ntfs_volume_write_flags() and
	  ntfsfix.c::OLD_ntfs_volume_set_flags().  (Anton)
	- Fix endianness bugs in ntfsinfo.  (Anton)
	- Fix endianness bug in libntfs/index.c.  (Anton)
	- ntfsresize: check and report bad sectors before cluster allocation
	  check because chkdsk doesn't fix $Bitmap with bad sectors.  (Szaka)
	- $EA can be resident and non-resident.  Fix libntfs/attrib.c::
	  ntfs_attr_can_be_resident() apropriately.  (Anton)
	- mkntfs: optionally create NTFS version 3.0 (W2K) or 3.1 (XP, W2K3, 
	  Vista).  (Implementation by Erik Sornes, adaption by Szaka)
	- ntfsmount: Add 'streams_interface=' option to select named data
	  streams access interface. Currently supported interfaces are 'none',
	  'windows' and 'xattr'.  (Yura)
	- ntfscat can display named attributes, streams too.  (Szaka)
	- Remove Dputs(), Dprintf(), Dperror(), ntfs_debug(), ntfs_error() and
	  Sprintf(). Forward callers to ntfs_log_*().  (Yuval)
	- Add some debugging to ntfsdecrypt.c to allow printing of the private
	  key after it is decrypted (this is ifdeffed out by default).  (Anton)
	- fflush() ntfs_log_ streams.  (Christophe)
	- Working with regular files no longer needs the --force option, except
	  for mkntfs.  (Szaka)
	- Fix ntfs_non_resident_attr_expand() bug, that occurred if we enlarge
	  sparse or compressed file, but do not need to allocate new clusters
	  to perform this.  (Yura)
	- Fix ntfsdecrypt endianness bugs thus it now works on OSX running on
	  a dual G5!  (Anton)
	- Match function parameters names between .h and .c files.  (Yuval)
	- Fix comment formats.  (Yuval)
	- ntfsinfo and ntfsls follow the convention how other utilities read
	  the device argument: no -d or --device option is needed.  (Szaka)
	- ntfsinfo: dump index attribute types and keys. (Szaka)
	- mkntfs: don't fill the last $MFT cluster with empty MFT records if 
	  the cluster size <= 16 kB. This is needed to conform to Windows' 
	  format behavior.  (Szaka)
	- Add @flags field to struct ntfs_inode. Remove NIno{Sparse,Compressed,
	  Encrypted}, update all users to use @(ntfs_inode)->flags.  (Yura)
	- Make @(ntfs_inode)->data_size and @(ntfs_inode)->allocated_size to
	  always contain valid value.  (Yura)
	- Always set correct file size and attributes in ntfs_link().  (Yura)
	- Add info about Interix special files (symbolic links, character and
	  block devices, FIFOs and sockets) to layout.h. Teach ntfsmount to
	  handle them.  (Yura)
	- Fix allocated data size for resident attributes.  (Yura)
	- ntfsclone: check available free space on the destination before
	  starting to clone, image or restore.  (Szaka)
	- Change @type parameter for ntfs_create() to be dev_t rather than
	  internal NTFS_DT_* constants.  (Yura)
	- New APIs (dir.[ch]):
	    ntfs_create_device() for Interix block and character devices
	    creation.
	    ntfs_create_symlink() for Interix symbolic links creation.  (Yura)
	- Teach ntfs_create() to create Interix FIFOs and sockets.  (Yura)
	- Fix the -u option in ntfsundelete.  Instead of a confusing optional
	  parameter, there's a new option -i with a required parameter.  (Rich)
	- Make ntfsinfo report the MFT record flags properly, this includes
	  the less encountered flags, and reporting the in_use flag instead of
	  inverting it to unused.  (Yuval)
	- mkntfs: fix segfault when volume had more than 2^31 clusters.  (Szaka)
	- Automatically update access and change time in ntfs_attr_p{read,write}
	  and ntfs_attr_truncate.  (Yura)
	- Add support of MS_NOATIME flag to ntfs_mount().  (Yura)
	- ntfsclone: --metadata also wipes out the timestamps in the $I30 and
	  in the /$Extend/$Quota:$Q index root attributes.  (Szaka)
	- ntfsmount: Add FreeBSD support.  (Yura)
	- ntfsmount: Fix bug with moving non-empty directories.  (Yura)
	- ntfsinfo: dump $Secure:$SDS in verbose mode.  (Szaka)
	- ntfsinfo: fix off-by-one in ACL dumping, one ACE was missed.  (Szaka)
	- ntfsmount: Rename "succeed_chmod" -> "silent". Do not return error
	  on chown too.  (Yura)
	- Fix stupid bug in libntfs/bitmap.c::ntfs_bitmap_set_bits_in_run()
	  which caused bits to not be cleared or set if the first bit in the
	  run was not a multiple of eight.  (Anton)
	- Change volume mounting (actually device opening) to happen with
	  O_EXCL bit set, but only for r/w opening so at least on Linux no one
	  can change the device block size under our feet.  (Anton)
	- Change volume mounting and mkntfs to set the device block size to the
	  sector size using BLKBSZSET ioctl (Linux only).  This should be
	  optimal for performance and should fixes the bug of not being able to
	  create the backup boot sector if the number of sectors on the device
	  is odd, the sector size is 512 bytes, and the kernel is 2.4.  (Anton)
	- Enforce cluster size, mft record size, and index record size to be at
	  least equal to the sector size and verify they are still valid and in
	  particular display a warning message if the volume will not be
	  mountable by the kernel driver (it requires mft record size and index
	  record size to be below or equal to the system page size which we
	  determine using sysconf()).  (Anton)
	- Fix tons of big-endian bugs in mkntfs.  (Anton)
	- ntfsresize, ntfsclone: always use MS_NOATIME.  (Szaka)
	- Implement simple syslog logging handler (need more work), teach
	  ntfsmount to use it.  (Yura)
	- Fix a lot of bugs in attribute resizing code.  (Yura)
	- Deal with missing syslog function by making code conditional on
	  presence of syslog.h header file (DOS/djgpp).  (Christophe)
	- Avoid clash with existing constants (OSX).  (Christophe)
	- Cope with attribute list attribute having invalid flags.  Windows
	  copes with this and even chkdsk does not detect or fix this so we
	  have to cope with it, too.  Thanks to a Pawel for reporting the
	  problem.  (Anton)
	- Fix compilation on FreeBSD.  (Christophe)

10/10/2005 - 1.12.1 - Minor fix to location of mount.ntfs-fuse and mkfs.ntfs.

	- Fix hardcoded location for uninstalling mount.ntfs-fuse hardlink to
	  match the relocatable location for installing it.  (Anton, Szaka)
	- Move mount.ntfs-fuse and mkfs.ntfs to be symlinks instead of
	  hardlinks and move both to /sbin rather than prefix/sbin.  Note we
	  still obey $destdir so building packages works as well as installing
	  into alternate chroot / other system still works.  (Anton)
	- ntfscmp: fix some corner cases and all memory leaks; handle corrupt
	  NTFS more gracefully.  (Szaka)
	- If the system does not have realpath(), supply our own dummy version
	  which just copies the string without any kind of checking or
	  expansion.  (Anton)

07/10/2005 - 1.12.0 - Lots of fixes and enhancements!

	- Add ./configure detection for gnutls library and make minimum version
	  1.2.3 which is the one that has the rsa key export fixed.  (Anton)
	- Put in a minimum version for libgcrypt of 1.2.0 as I do not know if
	  our code works with earlier versions.  (Anton)
	- Fix some memory leaks in ntfsdecrypt and do some cleanups.  (Anton)
	- Fix ntfsdecrypt to also work with passwordless files.  Note this
	  requires a patched gnutls library or it still does not work.  (Anton)
	- Add new APIs for index adding/remove:
	    index.[ch]::ntfs_index_add_filename and index.[ch]::ntfs_index_rm.
	  They support only basic cases, so can fail with EOPNOTSUPP.  (Yura)
	- Add new API for index context reinitialization:
	    ntfs_index_ctx_reinit.  (Yura)
	- Add new high-level APIs for file and directory creation/deletion that
	  rely on ntfs_index_{add_filename,rm}:
	    dir.[ch]::ntfs_create and dir.[ch]::ntfs_delete.  (Yura)
	- Add @creation_time field to struct ntfs_inode and rename [acm]time
	  fields to @last_{data_change,mft_change,access}_time. Update them in
	  STANDARD_INFORMATION and FILE_NAMEs during inode sync.  (Yura)
	- layout.h: Add @v1_end and @v3_end markers for offsetof to struct
	  FILE_NAME_ATTR. Change type of @clusters_per_index_block from u8 to
	  s8, fix error in comment. Simplify a bit INDEX_ENTRY struct.  (Yura)
	- ntfstime.h: Use cpu_to_sle64 and sle64_to_cpu in utc2ntfs and
	  ntfs2utc respectively. Update all users.  (Yura)
	- Add @indx_record_size and @inx_record_size_bits to struct ntfs_volume.
	  Set them during mount.  (Yura)
	- attrib.c: Set RESIDENT_ATTR_IS_INDEXED flag for FILE_NAME attribute in
	  ntfs_attr_add.  (Yura)
	- inode.c: Do not sync STANDARD_INFORMATION and FILE_NAMEs for
	  freed inodes.  (Yura)
	- mft.c: Set *time and *size fields of struct ntfs_inode in
	  ntfs_mft_record_alloc.  (Yura)
	- Make ntfsmount use new APIs for file and directory creation/deletion.
	  Implement utime operation.  (Yura)
	- Hard link mkfs.ntfs and mkfs.ntfs.8 with mkntfs and mkntfs.8.  (Szaka)
	- Only include sys/ioctl.h in libntfs/device.c if ./configure detected
	  it to be present.  (Christophe)
	- ntfscluster: fix incorrect volume usage calculation.  (Szaka)
	- ntfscluster, utils.c::mft_next_record(): fix gigaleak.  (Szaka)
	- Define PATH_MAX if not defined in ntfsprogs/ntfsmount.c and
	  libntfs/volume.c.  Needed to compile on DOS with djgpp.  (Christophe)
	- Switch ntfsmount to use getopt_long.  (Yuval, minor fixes by Yura)
	- ntfsmount: Fix 'df' output.  (Yuval)
	- Support journals which have been modified by chkdsk.  (Anton, Szaka)
	- Support journals ($LogFile) with only one restart page as well as
	  journals with two different restart pages.  (Anton, Szaka)
	- Add @val parameter to ntfs_attr_add and @val and @size parameters to
	  ntfs_resident_attr_record_add.  (Yura)
	- Fix attribute list adding for always resident attributes.  (Yura)
	- New API for hard link creating: dir.[ch]::ntfs_link.  (Yura)
	- ntfsresize: emphasize that disk partitioning must use sector as the
	  unit instead of cylinder to avoid shifting of the partition.  (Szaka)
	- Rename API: ntfs_volume_set_flags() as it is misleading.  It does not
	  set a flag, it overwrites the flags!  Rename it to
	  ntfs_volume_write_flags() and clean it up a lot.  Update all
	  callers.  (Anton)
	- Change everything to supply an ntfs_inode and NULL for mft record
	  when calling ntfs_attr_get_search_ctx() except a very few cases which
	  genuinely need this functionality as they work on a too low level.
	  Make sure all those cases are ok.  (Anton)
	- ntfsclone: fix saving by sectors during --rescue (Scott Hansen, Szaka)
	- Fix the definition of the CHKD ntfs record magic.  It had an off by
	  two error causing it to be CHKB instead of CHKD.  (Anton)
	- Add new utility ntfscmp (make extra) which compares two NTFS volumes
	  and tell the differences. It's used for development, debugging,
	  testing, etc.  (Szaka)
	- ntfsresize, ntfsclone: accept incorrect $Bitmap size if it covers
	  the entire volume.  (Szaka)
	- mkntfs: Fix silly bug where I forgot to add the "H:S:p:" string to
	  the getopt() parsing string for those options.  Cannot be used very
	  often if people only now noticed!  (Anton)
	- ntfsmount: Add 'locale' option.  (Yura)
	- ntfsmount: Change interface to 'ntfsmount device mount_point'.  (Yura)
	- Hardlink ntfsmount to /sbin/mount.ntfs-fuse, thus it possible mounting
	  from fstab by specifying ntfs-fuse filesystem type.  (Yura, Szaka)
	- Fix stupid bug in mkntfs which caused it to fail even though only the
	  backup boot sector could not be written because a 2.4 kernel is used
	  and the partition has an odd number of sectors.  (Anton)
	- Add API (actually renamed from what Rich/FlatCap did):
	  volume.[hc]::ntfs_libntfs_version() which returns a pointer to a
	  static const string of the libntfs verion, i.e. at the moment this is
	  "8.0.0".  This required moving the version specifications from
	  libntfs/Makefile.am to configure.ac.  This should hopefully have the
	  sideeffect that I will remember to increment it when incrementing the
	  ntfsprogs version number when making a release given the two are
	  right under one another.  (Anton)
	- Change ALL utilities to display the libntfs version they are running
	  on.  This should make debugging easier in the case that people are
	  running mismatched utilities/library.  (Anton)

08/08/2005 - 1.11.2 - ntfsdecrypt now works and lots of fixes and improvements.

	- ntfsls: Fix display of non-system files whose name begins with the
	  '$' character.  (Yura)
	- Move ntfs2utc and utc2ntfs from utils.[ch] to ntfstime.h.  (Yura,
	  Anton)
	- Add [acm]time fields to struct ntfs_inode and set them during
	  ntfs_inode_open().  Update ntfsmount to use them.  (Yura)
	- index.c::ntfs_index_lookup(): Fix bug when index context did not
	  point to the index root in which the entry located.  (Yura)
	- ntfsresize: relocate_attributes(): Do not stop processing MFT record
	  attributes at AT_DATA of $BadClus and $Bitmap.  In practice, there
	  are no non-resident attributes after them so this is a bug which was
	  introduced in 1.11.0 which should not have caused data loss.  (Szaka)
	- ntfsresize: Support relocation of $MFT with $ATTRIBUTE_LIST.  (Szaka)
	- ntfsresize: Support resizing into the middle of a $MFT $DATA
	  extent. (Szaka)
	- ntfscp: Fix attribute name parsing bug introduced in 1.10.0.  (Yura)
	- ntfsinfo: Dump more information about indexes.  (Yura)
	- Fix unistr.c::ntfs_mbstoucs() on systems with utf8 locale.  (Yura)
	- Change errno and print more verbose message in the case of a failing
	  logfile check.  (Yura)
	- Fix random errno returned by ntfs_inode_open() if the MFT record  was
	  not in use.  (Szaka)
	- Fix ntfs_attr_p{read,write}() to not return less bytes if trapped on
	  unmapped runlist region.  (Yura)
	- Make find work correctly on volumes mounted by ntfsmount.  (Yura)
	- Replaced all occurances of ENOTSUP with EOPNOTSUPP to be in better
	  harmony with the kernel driver.  (Szaka)
	- Fix ntfs_is_cb_compressed() for nasty runlist merging case in which
	  compression block was incorrectly treated as not compressed.  (Yura,
	  Anton)
	- ntfsresize: Fix for ntfs_rl_truncate() EIO: Always set the correct
	  size for $BadClus::$Bad, even if Windows set it incorrectly.  (Szaka)
	- Make ntfs_attr_open() resolve attribute name for ntfs_attr struct
	  in case NULL passed instead of name.  (Yura)
	- ntfsdecrypt (make extra) is now fully functional using libgcrypt and
	  gnutls 1.2.0 (not later, that is broken at present).  It decrypts all
	  types of compressed files that ntfs creates, i.e. DesX, AES-256, and
	  3Des.  The only thing it requires is the user's private key which
	  needs to be supplied via a .pfx file (a PKCS#12 file).  Such a file
	  can be created in windows XP SP2 by running cipher with the export
	  key option or in older windows versions by running the certificates
	  snap-in to the microsoft management console (mmc).  Note that due to
	  a bug in gnutls you have to protect the .pfx file with a password.
	  An empty password will not work.  (Yuval, Anton)
	- Add information about $EFS on-disk structures to layout.h.  (Yuval,
	  Anton)
	- Fix build so that make extra directly after ./configure works.
	  Thanks to Yuval for the bug report.  (Anton)
	- Add ./configure option --enable-crypto and if enabled detect whether
	  libgcrypt is present or not and only then build ntfsdecrypt.  (Anton)

20/07/2005 - 1.11.1 - Fix several ntfsmount bugs.

	- ntfsmount: Fix several bugs when too small buffer was allocated for
	  filenames on systems with utf8 locale.  (Yura, many thanks to Rich
	  for finding bug)

19/07/2005 - 1.11.0 - Fixes and a new utility ntfsmount, a FUSE ntfs module.

	- ntfscp: fix signal handling: handle both SIGTERM and SIGINT, print
	  correct message.  (Yura)
	- Update manual pages for ntfsprogs, ntfsclone, ntfsresize and 
	  ntfsfix.  (Szaka)
	- ntfsclone: detect and hint users if the destination fs does not
	  support sparse files.  (Szaka)
	- Fix memory management error in ntfs_inode_close.  (Yura)
	- Add new utility - ntfsmount.  It is a FUSE module that reles on
	  libntfs.  (Yura)
	- ntfsresize: support bad clusters list ($BadClus:$Bad), a.k.a. disks
	  having bad sectors if the new --bad-sectors option is used.  (Szaka)
	- ntfsinfo: Dump $EA_INFORMATION and $EA attributes.  (Yura)
	- mkntfs: Fix backup bootsector creation.  Thanks to Timur Amirkhanov
	  for pointing these stupidities out.  (We forgot to set the size
	  before doing it and we wrote more bytes then there were in the buffer
	  if sector size was above 8kiB and we only reserved one sector even
	  when sector size was less than 512 bytes and then we wrote 512 bytes,
	  i.e. beyond the end of the device.)  (Anton)
	- Add new utility (make extra) - ntfsdecrypt.  (Yuval)
	- Improve "already mounted" check.  (Yura)
	- Remove AC_FUNC_MALLOC and AC_FUNC_REALLOC from configure.ac as we
	  do not provide replacement functions for them and the checks break
	  cross compilation.  (Christophe)

20/06/2005 - 1.10.0 - Lots of new features, enhancements, and bug fixes.

	- Add start_vcn parameter to ntfs_get_size_for_mapping_pairs() and
	  ntfs_mapping_pairs_build() and adapt all callers.
	- Bump library version due to source level API change above.
	- Add ntfs_debug() and ntfs_error() to make kernel<->userspace porting
	  easier.
	- ntfsinfo: Added dumping of index records from $INDEX_ROOT and 
	  $INDEX_ALLOCATION.  (Yura)
	- ntfsinfo: Changed message for resident $INDEX_ALLOCATION to print
	  error, because $INDEX_ALLOCATION can't be resident.  (Yura)
	- ntfscp: Not longer update $FILE_NAME attributes, because Windows
	  doesn't update them unless a rename operation occur.  (Yura)
	- ntfsinfo: dump attribute list entries in verbose mode and display
	  attribute instance of all attributes.  (Yura)
	- new API: attrlist.[ch]::ntfs_attrlist_entry_add add entry to
	  attribute list.  (Yura)
	- ntfs_inode_sync: write out dirty attribute list from cache to
	  disk.  (Yura)
	- Add stop_vcn parameter to ntfs_mapping_pairs_build() and adapt
	  all callers.  This allows filling an attribute extent with mapping
	  pairs and then continuing in a different extent once the first extent
	  is full.  (Yura)
	- Remove vol->nr_mft_records and update all users.  (Anton)
	- Add new API to mft.[hc]::ntfs_mft_record_{alloc,free}().  (Anton)
	- Sync inodes before closing attributes or the umount fails.  (Anton)
	- Close extent inodes in ntfs_inode_close() when closing a base inode
	  and fix handling of ->extent_nis for base inodes.  (Anton)
	- Add ntfsmftalloc utility to the extra utilities to help test the mft
	  record allocator.  (Anton)
	- Fix ntfs_attr_record_resize() to cope with a newsize < 8.  This means
	  you can call ntfs_attr_record_resize() with newsize = 0 to delete an
	  attribute record from its mft record but you would still need to
	  update the attribute list attribute if present.  (Anton)
	- Add the useful offsetof() macro to ntfs/support.h which returns the
	  offset of a structure element.  (Anton)
	- New API: attrib.[ch]::ntfs_make_room_for_attr (it is ported from
	  mkntfs).  (Yura)
	- New API: attrib.[ch]::ntfs_non_resident_attr_record_add() and
	  attrib.[ch]::ntfs_attr_record_rm(). This is low-level functions to
	  manipulate attribute extents.  (Yura)
	- Improvement to ntfs_non_resident_attr_expand: now it can expand multi
	  extent attributes and allocate new MFT records if mapping mapirs
	  doesn't fit current.  (Yura)
	- Implement attrlist.[ch]::ntfs_attrlist_entry_rm().  (Yura)
	- Attribute handling functions always update highest_vcn, if it was
	  modified.  (Yura)
	- Add new API unistr.[hc]::ntfs_ucsndup().  (Anton)
	- Make libntfs/attrib.c::ntfs_attr_open() make a copy of the attribute
	  name unless it is one of the internal names.  (Anton)
	- New API: attrib.[ch]::ntfs_resident_attr_record_add.  (Yura)
	- New API: inode.[ch]::ntfs_inode_add_attrlist.  (Yura)
	- New API: attrlist.[ch]::ntfs_attrlist_need.  (Yura)
	- ntfsclone: save by using our, not NTFS cluster allocation bitmap. 
	  This gives more control in the future what to save.  (Szaka)
	- New helper: attrlist.h::ntfs_attrlist_mark_dirty.  (Yura)
	- New API: attrib.[ch]::ntfs_attr_update_mapping_pairs and made
	  ntfs_non_resident_attr_{shrink,expand} use it, thus attribute resize
	  functions is almost completed, but still very experemental and maybe
	  dangerous.  (Yura)
	- Fix stupid bug in ntfs_attr_reinit_search_ctx() introduced during
	  changes to ntfs_external_attr_find().  This is because
	  ntfs_attr_lookup() intentionally does not clear ctx->al_entry but
	  does clear ctx->base_ntfs_ino which in turn means that
	  ntfs_attr_reinit_search_ctx() does not clear ctx->al_entry.  Now,
	  ntfs_attr_reinit_search_ctx() always clears ctx->al_entry.
	- Rename scpu_to_le{16,32,64}() to cpu_to_sle{16,32,64}() to match the
	  kernel.
	- ntfsclone: honor bad clusters list ($BadClus:$Bad), known bad sectors
	  aren't tried to be saved anymore.  (Szaka)
	- Add new API attrib.[ch]::ntfs_attr_record_move_to and make
	  ntfs_resident_attr_resize use it.  (Yura)
	- Improve ntfs_resident_attr_resize to try make attributes non-resident
	  when such convert is reasonable.  (Yura)
	- New API attrib.[ch]::ntfs_attr_record_move_away().  (Yura)
	- New API inode.[ch]::ntfs_inode_attach_all_extents .  (Yura)
	- New API inode.[ch]::ntfs_inode_free_space.  (Yura)
	- Improved layout.h::ATTR_RECORD to have {non_,}resident_end and
	  compressed_end fields. Use offsetof(ATTR_RECORD, *_end) to get size
	  of accordable attribute.  (Yura)
	- Make ntfs_attr_update_mapping_pairs and ntfs_inode_add_attrlist use
	  ntfs_inode_free_space when there is no enough space for attribute
	  list.  (Yura)
	- Remove inode.h::NIno{Clear,Set,}AttrListNonResident and attr_list_rl
	  field from inode.h::_ntfs_inode struct. Adapt all users.  (Yura)
	- Add --attibute, --attr-name and --inode options to ntfscp.  (Yura)
	- ntfscp is moved from extra to standard program set.  (Yura)
	- Add new high level API inode.[ch]::ntfs_inode_add_attr and make ntfscp
	  use it when requested attribute isn't exist.  (Yura)
	- Add new high level API inode.[ch]::ntfs_inode_rm_attr.  (Yura)
	- Extend ntfs_attr_pwrite to cope with extending the attribute size
	  and with instantiating holes.  (Yura)
	- Add new API's ntfs_rl_sparse and ntfs_rl_get_copmressed_size.  (Yura)
	- ntfsinfo: Dump flags names for $STANDARD_INFORMATION and $FILE_NAME
	  attributes.  (Yura)
	- Move NAttr{Sparse,Compressed,Encrypted} to inode struct preserving
	  the previous interface.  (Yura, with fixes from Anton)
	- Rename/move inode.[hc]::ntfs_inode_{add,rm}_attr() to
	  attrib.[hc]::ntfs_attr_{add,rm}(), respectively.  (Anton)
	- Update sparse/compressed/encrypted bits in STANDARD_INFORMATION
	  during inode sync.  (Yura)
	- Rename NTFS_SECTOR_SIZE to NTFS_BLOCK_SIZE to keep in sync with
	  kernel driver.  (Yura)
	- Port logfile checking routines from the kernel to the library and
	  integrate them with mount process.  (Yura)
	- ntfscp: Added SIGINT (Ctrl+C) handler, improved error handling in
	  sync failed case.  (Yura)
	- Fix a nasty runlist merge bug when merging two holes.  (Anton)
	- ntfsfix: empty journal and mark volume dirty for chkdsk if ntfs_mount
	  failed. This makes read-write mounting of NTFS metadata images 
	  possible by ntfsprogs and the kernel driver what were created by
	  versions of ntfsclone previous than 2.0.0. (Szaka)
	- ntfsclone: added a new option, --ignore-fs-check. It can be used
	  only with the --metadata option. The clusters causing the 
	  inconsistency are saved too. (Szaka)
	- ntfsclone: added a new option, --rescue. It ignores read errors so
	  disks having bad sectors (dying disks) can be rescued efficiently,
	  with minimal stress on them. (Szaka)
	- ntfsfix: fix invalid mft records in $MFTMirr. (Szaka)
	- Added a trigger script to the BK repository that will send an email
	  to linux-ntfs-cvs@lists.sourceforge.net mailing list when someone
	  pushes successfully to the ntfsprogs repository on bkbits.net.  This
	  is done on the server side and is thus independent of whether the
	  client doing the push has got a correct email setup.  (Yura, Anton)
	- ntfsclone: make --metadata work with the new $Logfile checking code.
	  Save at least the first 16 KiB of $Logfile (the two RSTR records 
	  should always be included if present). Save also records used for
	  checking empty $Logfile. (Szaka)
	- ntfscp: add ability to specify directory as destination file.  (Yura)
	- ntfsresize: fix segfault during filesystem check if NTFS was corrupted
	  in a way that clusters were referenced outside of the volume.  (Szaka)
	- Major rewrite of libntfs/win32_io.c and in particular seek, read, and
	  write related code.  As part of this perform run-time detection of
	  presence of SetFilePointerEx() and if not present emulate it.
	- ntfsclone: --rescue works at the lowest, sector and not cluster level
	  thus more data can be rescued. The contents of the unreadable sectors
	  are filled by character '?' and the beginning of such sectors are
	  marked by "BadSectoR\0".  (Krishna Mohan Gundu, Szaka)
	- ntfsclone: fixed an off-by-one error during --metadata in function
	  wipe_data().  (Szaka)
	- Detect and refuse to mount hibernated Windows during ntfs_mount() if 
	  the volume is tried to be opened read-write.  (Szaka)
	- Move back from BitKeeper to CVS on SF.net and fix executable
	  permissions that got lost during the move.  (Anton)
	- ntfsresize: fix segfault during filesystem check if NTFS $Bitmap file
	  size was larger than it should have been.  (Szaka)
	- mkntfs: Don't mark NTFS dirty if the backup boot sector could be
	  successfully created.  (Szaka)
	- mkntfs: Add new option -T which fakes the time to be 00:00:00 UTC,
	  Jan 1, 1970 instead of the current system time.
	- Port collate.[ch] from kernel to library and implement
	  ntfs_collate_file_name. Thus we have new API's: ntfs_collate and
	  ntfs_is_collation_rule_supported.  (Yura)
	- Port index.[ch] from kernel to library. New API's: ntfs_index_lookup,
	  ntfs_index_ctx_{get,put}, ntfs_index_entry_mark_dirty.  (Yura)
	- Implement FILE_NAME attributes update in index during inode sync and
	  enable code that set/clean sparse bit. Also add new inode state bit
	  FileNameDirty to indicate that FILE_NAME attributes need update.
	  At least after attribute resize we leave absolutely consist
	  volume.  (Yura)
	- Update attribute definition handling.  (Anton, Yura)
	- Move utils_pathname_to_inode from to library (dir.c), adapt it
	  for the library, rename it to ntfs_pathname_to_inode, update all
	  users.  (Yura)
	- Set attr_name to NULL in libntfs/attrib.c::__ntfs_attr_init() and
	  fixup all callers apropriately.  Thanks to FlatCap/Rich for pointing
	  this out.  (Anton)
	- Determine endianness in ./configure and use that in addition to
	  existing mechanisms for determining endianness.  (Anton)

04/09/2004 - 1.9.4 - Urgent bug fixes.

	- Rewrite win32_io.c to allow device level write support.  (Yuval)
	- Make ntfscp update file size in $FILE_NAME(0x30) attribute.  (Yura)
	- Fix ntfsclone crash when --restore-image was used for block device
	  outputs.  (Masaru Kawashima, Szaka)
	
03/09/2004 - 1.9.3 - Lots of fixes and enhancements all over the place.

	- Fix access of MFT_RECORD->bytes_in_use to use le32_to_cpu() instead
	  of le16_to_cpu() in libntfs/volume.c.  (Pete Curran)
	- Rename uchar_t to ntfschar everywhere since uchar_t is already
	  defined on Solaris to be an unsigned 1-byte character and it is also
	  defined like this in POSIX.
	- Do not use the ++ operator on a variable when it is being passed as a
	  parameter to a macro in libntfs/unistr.c.  (Pete Curran)
	- Fix out of source tree build of utilities by changing $top_srcdir to
	  $top_builddir in the references to the build library in the makefile
	  template ntfsprogs/Makefile.am.  (Yuval)
	- Dump general info about an inode in ntfsinfo.  (Yuval)
	- Add detection for <sys/byteorder.h> and make endianness detection
	  work on Solaris 2.6 (Yuval) and Solaris 9 (Anton).
	- Emulate bswap_{16,32,64}() if not available/we cannot find them.
	  This has the advantage that the problems on FreeBSD running on big
	  endian, 64-bit machine will just disappear as we will emulate the
	  calls even though they exist with a different name (bswap16(), etc
	  instead of bswap_16(), etc).  (Anton)
	- Undelete: add ability to recover ranges of inodes.  (Holger Ohmacht)
	- Lots of updates to ntfsinfo, see "bk changes".  (Yuval)
	- Fix crash in ntfsinfo for non-resident Security Info. (Yura)
	- ntfswipe - wipe file tails and directory indexes (Yura)
	- Bugfix in ntfs_rl_pread,pwrite for pos > 0.  (Yura)
	- Added special image format support in ntfsclone.  (Per Olofsson)
	- Major win32_io.c update implementing ->ioctl, ->sync, ->stat, and
	  ->write.  NOTE:  This might break djgpp compatibility.  (Yuval)
	- Added truncate option to ntfsundelete.  (mabs)
	- Bugfix in ntfs_attr_size_bounds_check that caused it always fail,
	  if no maximum limit for attribute size.  (Yura)
	- Add new function attrib.c::ntfs_non_resident_attr_expand,
	  thus we can expand non resident attributes.  (Yura)
	- Add a @start_vcn parameter to
	  lcnalloc.[ch]::ntfs_cluster_alloc.  (Yura)
	- Add ntfscp utility, at present it can only overwrite files.  It can
	  increment/decrease file size if $ATTRIBUTE_LIST not present.  (Yura)
	- Added new API lcnalloc.[ch]::ntfs_cluster_free_from_rl, and made
	  ntfs_cluster_alloc use it.  (Yura)
	- Bugfix in ntfs_cluster_alloc for count = 0.  (Yura)
	- Bugfix in ntfs_attr_map{_whole_,_}runlist: make it not fail if runlist
	  already mapped.  (Yura)
	- ntfsls: Add a -R recursive option.  (Giang, Carmelo)
	- Make ntfslabel pay attention to --no-action.  (Yuval)
	- Several bugfixes in ntfs_cluster_alloc.  (Anton)
	- Make all of libntfs only output anything if configured with
	  --enable-debug.  The only exception is ntfs_boot_sector_is_ntfs()
	  which now uses a new function Sprintf(), provided by debug.h which
	  can be #ifdef-ed out if people want it to be truly silent.  (Anton)
	- Fix memory leaks in libntfs/attrib.c, ntfsprogs/mkntfs.c and
	  ntfsprogs/ntfsundelete.c.  (Christophe)
	- Change libntfs/attrib.c::ntfs_attr_make_non_resident() to only
	  allocate clusters and attempt to write out data if the attribute size
	  is not zero.  (Anton)
	- Fix libntfs/attrib.c::ntfs_non_resident_attr_expand() to use
	  libntfs/attrib.c::ntfs_attr_map_whole_runlist() instead of
	  libntfs/attrib.c::ntfs_attr_map_runlist().  (Anton)
	- Change libntfs/runlist.c::ntfs_get_size_for_mapping_pairs() and
	  libntfs/runlist.c::ntfs_mapping_pairs_build() to treat a NULL runlist
	  to mean empty runlist.  (Anton)
	- ntfsresize: some refactoring towards being able to reuse code (Szaka)

11/05/2004 - 1.9.2 - Decompression bug fixes, ntfsinfo enhancements, updates.
	- Hopefully fix the autogen.sh problems using the --force and touch
	  config.h.in sledge hammers.  (Anton)
	- Fix the incorrect ntfsclone usage example in the man page.  (Szaka)
	- Fix compiler warnings in win32_io.c.  (Yuval)
	- Move constant bswap macros out of the ifdefs in endians.h so they are
	  always available.  (Yuval)
	- Add conditional include of sys/param.h in endians.h which provides
	  endianness support on Cygwin.  (Yuval)
	- ntfsclone --metadata also saves at least the first 8 KiB of the
	  $LogFile.  (Szaka)
	- Fix incorrect getopt_long() usage: converted argv[optind-1] to optarg
	  so utilities won't do bogus and unexpected things.  (Szaka)
	- Add new API security.[hc]::ntfs_sid_is_valid(), ntfs_sid_to_mbs(),
	  and ntfs_sid_to_mbs_size().  (Anton)
	- Big enhancement of ntfsinfo.  (Yuval, Anton)
	- Split mkntfs into multiple functions.  (Yuval)
	- Compiler warning fixes in utilities related to GEN_PRINTF() and other
	  things, e.g. printf() and static related.  (Yuval)
	- Make ntfsclone and ntfsresize endiansafe.  (Anton)
	- Remove global variable rl from mkntfs as it was used only in one
	  place.  (Yuval, Anton)
	- Work around mbstowcs() bug in DJGPP and update workaround for bug in
	  mbsrtowcs() on Cygwin.  (Lode, Christophe, Anton)
	- Add SetFilePointerEx() emulation to win32_io.c.  (Lode)
	- Add inode selection by path/filename to ntfsinfo.  (Yuval)
	- Fix a bug where we would not always detect that we have reached the
	  end of a compression block because we were ending at minus one byte
	  which is effectively the same as being at the end.  The fix is to
	  check whether the uncompressed buffer has been fully filled and if so
	  we assume we have reached the end of the compression block.  A big
	  thank you to Marcin Gibuła for the bug report, the assistance in
	  tracking down the bug and testing the fix.  (Anton)
	- Fix a bug where we forgot to reset the data_size and initialized_size
	  in two error code paths in ntfs_compressed_attr_pread().  (Anton)
	- Fix a bug where an uncompressed block could be misdetected as a
	  compressed one if it was made up of multiple runs.  (Anton)

05/04/2004 - 1.9.1 - Make mkntfs create bootable volumes and fixes/updates.
	- Update with SuSE 9.1 beta 1 versions of GNU build system.
	- Fix warnings on powerpc architecture where it would seem char is
	  unsigned so comparisons with -1 cause a warning that comparison is
	  always true/wrong.  (Thanks to Ender for reporting.)
	- Modify meaning of ntfs_volume->nr_mft_records to be the number of
	  initialized mft records, not total mft records.  This makes far more
	  sense and in fact reflects how nr_mft_records is being used in both
	  libntfs and the utilities.
	- Add new API bitmap.h::ntfs_bitmap_{set,clear}_bit().
	- Fix layout.h STANDARD_INFORMATION and FILE_ATTR_FLAGS typedefs by
	  adding the packed attribute where it was missing causing havoc due
	  to 64 bit alignment.  (Yuval Fledel)
	- Fix validation of STANDARD_INFORMATION attribute size in ntfsinfo.c
	  and remove relevant FIXME comments.  (Yuval Fledel)
	- Add new API security.[hc]::ntfs_guid_is_zero() and ntfs_guid_to_mbs().
	- Implement dumping of object id in ntfsinfo.  (Yuval Fledel, me)
	- Copy MFT_RECORD typedef to MFT_RECORD_OLD and modify MFT_RECORD to
	  contain the NTFS 3.1+ specific fields.  Also, update mkntfs and
	  ntfsclone appropriately.
	- Add new API mft.[hc]::ntfs_mft_record_{layout,format}() and make
	  mkntfs use it.
	- Add new API device.[hc]::ntfs_device_partition_start_sector_get() and
	  make mkntfs use it.
	- Provide a new command line option "-p" to mkntfs to allow the user to
	  specify the partition start sector manually.
	- Fix mkntfs and ntfsclone to include sys/ioctl.h.
	- Define the ioctls we use in ntfsclone if they are not defined, as it
	  is done in device.c.
	- Do not specify maintainer mode or enable compiler warnings in
	  autogen.sh.
	- Create new config option --enable-warnings and make that enable all
	  the compiler warnings (this used to be done in maintainer mode).
	- Remove AM_MAINTAINER_MODE from configure.ac.
	- Support the case where $Volume does not have a $VOLUME_NAME
	  attribute in ntfs_device_mount() and let ntfslabel create the
	  attribute when it is not present.
	- Remove the FIXME in ntfs_attr_lookup() and complete the
	  implementation of ntfs_external_attr_find() so it now returns the
	  attribute list attribute position at which the attribute should be
	  inserted in @ctx->al_entry (see descritpion for ntfs_attr_lookup() in
	  attrib.c for details).
	- Check the mount state of the output device in ntfsclone.
	- Correct a too strong sanity check in ntfsclone that prevented
	  cloning from larger device to a smaller one but the NTFS image
	  could have fit fully.
	- Added a few (hopefully) better explanatory messages to ntfsresize.
	- Add new API device.[hc]::ntfs_device_heads_get() and make mkntfs use
	  it.
	- Provide a new command line option "-H" to mkntfs to allow the user to
	  specify the number of heads manually.
	- Add new API device.[hc]::ntfs_device_sectors_per_track_get() and make
	  mkntfs use it.
	- Provide a new command line option "-S" to mkntfs to allow the user to
	  specify the number of sectors per track manually.
	- Remove dumplog utility as it was unnecessary and duplicated the
	  functionality of ntfsdump_logfile.
	- Cleanup ntfsdump_logfile utility to use more libntfs APIs and other
	  cleanups.
	- Remove some compiler warnings that appeared with the latest gcc
	  update from SUSE 9.1 beta 3.
	- Sanitize/update logfile.h somewhat and adapt ntfsdump_logfile.
	- Move declaration of a variable in utils.c to beginning of block.
	  Thanks to Alexei Alexandrov for the bug report and patch.
	- Add the ability to read the logfile from a supplied file using the
	  command line option -f to ntfsdump_logfile.
	- Updated ntfsclone manual.  (Szaka)
	- Added some diagnostic and explanatory messages to ntfsclone.  (Szaka)
	- Mostly rewrite ntfsinfo.  (Yuval Fledel and some fixes by me)

11/03/2004 - 1.9.0 - Added ntfsresize relocation support and a lot of cleanups.
	- In include/ntfs/*.h Wrap all #include "config.h" by #ifdef
	  HAVE_CONFIG_H. (Suggested by Christophe.)
	- Update doc/CodingStyle.  (Suggested by Szaka.)
	- Fix mkntfs for large volumes where the number of clusters would
	  exceed the maximum of 32 bits and mkntfs would segfault.  Now we
	  increase the cluster size until the number of clusters no longer
	  exceeds 32 bits or the maximum cluster size is reached.  We then
	  exit with an appropriate error message.  (Thanks to Szaka for the
	  bug report.)
	- Modify layout.h and logfile.h expanding/naming annonymous structs
	  and unions (much like I did earlier in the kernel driver) so that
	  the -fms-extensions switch is no longer required.  Also, removed
	  the -fms-extensions switch and associated autodetection from
	  ./configure.ac.  (Yuval Fledel with small fixes from me)
	- Update the build system: autogen.sh now uses autoreconf; run
	  autoupdate && autoreconf --force and fixup the fallout damage; rename
	  INCLUDES to AM_CPPFLAGS; add $srcdir to getgccver invocation.
	- Rename private to priv_data in ntfs_device_alloc() to avoid name
	  space clashes with C++.  (Yuval Fledel, modified fix by me)
	- Rename 'opt' struct member stdout to std_out in ntfsclone.c because
	  stdout is a macro on Cygwin and compilation fails.  (Yuval Fledel)
	- Make ntfs_attrs_walk() use AT_UNUSED and CASE_SENSITIVE instead of
	  zero when calling ntfs_lookup() for type checking correctness.  (Yuval
	  Fledel)
	- In attribute lookup code in libntfs/attrib.c, check type against
	  AT_UNUSED and not zero.
	- Add AC_CANONICAL_HOST([]) to configure.ac and before AC_PROG_CC add
	  manual provision of CC=gcc, AR=ar, and LD=ld if they are not set and
	  the target is *-*-*djgpp.  (Requested by Christophe Grenier)
	- Provide our own byteswap constant versions in endians.h so we avoid
	  the mess that some architectures define only some of them.
	- Use head -n 1 instead of -1 in getgccver script.  (From SUSE LINUX)
	- Fix typo in ntfsinfo.c.  (From SUSE LINUX)
	- Make the device fd in unix_io.c be stored in malloc()ed space pointed
	  to by the d_private pointer instead of inside the d_private pointer
	  itself.  Makes the warnings on 64 bit architectures go away.
	- Fix all occurences of printf with %ll length modifiers but 64 bit
	  arguments to typecast the arguments to (unsigned) long long to avoid
	  the warnings when compiling on 64 bit architectures.
	- Use AC_GNU_SOURCE in configure.ac instead of doing it manually.
	- Fix lots of typos in the documentation.  (David Martínez Moreno)
	- Update config.sub and config.guess to latest ones.  (David Martínez
	  Moreno)
	- Change Linux-NTFS to ntfsprogs everywhere when talking about the
	  package rather than the project (especially man pages affected).
	- Add relocation support to ntfsresize.  Note, this modifies the
	  command line options a little as well as the returned output so
	  applications using ntfsresize might need modifications before they
	  will work with the updated ntfsresize.  (Szaka)

27/02/2004 - 1.8.5 - Springclean of the build process, cleanups, bug fixes.
	- Fixup ntfsinfo a little bit and give its manpage a small update to
	  reflect reality a little better.
	- Fix BLKGETSIZE usage; parameter is unsigned long not long. (Szaka)
	- Use BLKGETSIZE64 when available which allows use of devices bigger
	  than 2TiB.
	- Enable GNU extensions if present.  This means that you need to
	  include config.h before any other non-ntfs header files.
	- Use AC_SYS_LARGEFILE in configure.ac instead of manually defining
	  _FILE_OFFSET_BITS=64 in CFLAGS.  This means that you need to include
	  config.h before any other non-ntfs header files.
	- Update all source to include config.h before any other non-ntfs
	  header files.
	- Move include files from ntfsprogs/include to ntfsprogs/include/ntfs
	  and adapt build system.  (Feature requested by Christophe Grenier.)
	- Fix potential buffer overflow bug in ntfsprogs/mkntfs.c::stoucs().
	  Thanks to Andras Erdei.
	- Small cleanup of ./configure.ac to show better formatted option help
	  text and other little bits.
	- Add --disable-default-device-io-ops option to ./configure which makes
	  for a smaller libntfs but results in ntfs_mount() always returning
	  error with errno set to EOPNOTSUPP.  You need to use
	  ntfs_device_mount() instead.  This only makes sense with "make libs"
	  and when an application linking statically against libntfs provides
	  its own device io operations.  (Feature requested by 
	  Christophe Grenier.)
	- Fix a duplicated free() in mkntfs. (Andras Erdei)
	- Fix option display in mkntfs. (Andras Erdei)

23/01/2004 - 1.8.4 - Memory leak fixes.
	- Fix memory leaks in libntfs/dir.c::ntfs_inode_lookup_by_name(),
	  libntfs/dir.c::ntfs_readdir() and libntfs/attrib.c::ntfs_attr_open().
	  Thanks to Christophe Grenier and valgrind for finding them.

19/01/2004 - 1.8.3 - Lots of small fixes.
	- Update ntfsinfo (Matthew J. Fanto, me)
	- Add new API attrib.[hc]:ntfs_compressed_attr_pread(). NOTE: You want
	  to use ntfs_attr_pread() instead which will transparently read the
	  compressed attribute and return the decompressed data.
	- Improve mkntfs linux/major.h use so should work on newer glibc.
	- Fix silly bug in ntfs_attr_size_bounds_check() where unbounded
	  attributes were handled completely wrong. (Thanks to Szaka for
	  spotting this.)
	- Fix wrong print modified %L intead of %ll everywhere. (Szaka, me)
	- More Cygwin fixes. (Lode Leroy)
	- Switch build files to ones generated by current SuSE 9.0 (i.e. I ran
	  ./autogen.sh on SuSE 9.0 as I will be using SuSE as my desktop from
	  now on).

07/01/2004 - 1.8.2 - Make ntfsprogs work on FreeBSD.
	- Add compatibility for building on FreeBSD. (Christophe Grenier)
	- Add new compile target "make libs" which only compiles libntfs.
	- Compile fixes for DJGPP. (Chrisophe Grenier, me)
	- Note: DJGPP only works with "make libs". not "make" due to absence
	  of getopt.h, getopt_long(), snprintf(), and snprintf(). getopt() does
	  exist (in unistd.h) so we could switch to that if we wanted.
	- Enable lots of compiler warnings in maintainer mode and fix all
	  warnings from libntfs.
	- Fix memory deallocation bug in mft.c spotted by the additional
	  warnings.

06/01/2004 - 1.8.1 - Important bug fix and various enhancements.
	- Add new API function attrib.[hc]:ntfs_attr_map_whole_runlist().
	- Add new API function runlist.[hc]:ntfs_rl_pread().
	- Fix bug in run list encoding functions that hit sparse and compressed
	  files with holes. (Szabolcs Szakacsits)
	- Add compatibility for building with DJGPP under DOS. (Christophe
	  Grenier, slightly modified by me)

19/11/2003 - 1.8.0 - Final fixes and tidy ups.
	- Cleanup build system wrt CFLAGS handling placing it all in one place
	  in configure.ac and removing everything related from the Makefile.am
	  files.
	- Fix all compiler warnings (Richard Russon, me)
	- Make libntfs more portable by removing the dependency on
	  asm/byteorder.h and using <endian.h> and <byteswap.h> instead. Also
	  adapting our endians.h appropriately. (Richard Russon)
	- Fix nasty buffer overflow bug in ntfs_get_attribute_value() which we
	  use to get the attribute list attribute.  This is the same bug that
	  was biting us in the ntfs driver 2.1.4 and was fixed in 2.1.5.
	  Windows XP creates files where an attribute's data size is more than
	  one run list run shorter than the allocated size which causes us to
	  crash out as we assumed this would never happen.
	- Various other small cleanups and fixes.

10/11/2003 - 1.8.0beta2 - More features!
	- Merge ntfsprogs-gnomevfs written by Jan Kratochvil.

23/10/2003 - 1.8.0beta - The Long Overdue(TM) release.
	- Further work on attribute resizing.
	- Fix two logic inversion bugs in dir.c. Thanks to Russ Christensen for
	  finding the first one.
	- Fix attempt to release I30 internal constant. (Russ Christensen)
	- Fix off-by-one error in disk_io.c::ntfs_cluster_{read,write}(). (Ian
	  Jackson)
	- Add -fms-extensions when compiling with gcc-3.2+.
	- Update for newer autoconf/automake.
	- Abstract low level device operations (include/device,h and
	  libntfs/device.c) and adapt utilities to changes.
	- Added ntfsclone utility written by Szabolcs Szakacsits.
	- Added ntfsls utility written by Lode Leroy.
	- Fix bugs in dir.c::ntfs_readdir() where we try to close ia_na when
	  it is NULL.
	- Return errno ENOTDIR from dir.c::ntfs_readdir() when called with a
	  file inode.
	- Fix a silly bug in attrib.c::ntfs_external_attr_find() which caused
	  us to always return the same attribute during an enumeration as soon
	  as the end of the attributes to be enumerated was reached thus
	  causing the program doing the enumeration to hang in a tight loop.
	  NOTE: There is still work to do as ctx->al_entry is set to NULL
	  instead of to the position in the attribute list at which to insert.
	- Added man pages for the new utilities (Richard Russon and me).
	- Lots of extensions and cleanups to ntfsls.
	- Move common bits from disk_io.c into device.c and rename the Unix io
	  specific code that remains to unix_io.c to complement win32_io.c.
	- Integrate win32_io.c into the build process so win32_io ops are used
	  when compiling under Cygwin and standard Unix style io ops are used
	  otherwise.
	- Add new utility ntfscat (Richard Russon) and a corresponding man page.
	- Other assorted bugfixes and developments (see NEWS and bk changes).

13/02/2003 - 1.7.1 - Urgent bug fixes.
	- Urgent bug fixes in ntfsresize (Szabolcs Szakacsits):
	  - compare_bitmaps(): fix another bug reporting the correct cluster
	    mismatch
	  - walk_inodes(): fix leaking ntfs_inode in certain cases
	  - delete redundant and unused MFT_RECORD *mrec from ntfs_resize_t
	- Urgent bug fixes in libntfs (thanks to Szaka for bug reports):
	  - attrib.c::ntfs_external_attr_find(): broken error detection
	  - mft.c::ntfs_mft_records_write(): stupid buffer overflow bug (ouch!)

12/02/2003 - 1.7.0 - Small bug fixes and updates.
	- Bug fixes in mapping pairs array generation in libntfs.
	- Bug fixes and updates in ntfsresize. (Szabolcs Szakacsits)
	- Tidyups and standardisations. (Richard Russon)

18/01/2003 - 1.7.0beta - Library rewrite and many new tools.
	- Highlights of this release are the now hopefully stable API sported
	  by an almost completely rewritten library and the new utilities;
		ntfsresize, ntfsundelete, and ntfslabel.
	  Note this is a beta release so it may not be free of bugs.
	- New tool ntfslabel written by Matthew Fanto with a few cleanups from
	  me to make it fit in with e2label better.
	- Add man page for ntfslabel.
	- New tool, ntfsundelete, written by Richard Russon.
	- New tool, ntfsresize, written by Szakacsits Szabolcs.
	- Extend ntfs_mount() to also read in the volume label.
	- Silence verbosity of output from ntfs_mount(). It is now only output
	  if ./configure was run with --enable-debug.
	- Remove a LOT of dead code. Massive cleanup.
	- Add full attribute search context and allocation/init/deallocation
	  functions (see attrib.c).
	- Remove find_first_attr(). Just use ntfs_attr_get_search_ctx() +
	  ntfs_attr_find() which has the same effect.
	- Rewrite disk_io.[ch] and mft.[ch] defining new access API:
		disk_io.[ch] provide:	ntfs_p{read,write}(),
					ntfs_mst_p{read,write}(), and
					ntfs_cluster_{read,write}().
		mft.[ch] provide:	ntfs_mft_record_{read,write}(),
					ntfs_mft_records_{read,write}(), and
					ntfs_mft_record_get_data_size().
	- When writing mft records using the mft.c::ntfs_mft_record{s,}_write()
	  interface, the mft mirror is now updated automatically.
	- Add -Wall to compiler options.
	- Fix minor error code path bugs in mkntfs.c that showed up with -Wall.
	- Fix all compiler warnings that showed up with -Wall.
	- Add new API function, provided by mft.[ch]: ntfs_file_record_read().
	- Add new API calls provided by unistr.[ch]:
		ntfs_ucstombs() and ntfs_mbstoucs().
	- Define API for mst.[ch] providing:
		ntfs_mst_post_read_fixup(),
		ntfs_mst_pre_write_fixup(), and
		ntfs_mst_post_write_fixup().
	- Define API for bootsect.[ch] providing:
		ntfs_boot_sector_is_ntfs().
	- Add beginning of new API with new files inode.[ch] providing:
		ntfs_inode_{open,close)(), and
		ntfs_extent_inode_open().
		- Note the inode related API is subject to change.
	- Start defining API provided by attrib.[ch]:
		ntfs_attr_search_ctx typedef,
		ntfs_attr_{get,put,reinit}_search_ctx(), and
		ntfs_attr_lookup().
	- Add a TODO.libntfs laying down my personal roadmap for the library.
	- Remove ntfs_attr_find() from API, everyone must use ntfs_attr_lookup()
	  instead.
	- Rename all attribute name constants from $blah to AT_blah.
	- Rename all system file constants from FILE_$blah to FILE_blah.
	- Port ntfs_attr_lookup() stuff from ntfs tng driver.
	- Implement loading of extent inodes. They are attached on open to the
	  base inode and are cached there until the base inode is closed.
	- Cleanup/streamline include file dependencies.
	- Port attribute list merging code from ntfs tng driver. API to follow.
	- Allocate an ntfs_volume in mkntfs and start initializing it instead
	  of using the opt global structure. Necessary so can call the
	  modified ntfs_mapping_pairs_decompress() from mkntfs.c.
	- Add libntfs/debug.c providing:
		ntfs_debug_runlist_dump().
	- Add new API call ntfs_check_if_mounted() to volume.[ch]. (Matthew
	  Fanto, me)
	- Do folding assisting cleanups. (Richard Russon, me)
	- Add new API call ntfs_boot_sector_is_ntfs() provided by bootsect.[hc].
	- Define and write more API calls provided by attrib.[ch]:
		ntfs_attr_map_runlist(),
		ntfs_attr_vcn_to_lcn(),
		ntfs_attr_find_vcn(),
		ntfs_attr_init(),
		ntfs_attr_{open,close}(),
		ntfs_attr_size_bounds_check(),
		ntfs_attr_can_be_non_resident().
	- Add new field mftmirr_size to ntfs_volume structure and initialize
	  it to the number of mft records stored in the mft mirror in
	  ntfs_mount().
	- Add new fields mftmirr_ni and mftmirr_na to ntfs_volume structure and
	  initialize them in ntfs_mount to the $MFTMirr inode and $DATA
	  attribute. Ditto for mft_ni ($MFT inode), mft_na ($MFT/$DATA),
	  mftbmp_na ($MFT/$BITMAP), lcnbmp_ni ($Bitmap inode), and
	  lcnbmp_na ($Bitmap/$DATA). Remove previous fields replaced by these.
	- Rename a few fields in ntfs_volume structure to make them shorter,
	  e.g. now have nr_mft_records and nr_clusters.
	- Add new API for doing I/O on both normal and multi sector transfer
	  protected ntfs attributes described by the ntfs_attr structure,
	  provided by attrib.[hc] (note writing is still restricted to
	  overwrite only):
		ntfs_attr_p{read,write}(), and
		ntfs_attr_mst_p{read,write}().
	- Fix detection of read-only mounts in volume.c::ntfs_mntent_check().
	- Start modularising ntfs_mount():
		- Split off the boot sector parsing code and move it to
		  bootsect.c::ntfs_boot_sector_parse().
		- Move $MFT loading and parsing code to separate function
		  volume.c::ntfs_mft_load().
		- Move $MFTMirr loading and parsing code to
		  volume.c::ntfs_mftmirr_load().
		- Move all startup code (loading and parsing of bootsector,
		  $MFT, and $MFTMirr) to volume.c::ntfs_volume_startup().
	- Update ntfsfix to above modularisation.
	- Add detection of read-write mounted devices to ntfsfix and refuse to
	  operate on them.
	- POSIXify libntfs/disk_io.c. All functions now return partial reads
	  and writes and deal with end of file properly. Affected functions:
	  	ntfs_p{read,write}(),
		ntfs_mst_p{read,write}(), and
		ntfs_cluster_{read,write}().
	- Change ntfsfix to take into account the automatic mft mirror updates.
	- Add new API provided by new files dir.[ch]:
		ntfs_inode_lookup_by_name(), and
		ntfs_readdir().
	- We now use u8, u16, u32, u64, s8, s16, s32, and s64 types and we
	  typedef them ourselves from the C99 standard uint8_t, etc types which
	  IMO are braindamaged.
	- Better gcc detection in 'configure.in'. (Szakacsits Szabolcs)
	  Tested with:	egcs-1.0.3 (egcs-2.90.29), egcs-1.1.2 (egcs-2.91.66),
			gcc 2.95.3, 2.96 (from RH 7.1 and 7.3), and 3.0.4.
	- Enable enumeration of attributes using ntfs_attr_lookup() which is
	  requested by passing a type of AT_UNUSED (or simply zero) to
	  ntfs_attr_lookup(). (Based on initial patch by Szakacsits Szabolcs.)
	- Fix two minor buglets in ntfs_external_attr_find() where we would
	  continue the search when we detect a mismatched type and/or name
	  instead of aborting and returning error EIO to flag the corruption.
	- Add new syntactic sugar API provided by attrib.h:
		ntfs_attrs_walk(). (Szakacsits Szabolcs)
	- Add new API for compressing runlists into mapping pairs arrays
	  provided by runlist.[hc] (some adapted from mkntfs.c):
		ntfs_rl_vcn_to_lcn(),
		ntfs_rl_pwrite(),
		ntfs_runlists_merge(),
		ntfs_mapping_pairs_decompress(),
		ntfs_get_nr_significant_bytes(),
		ntfs_get_size_for_mapping_pairs(),
		ntfs_write_significant_bytes(),
		ntfs_mapping_pairs_build(), and
		ntfs_rl_truncate(). -- WIP
	- Convert mkntfs.c to the above API.
	- Implement attrib.[hc]::ntfs_rl_pwrite() as a low level scatter write
	  function analogous in functionality to mkntfs.c::ntfs_rlwrite() but
	  with arguments more like ntfs_attr_pwrite() to allow for more
	  flexible use.
	- Don't use string concatenation with __FUNCTION__ as gcc-3.x don't
	  like it.
	- Move runlist functions to runlist.[hc]. (Richard Russon)
	- Add new API to volume.[hc] and use it (Szakacsits Szabolcs):
		ntfs_version_is_supported(),
		NTFS_V{1_[12],2_x,3_[01]}() macros,
		ntfs_logfile_reset(), and
		ntfs_volume_set_flags().
	- Change size autodetection of non-block device files in mkntfs to use
	  the stat returned file size rather than the block allocation count to
	  cope with pre-created sparse files.
	- Remove GPL message text from usage information in mkntfs.
	- The word is "runlist", not "run_list", "run list", or "run-list".
	- Prefix all functions with "ntfs_" and make the names of the form
	  "ntfs_object_action()". Keep this for all future functions!
	- Change unistr.c::ntfs_names_are_equal() to return TRUE when both
	  names have zero length. Thanks to Leonard Norrgard for spotting this.
	- Fix bug in ntfs_external_attr_find(). (Szakacsits Szabolcs)
	- Fix stupid logic inversion bug in ntfs_extent_inode_open(). Same bug
	  was fixed in the NTFS kernel driver over six months ago but the fix
	  was never taken over to libntfs. (Szakacsits Szabolcs)
	- Fix stupid bug in ntfs_ucsncmp(). Spotted by Leonard Norrgard.
	- Fix bug where the call to ntfs_attr_{put,reinit}_search_ctx() would
	  free the extent inode attached to the search context but leave it
	  attached to the base inode, so this would lead to memory corruption
	  and worse problems. Thanks to Szakacsits Szabolcs for spotting this.
	  We now don't close extent inodes any more at all and just leave it
	  to the closing of the base inode to dispose of all the extent inodes.
	- Add sanity check to ntfs_inode_close() to detect attempts at closing
	  extent inodes.
	- Don't free extent inodes in attrib.c! (Szakacsits Szabolcs)
	- Return the attribute list attribute when enumerating attributes, too.
	  Thanks to Szakacsits Szabolcs for pointing this problem out.
	- New API function provided by unistr.[hc] and use it in mkntfs:
		ntfs_ucsnlen().
	- New API function provided by attrib.[hc] and use it in mkntfs:
		ntfs_resident_attr_value_resize(),
		ntfs_attr_truncate(). -- WIP
	- New API functions provided by inode.[hc]:
		ntfs_inode_mark_dirty(),
		ntfs_inode_sync().
	- Change ntfs_inode_close() to write out dirty inodes and inode extents.
	- New API functions provided by lcnalloc.[hc]:
		ntfs_cluster_{alloc,free}(). -- WIP
	- New API function provided by bitmap.[hc]:
		ntfs_bitmap_{set,clear}_run(). -- WIP
	- Extend the volume.h::ntfs_volume structure with variables required by
	  the cluster and mft allocators and set them up in
	  volume.c::ntfs_volume_startup().
	- ntfs_umount() now also does an fdatasync() on the device before
	  closing it.
	- Added new utility ntfstruncate, primarily to be able to test the
	  new ntfs_attr_truncate() function, it is not compiled by default.
	  Note, the library can currently only make attributes smaller and it
	  only works on uncompressed, unencrypted inodes which do not contain
	  attribute lists, i.e. on simple files, but that was quite a lot of
	  new code in itself which needs a lot of testing!
	- Fix library to never issue writes on volumes that have been mounted
	  read-only.
	- New API provided by mft.[hc]:
		ntfs_mft_record_{alloc,free}(). -- WIP

12/03/2002 - 1.6.0 - More mkntfs options and cleanups.
	Fix typo in usage information of mkntfs. Thanks to Richard Russon for
	spotting it.
	Change version number in mkntfs and ntfsfix to match the linux-ntfs
	release version number.
	Added two new options to mkntfs; -I, which disables content indexing
	on the volume and -C, which enables compression on the volume.

01/02/2002 - Attempt to fix compile warnings on powerpc.
	Attempt to fix compile warnings on powerpc. It seems powerpc uses
	char == unsigned char which was breaking some signed comparisons.

26/01/2002 - 1.5.1 - Fix two buglets in ntfsfix and more compilation fixes.
	Fix two silly buglets in ntfsfix, where we were calling is_baad_record
	instead of is_baad_recordp. Silly me... Thanks to David Martinez Moreno
	for reporting the compilation warnings on ia64 which led me to find the
	bug.
	Fix compilation problems in logfile.h on big endian arches. Hopefully,
	now will really compile on all arches.

10/01/2002 - 1.5.0 - Fix bug in $LogFile size calculation.
	Fix bug in $LogFile size calculation where we would take the size to
	be zero on partitions between 200 and 400MiB in size.
	Add requirement for linux-ntfs to linux-ntfs-devel.

15/12/2001 - Remove atomic ops and add compiler version check.
	Hopefully this will preempt "it doesn't compile for me" messages from
	people with gcc < 2.96.
	Change bail out error check for seek to backup boot sector to a warning
	since SuSE 7.2 + loads of stuff and 2.5.1-pre11 returns EINVAL instead
	of ENOSPC.
	Remove atomic code as it isn't defined on non-i386 arches.

06/12/2001 - Change ntfs_mount to accept second argument for mount flags.
	ntfs_mount() now supports mount flags as per "man 2 mount". Currently
	only the MS_RDONLY flag is supported/implemented. This breaks
	compatibility with older libntfs versions and hence the major version
	number of the library has been increased.
	Adapt utilities to make use of new ntfs_mount syntax.

17/11/2001 - Add description of compression algorithm.

09/11/2001 - 1.4.0 - Major fix in mkntfs, small update to ntfsfix and others.
	Update ntfsfix to support Windows XP NTFS volumes (NTFS 3.1).
	Update layout.h with more information.
	(Re)enable shared libraries.
	Changes to mkntfs:
	  - Correct handling of directories on volumes with cluster sizes
	    above 4096 bytes.
	  - Lower minimum size of NTFS partitions to 1MiB, scaling down the
	    logfile size as necessary.
	  - Support a wider range of input parameters. Now should have all
	    valid combinations covered.
	  - Update man page.
	  - Implement better determination of device size.
	  - Various bug fixes.

22/08/2001 - 1.2.2 - Small fix in mkntfs and minor updates.
	Small fix in mkntfs for small volumes with non-standard sector sizes,
	where the default values would result in a sector size smaller than the
	sector size and mkntfs would refuse to run because of this. The man
	page was updated accordingly.
	Minor updates/clarifications to include/layout.h.

02/08/2001 - 1.2.1 - Added ntfsfix man page and minor cleanup.
	David Martínez Moreno <david.martinez@rediris.es> donated a man page
	for ntfsfix as well as spelling mistake fixes all over the place.

26/07/2001 - 1.2.0 - Important bug fixes to mkntfs.
	Bug fixes for cluster sizes > 4kb involving corrections to mft mirror
	size and contents, mft data attribute position and mft bitmap size.
	Some of those were nasty so this is a major improvement. Hopefully these
	were the last bugs.

25/07/2001 - 1.0.2 - Small cleanup of the distribution.
	Move mkntfs to sbin (was put in bin before).
	Small bugfix to mkntfs man page.

24/07/2001 - 1.0.1 - Small cleanup of the distribution.
	Confirmed that at least gcc-2.96 is needed to compile linux-ntfs.
	Removed ldm.c from linux-ntfs. It will reappear as ldminfo.c in a new
	package, probably linux-ldm.
	Taken out some file from the distribution, but they are still present
	in CVS. This is because they are not really useful except if you are
	a developer wanting to play about.

10/06/2001 - 1.0.0 - mkntfs release and bugfixes to ntfslib and the others.
	Also, released ldm which dumps the ldm database on Win2k/XP dynamic
	disks.
	A man page for mkntfs is also installed by make install so man 8 mkntfs
	can be used to show the recognised command line options.
	Building of shared libraries is disabled by default as it breaks on
	some systems.
	Probably need at least gcc-2.95 or something like that from now on.

02/02/2001 - Started ChangeLog.