fix(build): re-source the PKGBUILD to update changed values

During certain operations like --edit, --pkgver etc the PKGBUILD
may change since last sourced. If a modified checksum of the PKGBUILD
is detected, re-source it before processing.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
This commit is contained in:
Levente Polyak 2024-01-03 16:21:40 +01:00
parent ef04960b98
commit e413b65df3
No known key found for this signature in database
GPG Key ID: FC1B547C8D8172C8
1 changed files with 8 additions and 1 deletions

View File

@ -134,7 +134,7 @@ pkgctl_build() {
local WORKER_SLOT=
# variables
local _arch path pkgbase pkgrepo source
local _arch path pkgbase pkgrepo source pkgbuild_checksum
while (( $# )); do
case $1 in
@ -311,6 +311,7 @@ pkgctl_build() {
. ./PKGBUILD
pkgbase=${pkgbase:-$pkgname}
pkgrepo=${REPO}
pkgbuild_checksum=$(b2sum PKGBUILD | awk '{print $1}')
msg "Building ${pkgbase}"
# auto-detection of build target
@ -412,6 +413,12 @@ pkgctl_build() {
updpkgsums
fi
# re-source the PKGBUILD if it changed
if [[ ${pkgbuild_checksum} != "$(b2sum PKGBUILD | awk '{print $1}')" ]]; then
# shellcheck source=contrib/makepkg/PKGBUILD.proto
. ./PKGBUILD
fi
# execute build
for arch in "${BUILD_ARCH[@]}"; do
if [[ -n $arch ]]; then