wimlib
5 years agoinode.c: fix initialization of i_streams
Eric Biggers [Thu, 26 Mar 2015 04:07:55 +0000 (23:07 -0500)]
inode.c: fix initialization of i_streams

5 years agodetect attr/xattr.h for tree-cmp.c
Eric Biggers [Thu, 26 Mar 2015 04:07:20 +0000 (23:07 -0500)]
detect attr/xattr.h for tree-cmp.c

5 years agontfs-3g_apply.c: avoid warning about sacl_offset unused
Eric Biggers [Thu, 26 Mar 2015 00:58:44 +0000 (19:58 -0500)]
ntfs-3g_apply.c: avoid warning about sacl_offset unused

5 years agoAdjust handling of blob reference counts
Eric Biggers [Wed, 25 Mar 2015 01:08:13 +0000 (20:08 -0500)]
Adjust handling of blob reference counts

5 years agomount_image.c: rename create_dentry() to create_file()
Eric Biggers [Wed, 25 Mar 2015 02:23:42 +0000 (21:23 -0500)]
mount_image.c: rename create_dentry() to create_file()

5 years agoLimit exposure of dentry and inode creation
Eric Biggers [Wed, 25 Mar 2015 01:46:01 +0000 (20:46 -0500)]
Limit exposure of dentry and inode creation

- Don't allow creating d_inode=NULL dentries outside of dentry.c
- Don't allow creating i_nlink=0 inodes

5 years agoblob_table.c: fix NTFS location clone error path
Eric Biggers [Tue, 24 Mar 2015 01:47:38 +0000 (20:47 -0500)]
blob_table.c: fix NTFS location clone error path

5 years agoextract.c: file_name_valid(): fix bad memdup
Eric Biggers [Tue, 24 Mar 2015 00:31:15 +0000 (19:31 -0500)]
extract.c: file_name_valid(): fix bad memdup

5 years agoStream and blob updates
Eric Biggers [Tue, 17 Mar 2015 03:17:15 +0000 (22:17 -0500)]
Stream and blob updates

- Rename "lookup table entry" to "blob descriptor"
- Rename "lookup table" to "blob table"
- Use single array for all an inode's streams
- Explicitly annotate each stream with its type
- Account for fact that EFSRPC raw data includes all data streams
- Other cleanups

5 years agoAdd additional reparse point tests to win32-test-imagex-capture_and_apply.bat
Eric Biggers [Sun, 22 Mar 2015 20:44:31 +0000 (15:44 -0500)]
Add additional reparse point tests to win32-test-imagex-capture_and_apply.bat

5 years agowin32_apply.c: Don't externally back very large files
Eric Biggers [Sun, 15 Mar 2015 01:47:39 +0000 (20:47 -0500)]
win32_apply.c: Don't externally back very large files

5 years agowin32_apply.c: try to clear attributes on existing directories
Eric Biggers [Sun, 15 Mar 2015 01:25:53 +0000 (20:25 -0500)]
win32_apply.c: try to clear attributes on existing directories

5 years agowin32_apply.c: handle target directory more like other directories
Eric Biggers [Sun, 15 Mar 2015 01:22:22 +0000 (20:22 -0500)]
win32_apply.c: handle target directory more like other directories

If we don't send the target directory through the same code path as the
other directories, we can run into several inconsistencies such as empty
named data streams not being created and compression attributes not being
set or cleared.

