Install packages that were just built and uninstall
authoretrunko <eblima@gmail.com>
Fri, 7 Dec 2007 13:41:52 +0000 (13:41 +0000)
committeretrunko <eblima@gmail.com>
Fri, 7 Dec 2007 13:41:52 +0000 (13:41 +0000)
all of them in the end of the process.

trunk/build-all.sh

index 502cf16..9b1778a 100755 (executable)
@@ -17,6 +17,8 @@ __mkdir=`which mkdir`
 __sed=`which sed`
 __uname=`which uname`
 __chmod=`which chmod`
+__grep=`which grep`
+__egrep=`which egrep`
 
 # git definitions
 __git_clone="$__git clone -q"
@@ -38,7 +40,7 @@ __python_modules="python-evas:python-ecore:python-edje:python-epsilon:python-e_d
 __python_etk_module="python-etk"
 
 # dpkg definitions
-__common_build_pkg_options="-I.svn -I.git -I.gitignore -I.cvsignore -rfakeroot -us -uc -D -tc"
+__common_build_pkg_options="-rfakeroot -us -uc -D"
 
 # Packages dirs and log file
 __today=`$__date +%Y%m%d`
@@ -50,6 +52,7 @@ __sbox_path="/scratchbox"
 
 # Other
 __update_repositories=1
+__installed_packages=""
 
 ###########################################################
 # Function definitions
@@ -167,27 +170,60 @@ function build_pkg() {
     local dir
     dir=$1
 
-    cat << EOF >> $dir/sbox_build_pkg
+    cat << EOF > $dir/sbox_build_pkgs
 #!/bin/bash
 
 cd $dir/`basename $dir`
-NOCONFIGURE=1 ./autogen.sh >> $dir/sbox_build_pkg.log 2>&1 || exit 1
-$__sbox_dpkg_buildpackage $__build_pkg_options >> $dir/sbox_build_pkg.log 2>&1 || exit 1
+NOCONFIGURE=1 ./autogen.sh >> $dir/sbox_build_pkgs.log 2>&1 || exit 1
+$__sbox_dpkg_buildpackage $__build_pkg_options >> $dir/sbox_build_pkgs.log 2>&1
 exit \$?
 EOF
 
-    `$__chmod 755 $dir/sbox_build_pkg`
-    `$__sbox $dir/sbox_build_pkg`
+    `$__chmod 755 $dir/sbox_build_pkgs`
+    `$__sbox $dir/sbox_build_pkgs`
     return $?
 }
 
