wimlib
18 months agolzx lcpit lzx_lcpit
Eric Biggers [Mon, 13 Jun 2016 04:57:10 +0000 (23:57 -0500)]
lzx lcpit

18 months agolzx_compress: cleanup
Eric Biggers [Sat, 11 Jun 2016 22:48:58 +0000 (17:48 -0500)]
lzx_compress: cleanup

18 months agolzx_compress: refactor near-optimal matchfinding loop to be more efficient
Eric Biggers [Sat, 11 Jun 2016 18:28:24 +0000 (13:28 -0500)]
lzx_compress: refactor near-optimal matchfinding loop to be more efficient

18 months agolzx_compress: consider match+lit+rep0 in lzx_find_min_cost_path()
Eric Biggers [Sat, 11 Jun 2016 18:28:23 +0000 (13:28 -0500)]
lzx_compress: consider match+lit+rep0 in lzx_find_min_cost_path()

18 months agolzx_compress: add new block splitting algorithm
Eric Biggers [Sat, 11 Jun 2016 18:28:22 +0000 (13:28 -0500)]
lzx_compress: add new block splitting algorithm

18 months agolzx_compress: use 'restrict' qualifier for in_begin
Eric Biggers [Sat, 11 Jun 2016 18:28:21 +0000 (13:28 -0500)]
lzx_compress: use 'restrict' qualifier for in_begin

18 months agolzx_compress: increase LZX_BIT_COST to 64
Eric Biggers [Sat, 11 Jun 2016 18:28:21 +0000 (13:28 -0500)]
lzx_compress: increase LZX_BIT_COST to 64

Increasing the bit cost allows higher precision calculations, with
essentially no disadvantages.  64 is also the value used by the LZMS
compressor.

18 months agolzx_compress: increase codeword length limits
Eric Biggers [Sat, 11 Jun 2016 18:28:19 +0000 (13:28 -0500)]
lzx_compress: increase codeword length limits

Most significantly, do not limit main codewords to 12 bits.  This will be
slightly advantageous for outputting larger blocks.

There is a very slight performance decrease as now only 3 main codewords
can be flushed at a time on 64-bit platforms, not 4 as before.

18 months agobt_matchfinder: remove unnecessary max_len parameter to skip routine
Eric Biggers [Sat, 11 Jun 2016 19:45:16 +0000 (14:45 -0500)]
bt_matchfinder: remove unnecessary max_len parameter to skip routine