We actually *can* send the target directory through create_directory() as
long as we don't ask for DELETE access (in case it's the current working
directory) or set its short name (since that doesn't make sense anyway).

5 years agowin32-test-imagex-capture_and_apply improvements
Eric Biggers [Sun, 15 Mar 2015 01:11:13 +0000 (20:11 -0500)]
win32-test-imagex-capture_and_apply improvements

- Make test failure message always get printed if anything goes wrong
- Fix bad file comparison
- Apply the WIM image twice to test the existing files case
- Add test for a readonly directory with a named data stream
- Add test for root directory with empty named data stream

5 years agov1.8.0 v1.8.0
Eric Biggers [Wed, 25 Feb 2015 04:55:41 +0000 (22:55 -0600)]
v1.8.0

5 years agoLZMS compression: a few minor cleanups
Eric Biggers [Wed, 25 Feb 2015 04:44:13 +0000 (22:44 -0600)]
LZMS compression: a few minor cleanups

5 years agoLZMS compression: use position instead of pointer for delta hash
Eric Biggers [Tue, 24 Feb 2015 01:23:44 +0000 (19:23 -0600)]
LZMS compression: use position instead of pointer for delta hash

This gives predictable results regardless of how the buffer is aligned.

5 years agolzms_decompress.c: Make bit decoding function names consistent with compressor
Eric Biggers [Tue, 24 Feb 2015 00:08:17 +0000 (18:08 -0600)]
lzms_decompress.c: Make bit decoding function names consistent with compressor

5 years agolcpit_matchfinder: cleanups and optimizations
Eric Biggers [Tue, 24 Feb 2015 00:08:11 +0000 (18:08 -0600)]
lcpit_matchfinder: cleanups and optimizations

5 years agoA few cleanups and fixes from recent changes
Eric Biggers [Thu, 19 Feb 2015 05:06:40 +0000 (23:06 -0600)]
A few cleanups and fixes from recent changes

5 years agoUpdate README.WINDOWS
Eric Biggers [Wed, 18 Feb 2015 04:13:56 +0000 (22:13 -0600)]
Update README.WINDOWS

5 years agoUpdate Windows test script
Eric Biggers [Wed, 18 Feb 2015 02:42:42 +0000 (20:42 -0600)]
Update Windows test script

5 years agowin32_capture.c: Use CREATE_FOR_DIR flag for encrypted directories
Eric Biggers [Wed, 18 Feb 2015 02:38:23 +0000 (20:38 -0600)]
win32_capture.c: Use CREATE_FOR_DIR flag for encrypted directories

Oddly enough, this is required when reading the EFS data for an encrypted
directory with named data streams, even though MS's documentation
suggests that CREATE_FOR_DIR only has an effect for import.

5 years agoDo not use ADS entry workaround on encrypted files
Eric Biggers [Wed, 18 Feb 2015 02:36:05 +0000 (20:36 -0600)]
Do not use ADS entry workaround on encrypted files

5 years agowimlib-imagex: list --solid in help for more commands
Eric Biggers [Tue, 17 Feb 2015 06:57:36 +0000 (00:57 -0600)]
wimlib-imagex: list --solid in help for more commands

5 years agoVarious cleanups
Eric Biggers [Tue, 17 Feb 2015 03:13:51 +0000 (21:13 -0600)]
Various cleanups

5 years agoFix Makefile.am
Eric Biggers [Mon, 16 Feb 2015 06:26:14 +0000 (00:26 -0600)]
Fix Makefile.am

5 years agoUse v1.8.0 as next version instead of v1.7.5
Eric Biggers [Mon, 16 Feb 2015 05:34:14 +0000 (23:34 -0600)]
Use v1.8.0 as next version instead of v1.7.5

5 years agoUpdate NEWS, README, and docs
Eric Biggers [Mon, 16 Feb 2015 05:16:23 +0000 (23:16 -0600)]
Update NEWS, README, and docs

5 years agoUse 64MiB chunks by default for solid LZMS
Eric Biggers [Mon, 16 Feb 2015 01:04:29 +0000 (19:04 -0600)]
Use 64MiB chunks by default for solid LZMS

5 years agoLCP-interval tree matchfinder improvements
Eric Biggers [Fri, 13 Feb 2015 07:13:15 +0000 (01:13 -0600)]
LCP-interval tree matchfinder improvements

- Adjust the algorithm to remove the need to have an "unvisited" flag in
  normal mode.
- Prefetch upcoming SA_and_LCP entries during LCP construction.
- Get rid of lcpit_matchfinder_templates.h, since the "huge mode"
  algorithm isn't quite the same as the regular algorithm anymore.
- Improve documentation.

5 years agoSupport "destructive" compression to save memory
Eric Biggers [Sun, 15 Feb 2015 00:30:24 +0000 (18:30 -0600)]
Support "destructive" compression to save memory

5 years agoReduce unnecessary copying during chunk compression
Eric Biggers [Sat, 14 Feb 2015 22:03:28 +0000 (16:03 -0600)]
Reduce unnecessary copying during chunk compression

5 years agoAdd flag for disabling solid sort
Eric Biggers [Sat, 14 Feb 2015 20:58:45 +0000 (14:58 -0600)]
Add flag for disabling solid sort

5 years agoHeuristic sorting of streams for solid compression
Eric Biggers [Sat, 14 Feb 2015 16:47:56 +0000 (10:47 -0600)]
Heuristic sorting of streams for solid compression

5 years agoUpdate documentation for wimcapture
Eric Biggers [Sat, 14 Feb 2015 05:39:24 +0000 (23:39 -0600)]
Update documentation for wimcapture

5 years agowimlib-imagex: allow specifying suffix in chunk size options
Eric Biggers [Sat, 14 Feb 2015 04:53:50 +0000 (22:53 -0600)]
wimlib-imagex: allow specifying suffix in chunk size options

5 years agoConsistently use the name "solid resource"
Eric Biggers [Sat, 14 Feb 2015 04:04:41 +0000 (22:04 -0600)]
Consistently use the name "solid resource"

5 years agoRewrite of LZMS compressor
Eric Biggers [Fri, 13 Feb 2015 01:01:06 +0000 (19:01 -0600)]
Rewrite of LZMS compressor

- Delta match support
- Multi-step item consideration in selected cases
- Various refactoring; updates to comments and names; some changes to
  decompressor as well
- Remove pthreads dependency

5 years agolzms_decompress.c: Adjust names in delta match decompression code
Eric Biggers [Sat, 7 Feb 2015 03:59:47 +0000 (21:59 -0600)]
lzms_decompress.c: Adjust names in delta match decompression code

5 years agolzms_decompress.c: Add more information about delta matches
Eric Biggers [Sat, 7 Feb 2015 03:59:11 +0000 (21:59 -0600)]
lzms_decompress.c: Add more information about delta matches

5 years agoSuffix array based matchfinder updates
Eric Biggers [Sat, 31 Jan 2015 23:51:23 +0000 (17:51 -0600)]
Suffix array based matchfinder updates

- Move LCP-interval tree matchfinder to lcpit_matchfinder.c
- Support buffer sizes > 2^25 in LCP-interval tree matchfinder
- Reduce code duplication in LCP-interval tree routines
- Remove linked suffix array matchfinder
- Remove lz_mf matchfinder API
- Update LZMS compressor to use new LCP-interval tree matchfinder routines

5 years ago1.7.5-BETA3
Eric Biggers [Fri, 30 Jan 2015 03:59:35 +0000 (21:59 -0600)]
1.7.5-BETA3

5 years agoMove errno translation to win32_replacements.c
Eric Biggers [Fri, 30 Jan 2015 03:24:57 +0000 (21:24 -0600)]
Move errno translation to win32_replacements.c

5 years agoWindows: improved error messages
Eric Biggers [Fri, 30 Jan 2015 01:16:28 +0000 (19:16 -0600)]
Windows: improved error messages

5 years agowin32_apply.c: in NO_ATTRIBUTES mode, reset file attributes
Eric Biggers [Fri, 30 Jan 2015 01:28:31 +0000 (19:28 -0600)]
win32_apply.c: in NO_ATTRIBUTES mode, reset file attributes

5 years agowin32-test-imagex-capture_and_apply.bat: fixes
Eric Biggers [Fri, 30 Jan 2015 00:46:30 +0000 (18:46 -0600)]
win32-test-imagex-capture_and_apply.bat: fixes

5 years agowin32_apply.c: adjust file creation
Eric Biggers [Thu, 29 Jan 2015 05:37:28 +0000 (23:37 -0600)]
win32_apply.c: adjust file creation

5 years agowin32-tree-cmp: Ignore directory sizes
Eric Biggers [Thu, 29 Jan 2015 06:25:19 +0000 (00:25 -0600)]
win32-tree-cmp: Ignore directory sizes

5 years agowin32-test-imagex-capture_and_apply.bat: add tests for empty named stream
Eric Biggers [Thu, 29 Jan 2015 05:13:36 +0000 (23:13 -0600)]
win32-test-imagex-capture_and_apply.bat: add tests for empty named stream

5 years agowin32-test-imagex-capture_and_apply.bat: add some tests
Eric Biggers [Thu, 29 Jan 2015 04:26:11 +0000 (22:26 -0600)]
win32-test-imagex-capture_and_apply.bat: add some tests

5 years agowin32-tree-cmp updates
Eric Biggers [Thu, 29 Jan 2015 03:05:30 +0000 (21:05 -0600)]
win32-tree-cmp updates

5 years agontfs-3g_apply.c: Don't claim to support encrypted directories
Eric Biggers [Thu, 29 Jan 2015 02:36:36 +0000 (20:36 -0600)]
ntfs-3g_apply.c: Don't claim to support encrypted directories

5 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 05:28:48 +0000 (23:28 -0600)]
Update NEWS

