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

commit f0eaebf670aec73d71de8ad2d2e237ba76600133
Author: Michel Hermier <[email protected]>
Date:   Tue Dec 4 14:19:14 2012 +0100

scripts/makepkg

* Constify some variables in makepkg_buildscript.
* Some fixes.

diff --git a/scripts/makepkg b/scripts/makepkg
index 60e4ecb..183e28c 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -893,6 +893,8 @@ cache_clean() {
}

buildenv_depends_validate() {
+       local i
+
if [ "$NODEPS" -eq 1 ]; then
warning "Skipping dependency checks."
return 0
@@ -901,12 +903,10 @@ buildenv_depends_validate() {
return 0
fi

-       local pkgname
-
-       for pkgname in "${_P_package_names[@]}"
+       for i in "${_P_package_names[@]}"
do
# _P_package_depends is not quoted on purpose
-               makedepends+=(${_P_package_depends["$pkgname"]})
+               makedepends+=(${_P_package_depends["${i}"]})
done

msg "Checking Buildtime Dependencies..."
@@ -1698,7 +1698,7 @@ _makepkg_buildscript_load() {
for i in `set|grep ^_F_|sed 's/\(=.*\| ()\)//'`; do unset $i; done

# You have to declare associative array before using them :/
-       declare -Ag \
+       declare -A \
_P_package_descriptions \
_P_package_licenses \
_P_package_replaces \
@@ -1851,18 +1851,17 @@ _makepkg_buildscript_load() {
fi
done

-       local pkgname
-       for pkgname in "${_P_package_names[@]}"; do
-               if [ -n "$_P_package_installs["$pkgname"]" ]; then
+       for i in "${_P_package_names[@]}"; do
+               if [ -n "$_P_package_installs["$i"]" ]; 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"
+                       if [ -e "${i}.install" ]; then
+                               warning "Automagically found install script for 
${i}"
+                               _P_package_installs["${i}"]="${i}.install"
fi
fi
done
@@ -1875,17 +1874,41 @@ makepkg_buildscript_usage() {
$ECHO
$ECHO "Options for sources command:"
$ECHO "  -h, --help             This help"
+       $ECHO "      --nodepends        Do not resolve depends"
$ECHO
$ECHO "If no command is given, run '\${SHELL} -i' (default: '/bin/sh -i')."
}

makepkg_buildscript() {
-       local consumed
+       local depends_option=1
+       local cmd consumed i
+
+       local -r buildscript_vars=(
+               _P_options \
+               _P_package_names \
+               _P_package_descriptions \
+               _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 \
+               pkgname \
+               pkgver
+       )

while [ $# -gt 0 ]; do
consumed=1
case "$1" in
-h|--help)              makepkg_buildscript_usage; return 0 ;;
+               --nodepends)            depends_option=0 ;;
# special options
--)                     shift; break ;; # End of options
--*|-?)                 makepkg_buildscript_usage; return 1 ;;
@@ -1910,7 +1933,7 @@ makepkg_buildscript() {
error "Argument BUILDSCRIPT is missing"
return 1
fi
-       local BUILDSCRIPT="$1"
+       local -r BUILDSCRIPT="$1"
shift

if [ ! -f "$BUILDSCRIPT" ]; then
@@ -1918,12 +1941,38 @@ makepkg_buildscript() {
return 1
fi

-       if ! _makepkg_buildscript_load "$BUILDSCRIPT"; then
-#              error "$buildfile while errors loading file."
+       for i in "${buildscript_vars[@]}"; do
+               local "${i}"
+       done
+       if _makepkg_buildscript_load "$BUILDSCRIPT"; then
+               for i in "${buildscript_vars[@]}"; do
+                       local -r "${i}"
+               done
+       else
+               error "Errors while loading buildscript '$BUILDSCRIPT'"
return 1
fi

-       makepkg shell "$@"
+       if [ $depends_option -eq 1 ]; then
+               # Handle make depends
+               cmd+=(makepkg depends)
+               for i in "${makedepends[@]}"; do
+                       cmd+=(--install "$i")
+               done
+               #cmd+=(--remove)
+               #cmd+=(--update)
+
+               # Handle depends
+               cmd+=(makepkg depends)
+               for i in "${depends[@]}"; do
+                       cmd+=(--install "$i")
+               done
+               #cmd+=(--remove)
+       fi
+       if [ ${#cmd[@]} -eq 0 ]; then
+               cmd+=(makepkg shell)
+       fi
+       "${cmd[@]}" "$@"
return $?
}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to