diff options
Diffstat (limited to 'community-testing/root')
-rw-r--r-- | community-testing/root/PKGBUILD | 102 | ||||
-rw-r--r-- | community-testing/root/fix-mathcore-generation-r42566.diff | 40 | ||||
-rw-r--r-- | community-testing/root/root.install | 25 | ||||
-rw-r--r-- | community-testing/root/root.sh | 5 | ||||
-rw-r--r-- | community-testing/root/root.xml | 11 | ||||
-rw-r--r-- | community-testing/root/rootd | 37 |
6 files changed, 220 insertions, 0 deletions
diff --git a/community-testing/root/PKGBUILD b/community-testing/root/PKGBUILD new file mode 100644 index 000000000..d277db4ec --- /dev/null +++ b/community-testing/root/PKGBUILD @@ -0,0 +1,102 @@ +# Maintainer: Thomas Dziedzic < gostrc at gmail > +# Contributor: Sebastian Voecking <voeck@web.de> + +pkgname=root +pkgver=5.32.00 +pkgrel=3 +pkgdesc='C++ data analysis framework and interpreter from CERN.' +arch=('i686' 'x86_64') +url='http://root.cern.ch' +license=('LGPL2.1') +depends=('avahi' 'desktop-file-utils' 'ftgl' 'giflib' 'glew' 'graphviz' 'gsl' 'libldap' 'libmysqlclient' + 'libxft' 'postgresql-libs' 'python2' 'unixodbc' 'shared-mime-info' 'xmlrpc-c' 'xorg-fonts-75dpi' 'mesa' 'gcc-fortran' 'hicolor-icon-theme') +makedepends=('fftw') +install='root.install' +options=('!emptydirs') +source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz" + 'root.sh' + 'rootd' + 'root.xml' + 'fix-mathcore-generation-r42566.diff') +md5sums=('1c30e4e6eeae62ff1ad5118cd1309679' + '0e883ad44f99da9bc7c23bc102800b62' + 'efd06bfa230cc2194b38e0c8939e72af' + 'e2cf69b204192b5889ceb5b4dedc66f7' + '12877cabd620284f50ea16ef97a54aac') + +build() { + cd root + + # temporary workaround: remove on next patch release after 5.32.00 + # bug reported at: https://savannah.cern.ch/bugs/?90906 + patch -Np0 -i ${srcdir}/fix-mathcore-generation-r42566.diff + + if [ ${CARCH} == 'i686' ]; then + TARGET=linux; + else + TARGET=linuxx8664gcc; + fi + + msg 'python2 switch' + find . -type f -exec sed -e 's_#!/usr/bin/env python_&2_' \ + -e 's/python -O/python2 -O/g' \ + -e 's/python -c/python2 -c/g' -i {} \; + sed \ + -e 's/python 2/python2 2/g' \ + -i configure + sed \ + -e 's/python $(pkgpyexecdir)/python2 $(pkgpyexecdir)/g' \ + -i cint/reflex/python/genreflex/Makefile.am + sed \ + -e 's/python /python2 /' \ + -i config/genreflex.in config/genreflex-rootcint.in + + local sys_libs="" + for sys_lib in ftgl freetype glew pcre zlib lzma; do + sys_libs+="--disable-builtin-${sys_lib} " + done + # move from aur if possible + #--disable-builtin-afterimage \ + + ./configure \ + ${TARGET} \ + --prefix=/usr \ + --enable-gdml \ + --enable-gsl-shared \ + --enable-minuit2 \ + --enable-soversion \ + --enable-roofit \ + --enable-python \ + --with-python-incdir=/usr/include/python2.7 \ + --with-python-libdir=/usr/lib \ + ${sys_libs} + + make +} + +package() { + cd root + + 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}/root/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}/root/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/community-testing/root/fix-mathcore-generation-r42566.diff b/community-testing/root/fix-mathcore-generation-r42566.diff new file mode 100644 index 000000000..ae22c23c0 --- /dev/null +++ b/community-testing/root/fix-mathcore-generation-r42566.diff @@ -0,0 +1,40 @@ +Index: cint/cint/src/typedef.cxx +=================================================================== +--- cint/cint/src/typedef.cxx (revision 42564) ++++ cint/cint/src/typedef.cxx (revision 42566) +@@ -297,18 +297,27 @@ + } + c = G__fgetname_template(type1, 0, "{"); + } +- if (!strcmp(type1, "::")) { // FIXME: This makes no sense, there cannot be typedef ::{...}; ++ if (!strcmp(type1, "::")) { + // skip a :: without a namespace in front of it (i.e. global namespace!) + c = G__fgetspace(); // skip the next ':' + c = G__fgetname_template(type1, 0, "{"); + } +- if (!strncmp(type1, "::", 2)) { // Strip a leading :: (global namespace operator) +- // A leading '::' causes other typename matching functions to fail so +- // we remove it. This is not the ideal solution (neither was the one +- // above since it does not allow for distinction between global +- // namespace and local namespace) ... but at least it is an improvement +- // over the current behavior. +- strcpy((char*)type1, type1 + 2); // Okay since we reduce the size ... ++ if (!strncmp(type1, "::", 2)) { ++ // Strip a leading :: (global namespace operator). ++ // A leading '::' causes other typename matching ++ // functions to fail so we remove it. This is not ++ // the ideal solution (neither is the one above) ++ // since it does not allow for decriminating between ++ // global namespace and local namespace, but at ++ // least it is an improvement over the current ++ // behavior. ++ // ++ // Note: We must use memmove because the source ++ // and destination strings overlap! ++ // ++ int t1len = strlen(type1); ++ memmove(type1, type1 + 2, t1len - 2); ++ type1.Set(t1len - 2, '\0'); + } + while (isspace(c)) { + len = strlen(type1); diff --git a/community-testing/root/root.install b/community-testing/root/root.install new file mode 100644 index 000000000..afabb7aea --- /dev/null +++ b/community-testing/root/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/community-testing/root/root.sh b/community-testing/root/root.sh new file mode 100644 index 000000000..685e6036b --- /dev/null +++ b/community-testing/root/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/community-testing/root/root.xml b/community-testing/root/root.xml new file mode 100644 index 000000000..af8dd69c5 --- /dev/null +++ b/community-testing/root/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/community-testing/root/rootd b/community-testing/root/rootd new file mode 100644 index 000000000..fb2c3388c --- /dev/null +++ b/community-testing/root/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 |