Update TODO.
[maemo-efl] / trunk / build-all.sh
index 9b1778a..4e91300 100755 (executable)
-#!/bin/bash
-
-source "helper-functions.sh"
+#!/bin/sh
 
 ###########################################################
-# Variable definitions
+# Maemo-efl building script
+# Build script
 ###########################################################
-__this_script=`basename $0`
-__this_script_dir=`dirname $0`
-__orig_path=$PATH
-
-# Binaries
-__date=`which date`
-__git=`which git`
-__head=`which head`
-__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"
-__git_pull="$__git pull -q -n"
-__git_clean="$__git clean -q -x -d"
-__git_reset="$__git reset --hard HEAD"
-__git_repo="git://staff.get-e.org/"
-
-# e17 git repositories paths
-__e17_libs="e17/libs"
-__e17_proto="e17/proto"
-__e17_python_efl="$__e17_proto/python-efl"
-__e17_python_etk="users/cmarcelo"
-
-# modules to build
-#__lib_modules="edb eet evas ecore embryo edje efreet epeg epsilon emotion etk ewl e_dbus exml enhance"
-__lib_modules="eet:evas:ecore:embryo:edje:epsilon:etk:e_dbus"
-__python_modules="python-evas:python-ecore:python-edje:python-epsilon:python-e_dbus"
-__python_etk_module="python-etk"
-
-# dpkg definitions
-__common_build_pkg_options="-rfakeroot -us -uc -D"
-
-# Packages dirs and log file
-__today=`$__date +%Y%m%d`
-__base_pkg_dir="$__this_script_dir/efl_packages_$__today"
-__output_file="$PWD/$__base_pkg_dir/efl_packages_$__today.log"
-
-# Scratchbox definitions
-__sbox_path="/scratchbox"
-
-# Other
-__update_repositories=1
-__installed_packages=""
+
+source "./scripts/message-functions.sh"
+source "./scripts/var-definitions.sh"
+source "./scripts/log-functions.sh"
+source "./scripts/repository-functions.sh"
+source "./scripts/package-functions.sh"
+source "./scripts/setup-functions.sh"
 
 ###########################################################
-# Function definitions
+# Begin script
 ###########################################################
 
