diff options
author | Andrew Savchenko <bircoph@gmail.com> | 2012-05-30 02:59:34 +0400 |
---|---|---|
committer | Andrew Savchenko <bircoph@gmail.com> | 2012-05-30 02:59:34 +0400 |
commit | 2f8112e0becd3197a6c9df2518236fe6a8095c95 (patch) | |
tree | 0e7a03128d8e4b797b3ec006ab83f5f067642b5f /sci-physics | |
parent | initial commit (diff) | |
download | sci-2f8112e0becd3197a6c9df2518236fe6a8095c95.tar.gz sci-2f8112e0becd3197a6c9df2518236fe6a8095c95.tar.bz2 sci-2f8112e0becd3197a6c9df2518236fe6a8095c95.zip |
sci-physics/root: html documentation generation
This adds htmldoc USE flag to generate what was previously
app-doc/root-docs. Fonts for dot charts are fixed.
Diffstat (limited to 'sci-physics')
-rw-r--r-- | sci-physics/root/ChangeLog | 10 | ||||
-rw-r--r-- | sci-physics/root/Manifest | 3 | ||||
-rw-r--r-- | sci-physics/root/files/root-5.32.00-dotfont.patch | 58 | ||||
-rw-r--r-- | sci-physics/root/files/root-5.32.00-htmldoc.patch | 50 | ||||
-rw-r--r-- | sci-physics/root/files/root-5.34-htmldoc.patch | 58 | ||||
-rw-r--r-- | sci-physics/root/metadata.xml | 1 | ||||
-rw-r--r-- | sci-physics/root/root-5.32.03-r2.ebuild (renamed from sci-physics/root/root-5.32.03-r1.ebuild) | 62 | ||||
-rw-r--r-- | sci-physics/root/root-9999.ebuild | 65 |
8 files changed, 290 insertions, 17 deletions
diff --git a/sci-physics/root/ChangeLog b/sci-physics/root/ChangeLog index d6d086b42..b6321017b 100644 --- a/sci-physics/root/ChangeLog +++ b/sci-physics/root/ChangeLog @@ -2,6 +2,16 @@ # Copyright 1999-2012 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-5.32.03-r2 (29 May 2012) + + 29 May 2012; Andrew Savchenko <bircoph@gmail.com> + +files/root-5.32.00-dotfont.patch, +files/root-5.32.00-htmldoc.patch, + -root-5.32.03-r1.ebuild, +root-5.32.03-r2.ebuild, + +files/root-5.34-htmldoc.patch, root-9999.ebuild, metadata.xml: + Add USE="htmldoc" for htmtl documentation build. This obsoletes + app-doc/root-docs. Fix fonts for dot code generation, force DejeVu + Serif. + 25 May 2012; Andrew Savchenko <bircoph@gmail.com> root-9999.ebuild: Adapt for upstream changes: - enable-exceptions is gone; diff --git a/sci-physics/root/Manifest b/sci-physics/root/Manifest index 2c911cee0..ac1137a3e 100644 --- a/sci-physics/root/Manifest +++ b/sci-physics/root/Manifest @@ -1,4 +1,7 @@ DIST ROOTUsersGuide.pdf 9124817 SHA256 51c5ce0c7f32b83700b441a1c069e555bbb7949518858fc6189722501994f5c1 SHA512 4a4888225e0a5f97ff05079401b9e000fc71cde2916067d7ed16d2919024896149dcea9e05b46cb1bc8acf96bff445b2dcc92fb6985aee7809c1046fc84c2933 WHIRLPOOL b7cf4577fe4873ab2aeb479c1e06ac5ea524099a675e0c9a16523e1bb42a5b52bd594b37cae921f38e5ab318622d509daf2b6e604f0c992fa52cfad1f5051135 DIST RooFit_Users_Manual_2.91-33.pdf 1330062 SHA256 101c4e4c41962238fcabf1caa86cafc51241a1800594491b2e62ef8b565a5646 SHA512 732d7dea3541b51e5f0b9b5b70dae57e1bdbb2504c4222d5e5095ec0f9b67307011c1f31c2c95be419b53dd8426f52f62f6c9370084208176a2ed3d7f25d783b WHIRLPOOL 033897bef4bdb13246a81ea6749f7895e6c4d639752e932130234ad9153bb399a4e5d416237850da27f139d3cccc53d9adb7a077abf20d257ce057157d6c3696 DIST TMVAUsersGuide-v4.03.pdf 3913533 SHA256 0cdbb4a2d19eb7a86e2911cfa73a905932e862d6c94be10b7662a9355b0241af SHA512 d8bb2ce35ef32c4877059898f56513db0b1057924e21935a3d3a6f114748e167984c43fd2ec7e54197fccff875540543968fea9a8e75bf63f5f13521724a7ddb WHIRLPOOL 0a3e2e61e8e32f3a22757178adf033f9fbb89014aecd4df7f8bd49677d772bb3ad2c0f5526259611879f6bb20df647c01e23f53ade483d7a3e2242f8aee6c6aa +DIST info.png 2060 RMD160 9e9e984337699e08d86a3352f414658d44d30480 SHA1 592745253491d94624ee68721f62ecdfb1b1b278 SHA256 51de6661250f3fb71c6c8250cbc4bdc4dc4283cc90240b4dc1ee6168e8d40279 +DIST root-banner.png 132555 RMD160 d4cf5f8a60ee1df686e47a696e76c1ecdda4f1e7 SHA1 6760c589cc13f0f906cbd8598b4edffc28ad911b SHA256 d165e1cc175f654ff79af39193a6144678f600e14a53dd20e2b216b3e8951e94 DIST root_v5.32.03.source.tar.gz 55529362 SHA256 575057c429625df69f0fa5c303287acefff185cda8cf8d1e9a6b2d21097d5ae6 SHA512 2e067eb9c6bbda5cf4df6973a3cf5307540247fb07c349f7ee74c0cf6a4abbb63f585a9ff67139cae985250fc5c5106b5ea03d7d9d2bcd20269e0ec8760ebd02 WHIRLPOOL 87dbf6f55f82001e07afc3b467e95f841f185f1f67d1dbd953f73e8aa9127ef8485db84100d6e9a08f0ae6aa5b45a565398eb6723145fff16c07e5158bb3e3ab +DIST rootdrawing-logo.png 15051 RMD160 a10172fa5e9a9737b6b5e678af3f8426d804e275 SHA1 dd4c0e3e2ef5ebc59440677a78605b4b54fff48a SHA256 1dfd913cad53a3ebd6bf560d14df918cab5a295cc7d155944a8e27284af83a6b diff --git a/sci-physics/root/files/root-5.32.00-dotfont.patch b/sci-physics/root/files/root-5.32.00-dotfont.patch new file mode 100644 index 000000000..85d6dea76 --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-dotfont.patch @@ -0,0 +1,58 @@ +--- root/html/src/TClassDocOutput.cxx.orig 2012-05-25 16:18:10.000000000 +0400 ++++ root/html/src/TClassDocOutput.cxx 2012-05-29 21:36:53.813593012 +0400 +@@ -625,7 +625,7 @@ + << "size=\"8,10\";" << endl + << "ratio=auto;" << endl + << "margin=0;" << endl +- << "node [shape=plaintext,fontsize=40,width=4,height=0.75];" << endl ++ << "node [shape=plaintext,fontsize=40,width=4,height=0.75,fontname=\"DejaVu Serif\"];" << endl + << "\"" << fCurrentClass->GetName() << "\" [shape=ellipse];" << endl; + + std::stringstream ssDep; +@@ -704,7 +704,7 @@ + outdot << ";" << endl; + } else if (writeAndMoreFor) { + outdot << " \"...andmore" << writeAndMoreFor->GetName() +- << "\" [label=\"...and more\",fontname=\"Times-Italic\",fillcolor=lightgrey,style=filled];" << endl; ++ << "\" [label=\"...and more\",fontname=\"DejaVu Serif Italic\",fillcolor=lightgrey,style=filled];" << endl; + } + } + if (!levelExists) break; +@@ -733,7 +733,7 @@ + << "ranksep=0.1;" << endl + << "nodesep=0;" << endl + << "margin=0;" << endl; +- outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10];" << endl; ++ outdot << " node [style=filled,width=0.7,height=0.15,fixedsize=true,shape=plaintext,fontsize=10,fontname=\"DejaVu Serif\"];" << endl; + + std::stringstream ssDep; + const int numColumns = 3; +@@ -939,7 +939,7 @@ + << "ranksep=0;" << endl + << "nodesep=0;" << endl + << "size=\"8,10\";" << endl +- << "node [fontsize=20,shape=plaintext];" << endl; ++ << "node [fontsize=20,shape=plaintext,fontname=\"DejaVu Serif\"];" << endl; + + for (std::list<std::string>::iterator iFile = listFilesToParse.begin(); + iFile != listFilesToParse.end(); ++iFile) { +@@ -999,7 +999,8 @@ + << "ranksep=0.7;" << endl + << "nodesep=0.3;" << endl + << "size=\"8,8\";" << endl +- << "ratio=compress;" << endl; ++ << "ratio=compress;" << endl ++ << "node [fontname=\"DejaVu Serif\"];" << endl; + + TString libs(fCurrentClass->GetSharedLibs()); + outdot << "\"All Libraries\" [URL=\"LibraryDependencies.html\",shape=box,rank=max,fillcolor=lightgray,style=filled];" << endl; +@@ -1109,7 +1110,8 @@ + + dotout << "digraph G {" << endl + << "ratio=auto;" << endl +- << "rankdir=RL;" << endl; ++ << "rankdir=RL;" << endl ++ << "node [fontname=\"DejaVu Serif\"];" << endl; + + // loop on all classes + TClassDocInfo* cdi = 0; diff --git a/sci-physics/root/files/root-5.32.00-htmldoc.patch b/sci-physics/root/files/root-5.32.00-htmldoc.patch new file mode 100644 index 000000000..e6d498187 --- /dev/null +++ b/sci-physics/root/files/root-5.32.00-htmldoc.patch @@ -0,0 +1,50 @@ +--- root/Makefile.orig 2012-05-23 21:07:07.000000000 +0400 ++++ root/Makefile 2012-05-23 22:47:48.935680301 +0400 +@@ -1039,8 +1039,7 @@ + releasenotes: + @$(MAKERELNOTES) + +-html: $(ROOTEXE) changelog releasenotes +- @$(MAKELOGHTML) ++html: $(ROOTEXE) releasenotes + @$(MAKEHTML) + + # Use DESTDIR to set a sandbox prior to calling "make install", e.g.: +--- root/build/unix/makehtml.sh.orig 2012-05-23 23:25:45.000000000 +0400 ++++ root/build/unix/makehtml.sh 2012-05-24 13:04:43.919062126 +0400 +@@ -6,12 +6,12 @@ + cd tutorials + # we need tutorials/hsimple.root + if [ ! -f hsimple.root ]; then +- $ROOT -l -b -q hsimple.C ++ ../$ROOT -l -b -q hsimple.C && exit 1 + fi + cd tree + # we need tutorials/tree/cernstaff.root + if [ ! -f cernstaff.root ]; then +- $ROOT -l -b -q cernbuild.C ++ ../../$ROOT -l -b -q cernbuild.C || exit 1 + fi + cd $dir + +@@ -19,7 +19,7 @@ + echo "Generating doc in directory htmldoc/..." + echo "" + +-$ROOT -l <<makedoc ++$ROOT -l <<makedoc || exit 1 + THtml h; + h.LoadAllLibs(); + h.MakeAll(); +--- root/html/src/THtml.cxx.orig 2012-05-25 16:18:10.000000000 +0400 ++++ root/html/src/THtml.cxx 2012-05-29 19:22:40.810563296 +0400 +@@ -1913,6 +1913,9 @@ + void THtml::CreateStyleSheet() const { + // Write the default ROOT style sheet. + CopyFileFromEtcDir("ROOT.css"); ++ CopyFileFromEtcDir("info.png"); ++ CopyFileFromEtcDir("root-banner.png"); ++ CopyFileFromEtcDir("rootdrawing-logo.png"); + CopyFileFromEtcDir("shadowAlpha.png"); + CopyFileFromEtcDir("shadow.gif"); + } diff --git a/sci-physics/root/files/root-5.34-htmldoc.patch b/sci-physics/root/files/root-5.34-htmldoc.patch new file mode 100644 index 000000000..a999d0ced --- /dev/null +++ b/sci-physics/root/files/root-5.34-htmldoc.patch @@ -0,0 +1,58 @@ +--- root/Makefile.orig 2012-05-30 00:50:46.000000000 +0400 ++++ root/Makefile 2012-05-30 00:51:05.839679686 +0400 +@@ -1088,16 +1088,7 @@ + releasenotes: + @$(MAKERELNOTES) + +-html: $(ROOTEXE) changelog releasenotes +-ifneq ($(USECONFIG),FALSE) +- @if [ "x`which root.exe`" != "x$(DESTDIR)$(BINDIR)/root.exe" ] \ +- || [ "`which root.exe`" -ot "bin/root.exe" ]; then \ +- echo 'ERROR: root.exe has not been installed by this build.'; \ +- echo ' Run "make install" before running "make html".'; \ +- exit 1; \ +- fi +-endif +- @$(MAKELOGHTML) ++html: $(ROOTEXE) releasenotes + @$(MAKEHTML) + + # Use DESTDIR to set a sandbox prior to calling "make install", e.g.: +--- root/build/unix/makehtml.sh.orig 2012-05-23 23:25:45.000000000 +0400 ++++ root/build/unix/makehtml.sh 2012-05-24 13:04:43.919062126 +0400 +@@ -6,12 +6,12 @@ + cd tutorials + # we need tutorials/hsimple.root + if [ ! -f hsimple.root ]; then +- $ROOT -l -b -q hsimple.C ++ ../$ROOT -l -b -q hsimple.C && exit 1 + fi + cd tree + # we need tutorials/tree/cernstaff.root + if [ ! -f cernstaff.root ]; then +- $ROOT -l -b -q cernbuild.C ++ ../../$ROOT -l -b -q cernbuild.C || exit 1 + fi + cd $dir + +@@ -19,7 +19,7 @@ + echo "Generating doc in directory htmldoc/..." + echo "" + +-$ROOT -l <<makedoc ++$ROOT -l <<makedoc || exit 1 + THtml h; + h.LoadAllLibs(); + h.MakeAll(); +--- root/html/src/THtml.cxx.orig 2012-05-25 16:18:10.000000000 +0400 ++++ root/html/src/THtml.cxx 2012-05-29 19:22:40.810563296 +0400 +@@ -1913,6 +1913,9 @@ + void THtml::CreateStyleSheet() const { + // Write the default ROOT style sheet. + CopyFileFromEtcDir("ROOT.css"); ++ CopyFileFromEtcDir("info.png"); ++ CopyFileFromEtcDir("root-banner.png"); ++ CopyFileFromEtcDir("rootdrawing-logo.png"); + CopyFileFromEtcDir("shadowAlpha.png"); + CopyFileFromEtcDir("shadow.gif"); + } diff --git a/sci-physics/root/metadata.xml b/sci-physics/root/metadata.xml index 0af578824..4eb1afc7f 100644 --- a/sci-physics/root/metadata.xml +++ b/sci-physics/root/metadata.xml @@ -19,6 +19,7 @@ <flag name="clarens"> Build the Clarens and PEAC plug-ins, to use in a GRID enabled analysis</flag> <flag name="fits">Support for images and data from FITS files with <pkg>sci-libs/cfitsio</pkg></flag> <flag name="geant4">Support for <pkg>sci-physics/geant</pkg> version 4</flag> + <flag name="htmldoc">Generate html documentation</flag> <flag name="llvm">Build the new EXPERIMENTAL cling interactive interpreter based on <pkg>sys-devel/llvm</pkg></flag> <flag name="math">Build all math related libraries plugins, needs <pkg>sci-libs/gsl</pkg> </flag> <flag name="pythia6">Build the interface for <pkg>sci-physics/pythia</pkg> version 6.x </flag> diff --git a/sci-physics/root/root-5.32.03-r1.ebuild b/sci-physics/root/root-5.32.03-r2.ebuild index eaa1734a7..27cad96d5 100644 --- a/sci-physics/root/root-5.32.03-r1.ebuild +++ b/sci-physics/root/root-5.32.03-r2.ebuild @@ -17,7 +17,7 @@ else KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" fi -inherit elisp-common eutils user fdo-mime fortran-2 python toolchain-funcs ${_SVN} +inherit elisp-common eutils fdo-mime fortran-2 python toolchain-funcs ${_SVN} ROOFIT_DOC_PV=2.91-33 TMVA_DOC_PV=4.03 @@ -30,18 +30,24 @@ SRC_URI="${SRC_URI} doc? ( ftp://root.cern.ch/${PN}/doc/ROOTUsersGuide.pdf math? ( ftp://root.cern.ch/${PN}/doc/RooFit_Users_Manual_${ROOFIT_DOC_PV}.pdf - http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf -> TMVAUsersGuide-v${TMVA_DOC_PV}.pdf ) )" + http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf -> TMVAUsersGuide-v${TMVA_DOC_PV}.pdf ) + htmldoc? ( + http://root.cern.ch/drupal/sites/default/files/rootdrawing-logo.png + http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/root-banner.png + http://root.cern.ch/drupal/sites/all/themes/newsflash/images/info.png ) )" SLOT="0" LICENSE="LGPL-2.1" -IUSE="+X afs avahi clarens doc emacs examples fits fftw graphviz kerberos ldap - +math mpi mysql odbc +opengl openmp oracle postgres prefix - pythia6 pythia8 python qt4 +reflex ruby ssl xft xinetd xml xrootd" +IUSE="+X afs avahi clarens doc emacs examples fits fftw graphviz htmldoc kerberos + ldap +math mpi mysql odbc +opengl openmp oracle postgres prefix pythia6 + pythia8 python qt4 +reflex ruby ssl xft xinetd xml xrootd" CDEPEND=" app-arch/xz-utils + !app-doc/root-docs >=dev-lang/cfortran-4.4-r2 dev-libs/libpcre + media-fonts/dejavu media-libs/freetype media-libs/giflib media-libs/libpng:0 @@ -93,7 +99,8 @@ CDEPEND=" xrootd? ( net-libs/xrootd )" DEPEND="${CDEPEND} - virtual/pkgconfig" + virtual/pkgconfig + htmldoc? ( x11-base/xorg-server[xvfb] )" RDEPEND=" virtual/fortran @@ -101,7 +108,9 @@ RDEPEND=" reflex? ( dev-cpp/gccxml ) xinetd? ( sys-apps/xinetd )" -REQUIRED_USE="!X? ( !opengl !qt4 !xft )" +REQUIRED_USE=" + !X? ( !opengl !qt4 !xft ) + htmldoc? ( X doc graphviz )" S="${WORKDIR}/${PN}" @@ -142,7 +151,8 @@ src_prepare() { "${FILESDIR}"/${PN}-${PATCH_PV2}-afs.patch \ "${FILESDIR}"/${PN}-${PATCH_PV2}-cfitsio.patch \ "${FILESDIR}"/${PN}-${PATCH_PV2}-chklib64.patch \ - "${FILESDIR}"/${PN}-${PATCH_PV2}-explicit-functions.patch + "${FILESDIR}"/${PN}-${PATCH_PV2}-explicit-functions.patch \ + "${FILESDIR}"/${PN}-${PATCH_PV2}-dotfont.patch # make sure we use system libs and headers rm montecarlo/eg/inc/cfortran.h README/cfortran.doc || die @@ -175,6 +185,24 @@ src_prepare() { # QTDIR only used for qt3 in gentoo, and configure looks for it. unset QTDIR + + # Make html docs self-consistent for offline work (based on Fedora spec) + if use htmldoc; then + epatch "${FILESDIR}"/${PN}-${PATCH_PV2}-htmldoc.patch + # make images local + sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/!!' \ + -i etc/html/ROOT.css || die "htmldoc sed failed" + sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/!!' \ + -i etc/html/ROOT.css || die "htmldoc sed failed" + sed 's!http://root.cern.ch/drupal/sites/default/files/!!' \ + -i etc/html/header.html || die "htmldoc sed failed" + + cp "${DISTDIR}"/{rootdrawing-logo.png,root-banner.png,info.png} etc/html || + die "htmldoc preparation failed" + + # set build etc directory + sed "s%@PWD@%${S}%" -i build/unix/makehtml.sh || die "htmldoc sed failed" + fi } src_configure() { @@ -254,6 +282,22 @@ src_compile() { if use emacs; then elisp-compile build/misc/*.el || die "elisp-compile failed" fi + if use htmldoc; then + # we need X server running, THtml uses it for GUI snapshots + Xvfb -screen 0 1280x1024x24 :50 >/dev/null 2>&1 & + local xvfb_pid=$! + ps h -C Xvfb | grep -q ${xvfb_pid} || die "Xvfb failed to start" + + LD_LIBRARY_PATH=${S}/lib:${S}/cint/cint/include:${S}/cint/cint/stl \ + ROOTSYS=${S} DISPLAY=":50" \ + emake html || die "html doc generation failed" + # if root.exe crashes, return code will be 0 due to gdb attach, + # so we need to check if last html file was generated; + # this check is volatile and can't catch crash on the last file. + [[ -f htmldoc/timespec.html ]] || die "looks like html doc generation crashed" + + kill ${xvfb_pid} + fi } doc_install() { @@ -264,6 +308,8 @@ doc_install() { use math && dodoc \ "${DISTDIR}"/RooFit_Users_Manual_${ROOFIT_DOC_PV}.pdf \ "${DISTDIR}"/TMVAUsersGuide-v${TMVA_DOC_PV}.pdf + # too large data to copy + use htmldoc && mv htmldoc "${ED}usr/share/doc/${PF}/html" fi if use examples; then diff --git a/sci-physics/root/root-9999.ebuild b/sci-physics/root/root-9999.ebuild index d5fb84795..53e785360 100644 --- a/sci-physics/root/root-9999.ebuild +++ b/sci-physics/root/root-9999.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-physics/root/root-5.32.01.ebuild,v 1.1 2012/03/02 05:34:01 bicatali Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-physics/root/root-5.32.02-r1.ebuild,v 1.3 2012/05/04 07:55:34 jdhore Exp $ EAPI=4 @@ -17,12 +17,13 @@ else KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" fi -inherit elisp-common eutils user fdo-mime fortran-2 python toolchain-funcs ${_SVN} +inherit elisp-common eutils fdo-mime fortran-2 python toolchain-funcs ${_SVN} ROOFIT_DOC_PV=2.91-33 TMVA_DOC_PV=4.03 PATCH_PV=5.28.00b PATCH_PV2=5.32.00 +PATCH_PV3=5.34 DESCRIPTION="C++ data analysis framework and interpreter from CERN" HOMEPAGE="http://root.cern.ch/" @@ -30,18 +31,24 @@ SRC_URI="${SRC_URI} doc? ( ftp://root.cern.ch/${PN}/doc/ROOTUsersGuide.pdf math? ( ftp://root.cern.ch/${PN}/doc/RooFit_Users_Manual_${ROOFIT_DOC_PV}.pdf - http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf -> TMVAUsersGuide-v${TMVA_DOC_PV}.pdf ) )" + http://tmva.sourceforge.net/docu/TMVAUsersGuide.pdf -> TMVAUsersGuide-v${TMVA_DOC_PV}.pdf ) + htmldoc? ( + http://root.cern.ch/drupal/sites/default/files/rootdrawing-logo.png + http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/root-banner.png + http://root.cern.ch/drupal/sites/all/themes/newsflash/images/info.png ) )" SLOT="0" LICENSE="LGPL-2.1" -IUSE="+X afs avahi clarens doc emacs examples fits fftw graphviz kerberos ldap - llvm +math mpi mysql odbc +opengl openmp oracle postgres prefix - pythia6 pythia8 python qt4 +reflex ruby ssl xft xinetd xml xrootd" +IUSE="+X afs avahi clarens doc emacs examples fits fftw graphviz htmldoc kerberos + ldap llvm +math mpi mysql odbc +opengl openmp oracle postgres prefix pythia6 + pythia8 python qt4 +reflex ruby ssl xft xinetd xml xrootd" CDEPEND=" app-arch/xz-utils + !app-doc/root-docs >=dev-lang/cfortran-4.4-r2 dev-libs/libpcre + media-fonts/dejavu media-libs/freetype media-libs/giflib media-libs/libpng:0 @@ -94,7 +101,8 @@ CDEPEND=" xrootd? ( net-libs/xrootd )" DEPEND="${CDEPEND} - virtual/pkgconfig" + virtual/pkgconfig + htmldoc? ( x11-base/xorg-server[xvfb] )" RDEPEND=" virtual/fortran @@ -102,7 +110,9 @@ RDEPEND=" reflex? ( dev-cpp/gccxml ) xinetd? ( sys-apps/xinetd )" -REQUIRED_USE="!X? ( !opengl !qt4 !xft )" +REQUIRED_USE=" + !X? ( !opengl !qt4 !xft ) + htmldoc? ( X doc graphviz )" S="${WORKDIR}/${PN}" @@ -141,7 +151,8 @@ src_prepare() { "${FILESDIR}"/${PN}-${PATCH_PV}-unuran.patch \ "${FILESDIR}"/${PN}-${PATCH_PV2}-afs.patch \ "${FILESDIR}"/${PN}-${PATCH_PV2}-cfitsio.patch \ - "${FILESDIR}"/${PN}-${PATCH_PV2}-chklib64.patch + "${FILESDIR}"/${PN}-${PATCH_PV2}-chklib64.patch \ + "${FILESDIR}"/${PN}-${PATCH_PV2}-dotfont.patch # make sure we use system libs and headers rm montecarlo/eg/inc/cfortran.h README/cfortran.doc || die @@ -174,6 +185,24 @@ src_prepare() { # QTDIR only used for qt3 in gentoo, and configure looks for it. unset QTDIR + + # Make html docs self-consistent for offline work (based on Fedora spec) + if use htmldoc; then + epatch "${FILESDIR}"/${PN}-${PATCH_PV3}-htmldoc.patch + # make images local + sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/blue/!!' \ + -i etc/html/ROOT.css || die "htmldoc sed failed" + sed 's!http://root.cern.ch/drupal/sites/all/themes/newsflash/images/!!' \ + -i etc/html/ROOT.css || die "htmldoc sed failed" + sed 's!http://root.cern.ch/drupal/sites/default/files/!!' \ + -i etc/html/header.html || die "htmldoc sed failed" + + cp "${DISTDIR}"/{rootdrawing-logo.png,root-banner.png,info.png} etc/html || + die "htmldoc preparation failed" + + # set build etc directory + sed "s%@PWD@%${S}%" -i build/unix/makehtml.sh || die "htmldoc sed failed" + fi } src_configure() { @@ -253,6 +282,22 @@ src_compile() { if use emacs; then elisp-compile build/misc/*.el || die "elisp-compile failed" fi + if use htmldoc; then + # we need X server running, THtml uses it for GUI snapshots + Xvfb -screen 0 1280x1024x24 :50 >/dev/null 2>&1 & + local xvfb_pid=$! + ps h -C Xvfb | grep -q ${xvfb_pid} || die "Xvfb failed to start" + + LD_LIBRARY_PATH=${S}/lib:${S}/cint/cint/include:${S}/cint/cint/stl \ + ROOTSYS=${S} DISPLAY=":50" \ + emake html || die "html doc generation failed" + # if root.exe crashes, return code will be 0 due to gdb attach, + # so we need to check if last html file was generated; + # this check is volatile and can't catch crash on the last file. + [[ -f htmldoc/timespec.html ]] || die "looks like html doc generation crashed" + + kill ${xvfb_pid} + fi } doc_install() { @@ -263,6 +308,8 @@ doc_install() { use math && dodoc \ "${DISTDIR}"/RooFit_Users_Manual_${ROOFIT_DOC_PV}.pdf \ "${DISTDIR}"/TMVAUsersGuide-v${TMVA_DOC_PV}.pdf + # too large data to copy + use htmldoc && mv htmldoc "${ED}usr/share/doc/${PF}/html" fi if use examples; then |