- Add tools/legacy/build_plugin_2601_vs2026.py: Windows build script for
7-zip 26.01 using VS2026 toolset (v145), adapted from the zstd equivalent.
Points to versions/26.01-bundle/ as the project root.
- Update build_plugin.py:
- Add LINUX_SCRIPT reference to tools/linux/build_plugin_linux.py.
- Add '26.01' to WINDOWS_SCRIPTS with v2026 entry pointing to the new
script (v2022 remains None; 26.01 requires v145 minimum).
- Add '26.01' to LINUX_SUPPORTED_7ZIP set.
- Add '26.01' to argparse choices.
7-Zip 26.01 (ip7z/7zip) never shipped NSIS plugin sources, so they live in
a separate bundle directory (versions/26.01-bundle/) that mirrors the layout
expected by the shared overlay makefile and by MSBuild.
Bundle contents:
- CPP/7zip/Bundles/Nsis7z/: NSIS plugin wrapper sources (nsis7z.cpp,
pluginapi.cpp, api.h, resource.rc, StdAfx.h, …) and the Windows build
project file (Nsis7z_vs2026.vcxproj, adapted from versions/26.00/).
The vcxproj references the vendor submodule tree via relative paths
(../../../../../26.01/…), keeping the submodule pristine.
- CPP/7zip/UI/NSIS/: NSIS UI adapter sources (Main.cpp, MainAr.cpp,
NSISBreak.cpp, ExtractCallbackConsole.cpp, UserInputUtils2.cpp and
corresponding headers), copied from versions/26.00/.
- CPP/7zip/LzmaDec_gcc.mak: forwarding stub; GNU make resolves relative
`include` paths against the CWD, so when make runs from Bundles/Nsis7z
the upstream Arc_gcc.mak's `include ../../LzmaDec_gcc.mak` lands here.
The stub re-includes the real file via $(VENDOR_7ZIP).
- Symlinks (C, Asm, CPP/7zip/*, CPP/Common, CPP/Windows, …) pointing into
the versions/26.01 submodule. These are required because the vendor
makefile uses CWD-relative source paths (../../../../C/…, ../../Common/…).
tools/linux/setup_26_01_bundle_symlinks.py recreates them if needed.
Replaces the per-version in-tree build files with a shared overlay that
keeps all project-owned build infrastructure outside the vendor source trees,
making it safe to use vendor directories as pristine git submodules.
Changes:
- Add tools/linux/overlay/makefile.gcc: parameterised makefile that drives
MinGW cross-compilation; VENDOR_7ZIP, DEF_FILE and NSIS_DIR are all
overridable from the command line so no files are written into the vendor
tree at build time.
- Add tools/linux/overlay/include/: case-sensitivity shim headers
(Windows.h, CommCtrl.h, MAPI.h, NTSecAPI.h, Psapi.h, ShlObj.h) that
redirect to the lowercase MinGW system headers; also adds
z7_idecl_noexcept_strip.h which resolves the noexcept-specifier mismatch
in 7-zip 25.01 NSIS UI code.
- Move Nsis7z.def from versions/26.00/…/Bundles/Nsis7z/ to overlay/ (git
rename; content unchanged).
- Delete versions/26.00/…/Bundles/Nsis7z/makefile.gcc (superseded by the
overlay).
- Rewrite tools/linux/build_plugin_linux.py to drive the overlay makefile,
support multiple 7-zip versions (25.01, 26.00, 26.01, zstd) with a
VERSION_LAYOUT table, and add NSIS_DIR auto-detection for bundle-based
builds.
- Add _linux_build/ to .gitignore.
Registers the upstream ip7z/7zip repository as a git submodule at
versions/26.01, checked out at tag 26.01 (commit 8c63d71).
This provides the 7-Zip 26.01 vendor source tree for both the Windows
(MSBuild/vcxproj) and Linux (MinGW cross-compilation) builds.
- Correct directory tree (versions/ instead of 7zip-xx.xx/)
- Add tools/update_gitea_releases.py and tools/release-notes/ entries
- Document CI build.yml and release.yml behaviour
- Mirror changes in README_IT.md
One-shot script to backfill Gitea release bodies for existing releases
using the Gitea API. Reads per-version Markdown files from
tools/release-notes/ and PATCHes each release body.
Includes README.md in tools/release-notes/ explaining usage.
- Upgrade all GitHub Actions to node24-native major versions:
actions/checkout@v6, setup-python@v6, upload-artifact@v7,
download-artifact@v8, microsoft/setup-msbuild@v3,
softprops/action-gh-release@v3
- Remove FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 env var (no longer needed)
- Release workflow now extracts the relevant CHANGELOG section as
the GitHub Release body instead of a static message
- docs: add missing [2.2.0] changelog entry (Linux MinGW-w64 support)
- Implemented plugin API in `pluginapi.cpp` and `pluginapi.h` for NSIS integration.
- Added resource files `resource.h` and `resource.rc` for versioning and resource management.
- Created `ExtractCallbackConsole` class to handle extraction progress and user input.
- Developed main extraction logic in `Main.cpp` and `MainAr.cpp` for handling archives.
- Introduced user input utilities in `UserInputUtils2.cpp` and `UserInputUtils2.h` for password handling and user prompts.
- Added break signal handling in `NSISBreak.cpp` and `NSISBreak.h` for graceful interruption of extraction processes.
- Included standard header `StdAfx.h` for precompiled headers and common includes.