wimlib
4 years agoUse HTTPS for all links to website
Eric Biggers [Sat, 5 Dec 2015 20:24:05 +0000 (14:24 -0600)]
Use HTTPS for all links to website

4 years agolz_extend.h: fix for CPU_IS_BIG_ENDIAN && UNALIGNED_ACCESS_IS_FAST
Eric Biggers [Sat, 5 Dec 2015 06:46:53 +0000 (00:46 -0600)]
lz_extend.h: fix for CPU_IS_BIG_ENDIAN && UNALIGNED_ACCESS_IS_FAST

4 years agoRemove configure.windows (unused script)
Eric Biggers [Thu, 3 Dec 2015 03:38:26 +0000 (21:38 -0600)]
Remove configure.windows (unused script)

4 years agowin32_apply.c: don't clear directory DACL in NO_ACLS mode
Eric Biggers [Wed, 25 Nov 2015 04:19:01 +0000 (22:19 -0600)]
win32_apply.c: don't clear directory DACL in NO_ACLS mode

4 years agowin32_apply.c: don't clear directory attributes in NO_ATTRIBUTES mode
Eric Biggers [Wed, 25 Nov 2015 04:18:48 +0000 (22:18 -0600)]
win32_apply.c: don't clear directory attributes in NO_ATTRIBUTES mode

4 years agowin32_common.c: get NTSTATUS error messages from ntdll
Eric Biggers [Wed, 25 Nov 2015 04:14:51 +0000 (22:14 -0600)]
win32_common.c: get NTSTATUS error messages from ntdll

4 years agowim.c: replace finalize_wim_struct() with wim_decrement_refcnt()
Eric Biggers [Wed, 25 Nov 2015 04:11:58 +0000 (22:11 -0600)]
wim.c: replace finalize_wim_struct() with wim_decrement_refcnt()

4 years agounaligned.h: slightly simplify get/put unaligned functions
Eric Biggers [Sat, 21 Nov 2015 02:43:02 +0000 (20:43 -0600)]
unaligned.h: slightly simplify get/put unaligned functions

4 years agoLZMS: always correctly handle misaligned buffers
Eric Biggers [Sat, 21 Nov 2015 02:42:25 +0000 (20:42 -0600)]
LZMS: always correctly handle misaligned buffers

5 years agoAdjust names of get/put unaligned functions
Eric Biggers [Sat, 21 Nov 2015 02:28:39 +0000 (20:28 -0600)]
Adjust names of get/put unaligned functions

get_unaligned_u16_le => get_unaligned_le16
get_unaligned_u32_le => get_unaligned_le32
put_unaligned_u16_le => put_unaligned_le16
put_unaligned_u32_le => put_unaligned_le32

5 years agoresource.c: fix comment about 4 GiB cutoff
Eric Biggers [Sat, 21 Nov 2015 02:18:32 +0000 (20:18 -0600)]
resource.c: fix comment about 4 GiB cutoff

5 years agov1.8.3 v1.8.3
Eric Biggers [Sat, 14 Nov 2015 19:30:27 +0000 (13:30 -0600)]
v1.8.3

5 years agowin32_apply.c: remove DACL from existing directories
Eric Biggers [Sat, 14 Nov 2015 04:52:54 +0000 (22:52 -0600)]
win32_apply.c: remove DACL from existing directories

5 years agowin32_apply.c: rework file deletion
Eric Biggers [Sat, 14 Nov 2015 02:25:42 +0000 (20:25 -0600)]
win32_apply.c: rework file deletion

Faster path for the common case: just open with FILE_DELETE_ON_CLOSE and
close.

5 years agowimlib_split(): fix bug where no parts would be written if WIM contained no images
Eric Biggers [Thu, 12 Nov 2015 03:48:35 +0000 (21:48 -0600)]
wimlib_split(): fix bug where no parts would be written if WIM contained no images

5 years agowrite.c: let compaction work on untruncatable files
Eric Biggers [Thu, 12 Nov 2015 01:43:17 +0000 (19:43 -0600)]
write.c: let compaction work on untruncatable files

5 years agolzx_compress.c: minor comment fix
Eric Biggers [Thu, 12 Nov 2015 01:31:05 +0000 (19:31 -0600)]
lzx_compress.c: minor comment fix

