From f7308a3f13fe61ba6fd3aa3ce6dd1726c761cb0c Mon Sep 17 00:00:00 2001 From: David Spencer Date: Sat, 16 Apr 2016 14:21:05 +0100 Subject: academic/root: Updated for version 5.34.36. Fixes build failure with gcc-5.3 on i586. Enabled gsl and fftw by default, since they are both in Slackware. Moved from /usr/ROOT to /opt/ROOT. Script cleanups. --- academic/root/README | 21 ++---------- academic/root/doinst.sh | 1 - academic/root/root.SlackBuild | 76 ++++++++++++++++++++----------------------- academic/root/root.info | 6 ++-- academic/root/root_gsl2.patch | 42 ------------------------ 5 files changed, 42 insertions(+), 104 deletions(-) delete mode 100644 academic/root/root_gsl2.patch (limited to 'academic/root') diff --git a/academic/root/README b/academic/root/README index fd6cfdc83d..c8beb68da7 100644 --- a/academic/root/README +++ b/academic/root/README @@ -12,24 +12,9 @@ seems impossible to stress all of them in this one script. Therefore the potential user is strongly advised to check the configure script. -The script was written to suit basic offline data analysis with -possible GSL and FFTW support with full documentation and tutorials. -It should be more than enough for normal user. +For mathmore support, run the SlackBuild script with MATHMORE=yes, and +for QT support, run the SlackBuild script with QT=yes, for example -It has 2 optional dependencies: GSL (accessible from SlackBuilds) -and fftw (part of the official Slackware packages). - -Script has also mathmore support, for which one needs to GSL. + MATHMORE=yes ./root.SlackBuild Compilation takes quite a while. - -To steer the SlackBuild script, run it with these variables: - -GSL=yes(no) MATHMORE=yes(no) FFTW=yes(no) QT=yes(no) ./root.SlackBuild - -where the values in brackets are the default values that will -be used unless specified otherwise. - -Note that by default this script will install things in /usr/ROOT: -it will add /usr/ROOT/lib$LIBDIRSUFFIX to /etc/ld.so.conf and a -profile.d script to set the correct PATHs. diff --git a/academic/root/doinst.sh b/academic/root/doinst.sh index 7a4c9ed06a..2346641304 100644 --- a/academic/root/doinst.sh +++ b/academic/root/doinst.sh @@ -1,4 +1,3 @@ if [ ! "$(grep @PREFIX@/lib@LIBDIRSUFFIX@ etc/ld.so.conf)" ]; then echo "@PREFIX@/lib@LIBDIRSUFFIX@" >> etc/ld.so.conf - /sbin/ldconfig fi diff --git a/academic/root/root.SlackBuild b/academic/root/root.SlackBuild index 0a182993d8..bb507f0536 100644 --- a/academic/root/root.SlackBuild +++ b/academic/root/root.SlackBuild @@ -18,7 +18,7 @@ # Modified by the slackbuilds.org project PRGNAM=root -VERSION=${VERSION:-5.34.32} +VERSION=${VERSION:-5.34.36} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} @@ -49,8 +49,9 @@ else LIBDIRSUFFIX="" fi -# GSL support -if [[ ${GSL:-no} = "no" ]]; then +set -e + +if [ ${GSL:-yes} = "no" ]; then GSL_FLAGS="--disable-gsl-shared" else GSL_FLAGS="--enable-gsl-shared \ @@ -61,8 +62,7 @@ else fi fi -# FFTW3 support -if [[ ${FFTW:-no} = "no" ]]; then +if [ ${FFTW:-yes} = "no" ]; then FFTW_FLAGS="--disable-fftw3" else FFTW_FLAGS="--enable-fftw3 \ @@ -70,57 +70,47 @@ else --with-fftw3-libdir=/usr/lib${LIBDIRSUFFIX}" fi -if [[ ${QT:-no} = "no" ]]; then +if [ ${QT:-no} = "no" ]; then QT_FLAGS="--disable-qt" else QT_FLAGS="--enable-qt" fi -# The place where our python modules are installed -PYTHONDIR=$(python -c "import sys, os; print os.path.join('/usr/lib${LIBDIRSUFFIX}', 'python%s' % sys.version[:3], 'site-packages')") - -# Get the job number to use from the MAKEFLAGS -NUMJOBS=$(expr "$(echo $MAKEFLAGS)" : '\(-j[0-9]*\)' | sed "s|-j||" ) - -set -e - rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP -rm -rf $PRGNAM-$VERSION -tar xvzf $CWD/$PRGNAM\_v$VERSION.source.tar.gz -mv $PRGNAM $PRGNAM-$VERSION -cd $PRGNAM-$VERSION +rm -rf $PRGNAM +tar xvf $CWD/$PRGNAM\_v$VERSION.source.tar.gz +cd $PRGNAM chown -R root:root . find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 -o -perm 511 \) \ - -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ - -exec chmod 644 {} \; - -# Fix building with gsl-2.1 -patch -p1 < $CWD/root_gsl2.patch + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; # Make sure we use system libs and headers -rm -r graf3d/ftgl/{inc,src} || die -rm -r graf2d/freetype/src || die -rm -r graf3d/glew/{inc,src} || die -rm -r core/pcre/src || die -LANG=C LC_ALL=C find core/zip -type f -name "[a-z]*" -print0 | xargs -0 rm -f || die -rm -r core/lzma/src/*.tar.gz || die +rm -r graf3d/ftgl/{inc,src} +rm -r graf2d/freetype/src +rm -r graf3d/glew/{inc,src} +rm -r core/pcre/src +LANG=C LC_ALL=C find core/zip -type f -name "[a-z]*" -print0 | xargs -0 rm -f +rm -r core/lzma/src/*.tar.gz # prefix where to install stuff -PREFIX=/usr/ROOT +PREFIX=/opt/ROOT +# Use --with-clang to avoid gcc-5.3 internal compiler error on i586 CFLAGS="$SLKCFLAGS" \ CXXFLAGS="$SLKCFLAGS" \ ./configure \ + --with-clang \ --prefix=$PREFIX \ --libdir=$PREFIX/lib${LIBDIRSUFFIX} \ --incdir=$PREFIX/include \ --mandir=$PREFIX/man/man1 \ --etcdir=$PREFIX/etc/root \ - --docdir=$PREFIX/doc/$PRGNAM-$VERSION \ + --docdir=/usr/doc/$PRGNAM-$VERSION \ --enable-roofit \ --enable-unuran \ --disable-builtin-freetype \ @@ -135,13 +125,17 @@ CXXFLAGS="$SLKCFLAGS" \ --enable-shared \ --build=$ARCH-slackware-linux -make -j $NUMJOBS +make make install DESTDIR=$PKG # Move some python stuff in the proper place +PYTHONDIR=$(python -c "import sys, os; print os.path.join('/usr/lib${LIBDIRSUFFIX}', 'python%s' % sys.version[:3], 'site-packages')")/ mkdir -p $PKG$PYTHONDIR -mv $PKG$PREFIX/lib$LIBDIRSUFFIX/*.py* $PKG$PREFIX/lib$LIBDIRSUFFIX/python/genreflex \ - $PKG$PYTHONDIR/ +mv \ + $PKG$PREFIX/lib$LIBDIRSUFFIX/*.py \ + $PKG$PREFIX/lib$LIBDIRSUFFIX/*.pyc \ + $PKG$PREFIX/lib$LIBDIRSUFFIX/python/genreflex \ + $PKG$PYTHONDIR rm -fr $PKG$PREFIX/lib$LIBDIRSUFFIX/python find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ @@ -151,17 +145,19 @@ find $PKG$PREFIX/man -type f -exec gzip -9 {} \; # Install some profile.d scripts to use the right paths mkdir -p $PKG/etc/profile.d -echo "set path = ( \$path $PREFIX/bin )" > $PKG/etc/profile.d/root.csh +echo "set path = ( \$path $PREFIX/bin )" > $PKG/etc/profile.d/root.csh echo "setenv MANPATH \${MANPATH}:$PREFIX/man" >> $PKG/etc/profile.d/root.csh -echo "PATH=\$PATH:$PREFIX/bin" > $PKG/etc/profile.d/root.sh +echo "PATH=\$PATH:$PREFIX/bin" > $PKG/etc/profile.d/root.sh echo "MANPATH=\$MANPATH:$PREFIX/man" >> $PKG/etc/profile.d/root.sh chmod +x $PKG/etc/profile.d/root.* -cat $CWD/$PRGNAM.SlackBuild > $PKG$PREFIX/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc -sed -e "s|@LIBDIRSUFFIX@|$LIBDIRSUFFIX|" -e "s|@PREFIX@|$PREFIX|" \ +sed \ + -e "s|@LIBDIRSUFFIX@|$LIBDIRSUFFIX|" \ + -e "s|@PREFIX@|$PREFIX|" \ $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG diff --git a/academic/root/root.info b/academic/root/root.info index 26f73494a1..450e1bde00 100644 --- a/academic/root/root.info +++ b/academic/root/root.info @@ -1,8 +1,8 @@ PRGNAM="root" -VERSION="5.34.32" +VERSION="5.34.36" HOMEPAGE="http://root.cern.ch/drupal/" -DOWNLOAD="ftp://root.cern.ch/root/root_v5.34.32.source.tar.gz" -MD5SUM="292a0b95063053699b3273bd50515b0a" +DOWNLOAD="https://root.cern.ch/download/root_v5.34.36.source.tar.gz" +MD5SUM="6a1ad549b3b79b10bbb1f116b49067ee" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="ftgl" diff --git a/academic/root/root_gsl2.patch b/academic/root/root_gsl2.patch deleted file mode 100644 index 8f049d7e03..0000000000 --- a/academic/root/root_gsl2.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff -u -r root/math/mathmore/src/GSLMultiFit.h root-patched/math/mathmore/src/GSLMultiFit.h ---- root/math/mathmore/src/GSLMultiFit.h 2015-06-23 16:56:20.000000000 +0100 -+++ root-patched/math/mathmore/src/GSLMultiFit.h 2015-11-18 22:30:54.300681289 +0000 -@@ -32,6 +32,7 @@ - #include "gsl/gsl_multifit_nlin.h" - #include "gsl/gsl_blas.h" - #include "GSLMultiFitFunctionWrapper.h" -+#include - - #include "Math/IFunction.h" - #include -@@ -139,7 +140,14 @@ - /// gradient value at the minimum - const double * Gradient() const { - if (fSolver == 0) return 0; -- gsl_multifit_gradient(fSolver->J, fSolver->f,fVec); -+#if GSL_MAJOR_VERSION >=2 -+ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); -+ gsl_multifit_fdfsolver_jac (fSolver, J); -+ gsl_multifit_gradient(J, fSolver->f, fVec); -+ gsl_matrix_free(J); -+#else -+ gsl_multifit_gradient(fSolver->J, fSolver->f, fVec); -+#endif - return fVec->data; - } - -@@ -150,7 +158,14 @@ - unsigned int npar = fSolver->fdf->p; - fCov = gsl_matrix_alloc( npar, npar ); - static double kEpsrel = 0.0001; -+#if GSL_MAJOR_VERSION >=2 -+ gsl_matrix *J=gsl_matrix_alloc(fSolver->fdf->n, fSolver->fdf->p); -+ gsl_multifit_fdfsolver_jac (fSolver, J); -+ int ret = gsl_multifit_covar(J, kEpsrel, fCov); -+ gsl_matrix_free(J); -+#else - int ret = gsl_multifit_covar(fSolver->J, kEpsrel, fCov); -+#endif - if (ret != GSL_SUCCESS) return 0; - return fCov->data; - } -- cgit v1.2.3