]> git.lyx.org Git - features.git/commitdiff
Script for building a maintenance distribution.
authorRichard Heck <rgheck@comcast.net>
Fri, 25 Nov 2011 17:45:26 +0000 (17:45 +0000)
committerRichard Heck <rgheck@comcast.net>
Fri, 25 Nov 2011 17:45:26 +0000 (17:45 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40278 a592a061-630c-0410-9148-cb99ea01b6c8

development/tools/lyx-build [new file with mode: 0755]

diff --git a/development/tools/lyx-build b/development/tools/lyx-build
new file mode 100755 (executable)
index 0000000..a0b6bd0
--- /dev/null
@@ -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;
+
+