update to use efl svn
[maemo-efl] / trunk / scripts / package-functions.sh
index 446d962..9623cbb 100644 (file)
@@ -7,7 +7,7 @@
 # Note: var-definitions.sh needed.
 ###########################################################
 
-function configure_pkg() {
+configure_pkg() {
     local dir
     dir=$1
 
@@ -22,7 +22,120 @@ function configure_pkg() {
     return 0
 }
 
-function build_pkg() {
+update_changelog() {
+    local rev
+    local rev_tmp
+    local fst
+    rev=$1
+
+    if [ x$rev == xHEAD ]; then
+       msg_begin "Getting latest repository revision number"
+       svn_latest_rev
+       msg_end $?
+       rev=$__svn_latest_rev
+    fi
+    rev_tmp=`echo $rev | $__sed -nr 's/^([0-9]+)$/\1/p'`
+    if [ -z "$rev_tmp" ]; then
+        error "Invalid revision number '$rev'"
+    fi
+    rev=$rev_tmp
+    msg_begin "Updating changelog files to svn$rev"
+    for module in `echo $__all_modules|$__sed -e 's/:/ /g'`; do
+        if [ -e $module/debian/changelog ]; then
+            fst=`$__head -1 $module/debian/changelog | grep svn`
+            if [ -n "$fst" ]; then
+                cp -f $module/debian/changelog $module/debian/changelog.orig
+                fst=`echo $fst | $__sed -nr "s/(.*)svn([0-9]+)(.*)/\1svn$rev\3/p"`
+                echo "$fst" > $module/debian/changelog
+                $__tail -n +2 $module/debian/changelog.orig >> $module/debian/changelog
+            fi
+        fi
+    done
+    msg_end $?
+}
+
+update_debian_dir() {
+
+    local module
+    local TO_REPLACE
+    local replacement_lowercase
+    local version_file
+    local version_number
+    local replacement
+    module=$1
+
+    if [ -d ./$module/$module/debian ]; then
+         msg_begin "  Removing existing debian directory"
+         rm -rf ./$module/$module/debian
+         msg_end $?
+    fi
+
+    mkdir -p $module/$module/debian
+
+    msg_begin "  Copying specific debian directory"
+    if [ -d ./$module/debian ]; then
+        $__tar c --exclude=.svn --exclude=.git --exclude=changelog.orig $module/debian | $__tar x --directory $module/
+        if [ -d ./$module/debian_$__distro ]; then
+            cp -r ./$module/debian_$__distro/* ./$module/$module/debian/
+        fi
+    else
+        if [ -d ./$module/debian_$__distro ]; then
+        $__tar c --exclude=.svn --exclude=.git --exclude=changelog.orig $module/debian_$__distro | $__tar x --directory $module/
+        else
+            echo ""
+            warn "Missing debian directory for $module. Ignoring"
+            return
+        fi
+    fi
+    msg_end $?
+
+    if [ -e ./$module/$module/debian/control.in ]; then
+        msg_begin "  Replacing versions in control file"
+#TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+(-|_)*([A-Z]|[0-9])+_VERSION@' ./$module/$module/debian/control.in | cut -d @ -f 2 | sort -u`
+        TO_REPLACE=`grep -o -E '@([A-Z]|[0-9])+((-|_)*([A-Z]|[0-9]))*_VERSION@' ./$module/$module/debian/control.in | cut -d @ -f 2 | sort -u`
+        cp ./$module/$module/debian/control.in ./$module/$module/debian/control.temp
+
+        for replacement in $TO_REPLACE
+        do
+            replacement_lowercase=`echo $replacement | tr "[:upper:]" "[:lower:]"`
+            version_file=$__versions_dir/$replacement_lowercase
+            if [ ! -e $version_file ]; then
+                echo ""
+                warn "Could not find a replacement for $replacement"
+                continue
+            fi
+            version_number=`cat $version_file`
+            sed -i s/@$replacement@/$version_number/g ./$module/$module/debian/control.temp
+        done
+
+        mv ./$module/$module/debian/control.temp ./$module/$module/debian/control
+        msg_end $?
+    fi
+}
+
+generate_versions() {
+    if [ ! -d $__versions_dir ]; then
+        msg_begin "Creating versions dir $__versions_dir"
+        $__mkdir -p $__versions_dir
+        msg_end $?
+    fi
+
+    msg_begin "Generating version files"
+    for module in `echo $__all_modules |$__sed -e 's/:/ /g'`; do
+        if [ -e $module/debian/changelog ]; then
+            VERSION=`$__dpkg_parsechangelog -l$module/debian/changelog | grep Version: | cut -d" " -f2 | cut -d- -f1`
+            REVISION=`$__dpkg_parsechangelog -l$module/debian/changelog | grep Version: | cut -d- -f2`
+            if [ -z \$REVISION ]; then
+                echo "$VERSION" > $__versions_dir/"$module"_version
+            else
+                echo "$VERSION-$REVISION" >  $__versions_dir/"$module"_version
+            fi
+        fi
+    done
+    msg_end $?
+}
+
+build_pkg() {
     local dir
     dir=$1
 
@@ -48,61 +161,38 @@ cd $dir/`basename $dir`
 VERSION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d" " -f2 | cut -d- -f1\`
 REVISION=\`$__sbox_dpkg_parsechangelog | grep Version: | cut -d- -f2\`
 
-TO_REPLACE=\`grep -o -E '@([A-Z]|[0-9])+(-|_)*([A-Z]|[0-9])+_VERSION@' ./debian/control.in | cut -d @ -f 2 | sort -u\`
-
-# Test if we should process control.in file or not.
-if [ -z $__not_all_pkgs ]; then
-    cp ./debian/control.in ./debian/control.temp
-
-    for replacement in \$TO_REPLACE
-    do
-        replacement_lowercase=\`echo \$replacement | tr "[:upper:]" "[:lower:]"\`
-        version_file=$__versions_dir/\$replacement_lowercase
-        version_number=\`cat \$version_file\`
-        sed -i s/@\$replacement@/\$version_number/g ./debian/control.temp
-    done
-
-    mv ./debian/control.temp ./debian/control
-else
-    builddeps=\`$__sbox_dpkg_checkbuilddeps ./debian/control 2>&1 | grep Unmet | cut -d: -f3\`
-    target_lowercase=\`echo $target | cut -d_ -f1 | tr "[:upper:]" "[:lower:]"\`
 
-    if [ -z $__pkgslist_updated ];then
+builddeps=\`$__sbox_dpkg_checkbuilddeps ./debian/control 2>&1 | grep Unmet | cut -d: -f3\`
+target_lowercase=\`echo $target | cut -d_ -f1 | tr "[:upper:]" "[:lower:]"\`
 
-       has_extras_rep=\`grep 'deb http://repository.maemo.org/extras' $__srclist_file\`
-       if [ -z "\$has_extras_rep" ];then
-           echo "deb http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
-       fi
+if [ -z $__pkgslist_updated ];then
 
-        has_extras_rep=\`grep 'deb-src http://repository.maemo.org/extras' $__srclist_file\`
-        if [ -z "\$has_extras_rep" ];then
-           echo "deb-src http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
-       fi
-
-       apt-get update >> $dir/sbox_apt_update.log 2>&1
-       __pkgslist_updated=1
+    has_extras_rep=\`grep 'deb http://repository.maemo.org/extras' $__srclist_file\`
+    if [ -z "\$has_extras_rep" ];then
+        echo "deb http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
     fi
 
-    if [ -n "\$builddeps" ];then
-        echo \$builddeps | while read line
-        do
-            pkg_name=\`echo \$line | cut -d'(' -f1 | tr -d "[:blank:]"\`
-           pkg_version=\`echo \$line | cut -d= -f2 | cut -d')' -f1 | tr -d "[:blank:]"\`
-           apt-get -y install \$pkg_name=\$pkg_version >> $dir/sbox_builddeps.log 2>&1
-        done
+    has_extras_rep=\`grep 'deb-src http://repository.maemo.org/extras' $__srclist_file\`
+    if [ -z "\$has_extras_rep" ];then
+        echo "deb-src http://repository.maemo.org/extras \$target_lowercase free non-free" >> $__srclist_file
     fi
+
+    apt-get update >> $dir/sbox_apt_update.log 2>&1
+    __pkgslist_updated=1
+fi
+
+if [ -n "\$builddeps" ];then
+    echo \$builddeps | while read line
+    do
+        pkg_name=\`echo \$line | cut -d'(' -f1 | tr -d "[:blank:]"\`
+        pkg_version=\`echo \$line | cut -d= -f2 | cut -d')' -f1 | tr -d "[:blank:]"\`
+        apt-get -y install \$pkg_name=\$pkg_version >> $dir/sbox_builddeps.log 2>&1
+    done
 fi
 
 # $__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
 
-if [ -z \$REVISION ]
-then
-    echo "\$VERSION" > $__versions_dir/`basename $dir`_version
-else
-    echo "\$VERSION-\$REVISION" >  $__versions_dir/`basename $dir`_version
-fi
-
 exit \$?
 EOF
 
@@ -111,7 +201,7 @@ EOF
     return $?
 }
 
-function install_pkgs() {
+install_pkgs() {
     local dir
     dir=$1
 
@@ -138,7 +228,7 @@ EOF
     return 0
 }
 
-function uninstall_pkgs() {
+uninstall_pkgs() {
 
     cat << EOF > $__tmp_dir/sbox_uninstall_pkgs
 #!/bin/sh
@@ -154,15 +244,15 @@ EOF
     return $?
 }
 
-function sign_pkgs() {
+sign_pkgs() {
     local dir
     dir=$1
 
     cd $dir
+    print $__debsign
     $__debsign *.changes >> $dir/sign_pkgs.log 2>&1 || return 1
 
     cd - > /dev/null 2>&1
 
     return 0
 }
-