Compare commits

...

3 Commits

Author SHA1 Message Date
Ivan Shapovalov
2b2d224776 Merge branch 'work/fix-pkgctl-version-upgrade' into 'master'
fix(pkgctl): handle pkgver values containing regex metacharacters

See merge request archlinux/devtools!311
2025-08-10 23:36:19 +00:00
Aaron Liu
3f0ebbc6d2 fix(license): add .gitignore to REUSE defaults
36 packages use this while 26 use *.pam and 21 use *.logrotate. Seems
anecdotally common enough to add this here.
2025-08-08 14:13:32 +02:00
Ivan Shapovalov
0f925322e5 fix(pkgctl): handle pkgver values containing regex metacharacters
`pkgbuild_set_pkgver()` used the value of `$pkgver` directly in regular
expressions, which breaks if said value happens to contain e.g. a `+`.
Fix this by escaping all possible regex metacharacters in `$pkgver`.
2025-04-11 20:25:18 +07:00
2 changed files with 8 additions and 0 deletions

View File

@@ -188,6 +188,7 @@ path = [
"README.md", "README.md",
"keys/**", "keys/**",
".SRCINFO", ".SRCINFO",
".gitignore",
".nvchecker.toml", ".nvchecker.toml",
"*.install", "*.install",
"*.sysusers", "*.sysusers",

View File

@@ -14,6 +14,11 @@ source /usr/share/makepkg/util/schema.sh
set -eo pipefail set -eo pipefail
# escapes regex metacharacters in a given string
_escape_pkgver() {
# shellcheck disable=SC2001
sed 's:[\^.\[$()|*+?{\\]:\\&:g' <<<"$1"
}
# set the pkgver variable in a PKGBUILD # set the pkgver variable in a PKGBUILD
# assumes that the pkgbuild is sourced to detect the presence of a pkgver function # assumes that the pkgbuild is sourced to detect the presence of a pkgver function
@@ -21,6 +26,8 @@ pkgbuild_set_pkgver() {
local new_pkgver=$1 local new_pkgver=$1
local pkgver=${pkgver} local pkgver=${pkgver}
pkgver="$(_escape_pkgver "${pkgver}")"
if [[ $(type -t pkgver) == function ]]; then if [[ $(type -t pkgver) == function ]]; then
# TODO: check if die or warn, if we provide _commit _gitcommit setter maybe? # TODO: check if die or warn, if we provide _commit _gitcommit setter maybe?
warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function' warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function'