aboutsummaryrefslogtreecommitdiff
path: root/academic
diff options
context:
space:
mode:
authorAndrei Rabusov <a.rabusov@tum.de>2022-02-08 21:45:39 +0100
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2022-02-10 14:13:24 +0700
commit108446d40bc86f6854661b979f34936a2db6ebf3 (patch)
tree3bdad34de5ca8f7ee752afd616fa30966df00f42 /academic
parentf3194d50260af49c838a36e764b86b7c9d7620da (diff)
academic/root: Switch to cmake
This will allow us to compile ROOT v6.14 or higher. Current version is v6.24-06. Many thanks to ponce for fixing some typos in this update. Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'academic')
-rw-r--r--academic/root/README26
-rw-r--r--academic/root/root.SlackBuild262
-rw-r--r--academic/root/root.info14
-rw-r--r--academic/root/slack-desc16
4 files changed, 202 insertions, 116 deletions
diff --git a/academic/root/README b/academic/root/README
index c8beb68da7717..ca62905ea0100 100644
--- a/academic/root/README
+++ b/academic/root/README
@@ -1,20 +1,20 @@
ROOT - A data analysis framework.
-ROOT is a data analysis framework used mostly, but not limited to,
-high energy physics. It was written in C++ by the techs at CERN to
-explore the benefits of object oriented programming in physics data
-analysis. It consists of libraries, CINT or cling interpreter for
-C/C++, plotting interface and powerful parellel processing support.
-It is the preferred choice in many laboratories.
+ROOT provides a set of frameworks with the functionality needed to
+handle and analyze large amounts of data in an efficient way. It
+includes specialized storage methods such as histograms, curve
+fitting, function evaluation, minimization, graphics, visualization
+classes; the C++ interpreter cling for fast prototyping; and powerful
+parallel processing support.
-It comes with A LOT of different options for compilation. And it
+It comes with a lot of different options for compilation. And it
seems impossible to stress all of them in this one script. Therefore
-the potential user is strongly advised to check the configure
-script.
+the potential user is strongly advised to check the cmake command
+arguments.
-For mathmore support, run the SlackBuild script with MATHMORE=yes, and
-for QT support, run the SlackBuild script with QT=yes, for example
+Compilation takes quite a while, thus consider to build ROOT like that:
+# MAKEFLAGS=-j5 ./root.SlackBuild
- MATHMORE=yes ./root.SlackBuild
+REQUIREMENTS: gl2ps libAfterImage numpy3 tbb ftgl
-Compilation takes quite a while.
+NOTE: ROOT's python TMVA requires numpy3 built over blas.
diff --git a/academic/root/root.SlackBuild b/academic/root/root.SlackBuild
index 88fd4250ea9f6..446345ce86494 100644
--- a/academic/root/root.SlackBuild
+++ b/academic/root/root.SlackBuild
@@ -20,14 +20,14 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=root
-VERSION=${VERSION:-6.10.02}
+VERSION=${VERSION:-6.24.06}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -45,53 +45,30 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686"
- LIBDIRSUFFIX=""
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686"
- LIBDIRSUFFIX=""
+ SLKCFLAGS="-march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
- LIBDIRSUFFIX="64"
+ SLKCFLAGS="-fPIC"
else
- SLKCFLAGS="-O2"
- LIBDIRSUFFIX=""
+ SLKCFLAGS=""
fi
-set -e
+CXXSTD=${CXXSTD:-17}
-if [ ${GSL:-yes} = "no" ]; then
- GSL_FLAGS="--disable-gsl-shared"
-else
- GSL_FLAGS="--enable-gsl-shared \
- --with-gsl-incdir=/usr/include \
- --with-gsl-libdir=/usr/lib${LIBDIRSUFFIX}"
- if [ "$MATHMORE" = "yes" ]; then
- GSL_FLAGS="$GSL_FLAGS --enable-mathmore"
- fi
-fi
-
-if [ ${FFTW:-yes} = "no" ]; then
- FFTW_FLAGS="--disable-fftw3"
-else
- FFTW_FLAGS="--enable-fftw3 \
- --with-fftw3-incdir=/usr/include \
- --with-fftw3-libdir=/usr/lib${LIBDIRSUFFIX}"
-fi
-
-if [ ${QT:-no} = "no" ]; then
- QT_FLAGS="--disable-qt"
-else
- QT_FLAGS="--enable-qt"
-fi
+set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM\_v$VERSION.source.tar.gz
+mv root-$VERSION src
+mkdir -p $PRGNAM-$VERSION
+mv src $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
+
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -99,75 +76,184 @@ find -L . \
\( -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}
-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=/opt/ROOT
-
-# Use --with-clang to avoid gcc-5.3 internal compiler error on i586
+PREFIX=/opt/ROOT-${VERSION}
+mkdir -p build
+cd build
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=/usr/doc/$PRGNAM-$VERSION \
- --enable-roofit \
- --enable-unuran \
- --disable-builtin-freetype \
- --disable-builtin-ftgl \
- --disable-builtin-glew \
- --disable-builtin-pcre \
- --disable-builtin-zlib \
- --disable-builtin-lzma \
- $GSL_FLAGS \
- $FFTW_FLAGS \
- $QT_FLAGS \
- --enable-shared \
- --build=$ARCH-slackware-linux
-
+cmake ../src \
+ -DCMAKE_INSTALL_PREFIX=$PREFIX \
+ -DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
+ -DCMAKE_CXX_STANDARD=${CXXSTD} \
+ -DCMAKE_INSTALL_PYTHONDIR=lib \
+ -DMAN_INSTALL_DIR=$PREFIX/man \
+ -Dbuiltin_cfitsio=OFF \
+ -Dbuiltin_davix=OFF \
+ -Dbuiltin_fftw3=OFF \
+ -Dbuiltin_gsl=OFF \
+ -Dbuiltin_openssl=OFF \
+ -Dbuiltin_tbb=OFF \
+ -Dbuiltin_vc=OFF \
+ -Dbuiltin_vdt=OFF \
+ -Dbuiltin_veccore=OFF \
+ -Dclad=OFF \
+ -Dalien=OFF \
+ -Dall=OFF \
+ -Darrow=OFF \
+ -Dassan=OFF \
+ -Dasserts=OFF \
+ -Dbuiltin_freetype=OFF \
+ -Dfftw3=ON \
+ -Dbuiltin_glew=OFF \
+ -Dbuiltin_clang=ON \
+ -Dbuiltin_cling=ON \
+ -Dbuiltin_llvm=ON \
+ -Dbuiltin_lz4=OFF \
+ -Dbuiltin_lzma=OFF \
+ -Dbuiltin_nlohmannjson=ON \
+ -Dbuiltin_openui5=ON \
+ -Dbuiltin_pcre=OFF \
+ -Dbuiltin_unuran=OFF \
+ -Dbuiltin_xrootd=OFF \
+ -Dbuiltin_xxhash=OFF \
+ -Dbuiltin_zlib=OFF \
+ -Dbuiltin_zstd=OFF \
+ -Dccache=OFF \
+ -Dcefweb=OFF \
+ -Dclingtest=OFF \
+ -Dcocoa=OFF \
+ -Dcompression_default=zlib \
+ -Dcoverage=OFF \
+ -Dcuda=OFF \
+ -Dcudnn=OFF \
+ -Dcxx_modules=OFF \
+ -Ddataframe=ON \
+ -Ddavix=OFF \
+ -Ddcache=OFF \
+ -Ddev=OFF \
+ -Ddistcc=OFF \
+ -Dexceptions=ON \
+ -Dfail-on-missing=ON \
+ -Dfcgi=OFF \
+ -Dfitsio=ON \
+ -Dfortran=ON \
+ -Dgdml=ON \
+ -Dgfal=OFF \
+ -Dgminimal=OFF \
+ -Dgnuinstall=OFF \
+ -Dgsl_shared=ON \
+ -Dmathmore=ON \
+ -Dgviz=OFF \
+ -Dhttp=ON \
+ -Djemalloc=OFF \
+ -Dlibcxx=OFF \
+ -Dmacos_native=OFF \
+ -Dmemory_termination=OFF \
+ -Dminimal=OFF \
+ -Dminuit2=ON \
+ -Dmlp=ON \
+ -Dmonalisa=OFF \
+ -Dmpi=OFF \
+ -Dmysql=OFF \
+ -Dodbc=OFF \
+ -Dopengl=ON \
+ -Doracle=OFF \
+ -Dpgsql=OFF \
+ -Dpyroot=ON \
+ -Dpyroot_legacy=OFF \
+ -Dpythia6=OFF \
+ -Dpythia6_nolink=OFF \
+ -Dpythia8=OFF \
+ -Dqt5web=OFF \
+ -Dr=OFF \
+ -Droofit=ON \
+ -Droot7=ON \
+ -Drootbench=OFF \
+ -Droottest=OFF \
+ -Drpath=OFF \
+ -Druntime_cxxmodules=ON \
+ -Dshadowpw=OFF \
+ -Dshared=ON \
+ -Dsoversion=ON \
+ -Dspectrum=ON \
+ -Dsqlite=OFF \
+ -Dssl=ON \
+ -Dtcmalloc=OFF \
+ -Dtest_distrdf_pyspark=OFF \
+ -Dtesting=OFF \
+ -Dtmva=ON \
+ -Dtmva-cpu=ON \
+ -Dtmva-gpu=OFF \
+ -Dtmva-pymva=ON \
+ -Dtmva-rmva=OFF \
+ -Dunuran=OFF \
+ -During=OFF \
+ -Dvc=OFF \
+ -Dvdt=OFF \
+ -Dveccore=OFF \
+ -Dvmc=OFF \
+ -Dwebgui=ON \
+ -Dwin_broken_tests=OFF \
+ -Dwinrtdebug=OFF \
+ -Dx11=ON \
+ -Dxml=ON \
+ -Dxproofd=OFF \
+ -Dxrootd=OFF \
+ -DCMAKE_BUILD_TYPE=Release ../src
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/*.pyc \
- $PKG$PREFIX/lib$LIBDIRSUFFIX/*.pyo \
- $PKG$PYTHONDIR
+make install/strip DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneded 2> /dev/null || true
find $PKG$PREFIX/man -type f -exec gzip -9 {} \;
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+# We are still in build directory
+# Copy documentation to system; also to ROOTSYS (ROOT expects it there)
+cp -a README/ README.md LICENSE LGPL2_1.txt ../src/CONTRIBUTING.md \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+find $PKG/usr/doc/$PRGNAM-$VERSION -type f -exec chmod 644 {} \;
+cp -a README/ LICENSE \
+ $PKG$PREFIX
+chmod -R 644 $PKG$PREFIX/README
+chmod -R 644 $PKG$PREFIX/LICENSE
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
# 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 "setenv MANPATH \${MANPATH}:$PREFIX/man" >> $PKG/etc/profile.d/root.csh
-echo "PATH=\$PATH:$PREFIX/bin" > $PKG/etc/profile.d/root.sh
-echo "MANPATH=\$MANPATH:$PREFIX/man" >> $PKG/etc/profile.d/root.sh
+# Start with tcsh
+echo "setenv ROOTSYS $PREFIX" > $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 "if ( ! \$?PYTHONPATH ) then" >> $PKG/etc/profile.d/root.csh
+echo "setenv PYTHONPATH $PREFIX/lib" >> $PKG/etc/profile.d/root.csh
+echo "else" >> $PKG/etc/profile.d/root.csh
+echo "if ( \"\$PYTHONPATH\" != \"\") then" >> $PKG/etc/profile.d/root.csh
+echo "setenv PYTHONPATH \$PYTHONPATH:$PREFIX/lib">> $PKG/etc/profile.d/root.csh
+echo "else" >> $PKG/etc/profile.d/root.csh
+echo "setenv PYTHONPATH $PREFIX/lib" >> $PKG/etc/profile.d/root.csh
+echo "endif" >> $PKG/etc/profile.d/root.csh
+echo "endif" >> $PKG/etc/profile.d/root.csh
+# And bash
+echo "ROOTSYS=$PREFIX" > $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
+echo "if [ -z \"\${PYTHONPATH}\" ]; then" >> $PKG/etc/profile.d/root.sh
+echo " export PYTHONPATH=$PREFIX/lib" >> $PKG/etc/profile.d/root.sh
+echo "else" >> $PKG/etc/profile.d/root.sh
+echo " export PYTHONPATH=\$PYTHONPATH:$PREFIX/lib" \
+ >> $PKG/etc/profile.d/root.sh
+echo "fi" >> $PKG/etc/profile.d/root.sh
chmod +x $PKG/etc/profile.d/root.*
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+mkdir -p $PKG/etc/ld.so.conf.d
+echo "$PREFIX/lib" > $PKG/etc/ld.so.conf.d/root.conf
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
-sed \
- -e "s|@LIBDIRSUFFIX@|$LIBDIRSUFFIX|" \
- -e "s|@PREFIX@|$PREFIX|" \
- $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/academic/root/root.info b/academic/root/root.info
index 7df5c817382fc..de20662e7efab 100644
--- a/academic/root/root.info
+++ b/academic/root/root.info
@@ -1,10 +1,10 @@
PRGNAM="root"
-VERSION="6.10.02"
-HOMEPAGE="http://root.cern.ch/drupal/"
-DOWNLOAD="https://root.cern.ch/download/root_v6.10.02.source.tar.gz"
-MD5SUM="19f2285c845a48355db779938fb4db99"
+VERSION="6.24.06"
+HOMEPAGE="https://root.cern"
+DOWNLOAD="https://root.cern/download/root_v6.24.06.source.tar.gz"
+MD5SUM="267e08ba9bf957e82b4236f3c50f0219"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="ftgl unixODBC"
-MAINTAINER="Jože Zobec"
-EMAIL="jozze.zepl@gmail.com"
+REQUIRES="gl2ps libAfterImage numpy3 tbb ftgl"
+MAINTAINER="Andrei Rabusov"
+EMAIL="arabusov@gmail.com"
diff --git a/academic/root/slack-desc b/academic/root/slack-desc
index 50c68b3ed07e7..8dfe3a9ded5d2 100644
--- a/academic/root/slack-desc
+++ b/academic/root/slack-desc
@@ -1,5 +1,5 @@
# HOW TO EDIT THIS FILE:
-# The "handy ruler" below makes it easier to edit a package description.
+# The handy ruler below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
@@ -8,12 +8,12 @@
|-----handy-ruler------------------------------------------------------|
root: root (data analysis framework)
root:
-root: ROOT is a data analysis framework used mostly, but not limited to,
-root: high energy physics. It was written in C++ by the techs at CERN to
-root: explore the benefits of object oriented programming in physics data
-root: analysis. It consists of libraries, CINT or cling interpreter for
-root: C/C++, plotting interface and powerful parellel processing support.
-root: It is the preferred choice in many laboratories.
+root: ROOT provides a set of frameworks with the functionality needed to
+root: handle and analyze large amounts of data in an efficient way. It
+root: includes specialized storage methods such as histograms, curve
+root: fitting, function evaluation, minimization, graphics, visualization
+root: classes; the C++ interpreter cling for fast prototyping; and powerful
+root: parallel processing support.
root:
-root: Homepage: http://root.cern.ch/drupal/
+root: Homepage: https://root.cern
root: