1305 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			1305 lines
		
	
	
		
			70 KiB
		
	
	
	
		
			Plaintext
		
	
	
xx/xx/2006 - x.xx.x - .
 | 
						|
 | 
						|
	- 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.  (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. (Anton)
 | 
						|
	- Fix ntfsresize to unmount the volume when finished/exiting so it does
 | 
						|
	  not leave the volume in an inconsistent state.  Somewhat crude
 | 
						|
	  solution using atexit() but it works...  (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.
 | 
						|
	- ntfsclone: don't check free space if output file is FIFO (Andree
 | 
						|
	  Leidenfrost)
 | 
						|
 | 
						|
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.
 | 
						|
 |