7zip-dark: Add version 26.00-v0.48.0#2779
7zip-dark: Add version 26.00-v0.48.0#2779ChenXu-Huang wants to merge 3 commits intoScoopInstaller:masterfrom
Conversation
|
Your changes did not pass all checks. Please address the issues in the manifest and comment starting with 7zip-dark
|
WalkthroughAdds a new static bucket manifest Changes
Sequence Diagram(s)sequenceDiagram
participant Manifest as Installer (manifest)
participant GH as GitHub Releases
participant Base as 7-zip.org
participant FS as File System
participant Reg as Registry Scripts
Manifest->>GH: download Dark7zip ZIP (contains patch.dl)
Manifest->>Base: download base 7-Zip artifact (MSI/7zr/7z.exe)
GH->>FS: provide patch.dl inside ZIP
Base->>FS: provide base EXE/MSI
Manifest->>FS: extract base EXE and patch.dl
Manifest->>FS: run 7z.exe to apply patch.dl into install root
Manifest->>FS: remove temporary artifacts (patch.dl, temp EXEs)
Manifest->>Reg: read script templates, substitute install root (and HKLM if $global)
Manifest->>FS: write updated reg files as ASCII and create shortcut/binaries
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@bucket/7zip-dark.json`:
- Line 42: The Remove-Item command string "Remove-Item \"$dir\\Uninstall.exe\",
\"$dir\\7z2600-arm64.exe\", \"$dir\\patch.dl\", $7zr -Force" can fail if files
are missing; make cleanup tolerant by adding -ErrorAction SilentlyContinue to
the Remove-Item invocation or wrap each path with a Test-Path guard before
removal so missing artifacts don't cause the installer to fail; update the
command string in the JSON entry accordingly.
- Around line 29-42: The pre_install step currently downloads and runs an
unchecked 7zr.exe (see $7zr, Join-Path, Invoke-WebRequest) which bypasses
manifest hashing; instead add the 7zr.exe asset to the manifest's "url" and add
its SHA256 to the "hash" array so the installer fetches a pinned, verified
binary, then remove the Invoke-WebRequest line and modify pre_install to
reference the already-declared asset path ($7zr or the asset filename in $dir)
so Invoke-ExternalCommand runs only the manifest-verified 7zr.exe.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 4c8848eb-f2ff-4144-be56-86374dfb8ea2
📒 Files selected for processing (1)
bucket/7zip-dark.json
| "url": [ | ||
| "https://www.7-zip.org/a/7z2600-arm64.exe", | ||
| "https://github.com/ozone10/7zip-Dark7zip/releases/download/v26.00-v0.48.0/7z26.00-v0.48.0-arm64.zip#/patch.dl" | ||
| ], | ||
| "hash": [ | ||
| "92fac666911336f3bbf3d99fdc48ec36fe20ac7a4200556936e61a8076ae6493", | ||
| "99db92902d7be8cfaec9e67fb072fbef33f624d14864519dda388c5da309ba37" | ||
| ], | ||
| "pre_install": [ | ||
| "$7zr = Join-Path $env:TMP '7zr.exe'", | ||
| "Invoke-WebRequest https://www.7-zip.org/a/7zr.exe -OutFile $7zr", | ||
| "Invoke-ExternalCommand $7zr @('x', \"$dir\\7z2600-arm64.exe\", \"-o$dir\", '-y') | Out-Null", | ||
| "Invoke-ExternalCommand \"$dir\\7z.exe\" @('x', \"$dir\\patch.dl\", \"-o$dir\", '-y') | Out-Null", | ||
| "Remove-Item \"$dir\\Uninstall.exe\", \"$dir\\7z2600-arm64.exe\", \"$dir\\patch.dl\", $7zr -Force" |
There was a problem hiding this comment.
Do not download and execute 7zr.exe at install time.
At Line 39/40, the script fetches and executes a binary that is outside manifest hash verification. This is a supply-chain and reproducibility risk.
🔧 Proposed fix (pin `7zr.exe` in manifest + hash it)
"arm64": {
"url": [
"https://www.7-zip.org/a/7z2600-arm64.exe",
- "https://github.com/ozone10/7zip-Dark7zip/releases/download/v26.00-v0.48.0/7z26.00-v0.48.0-arm64.zip#/patch.dl"
+ "https://github.com/ozone10/7zip-Dark7zip/releases/download/v26.00-v0.48.0/7z26.00-v0.48.0-arm64.zip#/patch.dl",
+ "https://www.7-zip.org/a/7zr.exe#/7zr.exe"
],
"hash": [
"92fac666911336f3bbf3d99fdc48ec36fe20ac7a4200556936e61a8076ae6493",
- "99db92902d7be8cfaec9e67fb072fbef33f624d14864519dda388c5da309ba37"
+ "99db92902d7be8cfaec9e67fb072fbef33f624d14864519dda388c5da309ba37",
+ "<sha256-of-7zr.exe>"
],
"pre_install": [
- "$7zr = Join-Path $env:TMP '7zr.exe'",
- "Invoke-WebRequest https://www.7-zip.org/a/7zr.exe -OutFile $7zr",
+ "$7zr = Join-Path $dir '7zr.exe'",
"Invoke-ExternalCommand $7zr @('x', \"$dir\\7z2600-arm64.exe\", \"-o$dir\", '-y') | Out-Null",
"Invoke-ExternalCommand \"$dir\\7z.exe\" @('x', \"$dir\\patch.dl\", \"-o$dir\", '-y') | Out-Null",
"Remove-Item \"$dir\\Uninstall.exe\", \"$dir\\7z2600-arm64.exe\", \"$dir\\patch.dl\", $7zr -Force"
]
}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@bucket/7zip-dark.json` around lines 29 - 42, The pre_install step currently
downloads and runs an unchecked 7zr.exe (see $7zr, Join-Path, Invoke-WebRequest)
which bypasses manifest hashing; instead add the 7zr.exe asset to the manifest's
"url" and add its SHA256 to the "hash" array so the installer fetches a pinned,
verified binary, then remove the Invoke-WebRequest line and modify pre_install
to reference the already-declared asset path ($7zr or the asset filename in
$dir) so Invoke-ExternalCommand runs only the manifest-verified 7zr.exe.
| "Invoke-WebRequest https://www.7-zip.org/a/7zr.exe -OutFile $7zr", | ||
| "Invoke-ExternalCommand $7zr @('x', \"$dir\\7z2600-arm64.exe\", \"-o$dir\", '-y') | Out-Null", | ||
| "Invoke-ExternalCommand \"$dir\\7z.exe\" @('x', \"$dir\\patch.dl\", \"-o$dir\", '-y') | Out-Null", | ||
| "Remove-Item \"$dir\\Uninstall.exe\", \"$dir\\7z2600-arm64.exe\", \"$dir\\patch.dl\", $7zr -Force" |
There was a problem hiding this comment.
Make cleanup tolerant to missing artifacts.
Line 42 can fail if any listed file is absent after upstream packaging changes. Add -ErrorAction SilentlyContinue (or guard with Test-Path) to keep install resilient.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@bucket/7zip-dark.json` at line 42, The Remove-Item command string
"Remove-Item \"$dir\\Uninstall.exe\", \"$dir\\7z2600-arm64.exe\",
\"$dir\\patch.dl\", $7zr -Force" can fail if files are missing; make cleanup
tolerant by adding -ErrorAction SilentlyContinue to the Remove-Item invocation
or wrap each path with a Test-Path guard before removal so missing artifacts
don't cause the installer to fail; update the command string in the JSON entry
accordingly.
|
/verify |
|
Your changes did not pass all checks. Please address the issues in the manifest and comment starting with 7zip-dark
|
|
This is a known longstanding issue. The servers at |
This PR adds a new manifest for 7-Zip-Dark, a patched version of 7-Zip that supports native Dark Mode.
Relates to main/7zip
7zip-dark@26.00-v0.48.0: initial releaseSummary by CodeRabbit