diff options
-rw-r--r-- | .SRCINFO | 61 | ||||
-rw-r--r-- | PKGBUILD | 114 | ||||
-rw-r--r-- | call_PyErr_Clear_if_no_such_attribute.patch | 16 | ||||
-rw-r--r-- | disable-gcc-abi-check.diff | 19 | ||||
-rw-r--r-- | param.diff | 10 | ||||
-rw-r--r-- | python3.diff | 33 | ||||
-rw-r--r-- | root.install | 25 | ||||
-rw-r--r-- | root.sh | 5 | ||||
-rw-r--r-- | root.xml | 11 | ||||
-rw-r--r-- | rootd | 37 | ||||
-rw-r--r-- | settings.cmake | 52 |
11 files changed, 383 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..666ac7bd05e5 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,61 @@ +pkgbase = root-extra + pkgdesc = C++ data analysis framework and interpreter from CERN with extra features enabled. + pkgver = 6.06.06 + pkgrel = 1 + url = http://root.cern.ch + install = root.install + arch = i686 + arch = x86_64 + license = LGPL2.1 + makedepends = cmake + depends = cfitsio + depends = desktop-file-utils + depends = fftw + depends = ftgl + depends = gcc-fortran + depends = glew + depends = graphviz + depends = gsl + depends = gtk-update-icon-cache + depends = intel-tbb + depends = libafterimage + depends = libiodbc + depends = libmysqlclient + depends = postgresql-libs + depends = pythia + depends = python + depends = shared-mime-info + depends = sqlite + depends = tex-gyre-fonts + depends = unixodbc + depends = xmlrpc-c + provides = root + conflicts = root + options = !emptydirs + source = https://root.cern.ch/download/root_v6.06.06.source.tar.gz + source = call_PyErr_Clear_if_no_such_attribute.patch + source = disable-gcc-abi-check.diff + source = python3.diff + source = root.sh + source = root.xml + source = rootd + source = settings.cmake + md5sums = 4308449892210c8d36e36924261fea26 + md5sums = f36f7bff97ed7232d8534c2ef166b2bf + md5sums = 89d3caaa1d73a623c56a42f21dfdd669 + md5sums = e1f1eb398dec2a66bb790ef277b3ab91 + md5sums = 0e883ad44f99da9bc7c23bc102800b62 + md5sums = e2cf69b204192b5889ceb5b4dedc66f7 + md5sums = efd06bfa230cc2194b38e0c8939e72af + md5sums = 2904c221a5f719f74b0b326650f60746 + sha256sums = 0a7d702a130a260c72cb6ea754359eaee49a8c4531b31f23de0bfcafe3ce466b + sha256sums = 437ed0fb2c46d5ca8e37cc689f87dfe12429f6a243d4e5cf2d395a177de7e90f + sha256sums = d9fea8991d42a78cd694f9798615274e96a185cbbd6608b4b80c76d5e43982a6 + sha256sums = 51dbcf86d9973e7b7204fc20ff0c3c3aacea01ee126e14e2fb3c9f33825cc558 + sha256sums = 71ed39f7e5a605a6a02e3d0ba79c997b8e7f02551898c27112eb78f07d9d8244 + sha256sums = b103d46705883590d9e07aafb890ec1150f63dc2ca5f40d67e6ebef49a6d0a32 + sha256sums = 6a4ef7b32710d414ee47d16310b77b95e4cf1d3550209cf8a41d38a945d05e5f + sha256sums = c6d475cbd10469b97eb8a9f4e45dc5d5f23042652cb2e3e1239e96a01e9d2d6e + +pkgname = root-extra + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..6c64d1b139cf --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,114 @@ +# Maintainer: Konstantin Gizdov <arch@kge.pw> +# Contributor: Frank Siegert <frank.siegert@googlemail.com> +# Contributor: Scott Lawrence <bytbox@gmail.com> +# Contributor: Thomas Dziedzic < gostrc at gmail > +# Contributor: Sebastian Voecking <voeck@web.de> + +pkgname=root-extra +pkgver=6.06.06 +pkgrel=1 +provides=('root') +conflicts=('root') +pkgdesc='C++ data analysis framework and interpreter from CERN with extra features enabled.' +arch=('i686' 'x86_64') +url='http://root.cern.ch' +license=('LGPL2.1') +makedepends=('cmake') +depends=('cfitsio' +'desktop-file-utils' +'fftw' +'ftgl' +'gcc-fortran' +'glew' +'graphviz' +'gsl' +'gtk-update-icon-cache' +'intel-tbb' +'libafterimage' +'libiodbc' +'libmysqlclient' +'postgresql-libs' +'pythia' +'python' +'shared-mime-info' +'sqlite' +'tex-gyre-fonts' # solve the pixelized font problem as per Arch Wiki +'unixodbc' +'xmlrpc-c' +) +install='root.install' +options=('!emptydirs') +source=("https://root.cern.ch/download/root_v${pkgver}.source.tar.gz" +'call_PyErr_Clear_if_no_such_attribute.patch' +'disable-gcc-abi-check.diff' +'python3.diff' +'root.sh' +'root.xml' +'rootd' +'settings.cmake') +md5sums=('4308449892210c8d36e36924261fea26' + 'f36f7bff97ed7232d8534c2ef166b2bf' + '89d3caaa1d73a623c56a42f21dfdd669' + 'e1f1eb398dec2a66bb790ef277b3ab91' + '0e883ad44f99da9bc7c23bc102800b62' + 'e2cf69b204192b5889ceb5b4dedc66f7' + 'efd06bfa230cc2194b38e0c8939e72af' + '2904c221a5f719f74b0b326650f60746') +sha256sums=('0a7d702a130a260c72cb6ea754359eaee49a8c4531b31f23de0bfcafe3ce466b' + '437ed0fb2c46d5ca8e37cc689f87dfe12429f6a243d4e5cf2d395a177de7e90f' + 'd9fea8991d42a78cd694f9798615274e96a185cbbd6608b4b80c76d5e43982a6' + '51dbcf86d9973e7b7204fc20ff0c3c3aacea01ee126e14e2fb3c9f33825cc558' + '71ed39f7e5a605a6a02e3d0ba79c997b8e7f02551898c27112eb78f07d9d8244' + 'b103d46705883590d9e07aafb890ec1150f63dc2ca5f40d67e6ebef49a6d0a32' + '6a4ef7b32710d414ee47d16310b77b95e4cf1d3550209cf8a41d38a945d05e5f' + 'c6d475cbd10469b97eb8a9f4e45dc5d5f23042652cb2e3e1239e96a01e9d2d6e') +prepare(){ + ## https://sft.its.cern.ch/jira/browse/ROOT-6924 + cd ${pkgname}-${pkgver} + + patch -p1 < ${srcdir}/python3.diff + 2to3 -w etc/dictpch/makepch.py 2>&1 > /dev/null + + ## https://sft.its.cern.ch/jira/browse/ROOT-7640 + patch -p1 < ${srcdir}/call_PyErr_Clear_if_no_such_attribute.patch + + ## disable check newly introduced in 6.06.06 + patch -p1 < ${srcdir}/disable-gcc-abi-check.diff +} + +build() { + [ -d ${srcdir}/build ] || mkdir ${srcdir}/build + cd ${srcdir}/build + + cmake -C ${srcdir}/settings.cmake ${srcdir}/${pkgname}-${pkgver} + + make ${MAKEFLAGS} +} + +package() { + cd ${srcdir}/build + + make DESTDIR=${pkgdir} install + + install -D ${srcdir}/root.sh \ + ${pkgdir}/etc/profile.d/root.sh + install -D ${srcdir}/rootd \ + ${pkgdir}/etc/rc.d/rootd + install -D -m644 ${srcdir}/root.xml \ + ${pkgdir}/usr/share/mime/packages/root.xml + + install -D -m644 ${srcdir}/${pkgname}-${pkgver}/build/package/debian/root-system-bin.desktop.in \ + ${pkgdir}/usr/share/applications/root-system-bin.desktop + # replace @prefix@ with /usr for the desktop + sed -e 's_@prefix@_/usr_' -i ${pkgdir}/usr/share/applications/root-system-bin.desktop + + install -D -m644 ${srcdir}/${pkgname}-${pkgver}/build/package/debian/root-system-bin.png \ + ${pkgdir}/usr/share/icons/hicolor/48x48/apps/root-system-bin.png + + # use a file that pacman can track instead of adding directly to ld.so.conf + install -d ${pkgdir}/etc/ld.so.conf.d + echo '/usr/lib/root' > ${pkgdir}/etc/ld.so.conf.d/root.conf + + rm -rf ${pkgdir}/etc/root/daemons +} + diff --git a/call_PyErr_Clear_if_no_such_attribute.patch b/call_PyErr_Clear_if_no_such_attribute.patch new file mode 100644 index 000000000000..c1c401562a01 --- /dev/null +++ b/call_PyErr_Clear_if_no_such_attribute.patch @@ -0,0 +1,16 @@ +diff --git a/bindings/pyroot/src/Utility.cxx b/bindings/pyroot/src/Utility.cxx +index ffeae8e..d3ba063 100644 +--- a/bindings/pyroot/src/Utility.cxx ++++ b/bindings/pyroot/src/Utility.cxx +@@ -219,8 +219,10 @@ Bool_t PyROOT::Utility::AddToClass( + Bool_t PyROOT::Utility::AddToClass( PyObject* pyclass, const char* label, const char* func ) + { + PyObject* pyfunc = PyObject_GetAttrString( pyclass, const_cast< char* >( func ) ); +- if ( ! pyfunc ) ++ if ( ! pyfunc ) { ++ PyErr_Clear(); + return kFALSE; ++ } + + Bool_t isOk = PyObject_SetAttrString( pyclass, const_cast< char* >( label ), pyfunc ) == 0; + diff --git a/disable-gcc-abi-check.diff b/disable-gcc-abi-check.diff new file mode 100644 index 000000000000..3d0300d4f1a8 --- /dev/null +++ b/disable-gcc-abi-check.diff @@ -0,0 +1,19 @@ +diff -rupN {old,root-*}/cmake/modules/CheckCompiler.cmake +--- old/cmake/modules/CheckCompiler.cmake 2016-07-06 18:36:49.000000000 +0200 ++++ root-6.06.06/cmake/modules/CheckCompiler.cmake 2016-08-05 14:28:00.218968142 +0200 +@@ -51,15 +51,6 @@ if (CMAKE_COMPILER_IS_GNUCXX) + endif() + message(STATUS "Found GCC. Major version ${GCC_MAJOR}, minor version ${GCC_MINOR}") + set(COMPILER_VERSION gcc${GCC_MAJOR}${GCC_MINOR}${GCC_PATCH}) +- CHECK_CXX_SOURCE_COMPILES(" +- #include <string> +- #if _GLIBCXX_USE_CXX11_ABI +- #error \"cling does not support GCC 5 ABI.\" +- #endif +- int main() {}" CXX_SUPPORTS_OLD_ABI) +- if(NOT CXX_SUPPORTS_OLD_ABI) +- message(FATAL_ERROR "Found GCC compiler with new ABI. Cling does not support the GCC 5 ABI yet") +- endif() + else() + set(GCC_MAJOR 0) + set(GCC_MINOR 0) diff --git a/param.diff b/param.diff new file mode 100644 index 000000000000..e2ae611d289e --- /dev/null +++ b/param.diff @@ -0,0 +1,10 @@ +diff --git a/core/utils/src/rootcling.cxx b/core/utils/src/rootcling.cxx +index 324578c..6b0c38e 100644 +--- a/core/utils/src/rootcling.cxx ++++ b/core/utils/src/rootcling.cxx +@@ -3739,4 +3739,4 @@ int ShouldIgnoreClingArgument(const std::string& argument) +- if (ROOT::TMetaUtils::BeginsWith(argument,"--")) return false; ++ if (ROOT::TMetaUtils::BeginsWith(argument,"--") and !ROOT::TMetaUtils::BeginsWith(argument,"--param")) return false; + return true; + } + diff --git a/python3.diff b/python3.diff new file mode 100644 index 000000000000..34ad10dfab17 --- /dev/null +++ b/python3.diff @@ -0,0 +1,33 @@ +diff -rupN old/tmva/pymva/inc/TMVA/PyMethodBase.h root-6.06.06/tmva/pymva/inc/TMVA/PyMethodBase.h +--- old/tmva/pymva/inc/TMVA/PyMethodBase.h 2016-07-06 18:36:49.000000000 +0200 ++++ root-6.06.06/tmva/pymva/inc/TMVA/PyMethodBase.h 2016-08-05 13:56:31.839179271 +0200 +@@ -81,7 +81,7 @@ namespace TMVA { + // default destructur + virtual ~PyMethodBase(); + //basic python related function +- static void PyInitialize(); ++ static void *PyInitialize(); + static int PyIsInitialized(); + static void PyFinalize(); + static void PySetProgramName(TString name); +diff -rupN old/tmva/pymva/src/PyMethodBase.cxx root-6.06.06/tmva/pymva/src/PyMethodBase.cxx +--- old/tmva/pymva/src/PyMethodBase.cxx 2016-07-06 18:36:49.000000000 +0200 ++++ root-6.06.06/tmva/pymva/src/PyMethodBase.cxx 2016-08-05 14:07:21.225701275 +0200 +@@ -82,7 +82,7 @@ PyObject *PyMethodBase::Eval(TString cod + } + + //_______________________________________________________________________ +-void PyMethodBase::PyInitialize() ++void *PyMethodBase::PyInitialize() + { + TMVA::MsgLogger Log; + if (!PyIsInitialized()) { +@@ -149,7 +149,7 @@ void PyMethodBase::PyInitialize() + Py_DECREF(pName); + Py_DECREF(pDict); + +- ++ return NULL; + } + + //_______________________________________________________________________ diff --git a/root.install b/root.install new file mode 100644 index 000000000000..afabb7aea55d --- /dev/null +++ b/root.install @@ -0,0 +1,25 @@ +post_install() { + update-desktop-database >/dev/null + + update-mime-database /usr/share/mime >/dev/null + + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +pre_remove() { + # leave for pre 5.30.03-3 + if [[ $(vercmp $1 5.30.03-3) == -1 ]]; then + cat etc/ld.so.conf | grep -v '/usr/lib/root' >/tmp/.pacroot + mv /tmp/.pacroot etc/ld.so.conf + chmod 644 etc/ld.so.conf + sbin/ldconfig -r . + fi +} + +post_remove() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} diff --git a/root.sh b/root.sh new file mode 100644 index 000000000000..685e6036bc3a --- /dev/null +++ b/root.sh @@ -0,0 +1,5 @@ +if [ $PYTHONPATH ]; then + export PYTHONPATH=$PYTHONPATH:/usr/lib/root; +else + export PYTHONPATH=/usr/lib/root; +fi diff --git a/root.xml b/root.xml new file mode 100644 index 000000000000..af8dd69c5891 --- /dev/null +++ b/root.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info"> + <mime-type type="application/x-root"> + <comment>ROOT file</comment> + <comment xml:lang="de">ROOT-Datei</comment> + <glob pattern="*.root"/> + <magic priority="80"> + <match value="root" type="string" offset="0:64"/> + </magic> + </mime-type> +</mime-info> diff --git a/rootd b/rootd new file mode 100644 index 000000000000..fb2c3388ca24 --- /dev/null +++ b/rootd @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/rootd` +case "$1" in + start) + stat_busy "Starting ROOT file server daemon" + [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + PID=`pidof -o %PPID /usr/sbin/rootd` + echo $PID >/var/run/rootd.pid + add_daemon rootd + stat_done + fi + ;; + stop) + stat_busy "Stopping ROOT file server daemon" + [ ! -z "$PID" ] && kill $PID &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon rootd + stat_done + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/settings.cmake b/settings.cmake new file mode 100644 index 000000000000..c3259236125f --- /dev/null +++ b/settings.cmake @@ -0,0 +1,52 @@ +set (CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE) +set (CMAKE_C_FLAGS "-pthread -pipe -fstack-protector-strong -O2 -march=native -mtune=native" CACHE STRING "" FORCE) +set (CMAKE_CXX_FLAGS "-D_GLIBCXX_USE_CXX11_ABI=0 -pthread -pipe -fstack-protector-strong -O2 -march=native" CACHE STRING "" FORCE) +set (CMAKE_SHARED_LINKER_FLAGS "-pthread -Wl,--no-undefined" CACHE STRING "" FORCE) +set (BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) # this option is currently incompatible +set (CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE) +set (CMAKE_INSTALL_SYSCONFDIR /etc CACHE PATH "" FORCE) +set (CMAKE_INSTALL_DATAROOTDIR /usr/share CACHE PATH "" FORCE) +set (LLVM_ENABLE_THREADS ON CACHE BOOL "" FORCE) # try to workaround pthread issue +set (asimage ON CACHE BOOL "" FORCE) +set (builtin_afterimage OFF CACHE BOOL "" FORCE) +set (builtin_ftgl OFF CACHE BOOL "" FORCE) +set (builtin_freetype OFF CACHE BOOL "" FORCE) +set (builtin_glew OFF CACHE BOOL "" FORCE) +set (builtin_pcre OFF CACHE BOOL "" FORCE) +set (builtin_zlib OFF CACHE BOOL "" FORCE) +set (builtin_lzma OFF CACHE BOOL "" FORCE) +set (builtin_llvm ON CACHE BOOL "" FORCE) +set (builtin_tbb OFF CACHE BOOL "" FORCE) +set (castor OFF CACHE BOOL "" FORCE) +set (chirp OFF CACHE BOOL "" FORCE) +set (cling ON CACHE BOOL "" FORCE) +set (cxx11 ON CACHE BOOL "" FORCE) +set (davix OFF CACHE BOOL "" FORCE) +set (dcache OFF CACHE BOOL "" FORCE) +set (fail-on-missing ON CACHE BOOL "" FORCE) +set (fitsio ON CACHE BOOL "" FORCE) +set (fortran ON CACHE BOOL "" FORCE) +set (gfal OFF CACHE BOOL "" FORCE) +set (glite OFF CACHE BOOL "" FORCE) +set (gnuinstall ON CACHE BOOL "" FORCE) +set (gsl_shared ON CACHE BOOL "" FORCE) +set (hdfs OFF CACHE BOOL "" FORCE) +set (mathmore ON CACHE BOOL "" FORCE) +set (minuit2 ON CACHE BOOL "" FORCE) +set (monalisa OFF CACHE BOOL "" FORCE) +set (mt ON CACHE BOOL "" FORCE) +set (opengl ON CACHE BOOL "" FORCE) +set (oracle OFF CACHE BOOL "" FORCE) +set (pythia6 OFF CACHE BOOL "" FORCE) +set (pythia6_nolink OFF CACHE BOOL "" FORCE) +set (pythia8 ON CACHE BOOL "" FORCE) +set (qt OFF CACHE BOOL "" FORCE) +set (qtgsi OFF CACHE BOOL "" FORCE) +set (rfio OFF CACHE BOOL "" FORCE) +set (roofit ON CACHE BOOL "" FORCE) +set (shared ON CACHE BOOL "" FORCE) +set (tbb ON CACHE BOOL "" FORCE) +set (testing OFF CACHE BOOL "" FORCE) +set (tmva ON CACHE BOOL "" FORCE) +set (xft ON CACHE BOOL "" FORCE) +set (x11 ON CACHE BOOL "" FORCE) |