summaryrefslogtreecommitdiff
path: root/community/root
diff options
context:
space:
mode:
Diffstat (limited to 'community/root')
-rw-r--r--community/root/PKGBUILD39
-rw-r--r--community/root/fix-mathcore-generation-r42566.diff40
2 files changed, 62 insertions, 17 deletions
diff --git a/community/root/PKGBUILD b/community/root/PKGBUILD
index 0e9aee589..4c380c044 100644
--- a/community/root/PKGBUILD
+++ b/community/root/PKGBUILD
@@ -3,7 +3,7 @@
pkgname=root
pkgver=5.32.00
-pkgrel=2
+pkgrel=3
pkgdesc='C++ data analysis framework and interpreter from CERN.'
arch=('i686' 'x86_64' 'mips64el')
url='http://root.cern.ch'
@@ -16,25 +16,31 @@ options=('!emptydirs')
source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz"
'root.sh'
'rootd'
- 'root.xml')
+ 'root.xml'
+ 'fix-mathcore-generation-r42566.diff')
md5sums=('1c30e4e6eeae62ff1ad5118cd1309679'
'0e883ad44f99da9bc7c23bc102800b62'
'efd06bfa230cc2194b38e0c8939e72af'
- 'e2cf69b204192b5889ceb5b4dedc66f7')
+ '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
- # python2 switch
- find . -type f -exec sed -i -e 's_#!/usr/bin/env python_&2_' \
- -e 's/python -O/python2 -O/g' \
- -e 's/python -c/python2 -c/g' {} \;
+ 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
@@ -45,15 +51,16 @@ build() {
-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 \
- --disable-builtin-ftgl \
- --disable-builtin-freetype \
- --disable-builtin-glew \
- --disable-builtin-pcre \
- --disable-builtin-zlib \
- --disable-builtin-lzma \
--enable-gdml \
--enable-gsl-shared \
--enable-minuit2 \
@@ -61,10 +68,8 @@ build() {
--enable-roofit \
--enable-python \
--with-python-incdir=/usr/include/python2.7 \
- --with-python-libdir=/usr/lib
-
- # move from aur
- #--disable-builtin-afterimage \
+ --with-python-libdir=/usr/lib \
+ ${sys_libs}
make
}
diff --git a/community/root/fix-mathcore-generation-r42566.diff b/community/root/fix-mathcore-generation-r42566.diff
new file mode 100644
index 000000000..ae22c23c0
--- /dev/null
+++ b/community/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);