-function usage() {
-    cat << EOF
 
-Usage: $__this_script [OPTIONS]
-
-Build script for EFL debian packages for Maemo.
+# Parse comand line options
 
+usage () {
+     cat << EOF
+Usage: $__this_script [OPTIONS]
+Build script for Maemo EFL debian packages.
 Options:
-    -c      Don't update source repositories.
-    -h      Show this usage guide.
-    -s PATH Specify alternate scratchbox path (default: $__sbox_path).
+    -n           Don't sign packages.
+    -c           Don't update source repositories.
+    -h           Show this usage guide.
+    -s PATH      Specify alternate scratchbox path (default: $__sbox_path).
+    -r           Remove module sub-directories (not the high level debian dir)
+                 and then exit.
+    -t A:B:Z     Specify scratchbox building targets 
+                 (default: all targets installed).
+    -u svn_rev   Update the latest revision number to "svn_rev" and exit. This
+                 only works on revision numbers that has the svn label on
+                 the version part (e.g 0.9.9.043+svn32000-maemo1)  Also,
+                 this option will not create a new entry on the changelog
+                 file, it will only change its first line. If you want to
+                 update to the latest repository revision number, just use
+                 HEAD as parameter.
+    -p P1:P2:PN  Specify packges to build (default: build all packages available).
 
 EOF
 }
 
-function create_log_file() {
-    if [ ! -r $__output_file ]; then
-        msg_begin "Creating log file"
-        touch $__output_file
-        msg_end $?
-    else
-        msg "Using existing log file: $__output_file"
-    fi
-}
-
-function log_to_file() {
-    local now
-    local msg
-    msg=$1
-
-    if [ ! -r $__output_file ]; then
-        error "log_to_file(): Log file does not exist"
-    fi
-
-    now=`$__date +%H:%M:%S`
-    echo "$now: $msg" >> $__output_file
-}
-
-function start_log() {
-    local now
-    now=`$__date -R`
-
-    echo "" >> $__output_file
+while getopts "anchre:s:t:u:p:" opt ; do
+    case "$opt" in
+        p)
+            __lib_modules_temp=""
+            __python_modules_temp=""
+            __python_efl_utils_module_temp=""
+            __python_dispatcher_module_temp=""
+            __virtual_packages_temp=""
+            __not_all_pkgs=1
+            __parameters=`echo "$OPTARG" | $__sed -e 's/:/ /g'`
+            for i in $__parameters; do
+                for module in `echo "$__lib_modules"|$__sed -e 's/:/ /g'`; do
+                    if [ x$module == x$i ]; then
+                        __lib_modules_temp=$__lib_modules_temp:$i
+                        continue
+                    fi
+                done
+
+                for module in `echo "$__python_modules"|$__sed -e 's/:/ /g'`; do
+                    if [ x$module == x$i ]; then
+                        __python_modules_temp=$__python_modules_temp:$i
+                    fi
+                done
+
+                for module in `echo "$__python_efl_utils_module"|$__sed -e 's/:/ /g'`; do
+                    if [ x$module == x$i ]; then
+                        __python_efl_utils_module_temp=$__python_efl_utils_module_temp:$i
+                        continue
+                    fi
+                done
+
+                for module in `echo "$__python_dispatcher_module" |$__sed -e 's/:/ /g'`; do
+                    if [ x$module == x$i ]; then
+                        __python_dispatcher_module_temp=$__python_dispatcher_module_temp:$i
+                        continue
+                    fi
+                done
+
+                for module in `echo "$__virtual_packages" |$__sed -e 's/:/ /g'`; do
+                    if [ x$module == x$i ]; then
+                        __virtual_packages_temp=$__virtual_packages_temp:$i
+                        continue
+                    fi
+                done
+
+            done
+            __lib_modules_temp=`echo "$__lib_modules_temp" | tr "[:upper:]" "[:lower:]"`
+            __python_modules_temp=`echo "$__python_modules_temp" | tr "[:upper:]" "[:lower:]"`
+            __python_efl_utils_module_temp=`echo "$__python_efl_utils_module_temp" | tr "[:upper:]" "[:lower:]"`
+            __python_dispatcher_module_temp=`echo "$__python_dispatcher_module_temp" | tr "[:upper:]" "[:lower:]"`
+            __virtual_packages_temp=`echo "$__virtual_packages_temp" | tr "[:upper:]" "[:lower:]"`
+        ;;
+        c)
+            __update_repositories=0
+        ;;
+        e)
+            __export_dir=$OPTARG
+            if [ "x$__sbox_path" = "x" ] || [ ! -d $__sbox_path ]; then
+                error "Invalid export path: $__export_dir"
+                exit 1
+            fi
+        ;;
+        h)
+            usage
+            exit 0
+        ;;
+        r)
+            __force_remove=1
+        ;;
+        s)
+            __sbox_path=$OPTARG
+            if [ "x$__sbox_path" = "x" ] || [ ! -d $__sbox_path ]; then
+                error "Invalid scratchbox path: $__sbox_path"
+                exit 1
+            fi
+        ;;
+        n)
+            __no_signing=1
+        ;;
+        t)
+            __sbox_targets_temp=`echo $OPTARG | tr "[:lower:]" "[:upper:]"`
+        ;;
+        u)
+            __changelog_update=$OPTARG
+        ;;
+        ?)
+            usage
+            exit 1
+        ;;
+    esac
+done
 
-    if [ $? != 0 ] ; then
-        error "start_log(): Could not create $__output_file file"
-    fi
+############################
+#     Initial checks       #
+###########################
 
-    cat << EOF >> $__output_file
-*********************************************************
-* Started $__this_script: $now *
-*********************************************************
+update_all_modules
+init_checks
 
-EOF
-}
+# Remove modules subdirectories and exit
+if [ $__force_remove -eq 1 ]; then
+    clean_modules
+    exit 0
+fi
 
-function finish_log() {
-    local now
-    now=`$__date -R`
+# Modify debian changelog
+if [ -n "$__changelog_update" ]; then
+    update_changelog $__changelog_update
+    exit 0
+fi
 
-    if [ ! -r $__output_file ]; then
-        error "finish_log(): Log file does not exist"
-    fi
+setup_dirs
+generate_versions
 
-    cat << EOF >> $__output_file
+if [ $__not_all_pkgs -eq 1 ]; then
+    __lib_modules=$__lib_modules_temp
+    __python_modules=$__python_modules_temp
+    __python_efl_utils_module=$__python_efl_utils_module_temp
+    __python_dispatcher_module=$__python_dispatcher_module_temp
+    __virtual_packages=$__virtual_packages_temp
 
-* Finished $__this_script: $now
-EOF
-}
+    update_all_modules
 
