v1.14.4
windows-build.sh: ensure that -static-libgcc is used with MSYS2 gcc In MSYS2 MINGW32, the gcc version is "i686-w64-mingw32-cc.exe (Rev4, Built by MSYS2 project) 13.2.0" which does not contain the string "(GCC)" as expected. Similarly for MSYS2 MINGW64. This means that -static-libgcc does not get used as intended. As a quick fix, just invert the check, so gcc is now detected by checking for not clang..
ci.yml: use actions/checkout@v4 and actions/upload-artifact@v4 This addresses the following warnings from GitHub Actions: Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/. Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/upload-artifact@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/. A near-identical warning forced everyone to upgrade to v3 last year, so this is some pointless churn, but let's just get it over with again...
v1.14.3
v1.14.2
Add a clang-format file This approximates the de facto coding style of this project, which is quite similar to the Linux kernel coding style. This is just in case people to use it with 'git clang-format', as requested at https://wimlib.net/forums/viewtopic.php?t=666. I'm not planning to reformat all the existing code to make it match exactly.
Fix compatibility issues with directory streams Fix two related bugs where a WIM image metadata resource written by wimlib could not be understood by some MS software versions: - Never write an extra stream entry for the unnamed data stream of directories. The concept of "unnamed data stream" isn't applicable to directories. This fixes compatibility with DISM when the WIM image contains a directory with named data stream(s). (I think DISM used to be okay with this, but on 10.0.20348.681 I'm seeing this issue.) - Store the reparse point hash in main_hash when no extra stream entries are otherwise needed, i.e. when the file is a directory with no named data streams. This fixes compatibility with the Windows 8 setup wizard, at least for some specific version of Windows 8, as reported at https://wimlib.net/forums/viewtopic.php?t=671. Resolves https://wimlib.net/forums/viewtopic.php?t=671
Improve encoding detection of wimupdate command files Make wimupdate command files (read from stdin) and wimcapture source list files be interpreted as UTF-8 or UTF-16LE (autodetected). Previously these files were interpreted as the Windows codepage or UTF-16LE on Windows (autodetected), and UTF-8 on non-Windows. This makes these files be consistent with wimextract pathlist files and wimcapture config files, which already had the behavior of "autodetect UTF-8 or UTF-16LE on all platforms". Resolves https://wimlib.net/forums/viewtopic.php?p=1545
Align stack when entering wimlib on 32-bit x86 This may resolve https://wimlib.net/forums/viewtopic.php?t=669. The reported crash happened in sha1_blocks_x86_avx_bmi2() on the first instruction that writes to the stack with vmovqda. That suggests the stack was misaligned. If this indeed fixes the bug, then it has actually always existed but it got exposed by new code in v1.14.0.