Compare commits

..

1 Commits

Author SHA1 Message Date
Vekhir
6dd555ed1f fix(pkgbuild.sh): Use grep -Fx to check for pkgrel and pkgver declaration
In order to automatically replace pkgrel and pkgver, we must first check
that they are declared in the usual way as a key-value pair.
If pkgrel or pkgver contain special characters like +, they are currently
interpreted as regex. Use --fixed-strings to instead signify that they should
be literal patterns. Since the declaration must be on its own line and anchors
can't be in literal patterns, also specify --line-regexp to only consider
whole line matches.

Using sed with --extended-regexp fails for a similar reason in that the +
is treated as a special character. As it's only use was to save some
typing (not repeating pkgver= and pkgrel=), remove the option.
2025-08-20 14:55:32 +02:00
5 changed files with 9 additions and 20 deletions

View File

@@ -61,7 +61,7 @@ _pkgctl_build_args=(
'--update-checksums[Force computation and update of the checksums (disables auto-detection)]'
'(-e --edit)'{-e,--edit}'[Edit the PKGBUILD before building]'
'(-r --release)'{-r,--release}'[Automatically commit, tag and release after building]'
'(-m --message)'{-m,--message}"[Use the given <msg> as the commit message]:message:"
'(-m --message=)'{-m,--message=}"[Use the given <msg> as the commit message]:message:"
'(-u --db-update)'{-u,--db-update}'[Automatically update the pacman database as last action]'
'(-h --help)'{-h,--help}'[Display usage]'
'*:git_dir:_files -/'
@@ -201,7 +201,7 @@ _pkgctl_issue_view_args=(
)
_pkgctl_release_args=(
'(-m --message)'{-m,--message}"[Use the given <msg> as the commit message]:message:"
'(-m --message=)'{-m,--message=}"[Use the given <msg> as the commit message]:message:"
'(-r --repo)'{-r,--repo}"[Specify a target repository for new packages]:repo:($DEVTOOLS_VALID_REPOS[*])"
'(-s --staging)'{-s,--staging}'[Release to the staging counterpart of the auto-detected repo]'
'(-t --testing)'{-t,--testing}'[Release to the testing counterpart of the auto-detected repo]'

View File

@@ -120,14 +120,6 @@ if (( ${#validpgpkeys[@]} != 0 )); then
git add --force -- keys/pgp/*
fi
# Allow us to disable REUSE
_RUN_REUSE=${_RUN_REUSE:-1}
if ((_RUN_REUSE)); then
reuse download
reuse lint
git add --force -- LICENSES/*
fi
# find files which should be under source control
needsversioning=(PKGBUILD)
for s in "${source[@]}"; do

View File

@@ -42,10 +42,10 @@ pkgctl_build_usage() {
Build packages inside a clean chroot
Build packages in clean chroot environment, offering various options
and functionalities to customize the package building process.
When a new pkgver is set using the appropriate PKGBUILD options the
checksums are automatically updated.
By default, chroot environments are located in /var/lib/archbuild/.
TODO
BUILD OPTIONS
--arch ARCH Specify architectures to build for (disables auto-detection)

View File

@@ -18,9 +18,6 @@ export LANG=C.UTF-8
# Avoid systemd trying to color the terminal on systemd-nspawn
export SYSTEMD_TINT_BACKGROUND=no
# Avoid diffoscope looking at remote debug info through readelf
unset DEBUGINFOD_URLS
# Set buildtool properties
export BUILDTOOL=devtools
export BUILDTOOLVER=@buildtoolver@

View File

@@ -26,10 +26,10 @@ pkgbuild_set_pkgver() {
warning 'setting pkgver variable has no effect if the PKGBUILD has a pkgver() function'
fi
if ! grep --extended-regexp --quiet --max-count=1 "^pkgver=${pkgver}$" PKGBUILD; then
if ! grep --fixed-strings --line-regexp --quiet --max-count=1 "pkgver=${pkgver}" PKGBUILD; then
die "Non-standard pkgver declaration"
fi
sed --regexp-extended "s|^(pkgver=)${pkgver}$|\1${new_pkgver}|g" --in-place PKGBUILD
sed "s|^pkgver=${pkgver}$|pkgver=${new_pkgver}|g" --in-place PKGBUILD
}
# set the pkgrel variable in a PKGBUILD
@@ -38,10 +38,10 @@ pkgbuild_set_pkgrel() {
local new_pkgrel=$1
local pkgrel=${pkgrel}
if ! grep --extended-regexp --quiet --max-count=1 "^pkgrel=${pkgrel}$" PKGBUILD; then
if ! grep --fixed-strings --line-regexp --quiet --max-count=1 "pkgrel=${pkgrel}" PKGBUILD; then
die "Non-standard pkgrel declaration"
fi
sed --regexp-extended "s|^(pkgrel=)${pkgrel}$|\1${new_pkgrel}|g" --in-place PKGBUILD
sed "s|^pkgrel=${pkgrel}$|pkgrel=${new_pkgrel}|g" --in-place PKGBUILD
}
pkgbuild_update_checksums() {