Index: utils/developer/CheckAllPossibleEnables.sh
===================================================================
--- utils/developer/CheckAllPossibleEnables.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
+++ utils/developer/CheckAllPossibleEnables.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
@@ -0,0 +1,103 @@
+#!/bin/bash -x
+#
+# here, we check a release for every possible enable/disable combination.
+
+# we enable or disable according to a bit combination of length #packets
+packets=("debug" "qtgui" "jobmarket" "vmg" "ecut") #"python"
+length=${#packets[*]}
+end=`units "2^$length" | awk -F": " {'print $2'}`
+
+function bitcheck {
+	# $1 is the bit array
+	# $2 is the length of the bit array
+	# $3 is the bit to check (starting at 0)
+	# we print 0 or 1 depending on the bit
+	let inverse=$2-$3-1
+	bits=$1
+	while [ $inverse -gt 0 ]; do
+		let bits=$bits/2
+		((inverse-=1))
+	done
+	let bit=$bits%2
+	echo $bit
+}
+
+if [ -z $1 ]; then
+	echo "Usage: $0 <source repo> <path where to check> <commit> [configure flags]"
+	exit 1
+fi
+SOURCEDIR="$1"
+shift
+DIR="$1"
+shift
+commit="$1"
+shift
+
+# variables to define
+LOG="`pwd`/commitcheck-${commit}"
+checkdir="commitchecking"
+cores=12
+
+# check whether target is empty and create clone of git repo
+if [ -e $DIR ]; then
+	echo "Target directory $DIR must not be present!"
+	exit 255
+fi
+echo -e "#Begin of Logfile" >${LOG}.log
+git clone $SOURCEDIR $DIR | tee -a ${LOG}.log
+DIR=`realpath $DIR`
+if [ ! $? -eq 0 ]; then
+	echo "Please install realpath package!"
+	exit 128
+fi
+OLDDIR=`pwd`
+cd $DIR
+
+i=0
+while [ $i -lt $end ]; do
+
+# GENERATING configure line
+	configureline="--enable-python "
+	j=0
+	while [ $j -lt ${#packets[*]} ]; do
+		bit=`bitcheck $i $length $j`
+		if [ $bit -eq 0 ]; then
+			configureline=${configureline}" --disable-${packets[$j]}"
+		else
+			configureline=${configureline}" --enable-${packets[$j]}"
+		fi
+		((j+=1))
+	done
+
+# PERFORMING CHECKS
+	git checkout -f ${commit}
+	# copy some overrides
+	for testfile in `find tests -name 'Makefile.am'`; do
+		sed -i -e "s#max_jobs = 4#max_jobs = $cores#" $testfile
+	done
+	./bootstrap
+	rm -rf $checkdir
+	mkdir -p $checkdir
+	cd $checkdir
+	echo "Now testing version `git describe --dirty --always` with $configureline" &>${LOG}-${i}.log
+	../configure --prefix=${DIR}/$checkdir ${configureline} "$@" &>>${LOG}-${i}.log
+	make -k -j${cores} check &>>${LOG}-${i}.log
+	resultcode=$?
+	# add failed testsuite.logs
+	echo "#################################################################################" >>${LOG}-${i}.log
+	for failedlog in `find tests/ -regex '.*/[0-9]*/.*' -name 'testsuite.log' -exec grep -l "FAILED" {} \;`; do
+		echo -e "\t$failedlog" >>${LOG}-${i}.log
+		echo "#################################################################################" >>${LOG}-${i}.log
+		cat <$failedlog >>${LOG}-${i}.log
+		echo "#################################################################################" >>${LOG}-${i}.log
+	done
+	if [ $resultcode -gt 0 ]; then
+		echo -e "${i}: `git describe --dirty --always`, ${configureline}: FAILED." >>${LOG}.log
+	else
+		echo -e "${i}: `git describe --dirty --always`, ${configureline}: ok." >>${LOG}.log
+	fi
+	cd ..
+
+	((i+=1))
+done
+cd $OLDDIR
Index: utils/developer/CheckMolecuilderCommitRanges.sh
===================================================================
--- utils/developer/CheckMolecuilderCommitRanges.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
+++ utils/developer/CheckMolecuilderCommitRanges.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
@@ -0,0 +1,162 @@
+#!/bin/bash
+#
+# This script checks each commit in a given interval by:
+# - checking out the commit in a clean manner
+# - compiling completely (with debug)
+# - running the testsuite
+# and rounding all up in a suitable log to tell what if went wrong.
+
+# check sufficiently given arguments
+if [ -z $4 ]; then
+	echo "Usage: $0 <source repo> <Path where to check> <first commit> <second commit> [...parameters for configure...]"
+	echo "This will check each of the commits in the inclusive interval [first, second]."
+	exit 255
+fi
+# check source
+SOURCEDIR=`realpath $1`
+shift
+if [ ! $? -eq 0 ]; then
+	echo "Please install realpath package!"
+	exit 128
+fi
+DIR=$1
+shift
+base=$1
+shift
+limit=$1
+shift
+
+# some variables
+LOG="`pwd`/commitcheck-${base}-${limit}"
+checkdir="commitchecking"
+cores=12
+
+# check whether base dir contains valid repo
+if [ ! -e $SOURCEDIR ]; then
+	echo "$SOURCEDIR does not exist!"
+	exit 255
+fi
+if [ ! -e $SOURCEDIR/HEAD ]; then
+	if [ ! -e $SOURCEDIR/.git ]; then
+		echo "$SOURCEDIR does not contain a git repository!" | tee -a ${LOG}.log
+		exit 255
+	else
+		SOURCEDIR="$SOURCEDIR/.git"
+	fi
+fi
+
+# check whether target is empty and create clone of git repo
+if [ -e $DIR ]; then
+	echo "Target directory $DIR must not be present!"
+	exit 255
+fi
+echo -e "#Begin of Logfile" >${LOG}.log
+git clone $SOURCEDIR $DIR | tee -a ${LOG}.log
+DIR=`realpath $DIR`
+
+# we are set go to target dir
+OLDDIR=`pwd`
+cd $DIR
+
+# check whether both given commit names are valid
+test=`git rev-list ${base}..${limit} &>/dev/null`
+if [ $? -eq 128 ]; then
+	# try with remote on either side
+	test=`git rev-list remotes/origin/${base}..${limit} &>/dev/null`
+	if [ $? -eq 128 ]; then
+		test=`git rev-list ${base}..remotes/origin/${limit} &>/dev/null`
+		if [ $? -eq 128 ]; then
+			test=`git rev-list remotes/origin/${base}..remotes/origin/${limit} &>/dev/null`
+			if [ $? -eq 128 ]; then
+				echo "At least one of the given commits ${base} or ${limit} does not exist!" | tee -a ${LOG}.log
+				exit 255
+			else
+				echo "Using remotes/origin/${base} instead of ${base} and remotes/origin/${limit} instead of ${limit}"
+				base="remotes/origin/${base}"
+				limit="remotes/origin/${limit}"
+			fi
+		else
+			echo "Using remotes/origin/${limit} instead of ${limit}."
+			limit="remotes/origin/${limit}"
+		fi
+	else
+		echo "Using remotes/origin/${base} instead of ${base}."
+		base="remotes/origin/${base}"
+	fi
+fi
+
+# calculate the number of commits
+commitscount=`git rev-list --first-parent ${base}..${limit} | wc -l`
+if [ $commitscount -eq 0 ]; then
+	echo "There are no commits to check!" | tee -a ${LOG}.log
+	echo "Maybe you have given first and second wrong way round?" | tee -a ${LOG}.log
+	echo "Remember: First has to be older than second." | tee -a ${LOG}.log
+	exit 1
+fi
+# DON't set limit for HEAD~: git starts counting at 0, wc however at 1, but git does not include last commit ${base} in the list!
+let commitlimit=$commitscount
+# and check whether it conincides with ${base}
+basecommitdescribe=`git describe ${base}`
+topcommitdescribe=`git describe ${limit}`
+basecommitdescribefromtop=`git describe ${limit}~${commitlimit}`
+if [ "$basecommitdescribe" != "$basecommitdescribefromtop" ]; then
+	echo "Something went wrong internally!" | tee -a ${LOG}.log
+	echo "Compared $basecommitdescribe with $basecommitdescribefromtop ..."
+	echo "The number of commits calculated in between does not lead to the base commit." | tee -a ${LOG}.log
+	exit 128
+fi
+
+# ============== PERFORMING CHECKS ==========================
+echo "We are checking all commits from ${base} to ${limit}." | tee -a ${LOG}.log
+echo "Base: ${basecommitdescribe}" | tee -a ${LOG}.log
+echo -e "Top: ${topcommitdescribe}\n" | tee -a ${LOG}.log
+# first fast overview without debug, then thorough with debug
+#for debug_option in "--disable-debug"; do
+#for debug_option in "--enable-debug"; do
+for debug_option in "--disable-debug" "--enable-debug"; do
+	i=${commitlimit}
+	while [ $i -ge 0 ]; do
+		let nr=${commitlimit}-$i
+		git checkout -f ${limit}~${i}
+		# more jobs on tests
+		for testfile in `find tests -name 'Makefile.am'`; do
+			sed -i -e "s#max_jobs = 4#max_jobs = $cores#" $testfile
+		done
+		./bootstrap
+		rm -rf $checkdir
+		mkdir -p $checkdir
+		cd $checkdir
+		echo "Now testing version `git describe --dirty --always` with $debug_option" &>${LOG}-${nr}.log
+		../configure --prefix=${DIR}/$checkdir ${debug_option} "$@" &>>${LOG}-${nr}.log
+		make -k -j${cores} check &>>${LOG}-${nr}.log
+		resultcode=$?
+		# add failed testsuite.logs
+		echo "#################################################################################" >>${LOG}-${nr}.log
+		for failedlog in `find tests/ -regex '.*/[0-9]*/.*' -name 'testsuite.log' -exec grep -l "FAILED" {} \;`; do
+			echo -e "\t$failedlog" >>${LOG}-${nr}.log
+			echo "#################################################################################" >>${LOG}-${nr}.log
+			cat <$failedlog >>${LOG}-${nr}.log
+			echo "#################################################################################" >>${LOG}-${nr}.log
+		done
+		if [ $resultcode -gt 0 ]; then
+			echo -e "${nr}: `git describe --dirty --always`, ${debug_option}: FAILED." >>${LOG}.log
+		else
+			echo -e "${nr}: `git describe --dirty --always`, ${debug_option}: ok." >>${LOG}.log
+		fi
+#                if [ x${debug_option} = x"--enable-debug" ]; then
+#			make -k -j${cores} distcheck &>>${LOG}-${nr}.log
+#			if [ $? -gt 0 ]; then
+#				echo -e "${nr}: `git describe --dirty --always`, ${debug_option}, distcheck: FAILED." >>${LOG}.log
+#			else
+#				echo -e "${nr}: `git describe --dirty --always`, ${debug_option}, distcheck: ok." >>${LOG}.log
+#			fi
+#		fi
+		cd ..
+		((i-=1));
+	done
+done
+# =================== DONE =================================
+
+echo -e "#End of Logfile" >>${LOG}.log
+cd $OLDDIR
+exit 0
Index: utils/developer/CheckMolecuilderEnables.sh
===================================================================
--- utils/developer/CheckMolecuilderEnables.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
+++ utils/developer/CheckMolecuilderEnables.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
@@ -0,0 +1,41 @@
+#!/bin/bash -x
+#
+# This scripts stores required packages locally prior to calling 
+# CheckAllPossiblEnables.sh such that e.g. they don't are accessed over
+# the network.
+
+function checkdir
+{
+	# $1 is the variable name
+	# $2 is the variable to check
+if [ -z $2 ]; then
+	echo "Please set a $1 environment variable."
+
+if [ -z $1 ]; then
+	echo "Usage: $0 <commit> <TMPDIR=...> <PACKAGEDIR=...> <MOLECUILDERDIR=...>"
+	exit 1
+fi
+
+# TMPDIR is where we test
+checkdir TMPDIR $TMPDIR
+# PACKAGEDIR contains required packages
+checkdir PACKAGEDIR $PACKAGEDIR
+# MOLECUILDERDIR contains molecuilder repo to check
+checkdir MOLECUILDERDIR $MOLECUILDERDIR
+
+mkdir -p /tmp/ccache-$user
+
+# make dependencies local
+for depdir in boost-1.47 Qt-4.7.4 CodePatterns-1.2.3 JobMarket-1.1.1; do
+	echo "Syncing local ${depdir} with remote ..."
+	if [ ! -e $TMPDIR/dependencies/${depdir} ]; then
+		echo "Creating dir ..."
+		mkdir -p $TMPDIR/dependencies/${depdir}
+	fi
+	rsync -avz --delete-after $PACKAGEDIR/${depdir}/ $TMPDIR/dependencies/${depdir} 
+done
+find $TMPDIR/dependencies/ -path '*/pkgconfig/*' -name '*.pc' -exec sed -i -e "s#$PACKAGEDIR#$TMPDIR/dependencies#g" {} \;
+
+export PKG_CONFIG_PATH="$TMPDIR/dependencies/Qt-4.7.4/lib/pkgconfig"
+rm molecuilder -rf
+./CheckAllPossibleEnables.sh $MOLECUILDERDIR molecuilder $1 --with-Qt-dir=$TMPDIR/dependencies/Qt-4.7.4 --with-Qt-bin=$TMPDIR/dependencies/Qt-4.7.4/bin --with-codepatterns=$TMPDIR/dependencies/CodePatterns-1.2.3 --with-jobmarket=$TMPDIR/dependencies/JobMarket-1.1.1 --with-boost=$TMPDIR/dependencies/boost-1.47 --with-vmg-mpi CCACHE_DIR="/tmp/ccache-heber/" CXX="ccache g++" MPICXX="mpicxx.openmpi" CXXFLAGS="-Wall -g3" MPICXX=mpicxx.openmpi PKG_CONFIG_PATH="$TMPDIR/dependencies/Qt-4.7.4/lib/pkgconfig"
Index: utils/developer/CheckMolecuilderWithPrefetchedPackages.sh
===================================================================
--- utils/developer/CheckMolecuilderWithPrefetchedPackages.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
+++ utils/developer/CheckMolecuilderWithPrefetchedPackages.sh	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# This scripts stores required packages locally prior to calling 
+# checkcommits.sh such that e.g. they don't are accessed over the network.
+
+function checkdir
+{
+	# $1 is the variable name
+	# $2 is the variable to check
+if [ -z $2 ]; then
+	echo "Please set a $1 environment variable."
+	exit 1
+fi
+}
+
+# TMPDIR is where we test
+checkdir TMPDIR $TMPDIR
+# PACKAGEDIR contains required packages
+checkdir PACKAGEDIR $PACKAGEDIR
+# MOLECUILDERDIR contains molecuilder repo to check
+checkdir MOLECUILDERDIR $MOLECUILDERDIR
+
+if [ -z $2 ]; then
+	echo "Usage: $0 <first commit> <second commit> <TMPDIR=...> <PACKAGEDIR=...> <MOLECUILDERDIR=...>"
+	exit 1
+fi
+
+mkdir -p /tmp/ccache-heber
+
+# make dependencies local
+for depdir in boost-1.47 Qt-4.7.4 CodePatterns-1.2.3 JobMarket-1.1.1; do
+	echo "Syncing local ${depdir} with remote ..."
+	if [ ! -e $TMPDIR/dependencies/${depdir} ]; then
+		echo "Creating dir ..."
+		mkdir -p $TMPDIR/dependencies/${depdir}
+	fi
+	rsync -avz --delete-after $PACKAGEDIR/${depdir}/ $TMPDIR/dependencies/${depdir} 
+done
+find $TMPDIR/dependencies/ -path '*/pkgconfig/*' -name '*.pc' -exec sed -i -e "s#$PACKAGEDIR#$TMPDIR/dependencies#g" {} \;
+
+export PKG_CONFIG_PATH="$TMPDIR/dependencies/Qt-4.7.4/lib/pkgconfig"
+rm molecuilder -rf
+./CheckMolecuilderCommitRanges.sh $MOLECUILDERDIR molecuilder $1 $2 --with-Qt-dir=$TMPDIR/dependencies/Qt-4.7.4 --with-Qt-bin=$TMPDIR/dependencies/Qt-4.7.4/bin --with-codepatterns=$TMPDIR/dependencies/CodePatterns-1.2.3 --enable-jobmarket --enable-vmg --with-vmg-mpi --with-jobmarket=$TMPDIR/dependencies/JobMarket-1.1.1 --with-boost=$TMPDIR/dependencies/boost-1.47 --enable-ecut --enable-python --enable-qtgui CCACHE_DIR="/tmp/ccache-heber/" CXX="ccache g++" MPICXX="mpicxx.openmpi" CXXFLAGS="-Wall -g3" PKG_CONFIG_PATH="$TMPDIR/dependencies/Qt-4.7.4/lib/pkgconfig"
Index: utils/developer/README
===================================================================
--- utils/developer/README	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
+++ utils/developer/README	(revision 97a858e8bd34fb9d017810e7d91311ade1fbbf2e)
@@ -0,0 +1,2 @@
+Herein are gathered some scripts only used by developers for checking commit ranges and releases.
+