5 years agoUpdate NEWS
Eric Biggers [Sat, 7 Nov 2015 21:04:02 +0000 (15:04 -0600)]
Update NEWS

5 years agowimappend: fix setting of chunk size when using --wimboot flag
Eric Biggers [Sat, 7 Nov 2015 18:27:22 +0000 (12:27 -0600)]
wimappend: fix setting of chunk size when using --wimboot flag

5 years agowimlib.h: document added behavior of WIMLIB_ADD_FLAG_WIMBOOT
Eric Biggers [Wed, 4 Nov 2015 03:32:27 +0000 (21:32 -0600)]
wimlib.h: document added behavior of WIMLIB_ADD_FLAG_WIMBOOT

5 years agowin32_capture.c: more general fixup of WIM-backed files
Eric Biggers [Sat, 7 Nov 2015 19:20:00 +0000 (13:20 -0600)]
win32_capture.c: more general fixup of WIM-backed files

5 years agolzx_compress.c: remove unused function
Eric Biggers [Thu, 5 Nov 2015 04:29:49 +0000 (22:29 -0600)]
lzx_compress.c: remove unused function

5 years agolzx_compress.c: tweak code formatting
Eric Biggers [Thu, 5 Nov 2015 04:14:03 +0000 (22:14 -0600)]
lzx_compress.c: tweak code formatting

5 years agolzx_compress.c: avoid undefined shifts in lzx_flush_bits()
Eric Biggers [Thu, 5 Nov 2015 04:09:22 +0000 (22:09 -0600)]
lzx_compress.c: avoid undefined shifts in lzx_flush_bits()

5 years agoresource.c: fix bug in read_compressed_wim_resource()
Eric Biggers [Thu, 5 Nov 2015 03:55:02 +0000 (21:55 -0600)]
resource.c: fix bug in read_compressed_wim_resource()

The number of chunk entries to read could be incorrectly computed as 1
rather than 0.  This caused an on-stack array to be overflowed by 8
bytes.

5 years agotests/tests-common.sh: fix references to /dev/null
Eric Biggers [Thu, 5 Nov 2015 02:50:12 +0000 (20:50 -0600)]
tests/tests-common.sh: fix references to /dev/null

5 years agoAvoid passing NULL as memcpy source (undefined behavior)
Eric Biggers [Thu, 5 Nov 2015 02:43:27 +0000 (20:43 -0600)]
Avoid passing NULL as memcpy source (undefined behavior)

5 years agosecurity_descriptor.h: updates
Eric Biggers [Thu, 5 Nov 2015 02:18:01 +0000 (20:18 -0600)]
security_descriptor.h: updates

- move SID and ACL earlier in the file
- replace sid_start with SID
- define ACE types

5 years agowimlib_tchar.h: add tstrtoull()
Eric Biggers [Tue, 3 Nov 2015 03:27:42 +0000 (21:27 -0600)]
wimlib_tchar.h: add tstrtoull()

5 years agontfs-3g_apply.c: Warn about non-Microsoft reparse point bug
Eric Biggers [Wed, 4 Nov 2015 03:22:57 +0000 (21:22 -0600)]
ntfs-3g_apply.c: Warn about non-Microsoft reparse point bug

5 years agoFix extracting non-Microsoft reparse points
Eric Biggers [Wed, 4 Nov 2015 03:13:37 +0000 (21:13 -0600)]
Fix extracting non-Microsoft reparse points

5 years agowin32_apply.c: wait for FSCTL_SET_COMPRESSION to complete
Eric Biggers [Tue, 3 Nov 2015 05:30:01 +0000 (23:30 -0600)]
win32_apply.c: wait for FSCTL_SET_COMPRESSION to complete

5 years agontfs_3g_apply.c: work around EOPNOTSUPP when setting short name of reparse point...
Eric Biggers [Sun, 1 Nov 2015 00:00:39 +0000 (19:00 -0500)]
ntfs_3g_apply.c: work around EOPNOTSUPP when setting short name of reparse point file

