-
Notifications
You must be signed in to change notification settings - Fork 1.5k
gperf: add version 3.1-6 #16426
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
base: master
Are you sure you want to change the base?
gperf: add version 3.1-6 #16426
Conversation
WalkthroughAdds a new manifest Changes
Sequence Diagram(s)sequenceDiagram
participant Maintainer
participant Bucket as "bucket/gperf.json"
participant CI as "Auto-update/Checkver"
participant Mirror as "Download URL"
rect rgb(230, 245, 255)
Maintainer->>Bucket: Add manifest (v3.1-6, metadata, arch blocks)
end
rect rgb(245, 255, 230)
CI->>Bucket: Run checkver (parse PKGBUILD via regex)
CI-->>Maintainer: Report normalized version
CI->>Bucket: Use autoupdate template
CI->>Mirror: Construct arch-specific download URL
Mirror-->>CI: Serve artifact + SHA-256
end
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (5 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🔇 Additional comments (4)
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. gperf
|
|
Duplicates ScoopInstaller/Main#6888. |
I close it |
|
/verify |
|
All changes look good. Wait for review from human collaborators. gperf
|
|
/verify |
|
Your changes did not pass all checks. Please address the issues in the manifest and comment starting with gperf
|
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: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
bucket/gperf.json(1 hunks)
🔇 Additional comments (3)
bucket/gperf.json (3)
1-31: Clarify the status of the duplicate PR issue before merging.The PR objectives note that reviewer aliesbelik flagged this as a duplicate of ScoopInstaller/Main#6888, and you acknowledged this. Verify whether:
- The Main repository PR has been closed/abandoned
- This PR in Extras is the intended location (and the Main PR should be closed)
- Whether this PR should proceed or be consolidated with the Main PR
This should be resolved before approval to prevent duplicate package entries across repositories.
5-5: GNU gperf 3.1 is released under GPL-3 or later, and the SPDX identifier "GPL-3.0-or-later" correctly represents this license. The specified license in the code is accurate and properly aligned with the GNU gperf project's actual licensing.
17-21: Regex pattern verified and working correctly.The checkver regex successfully extracts version
3.1and package release6from the MSYS2 PKGBUILD file, producing the expected combined format3.1-6. No issues detected.
| @@ -0,0 +1,32 @@ | |||
| { | |||
| "version": "3.1-6", | |||
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.
🧩 Analysis chain
Verify version format matches Scoop conventions and MSYS2 package versioning.
The version string "3.1-6" combines the upstream version (3.1) with the MSYS2 package release number (6). Confirm this follows Scoop's versioning practices for packages sourced from pre-built repositories.
Run the following script to verify the MSYS2 repository URLs and hash correctness:
🏁 Script executed:
#!/bin/bash
# Description: Verify MSYS2 URLs are accessible and validate SHA-256 hashes
echo "=== Checking 64-bit URL ==="
if curl -sI "https://repo.msys2.org/msys/x86_64/gperf-3.1-6-x86_64.pkg.tar.zst" | head -1 | grep -q "200\|302"; then
echo "✓ 64-bit URL is accessible"
else
echo "✗ 64-bit URL is not accessible"
fi
echo "=== Checking 32-bit URL ==="
if curl -sI "https://repo.msys2.org/msys/i686/gperf-3.1-6-i686.pkg.tar.zst" | head -1 | grep -q "200\|302"; then
echo "✓ 32-bit URL is accessible"
else
echo "✗ 32-bit URL is not accessible"
fi
echo "=== Validating checkver URL ==="
if curl -sI "https://raw.githubusercontent.com/msys2/MSYS2-packages/master/gperf/PKGBUILD" | head -1 | grep -q "200\|302"; then
echo "✓ checkver URL is accessible"
else
echo "✗ checkver URL is not accessible"
fiLength of output: 170
🏁 Script executed:
#!/bin/bash
# Display the complete bucket/gperf.json file for analysis
echo "=== Contents of bucket/gperf.json ==="
cat bucket/gperf.jsonLength of output: 1224
🌐 Web query:
gperf package license information GNU
💡 Result:
gperf is distributed under the GNU General Public License v3 (GPL‑3.0); package metadata commonly lists it as "GPL-3.0-or-later." [1][2][3]
Sources:
- GNU gperf manual (shows GNU GPL v3). [1]
- MSYS2 package info (License: GPL-3.0-or-later). [2]
- Fedora package page (License(s): GPL-3.0-or-later). [3]
🏁 Script executed:
#!/bin/bash
# Fetch PKGBUILD and test the checkver regex pattern
echo "=== Fetching PKGBUILD ==="
pkgbuild=$(curl -s "https://raw.githubusercontent.com/msys2/MSYS2-packages/master/gperf/PKGBUILD")
echo "=== PKGBUILD content (first 30 lines) ==="
echo "$pkgbuild" | head -30
echo ""
echo "=== Testing checkver regex pattern ==="
# The regex from the manifest
regex='pkgver\s*=\s*([\d.]+)[\s\S]*?pkgrel\s*=\s*([0-9]+)'
if echo "$pkgbuild" | grep -oP "$regex" > /dev/null; then
echo "✓ Regex pattern matches"
# Extract the values
pkgver=$(echo "$pkgbuild" | grep -oP 'pkgver\s*=\s*\K[\d.]+' | head -1)
pkgrel=$(echo "$pkgbuild" | grep -oP 'pkgrel\s*=\s*\K[0-9]+' | head -1)
echo "Extracted pkgver: $pkgver"
echo "Extracted pkgrel: $pkgrel"
echo "Combined version: $pkgver-$pkgrel"
else
echo "✗ Regex pattern does not match"
fiLength of output: 915
🏁 Script executed:
#!/bin/bash
# More detailed regex testing with debugging
echo "=== Testing checkver regex with better debugging ==="
pkgbuild=$(curl -s "https://raw.githubusercontent.com/msys2/MSYS2-packages/master/gperf/PKGBUILD")
# Test simple pattern first
echo "Test 1: Simple pkgver match"
if echo "$pkgbuild" | grep -P "pkgver\s*=\s*[\d.]+"; then
echo "✓ Simple pkgver pattern works"
fi
echo ""
echo "Test 2: Simple pkgrel match"
if echo "$pkgbuild" | grep -P "pkgrel\s*=\s*[0-9]+"; then
echo "✓ Simple pkgrel pattern works"
fi
echo ""
echo "Test 3: Full checkver regex with capture groups"
if echo "$pkgbuild" | grep -oP "pkgver\s*=\s*(\d+\.\d+)[\s\S]*?pkgrel\s*=\s*(\d+)"; then
echo "✓ Full regex matches"
echo "Match found:"
echo "$pkgbuild" | grep -oP "pkgver\s*=\s*(\d+\.\d+)[\s\S]*?pkgrel\s*=\s*(\d+)"
else
echo "✗ Full regex does not match - checkver will fail"
fi
echo ""
echo "Test 4: Extract individual values"
pkgver=$(echo "$pkgbuild" | grep -oP 'pkgver\s*=\s*\K[0-9.]+')
pkgrel=$(echo "$pkgbuild" | grep -oP 'pkgrel\s*=\s*\K[0-9]+')
echo "pkgver extracted: $pkgver"
echo "pkgrel extracted: $pkgrel"
echo "Would produce version: $pkgver-$pkgrel"Length of output: 393
Fix checkver regex pattern - current pattern will not match PKGBUILD.
The regex in the checkver section fails to capture pkgver and pkgrel from the MSYS2 PKGBUILD file. This will prevent autoupdate functionality from working. The individual variables can be extracted with simpler patterns, so use a more reliable regex:
"checkver": {
"url": "https://raw.githubusercontent.com/msys2/MSYS2-packages/master/gperf/PKGBUILD",
"regex": "^pkgver=([\\d.]+).*?^pkgrel=([0-9]+)",
"replace": "$1-$2"
}Alternatively, if the JSON regex engine requires a different approach, verify the exact regex syntax Scoop uses for multiline matching.
🤖 Prompt for AI Agents
In bucket/gperf.json around line 2, the checkver regex is too specific and
doesn't capture pkgver/pkgrel from the MSYS2 PKGBUILD, breaking autoupdate;
replace the current pattern with a multiline-friendly regex that separately
captures pkgver and pkgrel (e.g. use a pattern matching ^pkgver=([\d.]+) and
^pkgrel=([0-9]+) with a DOTALL/multiline-aware approach) and update the replace
to "$1-$2" so checkver returns version-pkgrel; ensure the JSON/engine escaping
is correct for the project's regex flavor.
|
/verify |
|
All changes look good. Wait for review from human collaborators. gperf
|
|
i`m ready |
<manifest-name[@version]|chore>: <general summary of the pull request>Summary by CodeRabbit