From 6b1fcc6030c787c94d2b1529978c30a5b59a6bf8 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Wed, 19 Mar 2025 21:17:26 +0100 Subject: [PATCH] libmakepkg: Always look in SRCDEST for sources, never startdir Otherwise `verify()` would have to replicate the behavior of `get_filepath` for each source it wants to check, and test both `$startdir` and `$SRCDEST`. --- doc/PKGBUILD.5.asciidoc | 12 ++++++------ scripts/libmakepkg/util/source.sh.in | 22 +++------------------- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/doc/PKGBUILD.5.asciidoc b/doc/PKGBUILD.5.asciidoc index 9e2c36fa..775ad021 100644 --- a/doc/PKGBUILD.5.asciidoc +++ b/doc/PKGBUILD.5.asciidoc @@ -102,12 +102,12 @@ systems (see below). *source (array)*:: An array of source files required to build the package. Source files - must either reside in the same directory as the PKGBUILD, or be a - fully-qualified URL that makepkg can use to download the file. - To simplify the maintenance of PKGBUILDs, use the `$pkgname` and `$pkgver` - variables when specifying the download location, if possible. - Compressed files will be extracted automatically unless found in the - noextract array described below. + must either reside in `$SRCDEST` (if set, otherwise the same directory + as the PKGBUILD) or be a fully-qualified URL that makepkg can use to + download the file. To simplify the maintenance of PKGBUILDs, use the + `$pkgname` and `$pkgver` variables when specifying the download + location, if possible. Compressed files will be extracted automatically + unless found in the noextract array described below. + Additional architecture-specific sources can be added by appending an underscore and the architecture name e.g., 'source_x86_64=()'. There must be a diff --git a/scripts/libmakepkg/util/source.sh.in b/scripts/libmakepkg/util/source.sh.in index 894dc25e..cbd5351f 100644 --- a/scripts/libmakepkg/util/source.sh.in +++ b/scripts/libmakepkg/util/source.sh.in @@ -90,28 +90,12 @@ get_filename() { # Return the absolute filename of a source entry get_filepath() { - local file="$(get_filename "$1")" + local file="$SRCDEST/$(get_filename "$1")" local proto="$(get_protocol "$1")" case $proto in - bzr|git|hg|svn) - if [[ -d "$startdir/$file" ]]; then - file="$startdir/$file" - elif [[ -d "$SRCDEST/$file" ]]; then - file="$SRCDEST/$file" - else - return 1 - fi - ;; - *) - if [[ -f "$startdir/$file" ]]; then - file="$startdir/$file" - elif [[ -f "$SRCDEST/$file" ]]; then - file="$SRCDEST/$file" - else - return 1 - fi - ;; + bzr|git|hg|svn) [[ -d $file ]] || return 1 ;; + *) [[ -f $file ]] || return 1 ;; esac printf "%s\n" "$file"