wimlib
2 years agov1.10.0 v1.10.0
Eric Biggers [Sat, 20 Aug 2016 03:13:27 +0000 (20:13 -0700)]
v1.10.0

2 years agoregistry: avoid negating INT32_MIN
Eric Biggers [Fri, 19 Aug 2016 07:25:44 +0000 (00:25 -0700)]
registry: avoid negating INT32_MIN

2 years agowimexport: allow exporting to archive directly on block device
Eric Biggers [Tue, 16 Aug 2016 06:55:52 +0000 (23:55 -0700)]
wimexport: allow exporting to archive directly on block device

2 years agowimapply.1: fix documentation for valid Windows filenames
Eric Biggers [Tue, 16 Aug 2016 06:55:51 +0000 (23:55 -0700)]
wimapply.1: fix documentation for valid Windows filenames

* "must end with space or period" is not a restriction for NT APIs
* control characters are forbidden

2 years agowin32_apply.c: detect case-sensitive filename support
Eric Biggers [Tue, 16 Aug 2016 06:55:50 +0000 (23:55 -0700)]
win32_apply.c: detect case-sensitive filename support

2 years agontfs-3g_apply.c: open $Secure
Eric Biggers [Fri, 29 Jul 2016 21:43:57 +0000 (14:43 -0700)]
ntfs-3g_apply.c: open $Secure

2 years agontfs-3g_capture.c: update $Secure handling
Eric Biggers [Wed, 27 Jul 2016 16:30:01 +0000 (09:30 -0700)]
ntfs-3g_capture.c: update $Secure handling

2 years agolibattr is no longer needed
Eric Biggers [Wed, 27 Jul 2016 00:10:05 +0000 (17:10 -0700)]
libattr is no longer needed