-function clone_repository() {
-    local repo
-    repo=$1
-    `$__git_clone $repo.git >> $__output_file 2>&1 `
-    return $?
-}
+fi
 
-function update_repository() {
-    local repo
-    repo=$1
+# Create log file
+create_log_file
+start_log
 
-    if [ ! -d $repo ]; then
-        error "  Trying to update invalid repository"
-    fi
+# update modules
+download_modules
+# Setup scratchbox variables
+setup_sbox
 
-    cd $repo
-    `$__git_pull >> $__output_file 2>&1`
-    cd - > /dev/null 2>&1
+# Setup scratchbox targets if option -t was used
+if [ ! -z $__sbox_targets_temp ]; then
+    __sbox_targets=`echo $__sbox_targets_temp|$__sed -e 's/:/ /g'`
+fi
 
-    return 0
-}
+###########################################################
+# ARCHITECTURE DEPENDENT MODULES
+###########################################################
+# For each scratchbox target
+for target in $__sbox_targets; do
+    msg_begin "Checking distro and arch for target $target"
+    setup_distro $target
+    msg_end $?
 
-function clean_repository() {
-    local repo
-    repo=$1
+    msg "  Distribution..: $__distro"
+    msg "  Architecture..: $__arch"
+    msg "  Build Options.: $__build_pkg_options"
 
-    if [ ! -d $repo ]; then
-        error "  Trying to clean invalid repository"
+    if [ ! -d $__pkg_dir ]; then
+        msg_begin "  Creating dir for $__distro $__arch packages"
+        $__mkdir -p $__pkg_dir
+        msg_end $?
     fi
 
-    cd $repo
-    `$__git_reset >> $__output_file 2>&1`
-    `$__git_clean >> $__output_file 2>&1`
-    cd - > /dev/null 2>&1
-
-    return 0
-}
-
-function build_pkg() {
-    local dir
-    dir=$1
+    msg_begin "  Changing current sbox target to $target"
+    change_sbox_target $target
+    msg_end $?
 
-    cat << EOF > $dir/sbox_build_pkgs
-#!/bin/bash
+    # For each module
+    for module in `echo $__lib_modules:$__python_modules|$__sed -e 's/:/ /g'`; do
+        msg "  Building $module packages for $__distro $__arch"
 
-cd $dir/`basename $dir`
-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
+        update_debian_dir $module
 
-    `$__chmod 755 $dir/sbox_build_pkgs`
-    `$__sbox $dir/sbox_build_pkgs`
-    return $?
-}
+        if [ -d $__tmp_dir/$module/$module ]; then
+            msg_begin "  Removing temporary $module"
+            rm -rf $__tmp_dir/$module/$module
+            msg_end $?
+        fi
 