5 years agontfs-3g_apply.c: handle ntfs_attr_pwrite() short writes
Eric Biggers [Sat, 31 Oct 2015 17:59:11 +0000 (12:59 -0500)]
ntfs-3g_apply.c: handle ntfs_attr_pwrite() short writes

5 years agontfs-3g_apply.c: restore root directory attributes
Eric Biggers [Mon, 26 Oct 2015 02:56:45 +0000 (21:56 -0500)]
ntfs-3g_apply.c: restore root directory attributes

5 years agounix_apply.c: extract non-link directory reparse points as directories
Eric Biggers [Mon, 26 Oct 2015 00:37:19 +0000 (19:37 -0500)]
unix_apply.c: extract non-link directory reparse points as directories

5 years agowrite.c: correctly handle no existing blob table during overwrite
Eric Biggers [Sat, 24 Oct 2015 20:38:04 +0000 (15:38 -0500)]
write.c: correctly handle no existing blob table during overwrite

5 years agowrite.c: ensure that 'old_integrity_table' is always freed
Eric Biggers [Sat, 24 Oct 2015 19:46:11 +0000 (14:46 -0500)]
write.c: ensure that 'old_integrity_table' is always freed

5 years agowrite.c: don't write integrity table if there is no blob table
Eric Biggers [Sat, 24 Oct 2015 19:31:24 +0000 (14:31 -0500)]
write.c: don't write integrity table if there is no blob table

The following commands would produce an invalid integrity table:

wimcapture empty empty.wim
wimdelete delete empty.wim 1 --check

5 years agowin32_capture.c: experimental fixup of WIM-backed files
Eric Biggers [Sun, 1 Nov 2015 18:34:42 +0000 (12:34 -0600)]
win32_capture.c: experimental fixup of WIM-backed files

5 years agowrite.c: send first WRITE_STREAMS message before writing raw copy blobs
Eric Biggers [Fri, 23 Oct 2015 04:13:03 +0000 (23:13 -0500)]
write.c: send first WRITE_STREAMS message before writing raw copy blobs

5 years agowrite.c: compaction bug fix
Eric Biggers [Fri, 23 Oct 2015 04:07:01 +0000 (23:07 -0500)]
write.c: compaction bug fix

5 years agodoc: note that data integrity is not guaranteed in --unsafe-compact mode
Eric Biggers [Wed, 21 Oct 2015 03:31:41 +0000 (22:31 -0500)]
doc: note that data integrity is not guaranteed in --unsafe-compact mode

5 years agoImproved reporting of concurrent modifications and corruptions
Eric Biggers [Wed, 21 Oct 2015 03:26:23 +0000 (22:26 -0500)]
Improved reporting of concurrent modifications and corruptions

5 years agowin32_apply.c: dereference reparse point when opening target dir
Eric Biggers [Mon, 19 Oct 2015 02:36:02 +0000 (21:36 -0500)]
win32_apply.c: dereference reparse point when opening target dir

5 years agoUpdate NEWS
Eric Biggers [Mon, 19 Oct 2015 00:44:58 +0000 (19:44 -0500)]
Update NEWS

5 years agowimlib_split(): forbid splitting arbitrary WIMStructs
Eric Biggers [Mon, 19 Oct 2015 00:39:27 +0000 (19:39 -0500)]
wimlib_split(): forbid splitting arbitrary WIMStructs

5 years agoDelay xml_update_image_info() until write
Eric Biggers [Mon, 19 Oct 2015 00:39:36 +0000 (19:39 -0500)]
Delay xml_update_image_info() until write

wimlib_update_image() should not be walking the entire image's directory
tree on every call.

5 years agowimlib_export_image(): improve duplicate image detection
Eric Biggers [Mon, 19 Oct 2015 00:39:35 +0000 (19:39 -0500)]
wimlib_export_image(): improve duplicate image detection

5 years agoForbid modifying multi-referenced images
Eric Biggers [Mon, 19 Oct 2015 00:39:34 +0000 (19:39 -0500)]
Forbid modifying multi-referenced images

5 years agoMake WIMStructs reference-counted
Eric Biggers [Mon, 19 Oct 2015 00:39:34 +0000 (19:39 -0500)]
Make WIMStructs reference-counted

