From e413b65df3dcddeb94da2defb53ab17ef2a8558d Mon Sep 17 00:00:00 2001 From: Levente Polyak Date: Wed, 3 Jan 2024 16:21:40 +0100 Subject: 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 --- src/lib/build/build.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/build/build.sh b/src/lib/build/build.sh index a19dd37..5276653 100644 --- a/src/lib/build/build.sh +++ b/src/lib/build/build.sh @@ -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 -- cgit v1.2.3-54-g00ecf