-function install_pkgs() {
-    local dir
-    dir=$1
+        msg_begin "  Copying $module dir to $__tmp_dir"
+        $__tar c --exclude=.svn --exclude=.git $module | $__tar x --directory $__tmp_dir
+        msg_end $?
 
-    cat << EOF > $dir/sbox_install_pkgs
-#!/bin/bash
+#        msg_begin "  Cleaning $module repository"
+#        git_clean_repository $module/$module
+#        msg_end $?
 
-cd $dir
-$__sbox_dpkg --install *.deb >> $dir/sbox_install_pkgs.log 2>&1
-exit \$?
-EOF
+        msg_begin "  Building $module packages"
+        build_pkg $__tmp_dir/$module
+        msg_end $?
 
-    `$__chmod 755 $dir/sbox_install_pkgs`
-    `$__sbox $dir/sbox_install_pkgs` || return 1
+        if [ -z $__no_signing ]; then
+            msg_begin "  Signing $module packages"
+            sign_pkgs $__tmp_dir/$module
+            msg_end $?
+        fi
 
-    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
+        msg_begin "  Installing $module packages"
+        install_pkgs $__tmp_dir/$module
+        msg_end $?
 
-        if [ ! $? -eq 0 ]; then
-            __installed_packages="$__installed_packages $pkg"
+        msg_begin "  Copying $module packages"
+        if [ "x$__arch" != "xarmel" ]; then
+            mv $__tmp_dir/$module/*.dsc $__tmp_dir/$module/*.tar.gz $__pkg_dir
         fi
+        mv $__tmp_dir/$module/*.deb $__tmp_dir/$module/*.changes $__pkg_dir
+        msg_end $?
+
+        msg_begin "  Removing temporary $module"
+        rm -rf $__tmp_dir/$module/$module
+        msg_end $?
     done
 
-    return 0
-}
+    msg_begin "  Uninstalling packages $__installed_packages"
+    uninstall_pkgs
+    msg_end $?
+done
 
-function uninstall_pkgs() {
+###########################################################
+# ARCHITECTURE INDEPENDENT MODULES
+###########################################################
+# For each scratchbox target
+for target in $__sbox_targets; do
+    msg_begin "Checking distro and arch for target $target"
+    setup_distro $target
+    msg_end $?
 
-    cat << EOF > /tmp/sbox_uninstall_pkgs
-#!/bin/bash
+    msg "  Distribution..: $__distro"
+    msg "  Architecture..: $__arch"
+    msg "  Build Options.: $__build_pkg_options"
 
-cd /tmp
-$__sbox_dpkg --purge $__installed_packages >> /tmp/sbox_uninstall_pkgs.log 2>&1
-exit \$?
-EOF
+    if [ "x$__arch" = "xarmel" ]; then
+        warn "Skipping target $target for architecture independent packages"
+        continue
+    fi
 
-    __installed_packages=""
-    `$__chmod 755 /tmp/sbox_uninstall_pkgs`
-    `$__sbox /tmp/sbox_uninstall_pkgs`
-    return $?
-}
+    __arch="all"
+    __pkg_dir=`dirname $__pkg_dir`/$__arch
 
-function get_sources() {
-    local modules
-    local repo
-    modules=`echo $1|$__sed -e 's/:/ /g'`
-    repo=$2
+    if [ ! -d $__pkg_dir ]; then
+        msg_begin "  Creating dir for $__distro $__arch packages"
+        $__mkdir -p $__pkg_dir
+        msg_end $?
+    fi
 
-    for module in $modules; do
+    msg_begin "  Changing current sbox target to $target"
+    change_sbox_target $target
+    msg_end $?
 
-        if [ ! -d $module ]; then
-            error "Directory $module does not exist."
-        fi
+    # For each module
+    for module in `echo $__python_efl_utils_module|$__sed -e 's/:/ /g'`; do
 
-        cd $module
+        msg "  Building $module packages for $__distro $__arch"
+        update_debian_dir $module
 
-        if [ -d $module/.git ]; then
-            if [ ! $__update_repositories -eq 0 ]; then
-                log_to_file "Updating existing repository at $PWD/$module"
 
-                msg_begin "  Updating $module repository"
-                update_repository $module
-                msg_end $?
-            else
-                log_to_file "Skipping update of $module repository"
-            fi
-        elif [ -d $module ]; then
-            log_to_file "Removing invalid repository at $PWD/$module"
-            rm -rf $module
+        if [ ! -d $__tmp_dir/$module ]; then
+            mkdir $__tmp_dir/$module
         fi
 
-        if [ ! -d $module ]; then
-            msg_begin "  Cloning $repo/$module.git"
-            clone_repository $repo/$module
+        if [ -d $__tmp_dir/$module/$module ]; then
+            msg_begin "  Removing temporary $module"
+            rm -rf $__tmp_dir/$module/$module
             msg_end $?
         fi
 
-        cd ..
-    done
-}
 
-function setup_distro() {
-    local target
-    local sources_list_file
-    local target_conf_file
-    local ret
-    target=$1
-    sources_list_file=$__sbox_path/users/$USER/targets/$target/etc/apt/sources.list
-    target_conf_file=$__sbox_path/users/$USER/targets/$target.config
-    ret=1
-
-    log_to_file "setup_distro(): Target $target"
-    log_to_file "setup_distro(): sources.list file : $sources_list_file"
-    log_to_file "setup_distro(): config file: $target_conf_file"
-
-    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`
-        __pkg_dir="$__base_pkg_dir/$__distro/$__arch"
-        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
-
-    if [ $ret -eq 0 ]; then
-        log_to_file "setup_distro(): Configuration:"
-        log_to_file "setup_distro(): distro...........: $__distro"
-        log_to_file "setup_distro(): arch.............: $__arch"
-        log_to_file "setup_distro(): build options....: $__build_pkg_options"
-        log_to_file "setup_distro(): pkg_dir..........: $__pkg_dir"
-    fi
+        msg_begin "  Copying $module dir to $__tmp_dir"
+        $__tar c --exclude=.svn --exclude=.git $module | $__tar x --directory $__tmp_dir
+    #cp -f -u -r $module $__tmp_dir
+        msg_end $?
 
-    log_to_file "setup_distro(): Returning $ret"
+#        msg_begin "  Cleaning $module repository"
+#        git_clean_repository $module/$module
+#        msg_end $?
 
-    return $ret
-}
+        msg_begin "  Building $module packages"
+        build_pkg $__tmp_dir/$module
+        msg_end $?
 
-function setup_sbox() {
-    if [ ! -d $__sbox_path ]; then
-        error "Invalid scratchbox path: $__sbox_path"
+        if [ -z $__no_signing ]; then
+            msg_begin "  Signing $module packages"
+            sign_pkgs $__tmp_dir/$module
+            msg_end $?
     fi
 
-    __sbox="$__sbox_path/login"
-    __sbox_tools_bin_path="$__sbox_path/tools/bin"
-    __sbox_sb_conf="$__sbox_tools_bin_path/sb-conf"
-
-    __sbox_maemo3_debian_bin_path="/scratchbox/devkits/maemo3-debian/bin"
-    __sbox_dpkg="$__sbox_maemo3_debian_bin_path/dpkg"
-    __sbox_dpkg_buildpackage="$__sbox_dpkg-buildpackage"
+        msg_begin "  Installing $module packages"
+        install_pkgs $__tmp_dir/$module
+        msg_end $?
 
-    __sbox_debian_sarge_bin_path="/scratchbox/devkits/debian-sarge/bin"
-    __sbox_dch="$__sbox_debian_sarge_bin_path/dch"
-}
+        msg_begin "  Copying $module packages"
+        mv $__tmp_dir/$module/*.dsc $__tmp_dir/$module/*.tar.gz $__tmp_dir/$module/*.deb $__tmp_dir/$module/*.changes $__pkg_dir
+        msg_end $?
 
-function change_sbox_target() {
-    local target
-    target=$1
+        msg_begin "  Removing temporary $module"
+        rm -rf $__tmp_dir/$module/$module
+        msg_end $?
+    done
 
-    `$__sbox_sb_conf select $target`
-    return $?
-}
+    msg_begin "  Uninstalling packages $__installed_packages"
+    uninstall_pkgs
+    msg_end $?
+done
 
 ###########################################################
-# Begin script
+# VIRTUAL PACKAGES
 ###########################################################
-
-# Parse comand line options
-while getopts "chs:" opt ; do
-    case "$opt" in
-        c)
-            __update_repositories=0
-            ;;
-        h)
-            usage
-            exit 0
-            ;;
-        s)
-            __sbox_path=$OPTARG
-            if [ "x$__sbox_path" = "x" ] || [ ! -d $__sbox_path ]; then
-                error "Invalid scratchbox path: $__sbox_path"
-            fi
-            ;;
-        [?])
-            usage
-            exit 1
-            ;;
-    esac
-done
-
-# Initial checks
-
-# Check if we're running inside scratchbox
-if [ -r /targets/links/scratchbox.config ]; then
-    error "You should run this script ouside the scratchbox environment."
-fi
-
-# Create base packages dir
-if [ ! -d $__base_pkg_dir ]; then
-    msg_begin "Creating base packages dir $__base_pkg_dir"
-    $__mkdir -p $__base_pkg_dir
-    msg_end $?
-fi
-
-# Create log file
-create_log_file
-start_log
-
-# Download modules under e17/libs
-msg "Downloading e17 modules"
-get_sources $__lib_modules $__git_repo$__e17_libs
-
-# Download python modules under proto/python/efl
-msg "Downloading python modules"
-get_sources $__python_modules $__git_repo$__e17_python_efl
-
-# Download python-etk module
-get_sources $__python_etk_module $__git_repo$__e17_python_etk
-
-# Setup scratchbox variables
-setup_sbox
-
 # For each scratchbox target
-for target in `$__sbox_sb_conf list --targets`; do
+for target in $__sbox_targets; do
     msg_begin "Checking distro and arch for target $target"
     setup_distro $target
     msg_end $?
@@ -400,6 +356,14 @@ for target in `$__sbox_sb_conf list --targets`; do
     msg "  Architecture..: $__arch"
     msg "  Build Options.: $__build_pkg_options"
 
+    if [ "x$__arch" = "xarmel" ]; then
+        warn "Skipping target $target for architecture independent packages"
+        continue
+    fi
+
+    __arch="all"
+    __pkg_dir=`dirname $__pkg_dir`/$__arch
+
     if [ ! -d $__pkg_dir ]; then
         msg_begin "  Creating dir for $__distro $__arch packages"
         $__mkdir -p $__pkg_dir
@@ -411,67 +375,52 @@ for target in `$__sbox_sb_conf list --targets`; do
     msg_end $?
 
     # For each module
-    for module in `echo $__lib_modules $__python_modules $__python_etk_module|$__sed -e 's/:/ /g'`; do
-
+    for module in `echo $__virtual_packages|$__sed -e 's/:/ /g'`; do
         msg "  Building $module packages for $__distro $__arch"
 
-        if [ -d "./$module/$module/debian" ]; then
-            msg_begin "  Removing existing debian directory"
-            rm -rf "./$module/$module/debian"
-            msg_end $?
-        fi
+        update_debian_dir $module
 
-        msg_begin "  Copying specific debian directory"
-        if [ -d "./$module/debian_$__distro" ]; then
-            cp -r "./$module/debian_$__distro" "./$module/$module/debian"
-        elif [ -d "./$module/debian" ]; then
-            cp -r "./$module/debian" "./$module/$module/"
-        else
-            error "  Missing debian directory for $module"
+        if [ ! -d $__tmp_dir/$module ]; then
+            mkdir $__tmp_dir/$module
         fi
-        msg_end $?
 
-        if [ -d "/tmp/$module/$module" ]; then
+        if [ -d $__tmp_dir/$module/$module ]; then
             msg_begin "  Removing temporary $module"
-            rm -rf "/tmp/$module/$module"
+            rm -rf $__tmp_dir/$module/$module
             msg_end $?
         fi
 
-        msg_begin "  Copying $module dir to /tmp"
-        cp -u -r $module /tmp
-        msg_end $?
-
-        msg_begin "  Cleaning $module repository"
-        clean_repository $module/$module
+        msg_begin "  Copying $module dir to $__tmp_dir"
+        $__tar c --exclude=.svn --exclude=.git $module | $__tar x --directory $__tmp_dir
+    #cp -f -u -r $module $__tmp_dir/$module
         msg_end $?
 
         msg_begin "  Building $module packages"
-        build_pkg /tmp/$module
+        build_pkg $__tmp_dir/$module
         msg_end $?
 
+    if [ -z $__no_signing ]; then
+            msg_begin "  Signing $module packages"
+            sign_pkgs $__tmp_dir/$module
+            msg_end $?
+    fi
+
         msg_begin "  Installing $module packages"
-        install_pkgs /tmp/$module
+        install_pkgs $__tmp_dir/$module
         msg_end $?
 
         msg_begin "  Copying $module packages"
-        if [ "x$__arch" != "xarm" ]; then
-            mv /tmp/$module/*.dsc /tmp/$module/*.tar.gz $__pkg_dir
-        fi
-        mv /tmp/$module/*.deb /tmp/$module/*.changes $__pkg_dir
+        mv $__tmp_dir/$module/*.dsc $__tmp_dir/$module/*.tar.gz $__tmp_dir/$module/*.deb $__tmp_dir/$module/*.changes $__pkg_dir
         msg_end $?
 
         msg_begin "  Removing temporary $module"
-        rm -rf "/tmp/$module/$module"
+        rm -rf $__tmp_dir/$module/$module
         msg_end $?
-
-        # Clean tree
-        clean_repository $module
     done
 
     msg_begin "  Uninstalling packages $__installed_packages"
     uninstall_pkgs
     msg_end $?
-    # Uninstall all packages
 done
 
 # END