-
Notifications
You must be signed in to change notification settings - Fork 1.5k
foxit(-pdf)-reader: Update to version 2025.2.1, split 32/64-bit, fix installation #16126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
foxit(-pdf)-reader: Update to version 2025.2.1, split 32/64-bit, fix installation #16126
Conversation
WalkthroughVersion bumps to 2025.2.1 for two Scoop manifests; top-level Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Scoop as Scoop
participant Manifest as foxit-*-reader.json
participant CDN as Foxit CDN
participant System as Windows FS
User->>Scoop: scoop install foxit-*-reader
Scoop->>Manifest: Read version, architecture (64bit/32bit), installer.script
alt 64bit requested
Scoop->>CDN: Download 64-bit installer (URL from architecture.64bit)
else 32bit requested
Scoop->>CDN: Download 32-bit installer (URL from architecture.32bit)
end
Scoop->>System: Verify hash
Scoop->>System: Run installer.script
rect rgb(235,245,255)
note right of Scoop: Installer script extracts MSI and relocates files
Scoop->>System: Extract container (7z / Expand)
Scoop->>System: Invoke msiexec to expand MSI payload
Scoop->>System: Move files into install dir
Scoop->>System: Remove temporary extraction artifacts
end
Scoop-->>User: Installation completed
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (2)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
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 |
|
All changes look good. Wait for review from human collaborators. foxit-pdf-reader
foxit-reader
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
bucket/foxit-pdf-reader.json (1)
16-23: Installer script works; add -Force and guard for path robustness.
- Add -Force to Move-Item to avoid failures on existing files during reinstall.
- Consider validating the MSI path in AttachedContainer as it can change across minor releases.
Apply:
- "Move-Item \"$dir\\extracted\\msi\\Foxit Software\\Foxit PDF Reader\\*\" \"$dir\"", + "Move-Item \"$dir\\extracted\\msi\\Foxit Software\\Foxit PDF Reader\\*\" \"$dir\" -Force",Optional robustness:
$msi = Get-ChildItem "$dir\extracted\AttachedContainer" -Filter *.msi | Select-Object -First 1 if (-not $msi) { throw 'Foxit MSI not found in AttachedContainer' } Expand-MsiArchive $msi.FullName "$dir\extracted\msi"bucket/foxit-reader.json (1)
16-23: Installer script parity maintained; add -Force to Move-Item.Keep both manifests identical here to avoid drift.
Apply:
- "Move-Item \"$dir\\extracted\\msi\\Foxit Software\\Foxit PDF Reader\\*\" \"$dir\"", + "Move-Item \"$dir\\extracted\\msi\\Foxit Software\\Foxit PDF Reader\\*\" \"$dir\" -Force",
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
bucket/foxit-pdf-reader.json(2 hunks)bucket/foxit-reader.json(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Gitoffthelawn
PR: ScoopInstaller/Extras#16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
Learnt from: Gitoffthelawn
PR: ScoopInstaller/Extras#16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format.
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: PullRequestHandler
🔇 Additional comments (10)
bucket/foxit-pdf-reader.json (5)
3-3: Version bump looks correct.No schema issues with the updated version field.
41-41: Regex captures version and filename correctly.The named groups align with autoupdate’s $matchFname usage.
43-49: Autoupdate architecture block is correct and consistent with checkver regex.Good use of $version and $matchFname under 64bit.
10-15: Verify SHA256 hash for 64-bit URL
The URL pattern aligns with Foxit’s latest redirect style. Please download the EXE and compare its SHA256 to avoid integrity mismatches.Linux/macOS:
u='https://www.foxit.com/downloads/latest.html?product=Foxit-Reader&platform=Windows&language=ML' location=$(curl -sI "$u" | grep -i '^Location:' | awk '{print $2}' | tr -d '\r') curl -L -o foxit.exe "$location" sha256sum foxit.exe | awk '{print $1}' rm foxit.exeWindows PowerShell:
$u='https://www.foxit.com/downloads/latest.html?product=Foxit-Reader&platform=Windows&language=ML' $r=Invoke-WebRequest $u -MaximumRedirection 0 -ErrorAction SilentlyContinue $dl=$r.Headers.Location $dst="$env:TEMP\foxit.exe" Invoke-WebRequest $dl -OutFile $dst (Get-FileHash $dst -Algorithm SHA256).Hash Remove-Item $dst -ForceEnsure the computed hash matches
31db3256b8f5ec55ec9bc5a278a03c938802ed17a61fe6394e196e5fa4fed1bd.
33-39: Verify ML redirect URL formatRun this to capture the first redirect and ensure it ends with …/win//FoxitPDFReader_L10N_Setup_Prom_x64.exe:
curl -s -D - -o /dev/null 'https://www.foxit.com/downloads/latest.html?product=Foxit-Reader&platform=Windows&language=ML' | grep -i '^Location:'Confirm the Location header matches your regex for future releases.
bucket/foxit-reader.json (5)
3-3: Version bump mirrors foxit-pdf-reader; in sync.Keeping both manifests aligned matches the inline guidance.
10-15: Architecture migration OK; confirm the hash matches the redirected payload.Same verification steps as the sibling manifest apply.
Reuse the PowerShell snippet from foxit-pdf-reader.json to confirm Location and SHA256.
33-39: checkver logic consistent; confirm ML redirect against regex.Same stability check recommended.
Use the same PowerShell snippet to print the Location header and compare against the regex.
41-41: Regex is compatible with current filename (…L10N…_x64.exe).No issues spotted.
43-49: Autoupdate block matches the new structure.Good.
|
GitHub Copliot Analysis:
Solution: Code Suggestion: echo >> my_bucket/bucket/foxit-pdf-reader.json
echo >> my_bucket/bucket/foxit-reader.jsonThen, commit and push your changes. Summary: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
♻️ Duplicate comments (2)
bucket/foxit-pdf-reader.json (2)
10-15: Mirror of foxit-reader: verify “Prom” L10N asset and cross-file parity.
Same concerns as the sibling manifest. Keep both files byte-identical where applicable.Use the script provided in foxit-reader.json comments to validate redirect and diff the two files.
33-38: Checkver change mirrors foxit-reader; verify redirect + regex match.Use the same curl-based verification script from the other file.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
bucket/foxit-pdf-reader.json(2 hunks)bucket/foxit-reader.json(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: Gitoffthelawn
PR: ScoopInstaller/Extras#16106
File: bucket/czkawka-gui.json:25-25
Timestamp: 2025-09-05T09:41:52.653Z
Learning: For czkawka-gui manifests in Scoop Extras, the correct upstream filename pattern for Windows GUI builds in recent versions uses "gtk46" (without underscore), not "gtk_46" (with underscore). The autoupdate URL should use "windows_czkawka_gui_gtk46.zip" format. This was confirmed by a working 10.0.0 update with valid hash.
🔇 Additional comments (8)
bucket/foxit-reader.json (5)
3-3: Version bump looks good.
44-48: Autoupdate architecture mapping LGTM.
50-51: Action: re-run trailing-newline check (od not available in environment)CI flagged missing trailing newline in both manifests; prior script failed because od is not installed — run this Python check and then append a newline if any file is missing it.
python3 - <<'PY' files=["bucket/foxit-reader.json","bucket/foxit-pdf-reader.json"] for f in files: try: b=open(f,'rb').read() except Exception as e: print(f"{f} -> error: {e}") continue if not b: print(f"{f} -> empty") else: print(f"{f} -> last byte: {b[-1]} (10 means newline)") PYIf a file is missing a trailing newline, run:
printf '\n' >> bucket/foxit-reader.json
printf '\n' >> bucket/foxit-pdf-reader.json
10-15: Validate “Prom” L10N asset choice and keep both manifests in perfect sync.
HEAD check of the Foxit download page returned no resolved redirect (empty Location); local diff against bucket/foxit-pdf-reader.json produced no differences. Confirm that L10N_Setup_Prom_x64.exe is the intended multilingual/promotional Reader build and that url+hash remain byte-identical in both manifests; to verify upstream run: curl -sSLI 'https://www.foxit.com/downloads/latest.html?product=Foxit-Reader&platform=Windows&language=ML' and curl -sI and compare checksums.
33-38: Checkver change to language=ML and SkipHttpErrorCheck — redirect + regex verified.
GET/redirect resolves to https://cdn01.foxitsoftware.com/product/reader/desktop/win/2025.2.0/FoxitPDFReader20252_L10N_Setup_Prom_x64.exe which matches /win/([0-9.]+)/([^/]+.exe)$ and FoxitPDFReader.*.exe, so $matchFname will be captured.bucket/foxit-pdf-reader.json (3)
3-3: Version bump looks good.
44-48: Autoupdate architecture mapping LGTM.
50-51: Ensure trailing newline at EOF.
Address CI warning if still present.See the EOF check script in the sibling file.
|
/verify |
|
All changes look good. Wait for review from human collaborators. foxit-pdf-reader
foxit-reader
|
z-Fng
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
| "script": [ | ||
| "# Lessmsi cannot handle .msp patches correctly in this case. So we use msiexec to extract the files.", | ||
| "Expand-7zipArchive \"$dir\\$fname\" \"$dir\\msi\" -ExtractDir '.rsrc\\1033\\PAYLOAD' -Removal", | ||
| "$succ = Invoke-ExternalCommand msiexec -ArgumentList @('/a', \"$dir\\msi\\500\", '/p', \"$dir\\msi\\700\", '/qn', \"TARGETDIR=$dir\\extracted\") -LogPath \"$dir\\install.log\"", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Temporary workaround. Needs updating when the next version is released.
Changes
Closes #16118
<manifest-name[@version]|chore>: <general summary of the pull request>Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Chores