5 years agowin32_apply.c: fix restore of encrypted files and directories
Eric Biggers [Wed, 28 Jan 2015 05:18:51 +0000 (23:18 -0600)]
win32_apply.c: fix restore of encrypted files and directories

5 years agowin32_apply.c: test for EFS data before reparse data
Eric Biggers [Wed, 28 Jan 2015 04:31:41 +0000 (22:31 -0600)]
win32_apply.c: test for EFS data before reparse data

5 years agoextract.c: dentry_is_supported(): check all relevant attributes
Eric Biggers [Wed, 28 Jan 2015 04:30:22 +0000 (22:30 -0600)]
extract.c: dentry_is_supported(): check all relevant attributes

5 years agowin32_capture.c: use NULL instead of INVALID_HANDLE_VALUE
Eric Biggers [Wed, 28 Jan 2015 04:07:52 +0000 (22:07 -0600)]
win32_capture.c: use NULL instead of INVALID_HANDLE_VALUE

Code was correct, but since this is an NT-level handle NULL makes more
sense.

5 years agowin32_capture.c: adjust loading stream info from encrypted files
Eric Biggers [Wed, 28 Jan 2015 04:05:56 +0000 (22:05 -0600)]
win32_capture.c: adjust loading stream info from encrypted files

The previous code was not using ReadEncryptedFileRaw() on directories,
which is apparently needed.

