Commit Graph

45 Commits

Author SHA1 Message Date
Simone bcbae1b0be submodule: convert versions/25.01 from committed vendor to git submodule
Remove the ~1316 vendor source files committed under versions/25.01/ and
replace them with a git submodule pointing to ip7z/7zip tag 25.01
(SHA 5e96a82).  Project-owned build files move to versions/25.01-bundle/
(next commit).
2026-05-03 01:38:45 +02:00
Simone 68f5101c64 build: redirect 26.00 builds to bundle directory
- tools/linux/build_plugin_linux.py: point VERSION_LAYOUT['26.00'].bundle_dir
  to versions/26.00-bundle/ (was versions/26.00/); update module docstring.
- tools/legacy/build_plugin_2600_vs2026.py: point project_dir to
  versions/26.00-bundle/ (was versions/26.00/).
- tools/linux/setup_26_01_bundle_symlinks.py: refactor to use bundle_root /
  vendor_root variables and add C/Asm root-level symlink creation, matching
  the new setup_26_00_bundle_symlinks.py convention.
2026-05-03 01:31:30 +02:00
Simone eec05089cf feat(26.00): add bundle wrapper directory with NSIS sources and vendor symlinks
Mirror the 26.01-bundle approach for 26.00:

- versions/26.00-bundle/CPP/7zip/Bundles/Nsis7z/: project-owned NSIS plugin
  wrapper sources (api.h, nsis7z.cpp, pluginapi.*, resource.*, StdAfx*,
  Nsis7z.sln, Nsis7z.vcxproj, Nsis7z.vcxproj.filters, Nsis7z_vs2026.vcxproj).
- versions/26.00-bundle/CPP/7zip/UI/NSIS/: NSIS UI sources (Main.cpp,
  ExtractCallbackConsole.*, NSISBreak.*, UserInputUtils2.*, StdAfx.h).
- versions/26.00-bundle/CPP/7zip/LzmaDec_gcc.mak: forwarding stub so that
  the CWD-relative `include ../../LzmaDec_gcc.mak` in Arc_gcc.mak resolves
  correctly when make runs from the Nsis7z bundle dir.
- versions/26.00-bundle/{C,Asm} and CPP sub-trees: symlinks into versions/26.00/
  so the vendor headers and sources are visible without modifying the submodule.
- tools/linux/setup_26_00_bundle_symlinks.py: idempotent script to recreate
  all symlinks after a fresh clone + submodule initialisation.
2026-05-03 01:31:19 +02:00
Simone c232693340 submodule: convert versions/26.00 from committed vendor to git submodule
Remove the ~1315 vendor source files committed under versions/26.00/ and
replace them with a git submodule pointing to ip7z/7zip tag 26.00
(SHA 839151e).  The upstream 26.00 tag does not ship a Nsis7z bundle, so
all project-owned build files live in the separate versions/26.00-bundle/
directory (added in the next commit).
2026-05-03 01:31:01 +02:00
Simone 5419d38372 plugins: rebuild DLL artifacts with 7-zip 26.01
Cross-compiled from Linux using MinGW-w64 via the new overlay build
infrastructure. All three targets built clean (Exit Code 0):
  - plugins/x86-ansi/nsis7z.dll    (i686, non-unicode)
  - plugins/x86-unicode/nsis7z.dll  (i686, unicode)
  - plugins/amd64-unicode/nsis7z.dll (x86_64, unicode)
