diff --git a/development/tools/lyx-build b/development/tools/lyx-build new file mode 100755 index 0000000000..a0b6bd098a --- /dev/null +++ b/development/tools/lyx-build @@ -0,0 +1,126 @@ +#!/bin/bash +# This script builds a maintainance LyX distribution according to +# the procedure outlined at: +# http://wiki.lyx.org/Devel/ReleaseProcedure +# It also includes several other tests, to make sure the packages +# works as it should. +# Note that this is for svn, not for git. + +# A few variables need to be set, here at the top. +# where all the source trees live +BASE="/cvs/lyx/lyx-release"; +# where the svn directory lives +SRCDIR="/cvs/lyx/lyx-pristine"; +# editor +if [ -z "$EDITOR" ]; then EDITOR=vi; fi +# options to make, when we compile +MAKEOPTS="-j4"; + + +cd $SRCDIR/ +VERSION=$(head configure.ac | grep AC_INIT | perl -e 'while (<>) {m/(\d\.\d+\.\d+)/; print $1;}'); + +echo "This is version $VERSION."; +echo -n "Ready to build source packages..."; +read + +echo "Running svn export..."; +rm -Rf $BASE/lyx-export/ +svn export . $BASE/lyx-export/ +cd $BASE/lyx-export/ +./autogen.sh +rm -Rf $BASE/lyx-build/ +mkdir $BASE/lyx-build/ +cd $BASE/lyx-build/ + +$BASE/lyx-export/configure --enable-build-type=rel +if ! make lyxdist; then + echo "Couldn't make distribution!"; + exit 1; +fi + +echo "Packages created:"; +cp -v lyx-$VERSION.tar.{gz,xz} $BASE; + +echo -n "Ready to build signatures..."; +read + +gpg -b lyx-$VERSION.tar.gz +gpg -b lyx-$VERSION.tar.xz + +echo "Signatures created:" +cp -v lyx-$VERSION.tar.*.sig $BASE; + +echo -n "Ready to test compilation."; +read + +rm -Rf $BASE/lyx-test/ +mkdir $BASE/lyx-test/ +cd $BASE/lyx-test/ +tar -zxvf $BASE/lyx-build/lyx-$VERSION.tar.gz >/dev/null +if ! cd lyx-$VERSION; then + echo "Unable to enter build directory!"; + exit 1; +fi + +./configure --enable-build-type=rel + +if make $MAKEOPTS; then + echo "Compilation complete."; + echo -n "Ready to run LyX..."; + read + src/lyx -userdir /tmp/lyx-test +else + echo "Compilation errors!!"; + exit 1; +fi + +LASTNUM=$(echo $VERSION | sed -e 's/.*\.//'); +LAST=$(($LASTNUM - 1)); +FIRST=$(echo $VERSION | sed -e 's/[0-9]*$//'); +ORIGINAL=${FIRST}0; +LAST=$FIRST$LAST; +echo "Last version was $LAST."; +echo -n "Ready to make patch..."; +read + +cd $BASE/lyx-patch/; +tar -zxvf $BASE/lyx-build/lyx-$VERSION.tar.gz >/dev/null; + +if [ ! -d lyx-$LAST ]; then + echo "Can't find directory for last version $LAST!"; + exit 1; +fi + +diff -urN -x .svn -x version.cpp lyx-$LAST lyx-$VERSION > patch + +echo -n "Please check the patch..."; +read +$EDITOR patch; + +NUMFIX="th"; +if [ "$LASTNUM" = "1" ]; then + NUMFIX="st"; +elif [ "$LASTNUM" = "2" ]; then + NUMFIX="nd"; +fi +NUM="$LASTNUM$NUMFIX"; +cat $BASE/lyx-export/development/tools/patch-preamble | \ +sed -e "s/VERSION/$VERSION/; s/ORIGINAL/$ORIGINAL/; s/LAST/$LAST/; s/NUM/$NUM/;" >patch-preamble; +echo -n "Please verify the patch preamble..."; +read +$EDITOR patch-preamble; + +PATCH="patch-$VERSION"; +cat patch-preamble patch >$PATCH; +gzip -c $PATCH > $PATCH.gz +rm $PATCH.gz.sig; +gpg -b $PATCH.gz +xz -zc $PATCH > $PATCH.xz +rm $PATCH.xz.sig; +gpg -b $PATCH.xz + +echo -n "Patch and signatures created..."; +cp -v $PATCH.gz $PATCH.xz $BASE; + +