wimlib only uses the extended attributes interface on Linux, where it
appears it is now safe to assume the functions are present in libc (see:
http://lists.nongnu.org/archive/html/acl-devel/2012-04/msg00001.html).

Note: the setfattr program from the "attr" package is still required to
run the NTFS-3G test script.

2 years agoSync AVL tree code from project
Eric Biggers [Tue, 26 Jul 2016 16:16:43 +0000 (09:16 -0700)]
Sync AVL tree code from project

2 years agoavl_tree: remove now-unused support for "unlinked" marker
Eric Biggers [Tue, 26 Jul 2016 02:57:20 +0000 (19:57 -0700)]
avl_tree: remove now-unused support for "unlinked" marker

2 years agoUnify case-sensitive and case-insensitive filename indices
Eric Biggers [Tue, 26 Jul 2016 02:14:42 +0000 (19:14 -0700)]
Unify case-sensitive and case-insensitive filename indices

2 years agoavl_tree: add avl_tree_prev_in_order()
Eric Biggers [Tue, 26 Jul 2016 02:14:21 +0000 (19:14 -0700)]
avl_tree: add avl_tree_prev_in_order()

2 years agoAdd program to report NTFS volume fragmentation
Eric Biggers [Mon, 25 Jul 2016 02:01:09 +0000 (19:01 -0700)]
Add program to report NTFS volume fragmentation

2 years agontfs-3g_apply.c: note version in which ntfs_attr_pwrite() was fixed
Eric Biggers [Mon, 25 Jul 2016 00:22:09 +0000 (17:22 -0700)]
ntfs-3g_apply.c: note version in which ntfs_attr_pwrite() was fixed

2 years agolzx_compress: make lzx_cost_for_probability() more robust
Eric Biggers [Sun, 24 Jul 2016 21:13:17 +0000 (14:13 -0700)]
lzx_compress: make lzx_cost_for_probability() more robust

2 years agolzms_common.c: support x32 ABI in find_next_opcode_sse4_2()
Eric Biggers [Tue, 19 Jul 2016 16:00:17 +0000 (09:00 -0700)]
lzms_common.c: support x32 ABI in find_next_opcode_sse4_2()

2 years agoavl_tree: replace 'AVL_INLINE' with 'forceinline'
Eric Biggers [Tue, 19 Jul 2016 16:00:17 +0000 (09:00 -0700)]
avl_tree: replace 'AVL_INLINE' with 'forceinline'

2 years agoREADME.WINDOWS: describe 64-bit build by default
Eric Biggers [Tue, 19 Jul 2016 16:00:16 +0000 (09:00 -0700)]
README.WINDOWS: describe 64-bit build by default

2 years agoREADME.WINDOWS: update build instructions for v1.10.0
Eric Biggers [Tue, 19 Jul 2016 16:00:15 +0000 (09:00 -0700)]
README.WINDOWS: update build instructions for v1.10.0

2 years agoconfigure.ac: Do not check for <sys/param.h>
Eric Biggers [Sat, 9 Jul 2016 17:13:23 +0000 (12:13 -0500)]
configure.ac: Do not check for <sys/param.h>

This header is conditionally included by <ntfs-3g/endians.h>.  It defines
too much stuff on certain platforms, e.g. an ALIGN() macro on FreeBSD,
and it appears redundant with other methods of determining the
endianness.

2 years agontfs-3g_capture.c: include <ntfs-3g/compat.h> to get ENODATA definition
Eric Biggers [Sat, 9 Jul 2016 17:12:14 +0000 (12:12 -0500)]
ntfs-3g_capture.c: include <ntfs-3g/compat.h> to get ENODATA definition

Some platforms, e.g. FreeBSD, do not define ENODATA.  On such platforms,
libntfs-3g uses ENOENT instead, and <ntfs-3g/compat.h> defines ENODATA as
ENOENT.

2 years agoUpdate NEWS
Eric Biggers [Sat, 9 Jul 2016 15:01:27 +0000 (10:01 -0500)]
Update NEWS

2 years agoStop force-inlining everything marked 'inline'
Eric Biggers [Sat, 9 Jul 2016 15:01:26 +0000 (10:01 -0500)]
Stop force-inlining everything marked 'inline'

Instead, replace 'inline' with 'forceinline' in selected places.

2 years agobitops: rename bit scan functions
Eric Biggers [Sat, 9 Jul 2016 15:01:25 +0000 (10:01 -0500)]
bitops: rename bit scan functions

Our bit scan functions use 0-based indices and do not allow zero inputs.
Rename them to 'bsr' and 'bsf' to match the x86 instructions and avoid
confusion with another common convention for 'fls' and 'ffs'.

2 years agoxpress_decompress: tweak comment about end-of-block symbol
Eric Biggers [Sat, 9 Jul 2016 15:01:24 +0000 (10:01 -0500)]
xpress_decompress: tweak comment about end-of-block symbol

2 years agodecompress_common: move temp space for building decode table to heap
Eric Biggers [Sat, 9 Jul 2016 15:01:23 +0000 (10:01 -0500)]
decompress_common: move temp space for building decode table to heap

2 years agoxpress_decompress: allocate decode table on heap instead of stack
Eric Biggers [Sat, 9 Jul 2016 15:01:22 +0000 (10:01 -0500)]
xpress_decompress: allocate decode table on heap instead of stack

2 years agodecompress_common: introduce fast path for lz_copy()
Eric Biggers [Sat, 9 Jul 2016 15:01:22 +0000 (10:01 -0500)]
decompress_common: introduce fast path for lz_copy()

2 years agodecompress_common: switch to subtables for Huffman decoding
Eric Biggers [Sat, 9 Jul 2016 15:01:21 +0000 (10:01 -0500)]
decompress_common: switch to subtables for Huffman decoding

2 years agolzx_common: add constant for maximum number of extra offset bits
Eric Biggers [Sat, 9 Jul 2016 15:01:20 +0000 (10:01 -0500)]
lzx_common: add constant for maximum number of extra offset bits

2 years agolzx_common: add constants for minimum aligned offset slot
Eric Biggers [Sat, 9 Jul 2016 15:01:19 +0000 (10:01 -0500)]
lzx_common: add constants for minimum aligned offset slot

2 years agolzx_decompress: optimize use of extra offset bits array
Eric Biggers [Sat, 9 Jul 2016 15:01:18 +0000 (10:01 -0500)]
lzx_decompress: optimize use of extra offset bits array

2 years agolzx_common: make lzx_offset_slot_base hold unadjusted offsets
Eric Biggers [Sat, 9 Jul 2016 15:01:17 +0000 (10:01 -0500)]
lzx_common: make lzx_offset_slot_base hold unadjusted offsets

2 years agolzx_decompress: decompressor cleanup
Eric Biggers [Sat, 9 Jul 2016 15:01:16 +0000 (10:01 -0500)]
lzx_decompress: decompressor cleanup

2 years agov1.10.0-BETA
Eric Biggers [Sat, 2 Jul 2016 14:05:19 +0000 (09:05 -0500)]
v1.10.0-BETA

2 years agoAdd program to run compression benchmarks
Eric Biggers [Sat, 2 Jul 2016 03:50:30 +0000 (22:50 -0500)]
Add program to run compression benchmarks

2 years agoLZX compressor improvements
Eric Biggers [Sat, 2 Jul 2016 03:31:17 +0000 (22:31 -0500)]
LZX compressor improvements

- Improved block splitting algorithm
- Consider gap matches
- Improved default cost initialization
- Other improvements and cleanups

2 years agoIntroduce ilog2_ceil()
Eric Biggers [Wed, 22 Jun 2016 01:02:00 +0000 (20:02 -0500)]
Introduce ilog2_ceil()

2 years agoRename WORDSIZE to WORDBYTES and introduce WORDBITS
Eric Biggers [Wed, 22 Jun 2016 01:01:59 +0000 (20:01 -0500)]
Rename WORDSIZE to WORDBYTES and introduce WORDBITS

2 years agobt_matchfinder: remove unnecessary max_len parameter to skip routine
Eric Biggers [Wed, 22 Jun 2016 01:01:58 +0000 (20:01 -0500)]
bt_matchfinder: remove unnecessary max_len parameter to skip routine

2 years agolz_extend: simplify lz_extend() slightly
Eric Biggers [Wed, 22 Jun 2016 01:01:57 +0000 (20:01 -0500)]
lz_extend: simplify lz_extend() slightly

Unrolling the first four word copies does not seem give noticably better
performance anymore, and on a recent Intel processor actually appears to
decrease the performance slightly.

2 years agowlfuzz: generate a wider range of filenames
Eric Biggers [Sat, 25 Jun 2016 00:41:28 +0000 (19:41 -0500)]
wlfuzz: generate a wider range of filenames

2 years agoREADME: note that a newer version of libntfs-3g is recommended
Eric Biggers [Sat, 25 Jun 2016 00:41:26 +0000 (19:41 -0500)]
README: note that a newer version of libntfs-3g is recommended

2 years agontfs-3g_apply.c: inform user about yet another possible NTFS-3G bug
Eric Biggers [Sat, 25 Jun 2016 00:41:26 +0000 (19:41 -0500)]
ntfs-3g_apply.c: inform user about yet another possible NTFS-3G bug

2 years agontfs-3g_apply.c: do not fix up security descriptors anymore
Eric Biggers [Sat, 25 Jun 2016 00:41:25 +0000 (19:41 -0500)]
ntfs-3g_apply.c: do not fix up security descriptors anymore

2 years agounix_capture.c: add error messages for invalid UTF-8
Eric Biggers [Sat, 25 Jun 2016 00:41:24 +0000 (19:41 -0500)]
unix_capture.c: add error messages for invalid UTF-8

2 years agoCharacter encoding and string conversion updates
Eric Biggers [Sat, 25 Jun 2016 00:41:23 +0000 (19:41 -0500)]
Character encoding and string conversion updates

- Allow unpaired surrogates when translating between "UTF-8" and
  "UTF-16LE".  This allows Windows-style filenames to be processed
  losslessly on UNIX-like systems, even if they are not valid UTF-16LE.

- Implement UTF-8 and UTF-16LE codecs ourselves and drop the iconv
  requirement.  This was necessary to allow surrogate codepoints, but it
  also provides better performance and actually results in *fewer* lines
  of code and a slightly smaller binary.

- Drop support for multibyte encodings other than UTF-8 on UNIX-like
  systems.  It is probably not worth the effort to support such
  encodings.  Interestingly, the support was entirely broken before
  v1.9.1, yet no one ever complained...

2 years agodentry.c: ignore filenames with embedded null characters
Eric Biggers [Sat, 11 Jun 2016 18:28:18 +0000 (13:28 -0500)]
dentry.c: ignore filenames with embedded null characters

2 years agowimlib.h: update git links for gitlist => gitweb replacement
Eric Biggers [Sat, 11 Jun 2016 18:28:17 +0000 (13:28 -0500)]
wimlib.h: update git links for gitlist => gitweb replacement

2 years agov1.9.2 v1.9.2
Eric Biggers [Wed, 1 Jun 2016 02:08:42 +0000 (21:08 -0500)]
v1.9.2

2 years agoUpdate libxml to 2.9.4 for Windows binaries
Eric Biggers [Wed, 1 Jun 2016 02:07:03 +0000 (21:07 -0500)]
Update libxml to 2.9.4 for Windows binaries

2 years agoDo not use read() and write() from MSVCRT
Eric Biggers [Sun, 15 May 2016 18:15:05 +0000 (13:15 -0500)]
Do not use read() and write() from MSVCRT

2 years agomake-windows-release: allow extra configure args on command line
Eric Biggers [Sun, 15 May 2016 03:39:17 +0000 (22:39 -0500)]
make-windows-release: allow extra configure args on command line

This is useful for testing with --enable-test-support.

2 years agowin32_apply.c: WRITE_DAC is no longer needed when creating directory
Eric Biggers [Sun, 15 May 2016 03:13:53 +0000 (22:13 -0500)]
win32_apply.c: WRITE_DAC is no longer needed when creating directory

2 years ago.gitignore: ignore wlfuzz binary
Eric Biggers [Sun, 15 May 2016 02:32:49 +0000 (21:32 -0500)]
.gitignore: ignore wlfuzz binary

2 years agowin32_apply.c: better workaround for access denied bug when creating ADS
Eric Biggers [Sun, 15 May 2016 02:18:00 +0000 (21:18 -0500)]
win32_apply.c: better workaround for access denied bug when creating ADS

Removing directory DACLs was not really a good idea, since this state can
too easily remain after extraction.  Instead, since the unexpected
STATUS_ACCESS_DENIED error only occurs when creating an empty named data
stream, we can avoid the error by requesting no permissions on the
handle.  It happens that no permissions are needed anyway.

2 years agoimagex: don't define mount_options and unmount_options if unneeded
Eric Biggers [Sun, 15 May 2016 01:18:11 +0000 (20:18 -0500)]
imagex: don't define mount_options and unmount_options if unneeded

2 years agov1.9.2-BETA2
Eric Biggers [Tue, 10 May 2016 02:32:09 +0000 (21:32 -0500)]
v1.9.2-BETA2

2 years agoCOPYING: adjust word choice
Eric Biggers [Thu, 5 May 2016 05:24:02 +0000 (00:24 -0500)]
COPYING: adjust word choice

2 years agoRestore comments that were accidentally deleted
Eric Biggers [Thu, 28 Apr 2016 03:28:20 +0000 (22:28 -0500)]
Restore comments that were accidentally deleted

2 years agowimcapture.1: add note about --update-of being unreliable on Windows
Eric Biggers [Thu, 28 Apr 2016 01:28:07 +0000 (20:28 -0500)]
wimcapture.1: add note about --update-of being unreliable on Windows

2 years agoUpdate NEWS
Eric Biggers [Wed, 27 Apr 2016 05:11:32 +0000 (00:11 -0500)]
Update NEWS

2 years agoUse more comprehensive public domain dedications
Eric Biggers [Wed, 27 Apr 2016 05:05:17 +0000 (00:05 -0500)]
Use more comprehensive public domain dedications

2 years agoCOPYING: updates and clarifications
Eric Biggers [Wed, 27 Apr 2016 02:07:04 +0000 (21:07 -0500)]
COPYING: updates and clarifications

2 years agoREADME: tweak the last section
Eric Biggers [Sat, 23 Apr 2016 03:31:16 +0000 (22:31 -0500)]
README: tweak the last section

2 years agov1.9.2-BETA
Eric Biggers [Sun, 17 Apr 2016 15:08:54 +0000 (10:08 -0500)]
v1.9.2-BETA

2 years agoCapitalize "Windows Overlay Filesystem" consistently
Eric Biggers [Sun, 17 Apr 2016 15:06:18 +0000 (10:06 -0500)]
Capitalize "Windows Overlay Filesystem" consistently

2 years agowimboot.c: correctly handle next_data_source_id field
Eric Biggers [Sun, 17 Apr 2016 14:45:00 +0000 (09:45 -0500)]
wimboot.c: correctly handle next_data_source_id field

2 years agointegrity.c: correctly validate minimum integrity table size
Eric Biggers [Sun, 17 Apr 2016 14:44:58 +0000 (09:44 -0500)]
integrity.c: correctly validate minimum integrity table size

2 years agoxml_windows.c: use correct integer type (no change in behavior)
Eric Biggers [Sun, 17 Apr 2016 14:44:58 +0000 (09:44 -0500)]
xml_windows.c: use correct integer type (no change in behavior)

2 years agowimlib.h: document receiving "unmount begin" progress message
Eric Biggers [Sun, 17 Apr 2016 14:44:57 +0000 (09:44 -0500)]
wimlib.h: document receiving "unmount begin" progress message

2 years agowimlib.h: fix typo
Eric Biggers [Sun, 17 Apr 2016 14:44:56 +0000 (09:44 -0500)]
wimlib.h: fix typo

2 years agontfs-3g_apply.c: update notes about libntfs-3g versions
Eric Biggers [Sun, 17 Apr 2016 14:44:55 +0000 (09:44 -0500)]
ntfs-3g_apply.c: update notes about libntfs-3g versions

2 years agounix_apply.c: fix overwriting existing readonly files
Eric Biggers [Sun, 17 Apr 2016 14:44:54 +0000 (09:44 -0500)]
unix_apply.c: fix overwriting existing readonly files

2 years agoAdd randomized testing program
Eric Biggers [Sun, 17 Apr 2016 14:44:54 +0000 (09:44 -0500)]
Add randomized testing program

Introduce the ability to configure the library with test-specific code,
add in-library code for directory tree generation and comparison, and add
the "wlfuzz" randomized test runner which uses the new functionality.

2 years agov1.9.1 v1.9.1
Eric Biggers [Sat, 12 Mar 2016 03:54:17 +0000 (21:54 -0600)]
v1.9.1

2 years agoUpdate NEWS
Eric Biggers [Sat, 12 Mar 2016 03:53:25 +0000 (21:53 -0600)]
Update NEWS

2 years agowin32_apply.c: correct return value of adjust_compression_attribute
Eric Biggers [Sat, 12 Mar 2016 03:35:24 +0000 (21:35 -0600)]
win32_apply.c: correct return value of adjust_compression_attribute

2 years agoFix detection of non UTF-8 locales
Eric Biggers [Sun, 6 Mar 2016 23:17:46 +0000 (17:17 -0600)]
Fix detection of non UTF-8 locales

2 years agoRemove sle{16,32,64} types
Eric Biggers [Fri, 4 Mar 2016 07:21:22 +0000 (01:21 -0600)]
Remove sle{16,32,64} types

2 years agowin32_capture: Enlarge FSCTL_QUERY_FILE_LAYOUT buffer when needed
Eric Biggers [Fri, 4 Mar 2016 02:57:47 +0000 (20:57 -0600)]
win32_capture: Enlarge FSCTL_QUERY_FILE_LAYOUT buffer when needed

32768 bytes is not always enough.

2 years agowimmount.1: remove mention of deprecated --lazy option
Eric Biggers [Thu, 3 Mar 2016 03:33:37 +0000 (21:33 -0600)]
wimmount.1: remove mention of deprecated --lazy option

2 years agoREADME.WINDOWS: clarify different license files
Eric Biggers [Thu, 3 Mar 2016 03:26:17 +0000 (21:26 -0600)]
README.WINDOWS: clarify different license files

2 years agoInclude divsufsort.c license with Windows distribution
Eric Biggers [Thu, 3 Mar 2016 03:16:34 +0000 (21:16 -0600)]
Include divsufsort.c license with Windows distribution

2 years agos/NTFS-3g/NTFS-3G/g
Eric Biggers [Thu, 3 Mar 2016 03:09:08 +0000 (21:09 -0600)]
s/NTFS-3g/NTFS-3G/g

2 years agoRename string_set to string_list
Eric Biggers [Thu, 3 Mar 2016 03:04:41 +0000 (21:04 -0600)]
Rename string_set to string_list

2 years agoVarious renamings from "capture" to "scan"
Eric Biggers [Thu, 3 Mar 2016 02:07:19 +0000 (20:07 -0600)]
Various renamings from "capture" to "scan"

2 years agoBriefly describe --unsafe-compact for each command
Eric Biggers [Thu, 25 Feb 2016 01:41:30 +0000 (19:41 -0600)]
Briefly describe --unsafe-compact for each command

2 years agowimapply.1: update mentions of sparse file attribute
Eric Biggers [Thu, 25 Feb 2016 00:56:41 +0000 (18:56 -0600)]
wimapply.1: update mentions of sparse file attribute

2 years agoUpdate feature lists
Eric Biggers [Mon, 22 Feb 2016 05:14:41 +0000 (23:14 -0600)]
Update feature lists

2 years agoMove compression benchmark tables to website
Eric Biggers [Mon, 22 Feb 2016 04:50:11 +0000 (22:50 -0600)]
Move compression benchmark tables to website

2 years agoStandardize wording: "since wimlib vX.X.X"
Eric Biggers [Mon, 22 Feb 2016 03:30:25 +0000 (21:30 -0600)]
Standardize wording: "since wimlib vX.X.X"

2 years agowin32-test-imagex-capture_and_apply: eliminate unnecessary %errorlevel% checks
Eric Biggers [Sun, 21 Feb 2016 04:54:13 +0000 (22:54 -0600)]
win32-test-imagex-capture_and_apply: eliminate unnecessary %errorlevel% checks

2 years agoRename tests-common.sh => test_utils.sh
Eric Biggers [Sun, 21 Feb 2016 04:43:41 +0000 (22:43 -0600)]
Rename tests-common.sh => test_utils.sh

2 years agoRemove tests/multi-mount
Eric Biggers [Sun, 21 Feb 2016 04:34:13 +0000 (22:34 -0600)]
Remove tests/multi-mount

2 years agowin32_apply.c: fix misleading indentation
Eric Biggers [Sun, 21 Feb 2016 04:27:18 +0000 (22:27 -0600)]
win32_apply.c: fix misleading indentation

2 years agowimlib.h: various documentation cleanups and improvements
Eric Biggers [Thu, 18 Feb 2016 02:21:45 +0000 (20:21 -0600)]
wimlib.h: various documentation cleanups and improvements

2 years agoerror.c: clarify two error descriptions
Eric Biggers [Thu, 18 Feb 2016 02:21:44 +0000 (20:21 -0600)]
error.c: clarify two error descriptions

2 years agoUpdate NEWS
Eric Biggers [Thu, 18 Feb 2016 02:21:43 +0000 (20:21 -0600)]
Update NEWS

2 years agoMake 'wimdir --detailed' show object IDs
Eric Biggers [Thu, 18 Feb 2016 02:21:43 +0000 (20:21 -0600)]
Make 'wimdir --detailed' show object IDs