2026-05-03 01:20:32 +02:00
Simone 0a7ffdff4a ci: rename release zip artifact from -plugins to -bundle 2026-05-03 01:20:20 +02:00
Simone e92e48d7bc build: add 26.01 Windows build script and register in dispatcher
- 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.
2026-05-03 01:20:07 +02:00
Simone e125ea5f9c feat(26.01): add bundle wrapper directory with NSIS sources and vendor symlinks
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.
2026-05-03 01:19:44 +02:00
Simone 6a961306c9 build(linux): introduce overlay makefile infrastructure
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.
2026-05-03 01:19:13 +02:00
Simone 480f93aed5 submodule: add versions/26.01 (ip7z/7zip tag 26.01)
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.
2026-05-03 01:18:47 +02:00
Simone 2491f0eba1 ci: enhance Gitea release workflow to upload assets and handle existing files
Co-authored-by: Copilot <copilot@github.com>
v2.2.2
2026-05-03 00:00:25 +02:00
Simone 0053ce8fcc ci: refactor build and release workflows to streamline DLL handling and packaging 2026-05-02 23:38:02 +02:00
Simone 13787d1af9 ci: enhance release workflow to resolve and validate release tags dynamically 2026-05-02 23:20:00 +02:00
Simone 62e066c754 ci: enhance build and release workflows with improved artifact handling and versioning 2026-05-02 23:13:58 +02:00
Simone e4362a3d02 ci: remove temporary gitea-only dispatch mode 2026-05-02 22:34:19 +02:00
Simone 3c87501c40 ci: set explicit User-Agent for Gitea API calls 2026-05-02 22:32:36 +02:00
Simone 68d949aa5b ci: fix sync-gitea-only job nesting and YAML structure 2026-05-02 22:30:53 +02:00
Simone da6bf4fd04 ci: make gitea_only workflow_dispatch input boolean 2026-05-02 22:29:05 +02:00
Simone f973bf3107 ci: add workflow_dispatch gitea-only mode for release body sync 2026-05-02 22:23:06 +02:00
Simone 4f4508ccc3 ci: harden Gitea release sync auth diagnostics and upsert flow 2026-05-02 22:21:08 +02:00
Simone 84125ef688 ci: do not fail release when Gitea token lacks permissions 2026-05-02 22:19:56 +02:00
Simone c10249d171 ci: handle missing Gitea release when syncing release body 2026-05-02 22:07:13 +02:00
Simone 576706dc17 ci: fix release workflow YAML syntax for publish job 2026-05-02 21:56:02 +02:00
Simone b5d635d96f chore: release v2.2.2
- Release workflow extracts CHANGELOG section as GitHub/Gitea release body
- All GitHub Actions upgraded to node24-native versions
- tools/update_gitea_releases.py for backfilling existing Gitea releases
- tools/release-notes/ per-version Markdown snippets
2026-05-02 21:54:01 +02:00
Simone 00263ec4ba docs: update repository structure and CI/release workflow section
- 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
2026-05-02 21:54:01 +02:00
Simone 6e91c0ac31 tools: add update_gitea_releases.py and release-notes snippets
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.
2026-05-02 21:54:01 +02:00
Simone df1e68b378 ci: update Gitea release body with CHANGELOG section on publish 2026-05-02 21:47:29 +02:00
Simone e39129c300 ci: upgrade actions to node24-native versions, release notes from CHANGELOG
- 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)
2026-05-02 21:22:17 +02:00
Simone e64386ebe5 docs: align README_IT with 2.2.0 Linux build path 2026-05-02 21:12:10 +02:00
Simone cda44e07a8 release: cut v2.2.1 v2.2.1 2026-05-02 20:50:36 +02:00
Simone 0faf0fb360 ci: add Linux jobs to build and release workflows v2.2.0 2026-05-02 20:06:58 +02:00
Simone 9be53c7e22 fix: correct remaining Windows build script f-strings 2026-05-02 20:01:01 +02:00
Simone d80b025219 feat: add Linux MinGW build path and Windows build-script fixes (v2.2.0) 2026-05-02 19:56:28 +02:00
Simone 91fe17cda2 feat: add color and spinner to legacy build scripts 2026-04-30 23:12:42 +02:00
Simone 4b12e21dd4 chore: release v2.1.0 v2.1.0 2026-04-30 22:25:32 +02:00
Simone e402720a12 Add NSIS plugin support and extraction functionality
- 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.
2026-04-30 17:27:38 +02:00
Simone 5e738d749b chore: release v2.0.1 v2.0.1 2026-04-29 21:54:26 +02:00
Simone 5cfade0df1 fix: use detected VS toolset in build_plugin_2600 (v143 fallback for VS2022 CI) 2026-04-29 21:51:16 +02:00
Simone ce9e40d2b6 ci: use --verbosity normal to show build errors 2026-04-29 21:47:50 +02:00
Simone 2b01cf9e75 ci: add --verbosity minimal to build step 2026-04-29 21:47:12 +02:00
Simone 505d5cf158 fix UnicodeEncodeError in build summary (replace checkmarks with ASCII) 2026-04-29 21:45:10 +02:00
Simone 3298293474 restore tools/legacy build scripts and fix CI workflow 2026-04-29 21:42:26 +02:00
Simone 52513bb1c9 docs: add bilingual README (EN/IT) 2026-04-29 15:17:33 +02:00
Simone 940a8d6c7c docs: add build options to README 2026-04-29 15:01:25 +02:00
Simone d074cc7c07 chore: initial commit (extracted from Launchers monorepo)
Plugin: ns7zip v2.0.0
Architectures: x86-ansi, x86-unicode, amd64-unicode
License: LGPL-2.1-or-later
v2.0.0
2026-04-29 14:07:51 +02:00