diff options
Diffstat (limited to 'kexi/tools/build_tarball/build_kexi_tarball.sh')
-rwxr-xr-x | kexi/tools/build_tarball/build_kexi_tarball.sh | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/kexi/tools/build_tarball/build_kexi_tarball.sh b/kexi/tools/build_tarball/build_kexi_tarball.sh new file mode 100755 index 00000000..6e5a6f34 --- /dev/null +++ b/kexi/tools/build_tarball/build_kexi_tarball.sh @@ -0,0 +1,232 @@ +#!/bin/sh +# +# This script prepares & uploads tarballs +# Usage within KDE svn tree. +# Based on cvs2pack +# Copyright 2002 Nikolas Zimmermann <[email protected]> +# Copyright 2004-2006 Jaroslaw Staniek <[email protected]> +# Copyright 2005 Martin Ellis <[email protected]> +# License: GPL (http://www.gnu.org/) + +DIRNAME=`pwd`/`dirname $0` +cd $DIRNAME + +# General +MODULE=koffice +PROJECT=kexi +PROJECT_TITLE=Kexi +MODULE_PATH=trunk/$MODULE + +# Admin from branch as trunk in for KDE4. +# Bump to 3.5 when that branch is stable? +KDESOURCEDIR=branches/KDE/3.5 +KDEADMIN_PATH=$KDESOURCEDIR/kde-common/admin + +PROJECT_PATH=koffice/kexi +#For versions in a branch: +PROJECT_VER=1.0 +#PROJECT_PATH=branches/kexi/$PROJECT_VER +SVN2DIST_OPTIONS=--no-i18n #set --no-i18n for version being outside the trunk + +# Make sure these are all directories - see Makefile creation below +EXC="3rdparty/uuid plugins/importwizard scriptingcore scriptingplugins" + +# Uploading +UPLOAD_USER=user # CHANGE +UPLOAD_PASS=pass # CHANGE +UPLOAD_HOST=host # CHANGE +DO_UPLOAD=0 # 1 = Yes; 0 = No + +# SVN'ing +SVN_USER=staniek # CHANGE +SVN_PASS= # CHANGE +SVN_HOST=https://svn.kde.org/home/kde + +# Dist-settings +# set empty if this is snapshot +DIST_VER=`grep "# define KEXI_VERSION_STRING" ../../kexi_version.h | \ + sed -e 's/.*\"\(.*\)\"/\1/;s/ //g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/;'` + +# Pick kexi_stable.lsm or kexi.lsm as a LSM file template +echo $DIST_VER | grep -e "beta" -e "rc" \ + > /dev/null && lsmsrcfile=kexi.lsm || lsmsrcfile=kexi_stable.lsm + +fixAppSpecific() +{ + rm -f ../changes-* #remove koffice-specific changelog + mv CHANGES ../ + echo "For complete list of authors see kexi/main/kexiaboutdata.h file or use \"Help->About Kexi\" menu command." > ../AUTHORS +} + +# Paths +mkdir -p /tmp/kexi-dist +DESTINATION=/tmp/kexi-dist/$DIST_VER # CHANGE TO A NON-EXISTING DIR, WHICH WILL BE CREATED LATER!!! +CONFIGURE_PREFIX=`kde-config --prefix` # CHANGE +EXPECT_PROGRAM=`which expect` # CHANGE +ED_LOCATION=/bin # CHANGE + +# Work around for stupid Subversion bug on Martin's machine +SVN_PROGRAM="strace -o /dev/null "`which svn` + +DATE_PROGRAM=`which date` # CHANGE +PERL_PROGRAM=`which perl` # CHANGE +SVN2DIST_PROGRAM=`which svn2dist` # CHANGE +test -z $SVN2DIST_PROGRAM && exit 1 +NCFTPPUT_PROGRAM=`which ncftpput` # CHANGE +CONF= # CANGE OR LEAVE EMPTY IF NO SPECIAL configure.in.in should be copied + +# --- end of configuration area --- + +# Main program +if [ -z "$DIST_VER" ]; then + today=`$DATE_PROGRAM +%d-%m-%y` + snapshot="-snapshot" +else + today=$DIST_VER + snapshot= +fi + +echo "*** Creating $PROJECT-$today$snaphshot ***" + +if ! [ -e $DESTINATION ]; then + echo "*** Setup-Mode: Creating..." + echo " -> $DESTINATION..." + mkdir $DESTINATION + echo " -> $DESTINATION/source..." + mkdir $DESTINATION/source + echo " -> $DESTINATION/archive..." + mkdir $DESTINATION/archive +fi + +if [ -e $DESTINATION ]; then +# rm -f $DESTINATION/expect_script + +# touch $DESTINATION/expect_script +# chmod +x $DESTINATION/expect_script + +# echo "#!$EXPECT_PROGRAM +# spawn $SVN_PROGRAM -d :pserver:$SVN_USER@$CVS_HOST:/home/kde login +# expect -re \"SVN password: \" +# send \"$SVN_PASS\\r\" +# expect eof" >> $DESTINATION/expect_script + + rm -f $DESTINATION/LOG +fi + +echo $DESTINATION/source/$MODULE +if ! [ -e $DESTINATION/source/$MODULE ]; then + echo "*** Setup-Mode: Checking $MODULE/$PROJECT out from SVN..." + cd $DESTINATION/source + + # Get admin dir + echo "$SVN_PROGRAM co $SVN_HOST/$KDEADMIN_PATH" >> $DESTINATION/LOG + $SVN_PROGRAM co $SVN_HOST/$KDEADMIN_PATH >> $DESTINATION/LOG 2>&1 || exit 1 + + # Get KOffice top-level dir + echo "$SVN_PROGRAM co -N $SVN_HOST/$MODULE_PATH" >> $DESTINATION/LOG + $SVN_PROGRAM co -N $SVN_HOST/$MODULE_PATH >> $DESTINATION/LOG 2>&1 || exit 1 + + # Get KoProperty, KOffice{Core|UI} and KROSS from lib + echo "cd $MODULE && $SVN_PROGRAM up -N lib ; cd .. " >> $DESTINATION/LOG + (cd $MODULE && $SVN_PROGRAM up -N lib ; cd .. ) >> $DESTINATION/LOG 2>&1 || exit 1 + echo "cd $MODULE/lib && $SVN_PROGRAM up koproperty ; cd .." >> $DESTINATION/LOG + (cd $MODULE/lib && $SVN_PROGRAM up koproperty ; cd ..) >> $DESTINATION/LOG 2>&1 || exit 1 + echo "cd $MODULE/lib && $SVN_PROGRAM up kofficecore ; cd .." >> $DESTINATION/LOG + (cd $MODULE/lib && $SVN_PROGRAM up kofficecore ; cd ..) >> $DESTINATION/LOG 2>&1 || exit 1 + echo "cd $MODULE/lib && $SVN_PROGRAM up kofficeui ; cd .." >> $DESTINATION/LOG + (cd $MODULE/lib && $SVN_PROGRAM up kofficeui ; cd ..) >> $DESTINATION/LOG 2>&1 || exit 1 + echo "cd $MODULE/lib && $SVN_PROGRAM up kross ; cd .." >> $DESTINATION/LOG + (cd $MODULE/lib && $SVN_PROGRAM up kross ; cd ..) >> $DESTINATION/LOG 2>&1 || exit 1 + + # Get Kexi + echo "cd $MODULE && $SVN_PROGRAM up $PROJECT ; cd .." >> $DESTINATION/LOG + (cd $MODULE && $SVN_PROGRAM up $PROJECT ; cd ..) >> $DESTINATION/LOG 2>&1 || exit 1 + + #mv $PROJECT_VER/$MODULE/$PROJECT $MODULE/ || exit 1 + #rm -rf $PROJECT_VER || exit 1 + + cd $MODULE || exit 1 + + ln -s ../admin admin + cd .. +fi + + +echo "1. Cleaning up..." +cd $DESTINATION/source/$MODULE || exit 1 +rm -fr acinclude.m4 aclocal.m4 Makefile.in Makefile libtool $PROJECT/config.h \ +config.h.in stamp-h.in subdirs configure configure.in configure.files stamp-h \ +inst-apps autom4te-2.5x.cache autom4te.cache .autoconf_trace MakeVars.in \ +Makefile.am Makefile.rules.in + +find . -name \*~ | xargs rm -f + + +echo "2. Updating from SVN..." +#$DESTINATION/expect_script >> $DESTINATION/LOG 2>&1 +cd admin || exit 1 +$SVN_PROGRAM up >> $DESTINATION/LOG 2>&1 || exit 1 +cd ../kexi || exit 1 +$SVN_PROGRAM up >> $DESTINATION/LOG 2>&1 || exit 1 + + +cd $DESTINATION/archive || exit 1 +rm -f * +#rm -f $DESTINATION/expect_script + +echo "3. Makefile creation..." +export UNSERMAKE="no" +if [ -n "$CONF" ]; then + cp $CONF $DESTINATION/source/$MODULE +fi +cd $DESTINATION/source/$MODULE/$PROJECT + +for dir in $EXC; do + rm -rf $dir + # Avoid Makefile.cvs complaining about missing dirs + mkdir $dir +done +#fix exectutable bits for sources: +find . -name \*.h -o -name \*.cpp -o -name \*.c -o -name \*.cc -o -name \*.1 | xargs chmod a-x + +#other app-specific fixes: +fixAppSpecific + +#--svn2dist will do this +#cd $DESTINATION/source/$MODULE +#make -f Makefile.cvs >> $DESTINATION/LOG 2>&1 +#cd .. +cd $DESTINATION/source +echo "4. Building tarballs..." +$SVN2DIST_PROGRAM $MODULE $PROJECT -v $today \ + --svn-root "$SVN_HOST/trunk" \ + $SVN2DIST_OPTIONS \ + --log="$DESTINATION/LOG.SVN2DIST" >> $DESTINATION/LOG 2>&1 || exit 1 +cat "svn2dist-$PROJECT.log" >> $DESTINATION/LOG +rm -Rf $PROJECT-$today +rm -f $PROJECT-$today.tar +mv $PROJECT-$today.* ../archive +cd ../archive + +#create .lsm file +lsmfile=$PROJECT"-"$DIST_VER".lsm" +echo "Begin4 +Title: $PROJECT_TITLE +Version: "$DIST_VER" +Entered-date: "`date +%Y-%m-%d` > $lsmfile +cat $DIRNAME/$lsmsrcfile >> $lsmfile + +if [ -n "$snapshot" ] ; then + mv $PROJECT-$today.tar.bz2 $PROJECT-$today$snapshot.tar.bz2 + mv $PROJECT-$today.tar.gz $PROJECT-$today$snapshot.tar.gz +fi + +if [ $DO_UPLOAD -eq 1 ]; then + echo "5. Uploading tarballs..." + $NCFTPPUT_PROGRAM -u $UPLOAD_USER -p $UPLOAD_PASS $UPLOAD_HOST $PROJECT $DESTINATION/archive/* >> $DESTINATION/LOG 2>&1 + cd .. + echo "6. Done!" + exit +fi + +echo "5. Won't upload. Done!" |