summaryrefslogtreecommitdiffstats
path: root/kexi/tools/build_tarball/build_kexi_tarball.sh
diff options
context:
space:
mode:
Diffstat (limited to 'kexi/tools/build_tarball/build_kexi_tarball.sh')
-rwxr-xr-xkexi/tools/build_tarball/build_kexi_tarball.sh232
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!"