diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/makepkg.sh.in | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 6ebfac0e..a2d9c837 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1194,36 +1194,37 @@ install_package() { check_sanity() { # check for no-no's in the build script local i + local ret=0 for i in 'pkgname' 'pkgrel' 'pkgver'; do if [[ -z ${!i} ]]; then error "$(gettext "%s is not allowed to be empty.")" "$i" - return 1 + ret=1 fi done for i in "${pkgname[@]}"; do if [[ ${i:0:1} = "-" ]]; then error "$(gettext "%s is not allowed to start with a hyphen.")" "pkgname" - return 1 + ret=1 fi done if [[ ${pkgbase:0:1} = "-" ]]; then error "$(gettext "%s is not allowed to start with a hyphen.")" "pkgbase" - return 1 + ret=1 fi - if [[ $pkgver != ${pkgver//-/} ]]; then - error "$(gettext "%s is not allowed to contain hyphens.")" "pkgver" - return 1 + if [[ $pkgver =~ [:-] ]]; then + error "$(gettext "%s is not allowed to contain colons or hyphens.")" "pkgver" + ret=1 fi if [[ $pkgrel != ${pkgrel//-/} ]]; then error "$(gettext "%s is not allowed to contain hyphens.")" "pkgrel" - return 1 + ret=1 fi if [[ ! $epoch =~ ^[0-9]*$ ]]; then error "$(gettext "%s must be an integer.")" "epoch" - return 1 + ret=1 fi if [[ $arch != 'any' ]]; then @@ -1232,7 +1233,7 @@ check_sanity() { error "$(gettext "%s is not available for the '%s' architecture.")" "$pkgbase" "$CARCH" plain "$(gettext "Note that many packages may need a line added to their %s")" "$BUILDSCRIPT" plain "$(gettext "such as arch=('%s').")" "$CARCH" - return 1 + ret=1 fi fi fi @@ -1242,7 +1243,7 @@ check_sanity() { for i in ${provides_list[@]}; do if [[ $i != ${i//</} || $i != ${i//>/} ]]; then error "$(gettext "Provides array cannot contain comparison (< or >) operators.")" - return 1 + ret=1 fi done @@ -1251,7 +1252,7 @@ check_sanity() { for i in "${backup_list[@]}"; do if [[ ${i:0:1} = "/" ]]; then error "$(gettext "Backup entry should not contain leading slash : %s")" "$i" - return 1 + ret=1 fi done @@ -1272,7 +1273,7 @@ check_sanity() { eval file=${file} if [[ ! -f $file ]]; then error "$(gettext "%s file (%s) does not exist.")" "$i" "$file" - return 1 + ret=1 fi done done @@ -1294,14 +1295,14 @@ check_sanity() { fi done if (( ! valid_options )); then - return 1 + ret=1 fi if (( ${#pkgname[@]} > 1 )); then for i in ${pkgname[@]}; do if ! declare -f package_${i} >/dev/null; then error "$(gettext "missing package function for split package '%s'")" "$i" - return 1 + ret=1 fi done fi @@ -1309,11 +1310,11 @@ check_sanity() { for i in ${PKGLIST[@]}; do if ! in_array $i ${pkgname[@]}; then error "$(gettext "requested package %s is not provided in %s")" "$i" "$BUILDFILE" - return 1 + ret=1 fi done - return 0 + return $ret } devel_check() { @@ -1838,6 +1839,8 @@ if (( GENINTEG )); then exit 0 # $E_OK fi +pkgbase=${pkgbase:-${pkgname[0]}} + # check the PKGBUILD for some basic requirements check_sanity || exit 1 @@ -1868,8 +1871,6 @@ elif [[ $SPLITPKG -eq 0 ]] && declare -f package_${pkgname} >/dev/null; then SPLITPKG=1 fi -pkgbase=${pkgbase:-${pkgname[0]}} - if [[ -n "${PKGLIST[@]}" ]]; then unset pkgname pkgname=("${PKGLIST[@]}") |