-function install_pkg() {
-    echo "install_pkg"
-    return $?
+function install_pkgs() {
+    local dir
+    dir=$1
+
+    cat << EOF > $dir/sbox_install_pkgs
+#!/bin/bash
+
+cd $dir
+$__sbox_dpkg --install *.deb >> $dir/sbox_install_pkgs.log 2>&1
+exit \$?
+EOF
+
+    `$__chmod 755 $dir/sbox_install_pkgs`
+    `$__sbox $dir/sbox_install_pkgs` || return 1
+
+    for package in $dir/*.deb; do
+        pkg=`basename $package | cut -d_ -f1`
+        echo $__installed_packages | tr " " "\n" | sort -u | $__egrep "\^$pkg\$" > /dev/null 2>&1
+
+        if [ ! $? -eq 0 ]; then
+            __installed_packages="$__installed_packages $pkg"
+        fi
+    done
+
+    return 0
 }
 
-function uninstall_pkg() {
-    echo "uninstall_pkg"
+function uninstall_pkgs() {
+
+    cat << EOF > /tmp/sbox_uninstall_pkgs
+#!/bin/bash
+
+cd /tmp
+$__sbox_dpkg --purge $__installed_packages >> /tmp/sbox_uninstall_pkgs.log 2>&1
+exit \$?
+EOF
+
+    __installed_packages=""
+    `$__chmod 755 /tmp/sbox_uninstall_pkgs`
+    `$__sbox /tmp/sbox_uninstall_pkgs`
     return $?
 }
 
@@ -246,12 +282,13 @@ function setup_distro() {
 
     if [ "x$target" != "x" ] && [ -r $sources_list_file ] && [ -r $target_conf_file ]; then
         # XXX: FIXME Figure out a better way to get the distro string
-        __distro=`$__head -1 $sources_list_file|cut -d" " -f3`
-        __arch=`grep SBOX_CPU= $target_conf_file|cut -d= -f2`
+        __distro=`$__head -1 $sources_list_file | cut -d" " -f3`
+        __arch=`$__grep SBOX_CPU= $target_conf_file | cut -d= -f2`
         __pkg_dir="$__base_pkg_dir/$__distro/$__arch"
-        __build_pkg_options="$__common_build_pkg_options -sa"
         if [ "x$__arch" = "xarm" ] ; then
             __build_pkg_options="$__common_build_pkg_options -B"
+        else
+            __build_pkg_options="$__common_build_pkg_options -I.svn -I.git -I.gitignore -I.cvsignore -sa"
         fi
         ret=0
     fi
@@ -279,7 +316,8 @@ function setup_sbox() {
     __sbox_sb_conf="$__sbox_tools_bin_path/sb-conf"
 
     __sbox_maemo3_debian_bin_path="/scratchbox/devkits/maemo3-debian/bin"
-    __sbox_dpkg_buildpackage="$__sbox_maemo3_debian_bin_path/dpkg-buildpackage"
+    __sbox_dpkg="$__sbox_maemo3_debian_bin_path/dpkg"
+    __sbox_dpkg_buildpackage="$__sbox_dpkg-buildpackage"
 
     __sbox_debian_sarge_bin_path="/scratchbox/devkits/debian-sarge/bin"
     __sbox_dch="$__sbox_debian_sarge_bin_path/dch"
@@ -368,13 +406,13 @@ for target in `$__sbox_sb_conf list --targets`; do
         msg_end $?
     fi
 
+    msg_begin "  Changing current sbox target to $target"
+    change_sbox_target $target
+    msg_end $?
+
     # For each module
     for module in `echo $__lib_modules $__python_modules $__python_etk_module|$__sed -e 's/:/ /g'`; do
 
-        msg_begin "  Changing current sbox target to $target"
-        change_sbox_target $target
-        msg_end $?
-
         msg "  Building $module packages for $__distro $__arch"
 
         if [ -d "./$module/$module/debian" ]; then
@@ -393,14 +431,14 @@ for target in `$__sbox_sb_conf list --targets`; do
         fi
         msg_end $?
 
-        if [ -d "/tmp/$module" ]; then
+        if [ -d "/tmp/$module/$module" ]; then
             msg_begin "  Removing temporary $module"
-            rm -rf "/tmp/$module"
+            rm -rf "/tmp/$module/$module"
             msg_end $?
         fi
 
         msg_begin "  Copying $module dir to /tmp"
-        cp -r $module /tmp
+        cp -u -r $module /tmp
         msg_end $?
 
         msg_begin "  Cleaning $module repository"
@@ -411,6 +449,10 @@ for target in `$__sbox_sb_conf list --targets`; do
         build_pkg /tmp/$module
         msg_end $?
 
+        msg_begin "  Installing $module packages"
+        install_pkgs /tmp/$module
+        msg_end $?
+
         msg_begin "  Copying $module packages"
         if [ "x$__arch" != "xarm" ]; then
             mv /tmp/$module/*.dsc /tmp/$module/*.tar.gz $__pkg_dir
@@ -419,15 +461,16 @@ for target in `$__sbox_sb_conf list --targets`; do
         msg_end $?
 
         msg_begin "  Removing temporary $module"
-        rm -rf /tmp/$module
+        rm -rf "/tmp/$module/$module"
         msg_end $?
 
-        # Install packages
-
         # Clean tree
         clean_repository $module
     done
 
+    msg_begin "  Uninstalling packages $__installed_packages"
+    uninstall_pkgs
+    msg_end $?
     # Uninstall all packages
 done