Simplify the library API by eliminating rules on when WIMStructs can be
freed after calls to wimlib_export_image() and
wimlib_reference_resources().  Also eliminate the internal 'subwims'
list.

5 years agoDon't unnecessarily rebuild exported metadata resources
Eric Biggers [Mon, 19 Oct 2015 00:39:30 +0000 (19:39 -0500)]
Don't unnecessarily rebuild exported metadata resources

- When image metadata is modified, release the descriptor for the backing
  resource (if any), since it can no longer be used
- In write_metadata_resources(), allow copying metadata resources from a
  WIM file other than the one being written
- Remove the 'modified' and 'dont_check_metadata_hash' fields which are
  no longer needed

5 years agowimlib_iterate_dir_tree(): free d_full_path after using
Eric Biggers [Mon, 19 Oct 2015 00:39:33 +0000 (19:39 -0500)]
wimlib_iterate_dir_tree(): free d_full_path after using

5 years agoinode: move 'i_extra_size' to 'i_extra' buffer
Eric Biggers [Mon, 19 Oct 2015 00:39:33 +0000 (19:39 -0500)]
inode: move 'i_extra_size' to 'i_extra' buffer

Usually there will be no extra data and this will save a bit of memory.

5 years agoarchlinux/PKGBUILD: don't install README.WINDOWS
Eric Biggers [Mon, 19 Oct 2015 00:39:32 +0000 (19:39 -0500)]
archlinux/PKGBUILD: don't install README.WINDOWS

5 years agotools/make-windows-release: configure --without-libcrypto
Eric Biggers [Mon, 19 Oct 2015 00:39:31 +0000 (19:39 -0500)]
tools/make-windows-release: configure --without-libcrypto

5 years agoFix various typos
Eric Biggers [Mon, 19 Oct 2015 00:39:31 +0000 (19:39 -0500)]
Fix various typos

5 years agowimlib-imagex: forbid --unsafe-compact when it doesn't make sense
Eric Biggers [Mon, 19 Oct 2015 00:39:30 +0000 (19:39 -0500)]
wimlib-imagex: forbid --unsafe-compact when it doesn't make sense

5 years agoxml_export_image(): fix memory leak if append_image_node() fails
Eric Biggers [Mon, 19 Oct 2015 00:39:29 +0000 (19:39 -0500)]
xml_export_image(): fix memory leak if append_image_node() fails

5 years agoxml_print_image_info(): handle LANGUAGE element with no text
Eric Biggers [Mon, 19 Oct 2015 00:39:29 +0000 (19:39 -0500)]
xml_print_image_info(): handle LANGUAGE element with no text

5 years agowimlib_set_image_name(): allow setting image to existing name
Eric Biggers [Mon, 19 Oct 2015 00:39:28 +0000 (19:39 -0500)]
wimlib_set_image_name(): allow setting image to existing name

5 years agowimlib_set_image_property(): forbid NULL or empty property names
Eric Biggers [Mon, 19 Oct 2015 00:39:28 +0000 (19:39 -0500)]
wimlib_set_image_property(): forbid NULL or empty property names

5 years agowimlib_get_image_property(): forbid NULL or empty property names
Eric Biggers [Mon, 19 Oct 2015 00:39:27 +0000 (19:39 -0500)]
wimlib_get_image_property(): forbid NULL or empty property names

5 years agoREADME: update tested architectures
Eric Biggers [Mon, 19 Oct 2015 00:39:26 +0000 (19:39 -0500)]
README: update tested architectures

5 years agoBig endian fix: load_u24_unaligned() must be consistent with loaded_u32_to_u24()
Eric Biggers [Mon, 19 Oct 2015 00:39:26 +0000 (19:39 -0500)]
Big endian fix: load_u24_unaligned() must be consistent with loaded_u32_to_u24()

5 years agoMake endian conversion macros const-friendly
Eric Biggers [Mon, 19 Oct 2015 00:39:25 +0000 (19:39 -0500)]
Make endian conversion macros const-friendly

This avoids compilation errors on big endian systems.

5 years agoREADME: update COMPRESSION RATIO section
Eric Biggers [Mon, 19 Oct 2015 00:39:25 +0000 (19:39 -0500)]
README: update COMPRESSION RATIO section

