-function usage() {
- cat << EOF
-
-Usage: $__this_script [OPTIONS]
-
-Build script for EFL debian packages for Maemo.
-
-Options:
- -c Don't update source repositories.
- -h Show this usage guide.
- -s PATH Specify alternate scratchbox path (default: $__sbox_path).
-
-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
-
- if [ $? != 0 ] ; then
- error "start_log(): Could not create $__output_file file"
- fi
-
- cat << EOF >> $__output_file
-*********************************************************
-* Started $__this_script: $now *
-*********************************************************
-
-EOF
-}
-
-function finish_log() {
- local now
- now=`$__date -R`
-
- if [ ! -r $__output_file ]; then
- error "finish_log(): Log file does not exist"
- fi
-
- cat << EOF >> $__output_file
-
-* Finished $__this_script: $now
-EOF
-}
-
-function clone_repository() {
- local repo
- repo=$1
- $__git_clone $repo.git >> $__output_file 2>&1
- return $?
-}
-
-function update_repository() {
- local repo
- repo=$1
-
- if [ ! -d $repo ]; then
- error " Trying to update invalid repository"
- fi
-
- cd $repo
- $__git_pull >> $__output_file 2>&1 || return 1
- cd - > /dev/null 2>&1
-
- return 0
-}
-
-function clean_repository() {
- local repo
- repo=$1
-
- if [ ! -d $repo ]; then
- error " Trying to clean invalid repository"
- fi
-
- cd $repo
- $__git_reset >> $__output_file 2>&1 || return 1
- $__git_clean >> $__output_file 2>&1 || return 1
- cd - > /dev/null 2>&1
-
- return 0
-}
-
-function configure_pkg() {
- local dir
- dir=$1
-
- cd $dir/`basename $dir`
-
- if [ -x ./autogen.sh ]; then
- NOCONFIGURE=1 ./autogen.sh >> $dir/sbox_build_pkgs.log 2>&1 || return 1
- fi
-
- cd - > /dev/null 2>&1
-
- return 0
-}
-
-function build_pkg() {
- local dir
- dir=$1
-
- configure_pkg $dir || return 1
-
- local DEB_BUILD_OPTIONS=n8x0
- if [ "x$__distro" = "xgregale" ]; then
- DEB_BUILD_OPTIONS=n770
- fi
-
- cat << EOF > $dir/sbox_build_pkgs
-#!/bin/sh
-
-export DEBFULLNAME="$DEBFULLNAME"
-export DEBEMAIL="$DEBEMAIL"
-export DEB_BUILD_OPTIONS="$DEB_BUILD_OPTIONS"
-
-cd $dir/`basename $dir`
-
-VERSION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d" " -f2 | cut -d- -f1 >> $dir/sbox_build_pkgs.log 2>&1 || exit 1\`
-REVISION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d- -f2 >> $dir/sbox_build_pkgs.log 2>&1 || exit 1\`
-
-# $__sbox_dch -v \$VERSION+cvs$__today-\$REVISION -D $__distro "Snapshot CVS release of $__today" >> $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_pkgs
- $__sbox $dir/sbox_build_pkgs
- return $?
-}
-
-function install_pkgs() {
- local dir
- dir=$1
-
- cat << EOF > $dir/sbox_install_pkgs
-#!/bin/sh
-
-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_pkgs() {
-
- cat << EOF > /tmp/sbox_uninstall_pkgs
-#!/bin/sh
-
-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 $?
-}
-
-function sign_pkgs() {
- local dir
- dir=$1
-
- cd $dir
- $__debsign *.changes >> $dir/sign_pkgs.log 2>&1 || return 1
-
- cd - > /dev/null 2>&1
-
- return 0
-}
-
-function get_sources() {
- local modules
- local repo
- modules=`echo $1|$__sed -e 's/:/ /g'`
- repo=$2
-
- for module in $modules; do
-
- if [ ! -d $module ]; then
- error "Directory $module does not exist."
- fi
-
- cd $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
- fi
-
- if [ ! -d $module ]; then
- msg_begin " Cloning $repo/$module.git"
- clone_repository $repo/$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
-
- return $ret
-}
-
-function setup_sbox() {
- if [ ! -d $__sbox_path ]; then
- error "Invalid scratchbox path: $__sbox_path"
- 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"
- __sbox_dpkg_parsechangelog="$__sbox_dpkg-parsechangelog"
-
- __sbox_debian_sarge_bin_path="/scratchbox/devkits/debian-sarge/bin"
- __sbox_dch="$__sbox_debian_sarge_bin_path/dch"
-}
-
-function change_sbox_target() {
- local target
- target=$1
-
- $__sbox_sb_conf select $target >> $__output_file 2>&1
- return $?
-}