From: Silvio fricke <[EMAIL PROTECTED]>

   * it builds the packages in different directories
   * repackaging works now

To activate this feature you only need a hook-variable "splitinstall" with all
function-names in it.
After performing of build(), it runs all functions in succession.

Signed-off-by: Silvio fricke <[EMAIL PROTECTED]>
---
 scripts/makepkg.sh.in |   57 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 2 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 5bdc5bc..c96b9fb 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -675,6 +675,8 @@ run_build() {
                        mv "$BUILDLOG" "$BUILDLOG.$i"
                fi
 
+               export BUILDLOG
+
                build 2>&1 | tee "$BUILDLOG"; ret=${PIPESTATUS[0]}
        else
                build 2>&1 || ret=$?
@@ -1389,7 +1391,38 @@ if [ "$INFAKEROOT" = "1" ]; then
                tidy_install
        fi
 
-       create_package
+       if [ "$splitinstall" != "" ] ; then
+               for varname in "pkgname" "pkgver" "pkgrel" "pkgdesc" "arch" 
"url" "license" "groups" "depends" "makedepends" "provides" "conflicts" 
"replaces" "backup" "options" "install" "pkgdir"; do
+                       temp_var_name="${varname}_o"
+                       eval "${temp_var_name}=\"${!varname}\""
+               done
+
+               create_package
+               for it in "[EMAIL PROTECTED]" ; do
+                       pkgdir="$startdir/pkg_${it}"
+                       [ ! -d "$pkgdir" ] && mkdir -p "$pkgdir"
+                       msg "$(gettext "Building split package using function: 
%s")" "$it"
+
+                       if [ "$LOGGING" = "1" ]; then
+                               [ "x$BUILDLOG" == "x" ] && 
BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log"
+                               echo "\n\n--- Logging for $it ------------" >> 
"$BUILDLOG"
+
+                               $it 2>&1 | tee -a "$BUILDLOG"
+                       else
+                               $it 2>&1
+                       fi
+
+                       create_package
+
+                       for varname in "pkgname" "pkgver" "pkgrel" "pkgdesc" 
"arch" "url" "license" "groups" "depends" "makedepends" "provides" "conflicts" 
"replaces" "backup" "options" "install" "pkgdir"; do
+                               temp_var_name="${varname}_o"
+                               [ "${!temp_var_name}" != "" ] && eval 
"${varname}=\"${!temp_var_name}\"" || unset ${varname}
+                       done
+               done
+               msg "$(gettext "All split packages built!")"
+       else
+               create_package
+       fi
 
        msg "$(gettext "Leaving fakeroot environment.")"
        exit 0 # $E_OK
@@ -1459,6 +1492,20 @@ if [ "$NOEXTRACT" = "1" -o "$REPKG" = "1" ]; then
                error "$(gettext "The source directory is empty, there is 
nothing to build!")"
                plain "$(gettext "Aborting...")"
                exit 1
+       elif [ "$splitinstall" != "" ]; then
+               for fun in "[EMAIL PROTECTED]"; do
+                       pkgdir_fun="$startdir/pkg_${fun}"
+                       exit_now=0
+                       if [ ! -d "$pkgdir_fun" -o "$(ls "$pkgdir_fun" 
2>/dev/null)" = "" ]; then
+                               warning "$(gettext "The subpackage directory %s 
is empty, there is nothing to repackage!")" "$pkgdir_fun"
+                               pwd
+                               exit_now=1
+                       fi
+                       if [ $exit_now -eq 1 ]; then
+                               error "$(gettext "Aborting...")"
+                               exit 1
+                       fi
+               done
        elif [ "$REPKG" = "1" -a \( ! -d "$pkgdir" -o "$(ls "$pkgdir" 
2>/dev/null)" = "" \) ]; then
                error "$(gettext "The package directory is empty, there is 
nothing to repackage!")"
                plain "$(gettext "Aborting...")"
@@ -1475,9 +1522,15 @@ if [ "$NOBUILD" = "1" ]; then
        exit 0 #E_OK
 else
        # check for existing pkg directory; don't remove if we are repackaging
-       if [ -d "$pkgdir" -a "$REPKG" = "0" ]; then
+       if [ -d "$pkgdir" -a "$REPKG" = "0" -a "$splitinstall" == "" ]; then
                msg "$(gettext "Removing existing pkg/ directory...")"
                rm -rf "$pkgdir"
+       elif [ "$splitinstall" != "" -a "$REPKG" = "0" ]; then
+               for fun in "[EMAIL PROTECTED]"; do
+                       pkgdir_fun="$startdir/pkg_${fun}"
+                       msg "$(gettext "Removing existing %s directory...")" 
"$pkgdir_fun"
+                       rm -rf "$pkgdir_fun"
+               done
        fi
        mkdir -p "$pkgdir"
        cd "$startdir"
-- 
1.5.5.3


_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to