5 years agobt_matchfinder: use 2-way hash for length 3 matches
Eric Biggers [Mon, 19 Oct 2015 00:39:24 +0000 (19:39 -0500)]
bt_matchfinder: use 2-way hash for length 3 matches

5 years agolzx_compress.c: fix min value of LENGTH_CODEWORD_LIMIT
Eric Biggers [Mon, 19 Oct 2015 00:39:24 +0000 (19:39 -0500)]
lzx_compress.c: fix min value of LENGTH_CODEWORD_LIMIT

5 years agolzx_compress.c: chosen_sequences[] length was 1 too short
Eric Biggers [Mon, 19 Oct 2015 00:39:23 +0000 (19:39 -0500)]
lzx_compress.c: chosen_sequences[] length was 1 too short

A block could have all length 2 matches (highly unlikely).

5 years agolzx_compress.c: CAN_BUFFER() was 1 off
Eric Biggers [Mon, 19 Oct 2015 00:39:14 +0000 (19:39 -0500)]
lzx_compress.c: CAN_BUFFER() was 1 off

5 years agowimlib.h: update outdated comment
Eric Biggers [Sun, 4 Oct 2015 21:25:38 +0000 (16:25 -0500)]
wimlib.h: update outdated comment

5 years agoUpdate NEWS
Eric Biggers [Sun, 4 Oct 2015 19:03:51 +0000 (14:03 -0500)]
Update NEWS

5 years agowimlib-imagex: add options to enable unsafe compaction
Eric Biggers [Sun, 4 Oct 2015 18:20:50 +0000 (13:20 -0500)]
wimlib-imagex: add options to enable unsafe compaction

5 years agoAdd support for unsafe in-place compaction of WIM files
Eric Biggers [Sun, 4 Oct 2015 18:20:19 +0000 (13:20 -0500)]
Add support for unsafe in-place compaction of WIM files

This commit adds support for compacting WIM files by passing the flag
WIMLIB_WRITE_FLAG_UNSAFE_COMPACT to wimlib_overwrite().

5 years agoWrite raw-copy resources before other resources
Eric Biggers [Sun, 4 Oct 2015 18:23:42 +0000 (13:23 -0500)]
Write raw-copy resources before other resources

As another preparation for adding compaction support, always write "raw
copy" resources before other resources.  In the non-compaction case, any
order can be used.

5 years agoUpdates to prepare for in-place compaction support
Eric Biggers [Sun, 4 Oct 2015 18:15:59 +0000 (13:15 -0500)]
Updates to prepare for in-place compaction support

Update some names and comments to clarify they mean overwrites via
append.  No changes in behavior.

5 years agowrite.c: cleanups and bug fixes
Eric Biggers [Sun, 4 Oct 2015 18:08:34 +0000 (13:08 -0500)]
write.c: cleanups and bug fixes

- Sort blobs correctly if a single on-disk WIM has multiple WIMStructs
- Prevent non-solid resources from being incorrectly reused solid WIMs
- Rename num_bytes_to_compress => num_nonraw_bytes
- Make may_*_filter_blobs() functions return bool
- Improved some comments

5 years agox86_cpu_features.c: include "config.h"
Eric Biggers [Sun, 4 Oct 2015 01:53:56 +0000 (20:53 -0500)]
x86_cpu_features.c: include "config.h"

5 years agoMark system compression support non-experimental
Eric Biggers [Sat, 3 Oct 2015 23:47:20 +0000 (18:47 -0500)]
Mark system compression support non-experimental

5 years agoMinor tweaks to recently changed code
Eric Biggers [Sat, 3 Oct 2015 22:27:04 +0000 (17:27 -0500)]
Minor tweaks to recently changed code

5 years agowimlib-imagex: don't do "metadata not found" warning if applying from stdin
Eric Biggers [Sat, 3 Oct 2015 20:46:35 +0000 (15:46 -0500)]
wimlib-imagex: don't do "metadata not found" warning if applying from stdin

5 years agoUpdate NEWS
Eric Biggers [Sat, 3 Oct 2015 17:44:04 +0000 (12:44 -0500)]
Update NEWS