5 years agoextract.c: check for empty extraction list
Eric Biggers [Wed, 28 Jan 2015 02:58:28 +0000 (20:58 -0600)]
extract.c: check for empty extraction list

5 years agowin32_capture.c: fix for opening encrypted files when key is unavailable
Eric Biggers [Wed, 28 Jan 2015 02:45:00 +0000 (20:45 -0600)]
win32_capture.c: fix for opening encrypted files when key is unavailable

5 years agoUpdate NEWS
Eric Biggers [Wed, 28 Jan 2015 01:14:36 +0000 (19:14 -0600)]
Update NEWS

5 years agowimlib_iterate_dir_tree(): iterate in default case order
Eric Biggers [Wed, 28 Jan 2015 01:09:36 +0000 (19:09 -0600)]
wimlib_iterate_dir_tree(): iterate in default case order

5 years agolz_lcpit: check against min_match_len ahead of time
Eric Biggers [Sun, 25 Jan 2015 20:53:06 +0000 (14:53 -0600)]
lz_lcpit: check against min_match_len ahead of time

5 years agolz_lcpit: pack SA and LCP into one array
Eric Biggers [Sun, 25 Jan 2015 19:36:00 +0000 (13:36 -0600)]
lz_lcpit: pack SA and LCP into one array

5 years agolz_lcpit: simplify and optimize build_LCPIT()
Eric Biggers [Sun, 25 Jan 2015 17:54:47 +0000 (11:54 -0600)]
lz_lcpit: simplify and optimize build_LCPIT()