18 months agolz_extend: simplify lz_extend() slightly
Eric Biggers [Sat, 11 Jun 2016 18:28:20 +0000 (13:28 -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.

18 months agoRewrite string encoding conversion code
Eric Biggers [Sat, 11 Jun 2016 18:28:18 +0000 (13:28 -0500)]
Rewrite string encoding conversion code

- Drop support for multibyte encodings other than UTF-8.  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...

- Implement UTF-8 and UTF-16LE codecs and drop the iconv requirement.
  This provides better performance and actually results in *fewer* lines
  of code and a slightly smaller binary.

18 months 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

18 months 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

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

18 months 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

19 months 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

19 months 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.

19 months 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

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

19 months 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.

19 months 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

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

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

19 months 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

19 months 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

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

19 months 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

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

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

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

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

19 months 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

19 months 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

19 months 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)

19 months 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

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

19 months 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

19 months 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

19 months 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.

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

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

21 months 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

21 months 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

21 months 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

21 months 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.

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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

21 months 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"

21 months 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

21 months 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

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

21 months 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

21 months 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"

21 months 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

21 months 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

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

21 months 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

21 months 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

21 months 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

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

21 months 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

21 months agoAdd support for capturing/applying object IDs
Eric Biggers [Thu, 18 Feb 2016 02:21:42 +0000 (20:21 -0600)]
Add support for capturing/applying object IDs

21 months agowin32_common: simplify DLL initialization
Eric Biggers [Thu, 18 Feb 2016 02:21:41 +0000 (20:21 -0600)]
win32_common: simplify DLL initialization

21 months agoDirectly link with ntdll on Windows
Eric Biggers [Thu, 18 Feb 2016 02:21:40 +0000 (20:21 -0600)]
Directly link with ntdll on Windows

21 months agowin32_capture: handle NtQuerySecurityObject returning an empty descriptor
Eric Biggers [Thu, 18 Feb 2016 02:21:39 +0000 (20:21 -0600)]
win32_capture: handle NtQuerySecurityObject returning an empty descriptor

21 months agowin32_common: add winnt_fsctl() helper method
Eric Biggers [Thu, 18 Feb 2016 02:21:38 +0000 (20:21 -0600)]
win32_common: add winnt_fsctl() helper method

This is needed to handle STATUS_PENDING.

21 months agomake-windows-release: allow *.cmd files to operate from paths w/ spaces
Mike Swanson [Tue, 16 Feb 2016 02:43:15 +0000 (18:43 -0800)]
make-windows-release: allow *.cmd files to operate from paths w/ spaces

If wimlib is unpacked in a path with spaces in it, such as
"C:\Documents and Settings" (default user location on Windows XP), the
shell will prompt back with a message like:

    'C:\Documents' is not recognized as an internal or external command,
    operable program or batch file.

Simply using double quotes as a guard resolves this and allows it to work.

22 months agoUse -Wall -Werror when compiling releases
Eric Biggers [Sun, 14 Feb 2016 04:32:49 +0000 (22:32 -0600)]
Use -Wall -Werror when compiling releases

22 months agoxml.c: pass non-const xmlNode to xmlHasProp()
Eric Biggers [Thu, 11 Feb 2016 15:27:19 +0000 (09:27 -0600)]
xml.c: pass non-const xmlNode to xmlHasProp()

This avoids a compiler warning when compiling with older versions of
libxml2 (const was added to the prototype at some point).

22 months agoUpdate NEWS
Eric Biggers [Thu, 11 Feb 2016 04:24:53 +0000 (22:24 -0600)]
Update NEWS

22 months agoREADME.WINDOWS: add instructions for building from source
Eric Biggers [Thu, 11 Feb 2016 03:09:33 +0000 (21:09 -0600)]
README.WINDOWS: add instructions for building from source

22 months agowin32_capture.c: retry NtReadFile() requests
Eric Biggers [Thu, 11 Feb 2016 01:55:38 +0000 (19:55 -0600)]
win32_capture.c: retry NtReadFile() requests

22 months agowin32_apply.c: add message about known issue with WindowsApps directory
Eric Biggers [Thu, 11 Feb 2016 01:55:37 +0000 (19:55 -0600)]
win32_apply.c: add message about known issue with WindowsApps directory

22 months agowin32_apply.c: explicitly remove extra slashes in link targets
Eric Biggers [Thu, 11 Feb 2016 01:55:36 +0000 (19:55 -0600)]
win32_apply.c: explicitly remove extra slashes in link targets

22 months agowin32_apply.c: don't add extra slash to link target
Eric Biggers [Thu, 11 Feb 2016 01:55:35 +0000 (19:55 -0600)]
win32_apply.c: don't add extra slash to link target

22 months agov1.9.1-BETA
Eric Biggers [Tue, 9 Feb 2016 01:03:42 +0000 (19:03 -0600)]
v1.9.1-BETA

22 months agowin32_common.c: add extra error messages if pread() or pwrite() fails
Eric Biggers [Tue, 9 Feb 2016 01:02:33 +0000 (19:02 -0600)]
win32_common.c: add extra error messages if pread() or pwrite() fails

22 months agowrite.c: add error messages around all read and write failures
Eric Biggers [Sat, 6 Feb 2016 18:31:39 +0000 (12:31 -0600)]
write.c: add error messages around all read and write failures

22 months agoMark VSS support non-experimental
Eric Biggers [Sat, 6 Feb 2016 15:47:18 +0000 (09:47 -0600)]
Mark VSS support non-experimental

22 months agotools/windeps: update Windows dependencies Makefile
Eric Biggers [Sat, 6 Feb 2016 15:47:17 +0000 (09:47 -0600)]
tools/windeps: update Windows dependencies Makefile

* Directly use release tarballs and verify checksums
* Upgrade libxml2 from v2.9.2 to v2.9.3

22 months agoconfigure.ac: enable silent make rules
Eric Biggers [Sat, 6 Feb 2016 15:47:16 +0000 (09:47 -0600)]
configure.ac: enable silent make rules

22 months agoMakefile.am: remove '--tag NASM' from libtool command line
Eric Biggers [Sat, 6 Feb 2016 15:47:15 +0000 (09:47 -0600)]
Makefile.am: remove '--tag NASM' from libtool command line

libtool does not recognize this argument.

22 months agowrite.c: warn if WIM file cannot be truncated
Eric Biggers [Sat, 6 Feb 2016 15:47:14 +0000 (09:47 -0600)]
write.c: warn if WIM file cannot be truncated

Somewhat pointless since this is already an error path, but this avoids
a gcc warning about ftruncate()'s return value not being used.

22 months agoAddress MinGW compiler warnings (harmless)
Eric Biggers [Sat, 6 Feb 2016 15:47:13 +0000 (09:47 -0600)]
Address MinGW compiler warnings (harmless)

22 months agocompiler.h: start honoring _format_attribute on UNIX
Eric Biggers [Sat, 6 Feb 2016 15:47:12 +0000 (09:47 -0600)]
compiler.h: start honoring _format_attribute on UNIX

22 months agocompiler.h: remove concept of different unaligned access speeds
Eric Biggers [Sat, 6 Feb 2016 15:47:11 +0000 (09:47 -0600)]
compiler.h: remove concept of different unaligned access speeds

Just having fast and slow seems to be enough.

22 months agoMark functions containing only static assertions intentionally unused
Eric Biggers [Sat, 6 Feb 2016 15:47:11 +0000 (09:47 -0600)]
Mark functions containing only static assertions intentionally unused

22 months agoMerge compiler-gcc.h into compiler.h
Eric Biggers [Sat, 6 Feb 2016 15:47:10 +0000 (09:47 -0600)]
Merge compiler-gcc.h into compiler.h

Compiling with MSVC or another non-GCC-like compiler will be harder than
previously thought.  Since it's not currently a goal, simplify things by
just merging compiler-gcc.h into compiler.h.

22 months agoextract.c: replace tempnam() with mkstemp() on non-Windows
Eric Biggers [Sat, 6 Feb 2016 15:47:08 +0000 (09:47 -0600)]
extract.c: replace tempnam() with mkstemp() on non-Windows

tempnam() produces an annoying warning when linking, even though wimlib
was using it safely (with O_EXCL to make it race-free).  Just replace it
with mkstemp() anyway.

22 months agolzms_common.h: add cast needed if sizeof(int) > sizeof(u32)
Eric Biggers [Fri, 5 Feb 2016 01:19:08 +0000 (19:19 -0600)]
lzms_common.h: add cast needed if sizeof(int) > sizeof(u32)

22 months agoImage metadata updates
Eric Biggers [Thu, 4 Feb 2016 01:20:26 +0000 (19:20 -0600)]
Image metadata updates

- Maintain selected_count of each WIM image
- Unload each WIM image when it is no longer selected by any WIMStruct
- Enforce that every 'wim_image_metadata' is created in a valid state
- Simplify NEW_IMAGE support for read-write mounts
- Improve comments

22 months agoinode_fixup: don't warn about inode corrections
Eric Biggers [Wed, 3 Feb 2016 01:36:35 +0000 (19:36 -0600)]
inode_fixup: don't warn about inode corrections

This warning is usually not actionable, and people may assume it
indicates a problem with wimlib rather than the program which created the
WIM image.  So just remove it.

22 months agoarchlinux/PKGBUILD: ntfsprogs is now included in ntfs-3g package
Eric Biggers [Tue, 2 Feb 2016 01:16:53 +0000 (19:16 -0600)]
archlinux/PKGBUILD: ntfsprogs is now included in ntfs-3g package

22 months agov1.9.0 v1.9.0
Eric Biggers [Sun, 31 Jan 2016 05:59:22 +0000 (23:59 -0600)]
v1.9.0

22 months agowimlib.h: add "since" note for WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED
Eric Biggers [Wed, 27 Jan 2016 01:45:33 +0000 (19:45 -0600)]
wimlib.h: add "since" note for WIMLIB_ADD_FLAG_FILE_PATHS_UNNEEDED

22 months agowin32_capture: don't ask for permission to read data when not needed
Eric Biggers [Fri, 22 Jan 2016 05:00:12 +0000 (23:00 -0600)]
win32_capture: don't ask for permission to read data when not needed

22 months agowin32_capture: correctly handle unspecified security IDs in MFT
Eric Biggers [Fri, 22 Jan 2016 04:58:16 +0000 (22:58 -0600)]
win32_capture: correctly handle unspecified security IDs in MFT