5 years agoAdd WIMLIB_ERR_WIM_IS_INCOMPLETE
Eric Biggers [Sat, 3 Oct 2015 19:56:32 +0000 (14:56 -0500)]
Add WIMLIB_ERR_WIM_IS_INCOMPLETE

Usually WIMLIB_ERR_XML was returned in this situation, but a separate
error code is more appropriate.

5 years agoRemove WIMLIB_ERR_LIBXML_UTF16_HANDLER_NOT_AVAILABLE
Eric Biggers [Sat, 3 Oct 2015 19:34:22 +0000 (14:34 -0500)]
Remove WIMLIB_ERR_LIBXML_UTF16_HANDLER_NOT_AVAILABLE

5 years agoAdd wimlib_get_image_property() and wimlib_set_image_property()
Eric Biggers [Sat, 3 Oct 2015 17:42:35 +0000 (12:42 -0500)]
Add wimlib_get_image_property() and wimlib_set_image_property()

5 years agoxml.c: refactor to use document tree
Eric Biggers [Sat, 3 Oct 2015 16:59:49 +0000 (11:59 -0500)]
xml.c: refactor to use document tree

5 years agoUpdate COMPRESSION RATIO section of README
Eric Biggers [Thu, 24 Sep 2015 06:33:19 +0000 (01:33 -0500)]
Update COMPRESSION RATIO section of README

5 years agobt_matchfinder: add BT_MATCHFINDER_REQUIRED_NBYTES
Eric Biggers [Fri, 25 Sep 2015 03:46:48 +0000 (22:46 -0500)]
bt_matchfinder: add BT_MATCHFINDER_REQUIRED_NBYTES

5 years agolcpit_matchfinder: prefetch multiple steps ahead
Eric Biggers [Mon, 21 Sep 2015 00:04:10 +0000 (19:04 -0500)]
lcpit_matchfinder: prefetch multiple steps ahead

5 years agolzx_compress: update lzx_update_costs() with codeword limits
Eric Biggers [Sun, 20 Sep 2015 21:01:02 +0000 (16:01 -0500)]
lzx_compress: update lzx_update_costs() with codeword limits

5 years agolzx_compress.c: adjust parameters for slightly stronger compression
Eric Biggers [Sat, 19 Sep 2015 21:29:38 +0000 (16:29 -0500)]
lzx_compress.c: adjust parameters for slightly stronger compression

5 years agoxpress_compress.c: adjust parameters for slightly stronger compression
Eric Biggers [Sat, 19 Sep 2015 21:29:33 +0000 (16:29 -0500)]
xpress_compress.c: adjust parameters for slightly stronger compression

5 years agolzms_decompress() optimization
Eric Biggers [Sat, 19 Sep 2015 18:56:18 +0000 (13:56 -0500)]
lzms_decompress() optimization

The four "pending" variables can be replaced with a single
'prev_item_type' variable, with adjusted logic.  The new way is a little
faster.

5 years agolzx_common: rename to lzx_preprocess/lzx_postprocess
Eric Biggers [Sat, 19 Sep 2015 20:06:37 +0000 (15:06 -0500)]
lzx_common: rename to lzx_preprocess/lzx_postprocess

5 years agolzx_common: get rid of unnecessary functions
Eric Biggers [Sat, 19 Sep 2015 19:53:43 +0000 (14:53 -0500)]
lzx_common: get rid of unnecessary functions

5 years agobt_matchfinder: use 4-byte hashing for trees
Eric Biggers [Sat, 19 Sep 2015 18:56:14 +0000 (13:56 -0500)]
bt_matchfinder: use 4-byte hashing for trees

5 years agobt_matchfinder: make callers do max_len check
Eric Biggers [Sat, 19 Sep 2015 18:56:14 +0000 (13:56 -0500)]
bt_matchfinder: make callers do max_len check

5 years agolzx_compress.c: optimize aligned cost consideration and enable by default
Eric Biggers [Sat, 19 Sep 2015 18:56:13 +0000 (13:56 -0500)]
lzx_compress.c: optimize aligned cost consideration and enable by default

5 years agoxpress_compress.c: rename a few variables
Eric Biggers [Sat, 19 Sep 2015 18:56:12 +0000 (13:56 -0500)]
xpress_compress.c: rename a few variables