5 years agoadd missing file: include/wimlib/alloca.h
Eric Biggers [Wed, 28 Jan 2015 00:03:09 +0000 (18:03 -0600)]
add missing file: include/wimlib/alloca.h

5 years agotools/make-windows-release: build with -DLIBXML_STATIC
Eric Biggers [Sun, 25 Jan 2015 16:47:05 +0000 (10:47 -0600)]
tools/make-windows-release: build with -DLIBXML_STATIC

This is needed to correctly link with xmlFree().

5 years agoheader cleanups
Eric Biggers [Sun, 25 Jan 2015 16:35:24 +0000 (10:35 -0600)]
header cleanups

5 years agoxml.c: Use xmlFree() for memory allocated by libxml2
Eric Biggers [Sun, 25 Jan 2015 01:47:28 +0000 (19:47 -0600)]
xml.c: Use xmlFree() for memory allocated by libxml2

5 years agoutil.c: Simplify wimlib_aligned_malloc()
Eric Biggers [Sun, 25 Jan 2015 01:36:13 +0000 (19:36 -0600)]
util.c: Simplify wimlib_aligned_malloc()

5 years agoupdate_image.c: handle_conflict(): fix freeing of unused branch
Eric Biggers [Sun, 25 Jan 2015 00:43:42 +0000 (18:43 -0600)]
update_image.c: handle_conflict(): fix freeing of unused branch

If the directory has alternate data streams, they should be freed here.

5 years agoClean up inode alias tracking
Eric Biggers [Sat, 24 Jan 2015 16:20:12 +0000 (10:20 -0600)]
Clean up inode alias tracking

New helper functions:

- d_associate()
- d_disassociate()

i_nlink, d_inode, and i_dentry are no longer changed outside of these
functions.  We maintain the invariants:

i_nlink == list_size(&i_dentry) == # of d_inode references

put_inode() is removed; free_inode() is now private to inode.c.

This fixes at least one bug: when freeing a dentry, it was not being
deleted from the inode's dentry list.

5 years agolzx_compress.c: adjust saving of length 2 matches
Eric Biggers [Tue, 20 Jan 2015 00:04:14 +0000 (18:04 -0600)]
lzx_compress.c: adjust saving of length 2 matches

5 years agolzx_compress.c: cleanups
Eric Biggers [Wed, 14 Jan 2015 03:55:46 +0000 (21:55 -0600)]
lzx_compress.c: cleanups

5 years agoLZ hashing cleanup
Eric Biggers [Wed, 14 Jan 2015 03:48:01 +0000 (21:48 -0600)]
LZ hashing cleanup

5 years agoEnsure validity of max_search_depth
Eric Biggers [Mon, 12 Jan 2015 02:06:41 +0000 (20:06 -0600)]
Ensure validity of max_search_depth

5 years agowimlib.h: Fix documentation for compression block sizes
Eric Biggers [Mon, 12 Jan 2015 01:03:10 +0000 (19:03 -0600)]
wimlib.h: Fix documentation for compression block sizes

5 years agolzx_compress.c: Clarify some array bounds
Eric Biggers [Sun, 11 Jan 2015 21:30:29 +0000 (15:30 -0600)]
lzx_compress.c:  Clarify some array bounds

5 years agov1.7.5-BETA
Eric Biggers [Sun, 11 Jan 2015 16:40:26 +0000 (10:40 -0600)]
v1.7.5-BETA

5 years agoMerge LZX compression updates
Eric Biggers [Sun, 11 Jan 2015 16:24:07 +0000 (10:24 -0600)]
Merge LZX compression updates

5 years agov1.7.4 v1.7.4
Eric Biggers [Sat, 3 Jan 2015 02:01:26 +0000 (20:01 -0600)]
v1.7.4

