diff --git a/doc/PKGBUILD.5.asciidoc b/doc/PKGBUILD.5.asciidoc index 1cd31f73..134f25f9 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 @@ -351,7 +351,8 @@ function. An optional `verify()` function can be specified to implement arbitrary source authentication. The function should return a non-zero exit code when verification fails. This function is run before sources are extracted. - This function is run inside `$startdir`. + This function is run inside `$SRCDEST`, if set, otherwise the same + directory as the PKGBUILD. *prepare() Function*:: An optional `prepare()` function can be specified in which operations to diff --git a/scripts/libmakepkg/util/source.sh.in b/scripts/libmakepkg/util/source.sh.in index 1a726384..afa0290e 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" diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 820d068f..c7872dfe 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -450,7 +450,7 @@ run_function() { } run_verify() { - run_function_safe "verify" "$startdir" + run_function_safe "verify" "$SRCDEST" } run_prepare() {