commit:     a10464578b87f8847a60df6c1aced2690de9fa0b
Author:     Andrew Savchenko <bircoph <AT> gmail <DOT> com>
AuthorDate: Sun Apr 12 13:54:53 2015 +0000
Commit:     Andrew Savchenko <bircoph <AT> gmail <DOT> com>
CommitDate: Sun Apr 12 13:54:53 2015 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=a1046457

fix issue #238

Regenerate PCH headers for Gentoo include files layout and remove
extra $PORTAGE_TMPDIR from /etc.

 sci-physics/root/ChangeLog                         |  7 +++++
 sci-physics/root/files/root-6.02.05-dictpch.patch  | 31 ++++++++++++++++++++++
 ...ot-6.02.05-r1.ebuild => root-6.02.05-r2.ebuild} | 18 +++++++++++++
 3 files changed, 56 insertions(+)

diff --git a/sci-physics/root/ChangeLog b/sci-physics/root/ChangeLog
index b1b0b0a..4fc73e8 100644
--- a/sci-physics/root/ChangeLog
+++ b/sci-physics/root/ChangeLog
@@ -2,6 +2,13 @@
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
 # $Header: /var/cvsroot/gentoo-x86/sci-physics/root/ChangeLog,v 1.96 
2012/03/29 18:21:49 bicatali Exp $
 
+*root-6.02.05-r2 (12 Apr 2015)
+
+  12 Apr 2015; Andrew Savchenko <birc...@gentoo.org> -root-6.02.05-r1.ebuild,
+  +root-6.02.05-r2.ebuild, +files/root-6.02.05-dictpch.patch:
+  Regenerate PCH headers for Gentoo include files layout and remove
+  extra $PORTAGE_TMPDIR from /etc (github issue #238).
+
 *root-6.02.05-r1 (11 Apr 2015)
 
   11 Apr 2015; Andrew Savchenko <birc...@gentoo.org> -root-6.02.05.ebuild,

diff --git a/sci-physics/root/files/root-6.02.05-dictpch.patch 
b/sci-physics/root/files/root-6.02.05-dictpch.patch
new file mode 100644
index 0000000..80a416e
--- /dev/null
+++ b/sci-physics/root/files/root-6.02.05-dictpch.patch
@@ -0,0 +1,31 @@
+--- etc/dictpch/makepch-gentoo.sh.orig 2015-04-08 14:27:07.781026830 +0300
++++ etc/dictpch/makepch-gentoo.sh      2015-04-12 13:40:48.226060739 +0300
+@@ -13,8 +13,8 @@
+ # Copyright (c) 2014 Rene Brun and Fons Rademakers
+ # Author: Axel Naumann <a...@cern.ch>, 2014-10-16
+ 
+-rootdir=.
+-cfgdir=etc/dictpch
++rootdir=ROOTDIR_TEMPLATE
++cfgdir=etc/root/dictpch
+ allheaders=$cfgdir/allHeaders.h
+ alllinkdefs=$cfgdir/allLinkDefs.h
+ cppflags=$cfgdir/allCppflags.txt
+@@ -36,7 +36,7 @@
+     rootbuild=-rootbuild
+ fi
+ 
+-cxxflags="-D__CLING__ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS 
-DROOT_PCH -I$rootdir/include -I$rootdir/etc -I$rootdir/$cfgdir 
-I$rootdir/etc/cling `cat $rootdir/$cppflags`"
++cxxflags="-D__CLING__ -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS 
-DROOT_PCH -I$rootdir/usr/include/root -I$rootdir/etc/root -I$rootdir/$cfgdir 
-I$rootdir/etc/root/cling `cat $rootdir/$cppflags`"
+ 
+ if ! [ "x$1" = "x" ]; then
+     cxxflags="$cxxflags $1"
+@@ -44,7 +44,7 @@
+ 
+ # generate pch
+ touch allDict.cxx.h
+-$rootdir/bin/rootcling $rootbuild -1 -f allDict.cxx -noDictSelection -c 
$cxxflags $allheaders $@ $alllinkdefs
++$rootdir/usr/bin/rootcling -1 -f allDict.cxx -noDictSelection -c $cxxflags 
$allheaders $@ $alllinkdefs
+ res=$?
+ if [ $res -eq 0 ] ; then
+   mv allDict_rdict.pch $pch

diff --git a/sci-physics/root/root-6.02.05-r1.ebuild 
b/sci-physics/root/root-6.02.05-r2.ebuild
similarity index 93%
rename from sci-physics/root/root-6.02.05-r1.ebuild
rename to sci-physics/root/root-6.02.05-r2.ebuild
index 2d7388b..9069f3a 100644
--- a/sci-physics/root/root-6.02.05-r1.ebuild
+++ b/sci-physics/root/root-6.02.05-r2.ebuild
@@ -207,6 +207,13 @@ pkg_setup() {
 }
 
 src_prepare() {
+       # Second version of makepch is required in order to generate
+       # PCH file appropriate for Gentoo include headers layout.
+       # This can be done only at install stage, when files are placed
+       # as appropriate. Premature modification of makepch.sh will
+       # broke build process, however.
+       cp "etc/dictpch/makepch.sh" "etc/dictpch/makepch-gentoo.sh" || die
+
        epatch \
                "${FILESDIR}"/${PN}-5.28.00b-glibc212.patch \
                "${FILESDIR}"/${PN}-5.32.00-afs.patch \
@@ -219,6 +226,7 @@ src_prepare() {
                "${FILESDIR}"/${PN}-6.00.01-llvm.patch \
                "${FILESDIR}"/${PN}-6.00.01-nobyte-compile.patch \
                "${FILESDIR}"/${PN}-6.00.01-prop-flags.patch \
+               "${FILESDIR}"/${PN}-6.02.05-dictpch.patch \
                "${FILESDIR}"/${PN}-6.02.05-xrootd4.patch
 
        # make sure we use system libs and headers
@@ -410,6 +418,16 @@ cleanup_install() {
        mv etc/root/proof/utils/pq2/pq2* usr/bin/ || die
        rm ${DOC_DIR#/}/{INSTALL,LICENSE} || die
        use examples || rm -r ${DOC_DIR#/}/examples || die
+
+       # clean hardcoded sandbox paths
+       rm etc/root/dictpch/allCppflags.txt.tmp || die
+       sed -i "s|${S}/||" etc/root/cling/llvm/Config/llvm-config.h || die
+       # regenerate pch for Gentoo headers layout
+       rm "etc/root/allDict.cxx.pch" || die
+       sed -i 's|etc/dictpch|etc/root/dictpch|' etc/root/dictpch/allLinkDefs.h 
|| die
+       sed -i 's|etc/cling|etc/root/cling|' etc/root/dictpch/allHeaders.h || 
die
+       sed -i "s|ROOTDIR_TEMPLATE|${ED}|" etc/root/dictpch/makepch-gentoo.sh 
|| die
+       etc/root/dictpch/makepch-gentoo.sh etc/root/allDict.cxx.pch || die "PCH 
generation failed"
 }
 
 src_install() {

Reply via email to