5 years agolzms_compress.c: honor LZMS_MAX_BUFFER_SIZE
Eric Biggers [Sat, 3 Jan 2015 01:43:00 +0000 (19:43 -0600)]
lzms_compress.c: honor LZMS_MAX_BUFFER_SIZE

5 years agoMisc. cleanups
Eric Biggers [Sat, 3 Jan 2015 00:25:50 +0000 (18:25 -0600)]
Misc. cleanups

5 years agoRestore -std=gnu99 instead of -std=c99
Eric Biggers [Tue, 30 Dec 2014 03:31:51 +0000 (21:31 -0600)]
Restore -std=gnu99 instead of -std=c99

5 years agoAdjust endianness detection
Eric Biggers [Tue, 30 Dec 2014 03:26:06 +0000 (21:26 -0600)]
Adjust endianness detection

__BYTE_ORDER__ isn't available in older gcc, unfortunately.

5 years agoREADME: update COMPRESSION RATIO section
Eric Biggers [Tue, 30 Dec 2014 02:40:53 +0000 (20:40 -0600)]
README: update COMPRESSION RATIO section

5 years agoUse --enable-ssse3-sha1 for x86_64 Windows builds
Eric Biggers [Tue, 30 Dec 2014 03:01:07 +0000 (21:01 -0600)]
Use --enable-ssse3-sha1 for x86_64 Windows builds

5 years agoCleanups from recent changes
Eric Biggers [Mon, 29 Dec 2014 02:03:09 +0000 (20:03 -0600)]
Cleanups from recent changes

5 years agoAdjust naming of (de)compression files
Eric Biggers [Fri, 26 Dec 2014 20:16:44 +0000 (14:16 -0600)]
Adjust naming of (de)compression files

5 years agoLZMS: decompression optimizations
Eric Biggers [Fri, 26 Dec 2014 16:56:16 +0000 (10:56 -0600)]
LZMS: decompression optimizations

5 years agoLZMS: optimize lzms_x86_filter()
Eric Biggers [Thu, 25 Dec 2014 02:33:49 +0000 (20:33 -0600)]
LZMS: optimize lzms_x86_filter()

5 years agoresource.c: Don't manually align buffer for uncompressed data
Eric Biggers [Thu, 25 Dec 2014 02:06:42 +0000 (20:06 -0600)]
resource.c: Don't manually align buffer for uncompressed data

The main reason this was being done was to speed up LZX postprocessing,
but that now can use the vectorized version (with a tiny bit of overhead)
even if the start of the buffer is not 16-byte aligned.

5 years agoLZX pre/post-processing improvements
Eric Biggers [Thu, 25 Dec 2014 01:58:04 +0000 (19:58 -0600)]
LZX pre/post-processing improvements

- much faster inner loop for non-vectorized version
- use either SSE2 or AVX-2 for vectorized version
- faster inner loop for vectorized version
- support vectorized version on buffers that are not properly aligned

5 years agomake-windows-release: get version number from configure.ac, not README
Eric Biggers [Tue, 23 Dec 2014 19:07:32 +0000 (13:07 -0600)]
make-windows-release: get version number from configure.ac, not README

5 years agoFaster XPRESS compression
Eric Biggers [Tue, 23 Dec 2014 05:16:38 +0000 (23:16 -0600)]
Faster XPRESS compression

5 years agotools/windeps/Makefile: update sources list
Eric Biggers [Fri, 19 Dec 2014 23:44:02 +0000 (17:44 -0600)]
tools/windeps/Makefile: update sources list

5 years agomkwinpeimg.1: missed an autoconf substitution
Eric Biggers [Fri, 19 Dec 2014 05:01:16 +0000 (23:01 -0600)]
mkwinpeimg.1: missed an autoconf substitution

5 years agoWindows build updates
Eric Biggers [Fri, 19 Dec 2014 03:38:48 +0000 (21:38 -0600)]
Windows build updates

5 years agoAdd ax_pthread.m4
Eric Biggers [Tue, 16 Dec 2014 05:50:04 +0000 (23:50 -0600)]
Add ax_pthread.m4