Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=1dc7b61221be75cfd824ccdcd25cfa5d2999587d

commit 1dc7b61221be75cfd824ccdcd25cfa5d2999587d
Author: Michel Hermier <[email protected]>
Date:   Sat Nov 24 06:39:10 2012 +0100

scripts/makepkg

* Move build script loading and validation to a single function.

diff --git a/scripts/makepkg b/scripts/makepkg
index 6c6435c..7635777 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -567,7 +567,33 @@ fakeroot_enter() {
fi
}

-buildscript_validate() {
+buildscript_load() {
+       if [ ! -f "$BUILDSCRIPT" ]; then
+               error "$BUILDSCRIPT does not exist."
+               exit 1
+       fi
+
+       local i
+
+       # You have to declare associative array before using them :/
+       declare -A \
+               _P_package_descriptions \
+               _P_package_licenses \
+               _P_package_replaces \
+               _P_package_groups \
+               _P_package_depends \
+               _P_package_rodepends \
+               _P_package_removes \
+               _P_package_conflicts \
+               _P_package_provides \
+               _P_package_backups \
+               _P_package_installs \
+               _P_package_options \
+               _P_package_archs \
+               _P_package_archives
+
+       source ./$BUILDSCRIPT
+
if [ "`type -p fblint`" ]; then
if ! fblint -p "$BUILDSCRIPT" &>/dev/null; then
warning "fblint says some needed variables are missing or incomplete."
@@ -645,6 +671,75 @@ buildscript_validate() {
exit 1
fi
fi
+
+       # Compatibility adaptation
+       if [ "${#_P_package_names[@]}" -eq 0 ]; then
+               _P_options="${options[*]}"
+
+               _P_package_names=("${pkgname}" "${subpkgs[@]}")
+               _P_package_descriptions["${pkgname}"]="${pkgdesc}"
+               for i in "${pkgdesc_localized[@]}"; do
+                       _P_package_descriptions["${pkgname}"]+="$($ECHO -en 
"\n$i")"
+               done
+               _P_package_licenses["${pkgname}"]="${license[*]}"
+               _P_package_replaces["${pkgname}"]="${replaces[*]}"
+               _P_package_groups["${pkgname}"]="${groups[*]}"
+               _P_package_depends["${pkgname}"]="${depends[*]}"
+               _P_package_rodepends["${pkgname}"]="${rodepends[*]}"
+               _P_package_removes["${pkgname}"]="${removes[*]}"
+               _P_package_conflicts["${pkgname}"]="${conflicts[*]}"
+               _P_package_provides["${pkgname}"]="${provides[*]}"
+               _P_package_backups["${pkgname}"]="${backup[*]}"
+               _P_package_installs["${pkgname}"]="${install}"
+               _P_package_options["${pkgname}"]="${options[*]}"
+               _P_package_archs["${pkgname}"]="${archs[*]}"
+
+               i=0
+               for subpkg in "${subpkgs[@]}"; do
+                       _P_package_descriptions["${subpkg}"]="$($ECHO -en 
"${subdescs[$i]}\n${subdescs_localized[$i]}")"
+                       _P_package_licenses["${subpkg}"]="${sublicense[$i]}"
+                       _P_package_replaces["${subpkg}"]="${subreplaces[$i]}"
+                       _P_package_groups["${subpkg}"]="${subgroups[$i]}"
+                       _P_package_depends["${subpkg}"]="${subdepends[$i]}"
+                       _P_package_rodepends["${subpkg}"]="${subrodepends[$i]}"
+                       _P_package_removes["${subpkg}"]="${subremoves[$i]}"
+                       _P_package_conflicts["${subpkg}"]="${subconflicts[$i]}"
+                       _P_package_provides["${subpkg}"]="${subprovides[$i]}"
+                       _P_package_backups["${subpkg}"]="${subbackup[$i]}"
+                       _P_package_installs["${subpkg}"]="${subinstall[$i]}"
+                       _P_package_options["${subpkg}"]="${suboptions[$i]}"
+                       _P_package_archs["${subpkg}"]="${subarchs[$i]}"
+                       i=$(($i+1))
+               done
+       fi
+
+       # Check _P_package_names on your arch
+       i=0
+       while [ $i -lt ${#_P_package_names[@]} ]; do
+               if in_array $CARCH 
${_P_package_archs["${_P_package_names["$i"]}"]}; then
+                       
_P_package_archives["${_P_package_names["$i"]}"]="${pkgname}-${pkgver}-${pkgrel}-${CARCH}.${PKG_EXT}"
+                       i=$(($i+1))
+               else
+                       warning "Package ${_P_package_names["$i"]} is not 
available on your ARCH, dropping it!"
+                       unset _P_package_names["$i"]
+               fi
+       done
+
+       local pkgname
+       for pkgname in "${_P_package_names[@]}"; do
+               if [ -n "$_P_package_installs["$pkgname"]" ]; then
+                       # FIXME we should allways be in startdir here
+                       if [ ! -e "$install" -a ! -e "$startdir/$install" ] && 
! check_option GENSCRIPTLET; then
+                               error "Missing install scriptlet. If this is 
intentional, add 'genscriptlet' to options()."
+                               exit 1
+                       fi
+               else
+                       if [ -e "${pkgname}.install" ]; then
+                               warning "Automagically found install script for 
$pkgname"
+                               
_P_package_installs["$pkgname"]="${pkgname}.install"
+                       fi
+               fi
+       done
}

buildscript_up2date() {
@@ -1521,6 +1616,7 @@ makepkg_parseargs() {
NOEXTRACT="${NOEXTRACT:-0}"
NOSTRIP="${NOSTRIP:-0}"
NOUP2DATE="${NOUP2DATE:-0}"
+       NOVALIDATE="${NOVALIDATE:-0}"
PACMAN="${PACMAN:-pacman-g2.static}"
PACMAN_OPTS="${PACMAN_OPTS:-}"
RMDEPS="${RMDEPS:-0}"
@@ -1565,8 +1661,6 @@ makepkg_parseargs() {
exit 1
fi
fi
-
-       fi
}

makepkg_prepare_sources() {
@@ -1586,7 +1680,7 @@ makepkg_prepare_sources() {
# chown all source files to root.root
chown -R root.root $startdir/src
fi
-fi
+}

makepkg_build() {
if [ "$NOBUILD" -eq 1 ]; then
@@ -1867,14 +1961,7 @@ if [ ! -z "$DOWNLOAD" -a "$INFAKEROOT" != "1" ]; then
done
fi

-if [ ! -f "$BUILDSCRIPT" ]; then
-       error "$BUILDSCRIPT does not exist."
-       exit 1
-fi
-
-source ./$BUILDSCRIPT
-
-buildscript_validate
+buildscript_load

eval "serverlist=${TREE}_servers"
if [ "$F_makepkg_scm" = "git" -a ! "`check_option NOVERSRC`" ]; then
@@ -1891,81 +1978,6 @@ if [ -z "$CACHEURL" ]; then
CACHEURL="${serverlist}/source/$groups/$pkgname"
fi

-# You have to declare associative array before using them :/
-declare -A \
-       _P_package_descriptions \
-       _P_package_licenses \
-       _P_package_replaces \
-       _P_package_groups \
-       _P_package_depends \
-       _P_package_rodepends \
-       _P_package_removes \
-       _P_package_conflicts \
-       _P_package_provides \
-       _P_package_backups \
-       _P_package_installs \
-       _P_package_options \
-       _P_package_archs \
-       _P_package_archives
-
-# Compatibility adaptation
-if [ "${#_P_package_names[@]}" -eq 0 ]; then
-       _P_options="${options[*]}"
-
-       _P_package_names=("${pkgname}" "${subpkgs[@]}")
-       _P_package_descriptions["${pkgname}"]="${pkgdesc}"
-       for i in "${pkgdesc_localized[@]}"; do
-               _P_package_descriptions["${pkgname}"]+="$($ECHO -en "\n$i")"
-       done
-       _P_package_licenses["${pkgname}"]="${license[*]}"
-       _P_package_replaces["${pkgname}"]="${replaces[*]}"
-       _P_package_groups["${pkgname}"]="${groups[*]}"
-       _P_package_depends["${pkgname}"]="${depends[*]}"
-       _P_package_rodepends["${pkgname}"]="${rodepends[*]}"
-       _P_package_removes["${pkgname}"]="${removes[*]}"
-       _P_package_conflicts["${pkgname}"]="${conflicts[*]}"
-       _P_package_provides["${pkgname}"]="${provides[*]}"
-       _P_package_backups["${pkgname}"]="${backup[*]}"
-       _P_package_installs["${pkgname}"]="${install}"
-       _P_package_options["${pkgname}"]="${options[*]}"
-       _P_package_archs["${pkgname}"]="${archs[*]}"
-
-       i=0
-       for subpkg in "${subpkgs[@]}"; do
-               _P_package_descriptions["${subpkg}"]="$($ECHO -en 
"${subdescs[$i]}\n${subdescs_localized[$i]}")"
-               _P_package_licenses["${subpkg}"]="${sublicense[$i]}"
-               _P_package_replaces["${subpkg}"]="${subreplaces[$i]}"
-               _P_package_groups["${subpkg}"]="${subgroups[$i]}"
-               _P_package_depends["${subpkg}"]="${subdepends[$i]}"
-               _P_package_rodepends["${subpkg}"]="${subrodepends[$i]}"
-               _P_package_removes["${subpkg}"]="${subremoves[$i]}"
-               _P_package_conflicts["${subpkg}"]="${subconflicts[$i]}"
-               _P_package_provides["${subpkg}"]="${subprovides[$i]}"
-               _P_package_backups["${subpkg}"]="${subbackup[$i]}"
-               _P_package_installs["${subpkg}"]="${subinstall[$i]}"
-               _P_package_options["${subpkg}"]="${suboptions[$i]}"
-               _P_package_archs["${subpkg}"]="${subarchs[$i]}"
-               i=$(($i+1))
-       done
-fi
-
-# Check _P_package_names on your arch
-i=0
-while [ $i -lt ${#_P_package_names[@]} ]; do
-       if in_array $CARCH ${_P_package_archs["${_P_package_names["$i"]}"]}; 
then
-               
_P_package_archives["${_P_package_names["$i"]}"]="${pkgname}-${pkgver}-${pkgrel}-${CARCH}.${PKG_EXT}"
-               i=$(($i+1))
-       else
-               warning "Package ${_P_package_names["$i"]} is not available on 
your ARCH, dropping it!"
-               unset _P_package_names["$i"]
-       fi
-done
-
-if [ ! -e "$install" -a ! -e "$startdir/$install" -a ! "`check_option 
GENSCRIPTLET`" ]; then
-       error "Missing install scriptlet. If this is intentional, add 
'genscriptlet' to options()."
-       exit 1
-fi
-
if [ -f "$PKGDEST/${_P_package_archives["${pkgname}"]}" -a "$FORCE" = "0" -a 
"$GENSHA1" = "0" ]; then
if [ "$INSTALL" = "1" ]; then
warning "a package has already been built, installing existing package."
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to