__sed=`which sed`
__uname=`which uname`
__chmod=`which chmod`
+__grep=`which grep`
+__egrep=`which egrep`
# git definitions
__git_clone="$__git clone -q"
__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`
# Other
__update_repositories=1
+__installed_packages=""
###########################################################
# Function definitions
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 $?
}
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
__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"
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
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"
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
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