The package rpms/root.git has added or updated architecture specific content in its spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s): https://src.fedoraproject.org/cgit/rpms/root.git/commit/?id=ea40f6d9b5099b98....
Change: +%ifarch ppc64le
Thanks.
Full change: ============
commit ea40f6d9b5099b98bc849929b9f581af5d7a7835 Author: Mattias Ellert mattias.ellert@physics.uu.se Date: Wed Jan 17 07:13:04 2018 +0100
Update to 6.12.04 Drop patches accepted upstream Drop previously backported patches Unbundle jsroot in root-net-http Add hack to work around broken charmaps in StandardSymbolsPS.otf Use local static script and style files for JupyROOT Fix some javascript errors Fix build rules for test binaries so that they are not installed Address memory usage issue for ARM build Drop pre-minified javascript and style files (Fedora packaging guidelines) Enable builds on ppc/ppc64/ppc64le (do not pass all tests, but the list of failing tests is much shorter with this release) Add dependency on python[23]-jsmva to python[23]-jupyroot New sub-packages: root-gui-canvaspainter, root-gui-webdisplay and root-hist-draw (not for EPEL 7 since they are root7 specific and require c++-14)
diff --git a/root-Fix-constructing-the-GSL-MC-Integrator.patch b/root-Fix-constructing-the-GSL-MC-Integrator.patch new file mode 100644 index 0000000..8615550 --- /dev/null +++ b/root-Fix-constructing-the-GSL-MC-Integrator.patch @@ -0,0 +1,35 @@ +From 0bed472bc529c6fa515793984808a4f6c24fc715 Mon Sep 17 00:00:00 2001 +From: moneta lorenzo.moneta@cern.ch +Date: Mon, 15 Jan 2018 15:00:44 +0100 +Subject: [PATCH] Fix constructing the GSL MC Integrator. This fix the failure + observed sometimes in math core-testIntegration. (Fix ROOT-9178) + +--- + math/mathmore/src/GSLMCIntegrator.cxx | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/math/mathmore/src/GSLMCIntegrator.cxx b/math/mathmore/src/GSLMCIntegrator.cxx +index 25ad7b4eac..1c00146630 100644 +--- a/math/mathmore/src/GSLMCIntegrator.cxx ++++ b/math/mathmore/src/GSLMCIntegrator.cxx +@@ -100,6 +100,7 @@ GSLMCIntegrator::GSLMCIntegrator(MCIntegration::Type type, double absTol, double + } + + GSLMCIntegrator::GSLMCIntegrator(const char * type, double absTol, double relTol, unsigned int calls): ++ fType(MCIntegration::kDEFAULT), + fDim(0), + fCalls(calls), + fAbsTol(absTol), +@@ -316,7 +317,8 @@ void GSLMCIntegrator::SetTypeName(const char * type) + } + + // create the fWorkspace object +- if (integType != fType) SetType(integType); ++ // if it exists already with the same type it will not be re-created ++ SetType(integType); + } + + +-- +2.14.3 + diff --git a/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch b/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch new file mode 100644 index 0000000..3448ac8 --- /dev/null +++ b/root-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch @@ -0,0 +1,27 @@ +diff -ur root-6.12.04.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp root-6.12.04/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp +--- root-6.12.04.orig/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/interpreter/llvm/src/lib/Target/PowerPC/PPCISelLowering.cpp 2018-01-11 12:40:14.956914822 +0100 +@@ -7448,9 +7448,11 @@ + /// - The node is a "load-and-splat" + /// In all other cases, we will choose to keep the BUILD_VECTOR. + static bool haveEfficientBuildVectorPattern(BuildVectorSDNode *V, +- bool HasDirectMove) { ++ bool HasDirectMove, ++ bool HasP8Vector) { + EVT VecVT = V->getValueType(0); +- bool RightType = VecVT == MVT::v2f64 || VecVT == MVT::v4f32 || ++ bool RightType = VecVT == MVT::v2f64 || ++ (HasP8Vector && VecVT == MVT::v4f32) || + (HasDirectMove && (VecVT == MVT::v2i64 || VecVT == MVT::v4i32)); + if (!RightType) + return false; +@@ -7612,7 +7614,8 @@ + // lowered to VSX instructions under certain conditions. + // Without VSX, there is no pattern more efficient than expanding the node. + if (Subtarget.hasVSX() && +- haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove())) ++ haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove(), ++ Subtarget.hasP8Vector())) + return Op; + return SDValue(); + } diff --git a/root-dox-filter.patch b/root-dox-filter.patch deleted file mode 100644 index 0cb43bc..0000000 --- a/root-dox-filter.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 44ca9d32d47782597e58e75575fdffba135ab8e7 Mon Sep 17 00:00:00 2001 -From: Mattias Ellert mattias.ellert@physics.uu.se -Date: Wed, 18 Oct 2017 13:34:34 +0200 -Subject: [PATCH] Fix \cond without \endcond warnings - ---- - documentation/doxygen/filter.cxx | 21 +++++++++++++-------- - 1 file changed, 13 insertions(+), 8 deletions(-) - -diff --git a/documentation/doxygen/filter.cxx b/documentation/doxygen/filter.cxx -index 85309dd6f7..de8acb4bc9 100644 ---- a/documentation/doxygen/filter.cxx -+++ b/documentation/doxygen/filter.cxx -@@ -107,7 +107,6 @@ bool gImageSource; // True the source of the current macro should be shown - int gInMacro; // >0 if parsing a macro in a class documentation. - int gImageID; // Image Identifier. - int gMacroID; // Macro identifier in class documentation. --int gShowTutSource; // >0 if the tutorial source code should be shown - - - //////////////////////////////////////////////////////////////////////////////// -@@ -126,7 +125,6 @@ int main(int argc, char *argv[]) - gMacroID = 0; - gOutputName = "stdout.dat"; - gImageType = "png"; -- gShowTutSource = 0; - if (EndsWith(gFileName,".cxx")) gSource = true; - if (EndsWith(gFileName,".h")) gHeader = true; - if (EndsWith(gFileName,".py")) gPython = true; -@@ -273,6 +271,9 @@ void FilterTutorial() - // File for inline macros. - FILE *m = 0; - -+ int showTutSource = 0; -+ int incond = 0; -+ - // Extract the macro name - int i1 = gFileName.rfind('/')+1; - int i2 = gFileName.rfind('C'); -@@ -311,7 +312,7 @@ void FilterTutorial() - - // \macro_code found - if (gLineString.find("\macro_code") != string::npos) { -- gShowTutSource = 1; -+ showTutSource = 1; - m = fopen(StringFormat("%s/macros/%s",gOutDir.c_str(),gMacroName.c_str()).c_str(), "w"); - ReplaceAll(gLineString, "\macro_code", StringFormat("\include %s",gMacroName.c_str())); - } -@@ -339,19 +340,23 @@ void FilterTutorial() - } - - // \author is the last comment line. -- if (gLineString.find("\author") != string::npos) { -+ if (gLineString.find("\author") != string::npos) { - if (gPython) printf("%s",StringFormat("%s \n## \cond \n",gLineString.c_str()).c_str()); - else printf("%s",StringFormat("%s \n/// \cond \n",gLineString.c_str()).c_str()); -- if (gShowTutSource == 1) gShowTutSource = 2; -+ if (showTutSource == 1) showTutSource = 2; -+ incond = 1; - } else { - printf("%s",gLineString.c_str()); -- if (m && gShowTutSource == 2) fprintf(m,"%s",gLineString.c_str()); -+ if (m && showTutSource == 2) fprintf(m,"%s",gLineString.c_str()); - } - } - -- if (m) { -+ if (incond) { - if (gPython) printf("## \endcond \n"); - else printf("/// \endcond \n"); -+ } -+ -+ if (m) { - fclose(m); - } - } -@@ -511,4 +516,4 @@ bool EndsWith(string const &fullString, string const &ending) { - - bool BeginsWith(const string& haystack, const string& needle) { - return needle.length() <= haystack.length() && equal(needle.begin(), needle.end(), haystack.begin()); --} -\ No newline at end of file -+} --- -2.13.6 - diff --git a/root-doxygen-makefile.patch b/root-doxygen-makefile.patch new file mode 100644 index 0000000..1468981 --- /dev/null +++ b/root-doxygen-makefile.patch @@ -0,0 +1,28 @@ +diff --git a/documentation/doxygen/Makefile b/documentation/doxygen/Makefile +index 4e6b47728d..a886c1b729 100644 +--- a/documentation/doxygen/Makefile ++++ b/documentation/doxygen/Makefile +@@ -8,7 +8,6 @@ export DOXYGEN_ROOT_VERSION := $(shell root -l -b -q -e 'printf("%s\n", gROOT->G + export DOXYGEN_EXAMPLE_PATH := $(DOXYGEN_OUTPUT_DIRECTORY)/macros + export DOXYGEN_IMAGE_PATH := $(DOXYGEN_OUTPUT_DIRECTORY)/html + export DOXYGEN_NOTEBOOK_PATH := $(DOXYGEN_OUTPUT_DIRECTORY)/notebooks +-export DOXYGEN_NOTEBOOK_PATH_PARALLEL := $(DOXYGEN_NOTEBOOK_PATH)/parallel + export DOXYGEN_STRIP_PATH := $(shell cd $(PWD)/../..; pwd) + export DOXYGEN_INCLUDE_PATH := $(shell find $(DOXYGEN_STRIP_PATH) -type d -name dictpch -prune -o -type d -name inc) + +@@ -33,14 +32,11 @@ doxygen: filter + $(call MkDir,$(DOXYGEN_OUTPUT_DIRECTORY)) + $(call MkDir,$(DOXYGEN_EXAMPLE_PATH)) + $(call MkDir,$(DOXYGEN_NOTEBOOK_PATH)) +- $(call MkDir,$(DOXYGEN_NOTEBOOK_PATH_PARALLEL)) +- time python ./parallelNotebooks.py + ./makehtmlfooter.sh > htmlfooter.html + doxygen + ./listlibs.sh + rm -rf files c1* *.ps *.png *.svg *.pdf *.root *.xpm *.out *.dat *.dtd *.dot *.txt listofclass.sh +- rm $(DOXYGEN_NOTEBOOK_PATH)/*.root +- rm $(DOXYGEN_NOTEBOOK_PATH_PARALLEL)/*.root ++ rm -f $(DOXYGEN_NOTEBOOK_PATH)/*.root + + clean: + rm -r $(DOXYGEN_OUTPUT_DIRECTORY) filter htmlfooter.html dataset* diff --git a/root-fontconfig.patch b/root-fontconfig.patch index 56aa2bc..22284c2 100644 --- a/root-fontconfig.patch +++ b/root-fontconfig.patch @@ -1,7 +1,7 @@ -diff -ur root-6.10.00.orig/core/base/src/TApplication.cxx root-6.10.00/core/base/src/TApplication.cxx ---- root-6.10.00.orig/core/base/src/TApplication.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/core/base/src/TApplication.cxx 2017-06-14 22:22:40.348551723 +0200 -@@ -273,18 +273,11 @@ +diff -ur root-6.12.04.orig/core/base/src/TApplication.cxx root-6.12.04/core/base/src/TApplication.cxx +--- root-6.12.04.orig/core/base/src/TApplication.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/core/base/src/TApplication.cxx 2018-01-07 22:17:25.173658049 +0100 +@@ -275,18 +275,11 @@ LoadGraphicsLibs();
// Try to load TrueType font renderer. Only try to load if not in batch @@ -22,7 +22,7 @@ diff -ur root-6.10.00.orig/core/base/src/TApplication.cxx root-6.10.00/core/base if (gClassTable->GetDict("TGX11TTF")) { // in principle we should not have linked anything against libGX11TTF // but with ACLiC this can happen, initialize TGX11TTF by hand -@@ -298,7 +291,6 @@ +@@ -300,7 +293,6 @@ } } #endif @@ -30,21 +30,21 @@ diff -ur root-6.10.00.orig/core/base/src/TApplication.cxx root-6.10.00/core/base
// Create WM dependent application environment if (fAppImp) -diff -ur root-6.10.00.orig/graf2d/asimage/CMakeLists.txt root-6.10.00/graf2d/asimage/CMakeLists.txt ---- root-6.10.00.orig/graf2d/asimage/CMakeLists.txt 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/asimage/CMakeLists.txt 2017-06-14 22:22:40.367551513 +0200 -@@ -13,7 +13,7 @@ - ROOT_GENERATE_DICTIONARY(G__ASImage TASImage.h TASImagePlugin.h TASPluginGS.h MODULE ASImage LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") +diff -ur root-6.12.04.orig/graf2d/asimage/CMakeLists.txt root-6.12.04/graf2d/asimage/CMakeLists.txt +--- root-6.12.04.orig/graf2d/asimage/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/asimage/CMakeLists.txt 2018-01-07 22:20:58.769272293 +0100 +@@ -15,7 +15,7 @@ + HEADERS TASImage.h TASImagePlugin.h TASPluginGS.h + SOURCES TASImage.cxx TASPluginGS.cxx + DICTIONARY_OPTIONS "-writeEmptyRootPCM" +- LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} ${ZLIB_LIBRARIES} ++ LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} fontconfig ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} ${ZLIB_LIBRARIES} + DEPENDENCIES Graf BUILTINS AFTERIMAGE)
- ROOT_LINKER_LIBRARY(ASImage TASImage.cxx TASPluginGS.cxx G__ASImage.cxx -- LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} -+ LIBRARIES Core ${AFTERIMAGE_LIBRARIES} ${FREETYPE_LIBRARIES} fontconfig ${ASEXTRA_LIBRARIES} ${X11_LIBRARIES} - ${ZLIB_LIBRARIES} DEPENDENCIES Graf BUILTINS AFTERIMAGE)
- ROOT_GENERATE_DICTIONARY(G__ASImageGui TASPaletteEditor.h MODULE ASImageGui LINKDEF LinkDefGui.h OPTIONS "-writeEmptyRootPCM") -diff -ur root-6.10.00.orig/graf2d/asimage/Module.mk root-6.10.00/graf2d/asimage/Module.mk ---- root-6.10.00.orig/graf2d/asimage/Module.mk 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/asimage/Module.mk 2017-06-14 22:22:40.367551513 +0200 +diff -ur root-6.12.04.orig/graf2d/asimage/Module.mk root-6.12.04/graf2d/asimage/Module.mk +--- root-6.12.04.orig/graf2d/asimage/Module.mk 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/asimage/Module.mk 2018-01-07 22:17:25.174658038 +0100 @@ -236,7 +236,7 @@ "$(SOFLAGS)" libASImage.$(SOEXT) $@ \ "$(ASIMAGEO) $(ASIMAGEDO)" \ @@ -54,9 +54,9 @@ diff -ur root-6.10.00.orig/graf2d/asimage/Module.mk root-6.10.00/graf2d/asimage/ $(ASEXTRALIBDIR) $(ASEXTRALIB) $(ASNEEDX11LIBS)"
$(call pcmrule,ASIMAGE) -diff -ur root-6.10.00.orig/graf2d/asimage/src/TASImage.cxx root-6.10.00/graf2d/asimage/src/TASImage.cxx ---- root-6.10.00.orig/graf2d/asimage/src/TASImage.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/asimage/src/TASImage.cxx 2017-06-14 22:22:40.368551502 +0200 +diff -ur root-6.12.04.orig/graf2d/asimage/src/TASImage.cxx root-6.12.04/graf2d/asimage/src/TASImage.cxx +--- root-6.12.04.orig/graf2d/asimage/src/TASImage.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/asimage/src/TASImage.cxx 2018-01-07 22:17:25.176658016 +0100 @@ -110,6 +110,8 @@ # include <draw.h> } @@ -66,7 +66,7 @@ diff -ur root-6.10.00.orig/graf2d/asimage/src/TASImage.cxx root-6.10.00/graf2d/a // auxiliary functions for general polygon filling #include "TASPolyUtils.c"
-@@ -2596,14 +2598,120 @@ +@@ -2593,14 +2595,120 @@ TString fn = font_name; fn.Strip();
@@ -194,7 +194,7 @@ diff -ur root-6.10.00.orig/graf2d/asimage/src/TASImage.cxx root-6.10.00/graf2d/a
if (fn.EndsWith(".pfa") || fn.EndsWith(".PFA") || fn.EndsWith(".pfb") || fn.EndsWith(".PFB") || fn.EndsWith(".ttf") || fn.EndsWith(".TTF") || fn.EndsWith(".otf") || fn.EndsWith(".OTF")) { ttfont = kTRUE; -@@ -2627,14 +2735,11 @@ +@@ -2624,14 +2732,11 @@ return; }
@@ -212,20 +212,20 @@ diff -ur root-6.10.00.orig/graf2d/asimage/src/TASImage.cxx root-6.10.00/graf2d/a }
get_text_size(text, font, (ASText3DType)type, &width, &height); -diff -ur root-6.10.00.orig/graf2d/graf/CMakeLists.txt root-6.10.00/graf2d/graf/CMakeLists.txt ---- root-6.10.00.orig/graf2d/graf/CMakeLists.txt 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/graf/CMakeLists.txt 2017-06-14 22:22:40.369551491 +0200 -@@ -8,6 +8,6 @@ +diff -ur root-6.12.04.orig/graf2d/graf/CMakeLists.txt root-6.12.04/graf2d/graf/CMakeLists.txt +--- root-6.12.04.orig/graf2d/graf/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/graf/CMakeLists.txt 2018-01-07 22:23:16.766731136 +0100 +@@ -7,6 +7,6 @@
- include_directories(${FREETYPE_INCLUDE_DIRS}) + ROOT_STANDARD_LIBRARY_PACKAGE(Graf + DICTIONARY_OPTIONS "-writeEmptyRootPCM" +- LIBRARIES ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} mathtext ++ LIBRARIES ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} mathtext fontconfig + DEPENDENCIES Hist Matrix MathCore RIO BUILTINS FREETYPE)
--ROOT_LINKER_LIBRARY(Graf *.cxx G__Graf.cxx LIBRARIES ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} mathtext DEPENDENCIES Hist Matrix MathCore RIO BUILTINS FREETYPE) -+ROOT_LINKER_LIBRARY(Graf *.cxx G__Graf.cxx LIBRARIES ${FREETYPE_LIBRARIES} ${ZLIB_LIBRARIES} mathtext fontconfig DEPENDENCIES Hist Matrix MathCore RIO BUILTINS FREETYPE) - - ROOT_INSTALL_HEADERS() -diff -ur root-6.10.00.orig/graf2d/graf/inc/TTF.h root-6.10.00/graf2d/graf/inc/TTF.h ---- root-6.10.00.orig/graf2d/graf/inc/TTF.h 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/graf/inc/TTF.h 2017-06-14 22:22:40.369551491 +0200 +diff -ur root-6.12.04.orig/graf2d/graf/inc/TTF.h root-6.12.04/graf2d/graf/inc/TTF.h +--- root-6.12.04.orig/graf2d/graf/inc/TTF.h 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/graf/inc/TTF.h 2018-01-07 22:17:25.177658004 +0100 @@ -76,9 +76,8 @@ static FT_BBox fgCBox; ///< string control box static FT_CharMap fgCharMap[kTTMaxFonts]; ///< font character map @@ -237,9 +237,9 @@ diff -ur root-6.10.00.orig/graf2d/graf/inc/TTF.h root-6.10.00/graf2d/graf/inc/TT static FT_Face fgFace[kTTMaxFonts]; ///< font face static TTF::TTGlyph fgGlyphs[kMaxGlyphs]; ///< glyphs static Bool_t fgHinting; ///< use hinting (true by default) -diff -ur root-6.10.00.orig/graf2d/graf/Module.mk root-6.10.00/graf2d/graf/Module.mk ---- root-6.10.00.orig/graf2d/graf/Module.mk 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/graf/Module.mk 2017-06-14 22:22:40.369551491 +0200 +diff -ur root-6.12.04.orig/graf2d/graf/Module.mk root-6.12.04/graf2d/graf/Module.mk +--- root-6.12.04.orig/graf2d/graf/Module.mk 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/graf/Module.mk 2018-01-07 22:17:25.177658004 +0100 @@ -58,7 +58,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libGraf.$(SOEXT) $@ \ @@ -249,9 +249,9 @@ diff -ur root-6.10.00.orig/graf2d/graf/Module.mk root-6.10.00/graf2d/graf/Module
$(call pcmrule,GRAF) $(noop) -diff -ur root-6.10.00.orig/graf2d/graf/src/TTF.cxx root-6.10.00/graf2d/graf/src/TTF.cxx ---- root-6.10.00.orig/graf2d/graf/src/TTF.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/graf/src/TTF.cxx 2017-06-14 22:22:40.370551479 +0200 +diff -ur root-6.12.04.orig/graf2d/graf/src/TTF.cxx root-6.12.04/graf2d/graf/src/TTF.cxx +--- root-6.12.04.orig/graf2d/graf/src/TTF.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/graf/src/TTF.cxx 2018-01-07 22:17:25.177658004 +0100 @@ -25,6 +25,8 @@ #include "TMath.h" #include "TError.h" @@ -812,19 +812,19 @@ diff -ur root-6.10.00.orig/graf2d/graf/src/TTF.cxx root-6.10.00/graf2d/graf/src/ }
//////////////////////////////////////////////////////////////////////////////// -diff -ur root-6.10.00.orig/graf2d/postscript/CMakeLists.txt root-6.10.00/graf2d/postscript/CMakeLists.txt ---- root-6.10.00.orig/graf2d/postscript/CMakeLists.txt 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/postscript/CMakeLists.txt 2017-06-14 22:22:40.370551479 +0200 +diff -ur root-6.12.04.orig/graf2d/postscript/CMakeLists.txt root-6.12.04/graf2d/postscript/CMakeLists.txt +--- root-6.12.04.orig/graf2d/postscript/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/postscript/CMakeLists.txt 2018-01-07 22:22:12.902444262 +0100 @@ -5,5 +5,5 @@
- ROOT_GENERATE_DICTIONARY(G__PostScript *.h MODULE Postscript LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") - --ROOT_LINKER_LIBRARY(Postscript *.cxx G__PostScript.cxx LIBRARIES ${ZLIB_LIBRARIES} mathtext DEPENDENCIES Graf) -+ROOT_LINKER_LIBRARY(Postscript *.cxx G__PostScript.cxx LIBRARIES ${ZLIB_LIBRARIES} mathtext fontconfig DEPENDENCIES Graf) - ROOT_INSTALL_HEADERS() -diff -ur root-6.10.00.orig/graf2d/postscript/Module.mk root-6.10.00/graf2d/postscript/Module.mk ---- root-6.10.00.orig/graf2d/postscript/Module.mk 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/postscript/Module.mk 2017-06-14 22:22:40.370551479 +0200 + ROOT_STANDARD_LIBRARY_PACKAGE(Postscript + DICTIONARY_OPTIONS "-writeEmptyRootPCM" +- LIBRARIES ${ZLIB_LIBRARIES} mathtext ++ LIBRARIES ${ZLIB_LIBRARIES} mathtext fontconfig + DEPENDENCIES Graf) +diff -ur root-6.12.04.orig/graf2d/postscript/Module.mk root-6.12.04/graf2d/postscript/Module.mk +--- root-6.12.04.orig/graf2d/postscript/Module.mk 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/postscript/Module.mk 2018-01-07 22:17:25.178657993 +0100 @@ -59,7 +59,7 @@ @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS)" \ "$(SOFLAGS)" libPostscript.$(SOEXT) $@ \ @@ -834,9 +834,9 @@ diff -ur root-6.10.00.orig/graf2d/postscript/Module.mk root-6.10.00/graf2d/posts
$(call pcmrule,POSTSCRIPT) $(noop) -diff -ur root-6.10.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.10.00/graf2d/postscript/src/TPostScript.cxx ---- root-6.10.00.orig/graf2d/postscript/src/TPostScript.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf2d/postscript/src/TPostScript.cxx 2017-06-14 22:22:40.371551468 +0200 +diff -ur root-6.12.04.orig/graf2d/postscript/src/TPostScript.cxx root-6.12.04/graf2d/postscript/src/TPostScript.cxx +--- root-6.12.04.orig/graf2d/postscript/src/TPostScript.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf2d/postscript/src/TPostScript.cxx 2018-01-07 22:17:25.179657982 +0100 @@ -229,6 +229,7 @@ #include <string.h> #include <ctype.h> @@ -1096,20 +1096,20 @@ diff -ur root-6.10.00.orig/graf2d/postscript/src/TPostScript.cxx root-6.10.00/gr { "Root.PSFont.STIXGen", "/STIXGeneral" }, { "Root.PSFont.STIXGenIt", "/STIXGeneral-Italic" }, { "Root.PSFont.STIXGenBd", "/STIXGeneral-Bold" }, -diff -ur root-6.10.00.orig/graf3d/gl/CMakeLists.txt root-6.10.00/graf3d/gl/CMakeLists.txt ---- root-6.10.00.orig/graf3d/gl/CMakeLists.txt 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf3d/gl/CMakeLists.txt 2017-06-14 22:22:40.371551468 +0200 -@@ -39,6 +39,6 @@ - - ROOT_GENERATE_DICTIONARY(G__GL ${headers} MODULE RGL LINKDEF LinkDef.h OPTIONS "-writeEmptyRootPCM") - --ROOT_LINKER_LIBRARY(RGL ${sources} G__GL.cxx LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} DEPENDENCIES Hist Gui Ged) -+ROOT_LINKER_LIBRARY(RGL ${sources} G__GL.cxx LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} fontconfig DEPENDENCIES Hist Gui Ged) - - ROOT_INSTALL_HEADERS(${installoptions}) -diff -ur root-6.10.00.orig/graf3d/gl/Module.mk root-6.10.00/graf3d/gl/Module.mk ---- root-6.10.00.orig/graf3d/gl/Module.mk 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf3d/gl/Module.mk 2017-06-14 22:22:40.371551468 +0200 +diff -ur root-6.12.04.orig/graf3d/gl/CMakeLists.txt root-6.12.04/graf3d/gl/CMakeLists.txt +--- root-6.12.04.orig/graf3d/gl/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf3d/gl/CMakeLists.txt 2018-01-07 22:19:37.820176454 +0100 +@@ -41,6 +41,6 @@ + HEADERS ${headers} + SOURCES ${sources} + DICTIONARY_OPTIONS "-writeEmptyRootPCM" +- LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} ++ LIBRARIES ${gllibs} ${GL2PS_LIBRARIES} GLEW ${FTGL_LIBRARIES} fontconfig + DEPENDENCIES Hist Gui Ged + INSTALL_OPTIONS ${installoptions}) +diff -ur root-6.12.04.orig/graf3d/gl/Module.mk root-6.12.04/graf3d/gl/Module.mk +--- root-6.12.04.orig/graf3d/gl/Module.mk 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf3d/gl/Module.mk 2018-01-07 22:17:25.180657971 +0100 @@ -95,7 +95,7 @@ "$(SOFLAGS)" libRGL.$(SOEXT) $@ "$(GLO) $(GLO1) $(GLDO)" \ "$(GLLIBEXTRA) $(FTGLLIBDIR) $(FTGLLIBS) \ @@ -1119,9 +1119,9 @@ diff -ur root-6.10.00.orig/graf3d/gl/Module.mk root-6.10.00/graf3d/gl/Module.mk
$(call pcmrule,GL) $(noop) -diff -ur root-6.10.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.10.00/graf3d/gl/src/TGLFontManager.cxx ---- root-6.10.00.orig/graf3d/gl/src/TGLFontManager.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf3d/gl/src/TGLFontManager.cxx 2017-06-14 22:22:40.371551468 +0200 +diff -ur root-6.12.04.orig/graf3d/gl/src/TGLFontManager.cxx root-6.12.04/graf3d/gl/src/TGLFontManager.cxx +--- root-6.12.04.orig/graf3d/gl/src/TGLFontManager.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf3d/gl/src/TGLFontManager.cxx 2018-01-07 22:17:25.180657971 +0100 @@ -37,6 +37,7 @@ # include "FTGLBitmapFont.h" #endif @@ -1377,9 +1377,9 @@ diff -ur root-6.10.00.orig/graf3d/gl/src/TGLFontManager.cxx root-6.10.00/graf3d/ fgFontFileArray.Add(new TObjString("STIXGeneral.otf")); // 200 fgFontFileArray.Add(new TObjString("STIXGeneralItalic.otf")); // 210 fgFontFileArray.Add(new TObjString("STIXGeneralBol.otf")); // 220 -diff -ur root-6.10.00.orig/graf3d/gl/src/TGLText.cxx root-6.10.00/graf3d/gl/src/TGLText.cxx ---- root-6.10.00.orig/graf3d/gl/src/TGLText.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/graf3d/gl/src/TGLText.cxx 2017-06-14 22:22:40.372551457 +0200 +diff -ur root-6.12.04.orig/graf3d/gl/src/TGLText.cxx root-6.12.04/graf3d/gl/src/TGLText.cxx +--- root-6.12.04.orig/graf3d/gl/src/TGLText.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/graf3d/gl/src/TGLText.cxx 2018-01-07 22:17:25.181657960 +0100 @@ -34,6 +34,8 @@ # include "FTGLBitmapFont.h" #endif @@ -1514,9 +1514,9 @@ diff -ur root-6.10.00.orig/graf3d/gl/src/TGLText.cxx root-6.10.00/graf3d/gl/src/ Error("SetGLTextFont","Cannot set FTGL::FaceSize"); - delete [] ttfont; } -diff -ur root-6.10.00.orig/gui/gui/src/TGApplication.cxx root-6.10.00/gui/gui/src/TGApplication.cxx ---- root-6.10.00.orig/gui/gui/src/TGApplication.cxx 2017-06-13 09:14:04.000000000 +0200 -+++ root-6.10.00/gui/gui/src/TGApplication.cxx 2017-06-14 22:22:40.372551457 +0200 +diff -ur root-6.12.04.orig/gui/gui/src/TGApplication.cxx root-6.12.04/gui/gui/src/TGApplication.cxx +--- root-6.12.04.orig/gui/gui/src/TGApplication.cxx 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/gui/gui/src/TGApplication.cxx 2018-01-07 22:17:25.181657960 +0100 @@ -83,20 +83,12 @@ gROOT->SetBatch(kFALSE);
diff --git a/root-js-syntax.patch b/root-js-syntax.patch new file mode 100644 index 0000000..1d8a6c8 --- /dev/null +++ b/root-js-syntax.patch @@ -0,0 +1,114 @@ +From 575c6e2851939afc6d80395c5e4cae9d2e10b433 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Tue, 16 Jan 2018 06:40:07 +0100 +Subject: [PATCH 1/3] Quote word default + +--- + etc/notebook/JsMVA/js/DecisionTree.js | 6 +++--- + etc/notebook/JsMVA/js/DecisionTree.min.js | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/etc/notebook/JsMVA/js/DecisionTree.js b/etc/notebook/JsMVA/js/DecisionTree.js +index 5311974202..18eb8eb200 100644 +--- a/etc/notebook/JsMVA/js/DecisionTree.js ++++ b/etc/notebook/JsMVA/js/DecisionTree.js +@@ -54,7 +54,7 @@ + }, + link: { + colors:{ +- default: "#ccc", ++ "default": "#CCC", + focus: "#033A00" + }, + width: "4px", +@@ -235,7 +235,7 @@ + linkSelector.transition().duration(style.aduration) + .attr("d", d3path) + .style("fill", "none") +- .style("stroke", style.link.colors.default) ++ .style("stroke", style.link.colors["default"]) + .style("stroke-width", style.link.width) + .attr("id", function(d){return "link"+d.target.id;}); + +@@ -251,7 +251,7 @@ + var path = function(node, i, clear){ + svg.selectAll("path.link").filter(function(d){return d.target.id==node.id;}) + .style("stroke-width", (clear) ? style.link.width : style.link.focus_width) +- .style("stroke", (clear) ? style.link.colors.default : style.link.colors.focus); ++ .style("stroke", (clear) ? style.link.colors["default"] : style.link.colors.focus); + + svg.selectAll("g.nodes rect").filter(function(d){return d.id==node.id;}) + .style("stroke-width", style.node.swidth) +-- +2.14.3 + +From 21d4b8c311a07fa32dc29e76f2a116e7ed429ec0 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Tue, 16 Jan 2018 06:44:31 +0100 +Subject: [PATCH 2/3] Avoid new syntax for default arguments + +--- + etc/notebook/JsMVA/js/NeuralNetwork.js | 5 ++++- + etc/notebook/JsMVA/js/NeuralNetwork.min.js | 2 +- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/etc/notebook/JsMVA/js/NeuralNetwork.js b/etc/notebook/JsMVA/js/NeuralNetwork.js +index 8e52252be3..25ba32c6ec 100644 +--- a/etc/notebook/JsMVA/js/NeuralNetwork.js ++++ b/etc/notebook/JsMVA/js/NeuralNetwork.js +@@ -506,7 +506,10 @@ + }; + + +- NeuralNetwork.drawDeepNetwork = function (divid, netobj, oldStructure=false) { ++ NeuralNetwork.drawDeepNetwork = function (divid, netobj, oldStructure) { ++ if (oldStructure===undefined) { ++ oldStructure = false; ++ } + var div = d3.select("#"+divid); + canvas = { + width: Number(div.property("style")["width"].replace("px","")), +-- +2.14.3 + +From 501e9d62367de6c1d4e487dd413277e4d74a5ce1 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Tue, 16 Jan 2018 06:48:16 +0100 +Subject: [PATCH 3/3] Adapt to filename change in jsroot + +--- + etc/notebook/JsMVA/js/JsMVA.js | 2 +- + etc/notebook/JsMVA/js/JsMVA.min.js | 2 +- + etc/notebook/JsMVA/js/NetworkDesigner.js | 2 +- + etc/notebook/JsMVA/js/NetworkDesigner.min.js | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/etc/notebook/JsMVA/js/JsMVA.js b/etc/notebook/JsMVA/js/JsMVA.js +index c8e4522e27..9e474d080e 100644 +--- a/etc/notebook/JsMVA/js/JsMVA.js ++++ b/etc/notebook/JsMVA/js/JsMVA.js +@@ -32,7 +32,7 @@ + + require.config({ + paths: { +- 'd3': JSROOT_source_dir+'d3.v3.min', ++ 'd3': JSROOT_source_dir+'d3.min', + 'JsRootCore': JSROOT_source_dir+'JSRootCore.min', + 'nn': url+'NeuralNetwork.min', + 'dtree': url+'DecisionTree.min', +diff --git a/etc/notebook/JsMVA/js/NetworkDesigner.js b/etc/notebook/JsMVA/js/NetworkDesigner.js +index ed771fbf81..a744b2371e 100644 +--- a/etc/notebook/JsMVA/js/NetworkDesigner.js ++++ b/etc/notebook/JsMVA/js/NetworkDesigner.js +@@ -19,7 +19,7 @@ + paths: { + "jquery-connections": baseURL + "jquery.connections.min", + "jquery-timing": baseURL + "jquery-timing.min", +- "d3": "https://root.cern.ch/js/notebook/scripts/d3.v3.min" ++ "d3": "https://root.cern.ch/js/notebook/scripts/d3.min" + }, + shim: { + "jquery-ui": { +-- +2.14.3 + diff --git a/root-jupyroot-static.patch b/root-jupyroot-static.patch new file mode 100644 index 0000000..67c8ff4 --- /dev/null +++ b/root-jupyroot-static.patch @@ -0,0 +1,36 @@ +diff -ur root-6.12.04.orig/bindings/pyroot/JsMVA/JPyInterface.py root-6.12.04/bindings/pyroot/JsMVA/JPyInterface.py +--- root-6.12.04.orig/bindings/pyroot/JsMVA/JPyInterface.py 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/bindings/pyroot/JsMVA/JPyInterface.py 2018-01-08 13:07:08.088711528 +0100 +@@ -188,7 +188,7 @@ + ## Class for creating the output scripts and inserting them to cell output + class JsDraw: + ## Base repository +- __jsMVARepo = "https://root.cern.ch/js/jsmva/latest" ++ __jsMVARepo = "/static/JsMVA" + + ## String containing the link to JavaScript files + __jsMVASourceDir = __jsMVARepo + "/js" +diff -ur root-6.12.04.orig/bindings/pyroot/JupyROOT/utils.py root-6.12.04/bindings/pyroot/JupyROOT/utils.py +--- root-6.12.04.orig/bindings/pyroot/JupyROOT/utils.py 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/bindings/pyroot/JupyROOT/utils.py 2018-01-08 13:13:40.857391851 +0100 +@@ -39,7 +39,7 @@ + _jsNotDrawableClassesPatterns = ["TEve*","TF3","TPolyLine3D"] + + +-_jsROOTSourceDir = "https://root.cern.ch/js/notebook/" ++_jsROOTSourceDir = "/static/jsroot/" + _jsCanvasWidth = 800 + _jsCanvasHeight = 600 + +diff -ur root-6.12.04.orig/etc/notebook/JsMVA/js/JsMVA.js root-6.12.04/etc/notebook/JsMVA/js/JsMVA.js +--- root-6.12.04.orig/etc/notebook/JsMVA/js/JsMVA.js 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/etc/notebook/JsMVA/js/JsMVA.js 2018-01-08 13:20:04.248138322 +0100 +@@ -16,7 +16,7 @@ + + (function(factory){ + +- var JSROOT_source_dir = "https://root.cern.ch/js/notebook/scripts/"; ++ var JSROOT_source_dir = "/static/jsroot/scripts/"; + + var url = ""; + if (requirejs.s.contexts.hasOwnProperty("_")) { diff --git a/root-memory-arm.patch b/root-memory-arm.patch new file mode 100644 index 0000000..b281dea --- /dev/null +++ b/root-memory-arm.patch @@ -0,0 +1,15 @@ +--- root-6.12.04.orig/interpreter/CMakeLists.txt 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/interpreter/CMakeLists.txt 2018-01-11 16:33:13.034850962 +0100 +@@ -75,6 +75,12 @@ + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /ignore:4049,4206,4217,4221") + endif() + ++# Reduce memory usage during linking on ARM by generating minimal debuginfo ++if(ROOT_CLING_TARGET STREQUAL "ARM") ++ string(REPLACE " -g " " -g1 " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++ string(REPLACE " -g " " -g1 " CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS}") ++endif() ++ + set(LLVM_TARGETS_TO_BUILD ${ROOT_CLING_TARGET} CACHE STRING "Semicolon-separated list of targets to build, or "all".") + + if(clingtest) diff --git a/root-memory-usage.patch b/root-memory-usage.patch new file mode 100644 index 0000000..777603c --- /dev/null +++ b/root-memory-usage.patch @@ -0,0 +1,59 @@ +From 3617dd1d911bb5e8fa17a6139dbb887c44dae0fe Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Tue, 16 Jan 2018 10:25:50 +0100 +Subject: [PATCH] Reduce the needed memory for compilation + +The linking of rootcling_stage1 and libCling requires a lot of memory. +Since these are linked from mostly the same objects, the build is ready +to link them at the same time. If you make a parallel build this means +that the two targets that require the most amount of memory are being +linked in parallel. This exhausts the available memory, and the +computer starts swapping. + +This adds a dependency of one of the targets to the other. The dependency is +not really there since it is not needed for building, but it prevents the +two memory consuming targets to be built in parallel. + +A similar dependency existed before the code latest code changes +(see commit 2638f6fc7f54b0995f2f9d60363daaf8aae2386e), then between +rootcling and libCling. +--- + core/metacling/Module.mk | 6 +++++- + core/metacling/src/CMakeLists.txt | 4 ++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/core/metacling/Module.mk b/core/metacling/Module.mk +index 4788eca393..7f520e41b6 100644 +--- a/core/metacling/Module.mk ++++ b/core/metacling/Module.mk +@@ -46,7 +46,11 @@ endif + CLINGLIB := $(LPATH)/libCling.$(SOEXT) + CLINGMAP := $(CLINGLIB:.$(SOEXT)=.rootmap) + +-$(CLINGLIB): $(CLINGUTILSO) $(DICTGENO) $(METACLINGO) $(CLINGO) ++# The dependency on $(ROOTCLING1EXE) was added to prevent $(CLINGLIB) and ++# $(ROOTCLING1EXE) from being linked in parallel. ++# This avoids doing two memory consuming operations in parallel. ++$(CLINGLIB): $(CLINGUTILSO) $(DICTGENO) $(METACLINGO) $(CLINGO) \ ++ $(ROOTCLING1EXE) + @$(MAKELIB) $(PLATFORM) $(LD) "$(LDFLAGS) $(LIBCLINGLDFLAGS)" \ + "$(SOFLAGS)" libCling.$(SOEXT) $@ \ + "$(CLINGUTILSO) $(DICTGENO) $(METACLINGO) $(CLINGO) \ +diff --git a/core/metacling/src/CMakeLists.txt b/core/metacling/src/CMakeLists.txt +index e820d144eb..3a1f1ca446 100644 +--- a/core/metacling/src/CMakeLists.txt ++++ b/core/metacling/src/CMakeLists.txt +@@ -37,6 +37,10 @@ ROOT_LINKER_LIBRARY(Cling + $<TARGET_OBJECTS:Dictgen> + $<TARGET_OBJECTS:MetaCling> + LIBRARIES ${CLING_LIBRARIES}) ++# The dependency on rootcling_stage1 was added to prevent Cling (libCling) and ++# rootcling_stage1 from being linked in parallel. ++# This avoids doing two memory consuming operations in parallel. ++add_dependencies(Cling rootcling_stage1) + + if(MSVC) + set_target_properties(Cling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) +-- +2.14.3 + diff --git a/root-mysql-config.patch b/root-mysql-config.patch deleted file mode 100644 index 58db421..0000000 --- a/root-mysql-config.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 6991169440211dd29c4608541b8740337c1891fa Mon Sep 17 00:00:00 2001 -From: Mattias Ellert mattias.ellert@physics.uu.se -Date: Wed, 27 Sep 2017 21:06:41 +0200 -Subject: [PATCH] Fix for new mysql_config - ---- - cmake/modules/FindMySQL.cmake | 9 +++------ - configure | 4 +++- - 2 files changed, 6 insertions(+), 7 deletions(-) - -diff --git a/cmake/modules/FindMySQL.cmake b/cmake/modules/FindMySQL.cmake -index 123505a393..c818f5a1ab 100644 ---- a/cmake/modules/FindMySQL.cmake -+++ b/cmake/modules/FindMySQL.cmake -@@ -20,12 +20,9 @@ endif() - if(MYSQL_CONFIG_EXECUTABLE) - execute_process(COMMAND ${MYSQL_CONFIG_EXECUTABLE} --cflags OUTPUT_VARIABLE MYSQL_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE) - separate_arguments(MYSQL_CFLAGS) -- string( REGEX MATCH "-I[^;]+" MYSQL_INCLUDE_DIR "${MYSQL_CFLAGS}" ) -- string( REPLACE "-I" "" MYSQL_INCLUDE_DIR "${MYSQL_INCLUDE_DIR}") -- if(NOT EXISTS ${MYSQL_INCLUDE_DIR}) -- set(MYSQL_INCLUDE_DIR MYSQL_INCLUDE_DIR-NOTFOUND) -- endif() -- string( REGEX REPLACE "-I[^;]+;" "" MYSQL_CFLAGS "${MYSQL_CFLAGS}" ) -+ string( REGEX MATCHALL "-I[^;]+" MYSQL_INCLUDE_DIRS "${MYSQL_CFLAGS}" ) -+ string( REPLACE "-I" "" MYSQL_INCLUDE_DIRS "${MYSQL_INCLUDE_DIRS}") -+ find_path(MYSQL_INCLUDE_DIR mysql.h PATHS ${MYSQL_INCLUDE_DIRS} NO_DEFAULT_PATH) - execute_process(COMMAND ${MYSQL_CONFIG_EXECUTABLE} --libs OUTPUT_VARIABLE MYSQL_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE) - else() - find_path(MYSQL_INCLUDE_DIR mysql.h -diff --git a/configure b/configure -index 26fe09ab31..6bdf5b29c4 100755 ---- a/configure -+++ b/configure -@@ -3738,9 +3738,11 @@ if test ! "x$enable_mysql" = "xno"; then - else - result "ok" - mysqllib=`$mysql_config --libs | sed -e s/'//g` -- mysqlincdir=`$mysql_config --cflags | sed -e 's,^.*-I([^ ]*).*$,\1,' -e s/'//g` - mysqllibdir="" -+ mysqlincdir=`$mysql_config --cflags | sed -e s/'//g | tr ' ' '\n' | grep ^-I | sed -e 's,^-I,,' | tr '\n' ' '` - check_header "mysql.h" "" $mysqlincdir -+ mysqlinc=$found_hdr -+ mysqlincdir=$found_dir - if test "x$found_hdr" = "x"; then - enable_mysql="no" - fi --- -2.13.5 - diff --git a/root-mysql-workaround.patch b/root-mysql-workaround.patch deleted file mode 100644 index ad7773d..0000000 --- a/root-mysql-workaround.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 511ae175e21c6b5fa32201de23b379f80ed37981 Mon Sep 17 00:00:00 2001 -From: Guilherme Amadio amadio@cern.ch -Date: Tue, 5 Sep 2017 14:57:40 +0200 -Subject: [PATCH] Do not include internal MySQL header - -This breaks the build with -Dmysql=ON since the internal header will -not be found. ---- - sql/mysql/src/TMySQLServer.cxx | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/sql/mysql/src/TMySQLServer.cxx b/sql/mysql/src/TMySQLServer.cxx -index ee9d912e0f..40eebf55e9 100644 ---- a/sql/mysql/src/TMySQLServer.cxx -+++ b/sql/mysql/src/TMySQLServer.cxx -@@ -52,9 +52,6 @@ - #include "TObjString.h" - #include "TObjArray.h" - --#include <my_global.h> -- -- - ClassImp(TMySQLServer) - - //////////////////////////////////////////////////////////////////////////////// --- -2.13.5 - diff --git a/root-ppc64-doc.patch b/root-ppc64-doc.patch new file mode 100644 index 0000000..6ab5ab1 --- /dev/null +++ b/root-ppc64-doc.patch @@ -0,0 +1,24 @@ +diff -ur root-6.12.04.orig/tutorials/roostats/rs102_hypotestwithshapes.C root-6.12.04/tutorials/roostats/rs102_hypotestwithshapes.C +--- root-6.12.04.orig/tutorials/roostats/rs102_hypotestwithshapes.C 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/tutorials/roostats/rs102_hypotestwithshapes.C 2018-01-15 21:30:10.608693441 +0100 +@@ -13,8 +13,6 @@ + /// In this example, shape uncertainties are not taken into account, but + /// normalization uncertainties are. + /// +-/// \macro_image +-/// \macro_output + /// \macro_code + /// + /// \author Kyle Cranmer +diff -ur root-6.12.04.orig/tutorials/roostats/rs701_BayesianCalculator.C root-6.12.04/tutorials/roostats/rs701_BayesianCalculator.C +--- root-6.12.04.orig/tutorials/roostats/rs701_BayesianCalculator.C 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/tutorials/roostats/rs701_BayesianCalculator.C 2018-01-15 21:30:39.405371047 +0100 +@@ -5,8 +5,6 @@ + /// + /// This tutorial shows an example of using the BayesianCalculator class + /// +-/// \macro_image +-/// \macro_output + /// \macro_code + /// + /// \author Gregory Schott diff --git a/root-rootcling-tmpfile.patch b/root-rootcling-tmpfile.patch deleted file mode 100644 index c0c21cc..0000000 --- a/root-rootcling-tmpfile.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b74835ec7ca9e42c160702f9690cdf2ee43b55dd Mon Sep 17 00:00:00 2001 -From: Raphael Isemann teemperor@gmail.com -Date: Tue, 11 Jul 2017 08:10:51 +0200 -Subject: [PATCH] Use pid in temp. file names to mitigate race conditions. - -In case CMake spawns multiple instances of a rootcling invocation -(which can happen as CMake doesn't have a good mechanism for ensuring -that we only spawn one when using the make build system), we now -choose process-unique file names for the temporaries to prevent the -build errors when multiple rootcling invocations try to work -on the same temporary file. - -This isn't a real fix, but as renaming files from temporary to the -real name is usually FS atomic, this will mitigate any future race -conditions we have in this problematic part of the building process -on obscure build systems. Those systems possible don't strictly follow the -order in which they are supposed to build those targets, so this hopefully -makes the consequences of any race conditions less intrusive (e.g. Visual -Studio also seems to suffer from this problem according to the mailing -list). ---- - core/dictgen/src/rootcling_impl.cxx | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/core/dictgen/src/rootcling_impl.cxx b/core/dictgen/src/rootcling_impl.cxx -index bcfaa50631..01f0ff7128 100644 ---- a/core/dictgen/src/rootcling_impl.cxx -+++ b/core/dictgen/src/rootcling_impl.cxx -@@ -3218,7 +3218,7 @@ public: - tempFileNamesCatalog(): m_size(0), m_emptyString("") {}; - - std::string getTmpFileName(const std::string &filename) { -- return filename + "_tmp"; -+ return filename + "_tmp_" + std::to_string(getpid()); - } - ///////////////////////////////////////////////////////////////////////////// - /// Adds the name and the associated temp name to the catalog. --- -2.13.0 - diff --git a/root-stressgraphics.patch b/root-stressgraphics.patch deleted file mode 100644 index a36fead..0000000 --- a/root-stressgraphics.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/test/stressGraphics.ref b/test/stressGraphics.ref -index 0dbfe8c..4341c21 100644 ---- a/test/stressGraphics.ref -+++ b/test/stressGraphics.ref -@@ -8,7 +8,7 @@ Test# PS1Ref# PS1Err# PDFRef# PDFErr# GIFRef# GIFErr# JPGRef# JP - 7 4980 50 13821 50 8215 310 16143 1300 12230 500 5011 70 - 8 5442 80 13415 50 9599 150 18430 700 12398 300 5469 80 - 9 9253 100 14310 50 9664 600 19851 2400 12199 900 9449 100 -- 10 8863 70 13539 100 14622 1100 24343 1100 23278 1700 8894 70 -+ 10 8863 70 13539 100 14622 1200 24343 1100 23278 1700 8894 70 - 11 12971 100 14377 50 20508 1300 34063 2000 32033 1200 12864 150 - 12 7674 100 13482 50 27519 2500 83557 3000 38505 4000 7720 150 - 13 5600 400 13242 300 9805 400 16881 400 15063 800 5638 400 diff --git a/root-system-pythia.patch b/root-system-pythia.patch new file mode 100644 index 0000000..60e1382 --- /dev/null +++ b/root-system-pythia.patch @@ -0,0 +1,42 @@ +diff -ur root-6.12.04.orig/tutorials/pythia/pythia8.C root-6.12.04/tutorials/pythia/pythia8.C +--- root-6.12.04.orig/tutorials/pythia/pythia8.C 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/tutorials/pythia/pythia8.C 2018-01-10 07:01:23.215029332 +0100 +@@ -8,11 +8,6 @@ + /// root > .x pythia8.C + /// ~~~ + /// +-/// Note that before executing this script, +-/// +-/// - the env variable PYTHIA8 must point to the pythia8100 (or newer) directory +-/// - the env variable PYTHIA8DATA must be defined and it must point to $PYTHIA8/xmldoc +-/// + /// \macro_code + /// + /// \author Andreas Morsch +@@ -27,26 +22,6 @@ + + void pythia8(Int_t nev = 100, Int_t ndeb = 1) + { +- const char *p8dataenv = gSystem->Getenv("PYTHIA8DATA"); +- if (!p8dataenv) { +- const char *p8env = gSystem->Getenv("PYTHIA8"); +- if (!p8env) { +- Error("pythia8.C", +- "Environment variable PYTHIA8 must contain path to pythia directory!"); +- return; +- } +- TString p8d = p8env; +- p8d += "/xmldoc"; +- gSystem->Setenv("PYTHIA8DATA", p8d); +- } +- +- const char* path = gSystem->ExpandPathName("$PYTHIA8DATA"); +- if (gSystem->AccessPathName(path)) { +- Error("pythia8.C", +- "Environment variable PYTHIA8DATA must contain path to $PYTHIA8/xmldoc directory !"); +- return; +- } +- + // Load libraries + gSystem->Load("libEG"); + gSystem->Load("libEGPythia8"); diff --git a/root-test-subdirs.patch b/root-test-subdirs.patch new file mode 100644 index 0000000..af59a8b --- /dev/null +++ b/root-test-subdirs.patch @@ -0,0 +1,244 @@ +From eb7d389e582fd11cf00879a3daf161fa7e1b0f40 Mon Sep 17 00:00:00 2001 +From: Mattias Ellert mattias.ellert@physics.uu.se +Date: Tue, 16 Jan 2018 06:11:30 +0100 +Subject: [PATCH] Always use ROOT_ADD_TEST_SUBDIRECTORY when adding test + directories + +--- + cmake/modules/RootNewMacros.cmake | 1 - + core/base/CMakeLists.txt | 4 +--- + core/cont/CMakeLists.txt | 4 +--- + core/foundation/CMakeLists.txt | 5 +---- + core/imt/CMakeLists.txt | 4 ++-- + core/meta/CMakeLists.txt | 4 +--- + core/metacling/CMakeLists.txt | 4 +--- + core/thread/CMakeLists.txt | 4 +--- + graf2d/gpad/CMakeLists.txt | 8 +++----- + hist/hist/CMakeLists.txt | 6 ++---- + hist/histdraw/CMakeLists.txt | 4 +--- + io/io/CMakeLists.txt | 4 +--- + tmva/CMakeLists.txt | 3 --- + tmva/tmva/test/CMakeLists.txt | 9 --------- + tree/tree/CMakeLists.txt | 4 +--- + tree/treeplayer/CMakeLists.txt | 4 +--- + 16 files changed, 17 insertions(+), 55 deletions(-) + delete mode 100644 tmva/tmva/test/CMakeLists.txt + +diff --git a/cmake/modules/RootNewMacros.cmake b/cmake/modules/RootNewMacros.cmake +index 340d5c9951..77b784e4ea 100644 +--- a/cmake/modules/RootNewMacros.cmake ++++ b/cmake/modules/RootNewMacros.cmake +@@ -1304,7 +1304,6 @@ function(ROOT_ADD_GTEST test_suite) + # against. For example, tests in Core should link only against libCore. This could be tricky + # to implement because some ROOT components create more than one library. + ROOT_EXECUTABLE(${test_suite} ${source_files} LIBRARIES ${ARG_LIBRARIES}) +- set_property(TARGET ${test_suite} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + target_link_libraries(${test_suite} gtest gtest_main gmock gmock_main) + + ROOT_PATH_TO_STRING(mangled_name ${test_suite} PATH_SEPARATOR_REPLACEMENT "-") +diff --git a/core/base/CMakeLists.txt b/core/base/CMakeLists.txt +index f3738e76a8..0fabc03e4e 100644 +--- a/core/base/CMakeLists.txt ++++ b/core/base/CMakeLists.txt +@@ -2,9 +2,7 @@ + # CMakeLists.txt file for building ROOT core/base package + ############################################################################ + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/res ${CMAKE_CURRENT_SOURCE_DIR}/../foundation/res) + +diff --git a/core/cont/CMakeLists.txt b/core/cont/CMakeLists.txt +index 2d5363d3d8..bb5a82e133 100644 +--- a/core/cont/CMakeLists.txt ++++ b/core/cont/CMakeLists.txt +@@ -2,9 +2,7 @@ + # CMakeLists.txt file for building ROOT core/cont package + ############################################################################ + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) + + include_directories(${CMAKE_CURRENT_SOURCE_DIR}/res ${CMAKE_CURRENT_SOURCE_DIR}/../foundation/res) + +diff --git a/core/foundation/CMakeLists.txt b/core/foundation/CMakeLists.txt +index 9cc29d871e..af594ba98f 100644 +--- a/core/foundation/CMakeLists.txt ++++ b/core/foundation/CMakeLists.txt +@@ -21,7 +21,4 @@ set_target_properties(Foundation_Stage1 PROPERTIES COMPILE_FLAGS "${COMPILE_FLAG + + ROOT_INSTALL_HEADERS() + +-if(testing) +- add_subdirectory(test) +-endif() +- ++ROOT_ADD_TEST_SUBDIRECTORY(test) +diff --git a/core/imt/CMakeLists.txt b/core/imt/CMakeLists.txt +index 6ef45c7fc2..4b86f58ee2 100644 +--- a/core/imt/CMakeLists.txt ++++ b/core/imt/CMakeLists.txt +@@ -21,6 +21,6 @@ ROOT_LINKER_LIBRARY(Imt ${sources} + + ROOT_INSTALL_HEADERS(${installoptions}) + +-if(imt AND testing) +- add_subdirectory(test) ++if(imt) ++ ROOT_ADD_TEST_SUBDIRECTORY(test) + endif() +diff --git a/core/meta/CMakeLists.txt b/core/meta/CMakeLists.txt +index df84a83948..4843b06cf0 100644 +--- a/core/meta/CMakeLists.txt ++++ b/core/meta/CMakeLists.txt +@@ -12,6 +12,4 @@ ROOT_OBJECT_LIBRARY(Meta ${sources}) + + ROOT_INSTALL_HEADERS() + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) +diff --git a/core/metacling/CMakeLists.txt b/core/metacling/CMakeLists.txt +index 0fec8de3e8..5468064771 100644 +--- a/core/metacling/CMakeLists.txt ++++ b/core/metacling/CMakeLists.txt +@@ -4,6 +4,4 @@ + + add_subdirectory(src) + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) +diff --git a/core/thread/CMakeLists.txt b/core/thread/CMakeLists.txt +index 0ec5857e50..2149ff5d47 100644 +--- a/core/thread/CMakeLists.txt ++++ b/core/thread/CMakeLists.txt +@@ -36,6 +36,4 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Thread + LIBRARIES ${CMAKE_THREAD_LIBS_INIT} + INSTALL_OPTIONS ${installoptions}) + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) +diff --git a/graf2d/gpad/CMakeLists.txt b/graf2d/gpad/CMakeLists.txt +index 51da1c2320..06e508981f 100644 +--- a/graf2d/gpad/CMakeLists.txt ++++ b/graf2d/gpad/CMakeLists.txt +@@ -14,8 +14,6 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Gpad + DICTIONARY_OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES Graf Hist) + +-if(testing) +- if(root7) +- add_subdirectory(v7/test) +- endif() +-endif() +\ No newline at end of file ++if(root7) ++ ROOT_ADD_TEST_SUBDIRECTORY(v7/test) ++endif() +diff --git a/hist/hist/CMakeLists.txt b/hist/hist/CMakeLists.txt +index 88396c4924..3ac1898ccd 100644 +--- a/hist/hist/CMakeLists.txt ++++ b/hist/hist/CMakeLists.txt +@@ -15,10 +15,8 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Hist + DICTIONARY_OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES Matrix MathCore RIO) + +-if(testing) +- add_subdirectory(test) ++ROOT_ADD_TEST_SUBDIRECTORY(test) + + if(root7) +- add_subdirectory(v7/test) +- endif() ++ ROOT_ADD_TEST_SUBDIRECTORY(v7/test) + endif() +diff --git a/hist/histdraw/CMakeLists.txt b/hist/histdraw/CMakeLists.txt +index 51721f2d0e..9f3232ae5f 100644 +--- a/hist/histdraw/CMakeLists.txt ++++ b/hist/histdraw/CMakeLists.txt +@@ -12,7 +12,5 @@ if(root7) + DICTIONARY_OPTIONS "-writeEmptyRootPCM" + DEPENDENCIES Gpad Hist) + +- if(testing) +- add_subdirectory(v7/test) +- endif() ++ ROOT_ADD_TEST_SUBDIRECTORY(v7/test) + endif() +diff --git a/io/io/CMakeLists.txt b/io/io/CMakeLists.txt +index 7ca1104287..78e94786da 100644 +--- a/io/io/CMakeLists.txt ++++ b/io/io/CMakeLists.txt +@@ -18,8 +18,6 @@ ROOT_LINKER_LIBRARY(${libname} $<TARGET_OBJECTS:RIOObjs> $<TARGET_OBJECTS:RootPc + DEPENDENCIES Core Thread) + ROOT_INSTALL_HEADERS() + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) + + #--- Extra rules ---------------------------------------------------------- +diff --git a/tmva/CMakeLists.txt b/tmva/CMakeLists.txt +index 5648511bfe..d29bfb5061 100644 +--- a/tmva/CMakeLists.txt ++++ b/tmva/CMakeLists.txt +@@ -8,6 +8,3 @@ endif() + if(r) + add_subdirectory(rmva) + endif() +-#if(testing) +-# add_subdirectory(test) +-#endif() +diff --git a/tmva/tmva/test/CMakeLists.txt b/tmva/tmva/test/CMakeLists.txt +deleted file mode 100644 +index fc2a3e633d..0000000000 +--- a/tmva/tmva/test/CMakeLists.txt ++++ /dev/null +@@ -1,9 +0,0 @@ +-############################################################################ +-# CMakeLists.txt file for building ROOT TMVA tests. +-# @author Simon Pfreundschuh +-############################################################################ +- +-project(tmva-tests) +-find_package(ROOT REQUIRED) +- +-ROOT_ADD_TEST_SUBDIRECTORY(DNN) +diff --git a/tree/tree/CMakeLists.txt b/tree/tree/CMakeLists.txt +index e60675553f..82626b1c04 100644 +--- a/tree/tree/CMakeLists.txt ++++ b/tree/tree/CMakeLists.txt +@@ -8,6 +8,4 @@ ROOT_STANDARD_LIBRARY_PACKAGE(Tree + LIBRARIES ${TBB_LIBRARIES} + DEPENDENCIES Net RIO Thread Imt) + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) +diff --git a/tree/treeplayer/CMakeLists.txt b/tree/treeplayer/CMakeLists.txt +index 688a08fd03..a72a02e18a 100644 +--- a/tree/treeplayer/CMakeLists.txt ++++ b/tree/treeplayer/CMakeLists.txt +@@ -45,6 +45,4 @@ if(APPLE) + endif() + endif() + +-if(testing) +- add_subdirectory(test) +-endif() ++ROOT_ADD_TEST_SUBDIRECTORY(test) +-- +2.14.3 + diff --git a/root-testfiles.sh b/root-testfiles.sh index f84635f..ec56fc1 100755 --- a/root-testfiles.sh +++ b/root-testfiles.sh @@ -7,9 +7,9 @@ pushd files
wget -N ${SITE}/aleph_ref_5.root wget -N ${SITE}/aleph.root -wget -N ${SITE}/alice3_ref_5.root +wget -N ${SITE}/alice3_ref_6.root wget -N ${SITE}/alice3.root -wget -N ${SITE}/ams_ref_3.root +wget -N ${SITE}/ams_ref_4.root wget -N ${SITE}/ams.root wget -N ${SITE}/atlas_ref_5.root wget -N ${SITE}/atlas.root @@ -25,7 +25,7 @@ wget -N ${SITE}/brahms_ref_3.root wget -N ${SITE}/brahms.root wget -N ${SITE}/btev_ref_3.root wget -N ${SITE}/btev.root -wget -N ${SITE}/cdf_ref_5.root +wget -N ${SITE}/cdf_ref_6.root wget -N ${SITE}/cdf.root wget -N ${SITE}/chambers_ref_3.root wget -N ${SITE}/chambers.root @@ -39,7 +39,7 @@ wget -N ${SITE}/felix_ref_3.root wget -N ${SITE}/felix.root wget -N ${SITE}/ganil_ref_3.root wget -N ${SITE}/ganil.root -wget -N ${SITE}/gem_ref_4.root +wget -N ${SITE}/gem_ref_5.root wget -N ${SITE}/gem.root wget -N ${SITE}/hades2_ref_4.root wget -N ${SITE}/hades2.root @@ -81,6 +81,11 @@ wget -N ${SITE}/usa.root
for f in *.root ; do ln -s $f $f.ROOT.cachefile ; done
+mkdir tutorials +pushd tutorials +wget -N ${SITE}/tutorials/tdf014_CsvDataSource_MuRun2010B.csv +popd + popd
tar -J -c --group root --owner root -f root-testfiles.tar.xz files diff --git a/root-unbundle-gtest.patch b/root-unbundle-gtest.patch index c40ce0a..f3b343d 100644 --- a/root-unbundle-gtest.patch +++ b/root-unbundle-gtest.patch @@ -1,23 +1,32 @@ -diff -ur root-6.10.08.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.10.08/cmake/modules/SearchInstalledSoftware.cmake ---- root-6.10.08.orig/cmake/modules/SearchInstalledSoftware.cmake 2017-10-16 18:28:58.000000000 +0200 -+++ root-6.10.08/cmake/modules/SearchInstalledSoftware.cmake 2017-10-19 21:18:23.053801458 +0200 -@@ -1511,74 +1511,19 @@ +diff -ur root-6.12.04.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.12.04/cmake/modules/SearchInstalledSoftware.cmake +--- root-6.12.04.orig/cmake/modules/SearchInstalledSoftware.cmake 2017-12-13 08:27:42.000000000 +0100 ++++ root-6.12.04/cmake/modules/SearchInstalledSoftware.cmake 2018-01-07 22:45:45.537658993 +0100 +@@ -1580,71 +1580,18 @@
#---Download googletest-------------------------------------------------------------- if (testing) - # FIXME: Remove our version of gtest in roottest. We can reuse this one. -- # Add gtest +- # Add googletest - # http://stackoverflow.com/questions/9689183/cmake-googletest -- -- set(_byproduct_binary_dir ++ # Workaround for missing libraries in Fedora's gmock packaging < 1.8.0 ++ if(EXISTS ${CMAKE_SOURCE_DIR}/googlemock) ++ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock) + +- set(_gtest_byproduct_binary_dir - ${CMAKE_CURRENT_BINARY_DIR}/googletest-prefix/src/googletest-build/googlemock/) -- set(_byproducts -- ${_byproduct_binary_dir}/gtest/libgtest.a -- ${_byproduct_binary_dir}/gtest/libgtest_main.a -- ${_byproduct_binary_dir}/libgmock.a -- ${_byproduct_binary_dir}/libgmock_main.a +- set(_gtest_byproducts +- ${_gtest_byproduct_binary_dir}/gtest/libgtest.a +- ${_gtest_byproduct_binary_dir}/gtest/libgtest_main.a +- ${_gtest_byproduct_binary_dir}/libgmock.a +- ${_gtest_byproduct_binary_dir}/libgmock_main.a - ) - +- if(MSVC) +- set(EXTRA_GTEST_OPTS +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=\"\" +- -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=\"\") +- endif() +- - ExternalProject_Add( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git @@ -36,9 +45,10 @@ diff -ur root-6.10.08.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.10 - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS} - -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} +- ${EXTRA_GTEST_OPTS} - # Disable install step - INSTALL_COMMAND "" -- BUILD_BYPRODUCTS ${_byproducts} +- BUILD_BYPRODUCTS ${_gtest_byproducts} - # Wrap download, configure and build steps in a script to log output - LOG_DOWNLOAD ON - LOG_CONFIGURE ON @@ -53,28 +63,17 @@ diff -ur root-6.10.08.orig/cmake/modules/SearchInstalledSoftware.cmake root-6.10 - ExternalProject_Get_Property(googletest binary_dir) - set(_G_LIBRARY_PATH ${binary_dir}/googlemock/) - -- # gtest -- add_library(gtest IMPORTED STATIC GLOBAL) -- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/libgtest.a) -- add_dependencies(gtest googletest) -- -- # gtest_main -- add_library(gtest_main IMPORTED STATIC GLOBAL) -- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/libgtest_main.a) -- add_dependencies(gtest_main googletest) -+ # Workaround for missing libraries in Fedora's gmock packaging < 1.8.0 -+ if(EXISTS ${CMAKE_SOURCE_DIR}/googlemock) -+ set(_G_LIBRARY_PATH ${CMAKE_SOURCE_DIR}/googlemock) - - # gmock - add_library(gmock IMPORTED STATIC GLOBAL) - set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/libgmock.a) -- add_dependencies(gmock googletest) - - # gmock_main - add_library(gmock_main IMPORTED STATIC GLOBAL) - set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/libgmock_main.a) -- add_dependencies(gmock_main googletest) +- # Register gtest, gtest_main, gmock, gmock_main +- foreach (lib gtest gtest_main gmock gmock_main) ++ # Register gmock, gmock_main ++ foreach (lib gmock gmock_main) + add_library(${lib} IMPORTED STATIC GLOBAL) +- add_dependencies(${lib} googletest) + endforeach() +- set_property(TARGET gtest PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}) +- set_property(TARGET gtest_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/gtest/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}) + set_property(TARGET gmock PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}) + set_property(TARGET gmock_main PROPERTY IMPORTED_LOCATION ${_G_LIBRARY_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX})
+ endif() endif() diff --git a/root-urw-otf-hack.patch b/root-urw-otf-hack.patch new file mode 100644 index 0000000..f13a881 --- /dev/null +++ b/root-urw-otf-hack.patch @@ -0,0 +1,15 @@ +diff -ur root-6.12.04.orig/graf2d/graf/src/TTF.cxx root-6.12.04/graf2d/graf/src/TTF.cxx +--- root-6.12.04.orig/graf2d/graf/src/TTF.cxx 2018-01-15 10:57:07.314073647 +0100 ++++ root-6.12.04/graf2d/graf/src/TTF.cxx 2018-01-15 11:02:00.210880469 +0100 +@@ -126,6 +126,11 @@ + (platform == 1 && encoding == 0 && + (fgFontID[fgCurFontIdx] == 12 || + fgFontID[fgCurFontIdx] == 14 || ++ fgFontID[fgCurFontIdx] == 15)) || ++ // Horrible hack for broken charmaps in StandardSymbolsPS.otf ++ // Hopefully temporary... ++ (platform == 0 && encoding == 3 && ++ (fgFontID[fgCurFontIdx] == 12 || + fgFontID[fgCurFontIdx] == 15))) + { + fgCharMap[fgCurFontIdx] = charmap; diff --git a/root.spec b/root.spec index 3bb58da..b784230 100644 --- a/root.spec +++ b/root.spec @@ -15,6 +15,14 @@ %global hadoop 0 %endif
+%if %{?fedora}%{!?fedora:0} >= 24 || %{?rhel}%{!?rhel:0} >= 8 +# Building the experimental ROOT 7 classes requires c++-14. +# This is the default for gcc 6.1 and later. +%global root7 1 +%else +%global root7 0 +%endif + # Do not create .orig files when patching source %global _default_patch_flags --no-backup-if-mismatch
@@ -23,7 +31,7 @@ %global __provides_exclude_from ^(%{python2_sitearch}|%{python3_sitearch})/libJupyROOT\.so$
Name: root -Version: 6.10.08 +Version: 6.12.04 %global libversion %(cut -d. -f 1-2 <<< %{version}) Release: 1%{?dist} Summary: Numerical data analysis framework @@ -53,33 +61,45 @@ Patch2: %{name}-doc-no-notebooks.patch Patch3: %{name}-avoid-gui-crash.patch # Unbundle gtest Patch4: %{name}-unbundle-gtest.patch -# Fix stressGraphics.ref -# https://github.com/root-project/root/pull/659 -Patch5: %{name}-stressgraphics.patch -# Avoid build failures due to temporary file name clashes -# Backported from upstream git (master) -Patch6: %{name}-rootcling-tmpfile.patch -# Do not include internal MySQL header -# Backported from upstream git (master) -Patch7: %{name}-mysql-workaround.patch -# Adapt to new mysql_config version -# https://github.com/root-project/root/pull/1067 -Patch8: %{name}-mysql-config.patch -# Address some warnings during documentation generation -# https://github.com/root-project/root/pull/1212 -Patch9: %{name}-dox-filter.patch - -# s390 is not supported by cling: "error: unknown target -# triple 's390-ibm-linux', please use -triple or -arch" -ExcludeArch: s390 +# Horrible hack for broken charmaps in StandardSymbolsPS.otf +# Hopefully temporary... +# https://bugzilla.redhat.com/show_bug.cgi?id=1534206 +Patch5: %{name}-urw-otf-hack.patch +# Use local static script and style files for JupyROOT +Patch6: %{name}-jupyroot-static.patch +# Fix some javascript syntax choking yuicompressor +# Adapt d3 path to updated jsroot +# https://github.com/root-project/root/pull/1520 +Patch7: %{name}-js-syntax.patch +# Fix missing -f flag to rm in Makefile +# Backport from upstream git +Patch8: %{name}-doxygen-makefile.patch +# Always use ROOT_ADD_TEST_SUBDIRECTORY when adding test dirs +# https://github.com/root-project/root/pull/1515 +Patch9: %{name}-test-subdirs.patch +# No need to use environment variables for system pythia +Patch10: %{name}-system-pythia.patch +# Reduce memory usage of build +# https://github.com/root-project/root/pull/1516 +Patch11: %{name}-memory-usage.patch +# Fedora's llvm patch +Patch12: %{name}-PowerPC-Don-t-use-xscvdpspn-on-the-P7.patch +# Reduce memory usage during linking on ARM by generating +# smaller debuginfo for the llmv libraries. +# Fedora builders run out of memory with the default setting. +Patch13: %{name}-memory-arm.patch +# Don't run tutorials that crash on ppc64 during doc generation. +# Ensures content of doc package is the same on all architecture +# so that koji accepts it as a noarch package. +Patch14: %{name}-ppc64-doc.patch +# Fix constructing the GSL MC Integrator +# Backport from upstream git +Patch15: %{name}-Fix-constructing-the-GSL-MC-Integrator.patch + # s390x suffers from endian issues resulting in failing tests # and broken documentation generation # https://sft.its.cern.ch/jira/browse/ROOT-8703 ExcludeArch: s390x -# ppc/ppc64/ppc64le does not yet work -# https://sft.its.cern.ch/jira/browse/ROOT-6434 -# https://sft.its.cern.ch/jira/browse/ROOT-7314 -ExcludeArch: ppc %{power64}
%if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 BuildRequires: cmake >= 3.4.3 @@ -125,11 +145,9 @@ BuildRequires: postgresql-devel BuildRequires: python-devel %if %{?fedora}%{!?fedora:0} >= 15 BuildRequires: python3-devel -%global python3pkg python3 %endif %if %{?rhel}%{!?rhel:0} == 7 BuildRequires: python34-devel -%global python3pkg python34 %endif BuildRequires: qt4-devel %if %{ruby} @@ -177,6 +195,7 @@ BuildRequires: blas-devel BuildRequires: numpy BuildRequires: doxygen BuildRequires: graphviz +BuildRequires: yuicompressor BuildRequires: perl-generators BuildRequires: systemd-units BuildRequires: gtest-devel @@ -197,6 +216,10 @@ BuildRequires: font(droidsansfallback) BuildRequires: gdb Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} +Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: hicolor-icon-theme Requires: emacs-filesystem >= %{_emacs_version} Provides: emacs-%{name} = %{version}-%{release} @@ -401,18 +424,18 @@ Requires: %{name}-tree%{?_isa} = %{version}-%{release} This package contains the Python extension for ROOT. This package provide a Python interface to ROOT, and a ROOT interface to Python.
-%package -n %{python3pkg}-%{name} +%package -n python%{python3_pkgversion}-%{name} Summary: Python extension for ROOT %{?py3_dist: Provides: %{py3_dist %{name}} = %{version} } -Provides: root-%{python3pkg} = %{version}-%{release} -Obsoletes: root-%{python3pkg} < 6.08.00 +Provides: root-python%{python3_pkgversion} = %{version}-%{release} +Obsoletes: root-python%{python3_pkgversion} < 6.08.00 Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release}
-%description -n %{python3pkg}-%{name} +%description -n python%{python3_pkgversion}-%{name} This package contains the Python extension for ROOT. This package provide a Python interface to ROOT, and a ROOT interface to Python.
@@ -421,7 +444,10 @@ Summary: ROOT Jupyter kernel %{?py2_dist: Provides: %{py2_dist jupyroot} = %{version} } -Requires: python2-%{name} = %{version}-%{release} +Requires: python2-%{name}%{?_isa} = %{version}-%{release} +Requires: python2-jsmva = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-notebook = %{version}-%{release} %if %{?fedora}%{!?fedora:0} >= 26 || %{?rhel}%{!?rhel:0} >= 8 Requires: python2-ipython Requires: python2-metakernel @@ -435,25 +461,28 @@ Obsoletes: %{name}-rootaas < 6.08.00 %description -n python2-jupyroot The Jupyter kernel for the ROOT notebook.
-%package -n %{python3pkg}-jupyroot +%package -n python%{python3_pkgversion}-jupyroot Summary: ROOT Jupyter kernel %{?py3_dist: Provides: %{py3_dist jupyroot} = %{version} } -Requires: %{python3pkg}-%{name} = %{version}-%{release} +Requires: python%{python3_pkgversion}-%{name}%{?_isa} = %{version}-%{release} +Requires: python%{python3_pkgversion}-jsmva = %{version}-%{release} +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-notebook = %{version}-%{release} %if %{?fedora}%{!?fedora:0} >= 26 || %{?rhel}%{!?rhel:0} >= 8 -Requires: %{python3pkg}-ipython -Requires: %{python3pkg}-metakernel +Requires: python%{python3_pkgversion}-ipython +Requires: python%{python3_pkgversion}-metakernel %else %if %{?fedora}%{!?fedora:0} # ipython for python3 not available in RHEL/EPEL -Requires: %{python3pkg}-ipython-console +Requires: python%{python3_pkgversion}-ipython-console %endif # python-metakernel for python3 not available in # Fedora <= 25 or RHEL/EPEL - some functionality missing %endif
-%description -n %{python3pkg}-jupyroot +%description -n python%{python3_pkgversion}-jupyroot The Jupyter kernel for the ROOT notebook.
%package -n python2-jsmva @@ -463,21 +492,19 @@ BuildArch: noarch Provides: %{py2_dist jsmva} = %{version} } Requires: %{name}-tmva = %{version}-%{release} -Requires: python2-jupyroot = %{version}-%{release}
%description -n python2-jsmva TMVA interface used by JupyROOT.
-%package -n %{python3pkg}-jsmva +%package -n python%{python3_pkgversion}-jsmva Summary: TMVA interface used by JupyROOT BuildArch: noarch %{?py3_dist: Provides: %{py3_dist jsmva} = %{version} } Requires: %{name}-tmva = %{version}-%{release} -Requires: %{python3pkg}-jupyroot = %{version}-%{release}
-%description -n %{python3pkg}-jsmva +%description -n python%{python3_pkgversion}-jsmva TMVA interface used by JupyROOT.
%if %{ruby} @@ -604,6 +631,8 @@ Summary: Canvas and pad library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} # Dynamic dependency Requires: %{name}-graf-postscript%{?_isa} = %{version}-%{release}
@@ -742,6 +771,11 @@ Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-gui%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} +%if %{root7} +Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} +%endif +Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release}
@@ -800,6 +834,28 @@ Recorded events are: All the recorded events from one session are stored in one TFile and can be replayed again anytime.
+%if %{root7} +%package gui-canvaspainter +Summary: Canvas painter (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-gui-webdisplay%{?_isa} = %{version}-%{release} + +%description gui-canvaspainter +This package contains a canvas painter extension for ROOT 7 + +%package gui-webdisplay +Summary: Web display (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} +Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-net-http%{?_isa} = %{version}-%{release} + +%description gui-webdisplay +This package contains a web display extension for ROOT 7 +%endif + %package hbook Summary: Hbook library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} @@ -814,6 +870,7 @@ access legacy Hbook files (NTuples and Histograms from PAW). %package hist Summary: Histogram library for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} # Dynamic dependency @@ -822,12 +879,26 @@ Requires: %{name}-hist-painter%{?_isa} = %{version}-%{release} %description hist This package contains a library for histogramming in ROOT.
+%if %{root7} +%package hist-draw +Summary: Histogram drawing (ROOT 7) +Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} +Requires: %{name}-hist%{?_isa} = %{version}-%{release} + +%description hist-draw +This package contains an histogram drawing extension for ROOT 7. +%endif + %package hist-painter Summary: Histogram painter plugin for ROOT Requires: %{name}-core%{?_isa} = %{version}-%{release} Requires: %{name}-graf%{?_isa} = %{version}-%{release} Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} +%if %{root7} +Requires: %{name}-hist-draw%{?_isa} = %{version}-%{release} +%endif Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release}
@@ -1264,6 +1335,7 @@ Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} +Requires: js-jsroot
%description net-http This package contains the HTTP server extension for ROOT. It provides @@ -1430,6 +1502,7 @@ ROOT environment. Summary: Toolkit for multivariate data analysis License: BSD Requires: %{name}-core%{?_isa} = %{version}-%{release} +Requires: %{name}-graf-gpad%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-io-xml%{?_isa} = %{version}-%{release} @@ -1437,6 +1510,8 @@ Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} Requires: %{name}-matrix%{?_isa} = %{version}-%{release} Requires: %{name}-minuit%{?_isa} = %{version}-%{release} Requires: %{name}-mlp%{?_isa} = %{version}-%{release} +Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release} Requires: %{name}-tree-player%{?_isa} = %{version}-%{release}
@@ -1515,6 +1590,8 @@ Requires: %{name}-graf3d%{?_isa} = %{version}-%{release} Requires: %{name}-hist%{?_isa} = %{version}-%{release} Requires: %{name}-io%{?_isa} = %{version}-%{release} Requires: %{name}-mathcore%{?_isa} = %{version}-%{release} +Requires: %{name}-multiproc%{?_isa} = %{version}-%{release} +Requires: %{name}-net%{?_isa} = %{version}-%{release} Requires: %{name}-tree%{?_isa} = %{version}-%{release}
%description tree-player @@ -1556,17 +1633,13 @@ The ROOT command line utilities is a set of scripts for common tasks written in python.
%package notebook -Summary: ROOT as a Jupyter Notebook -Requires: %{name}-core%{?_isa} = %{version}-%{release} -%if %{?fedora}%{!?fedora:0} >= 23 -# Jupyter is not available in RHEL/EPEL -Requires: /usr/bin/jupyter -%endif -Requires: python2-jupyroot = %{version}-%{release} -Requires: python2-jsmva = %{version}-%{release} +Summary: Static files for the Jupyter ROOT Notebook +BuildArch: noarch +Requires: %{name}-core = %{version}-%{release} +Requires: js-jsroot
%description notebook -ROOT as a Jupyter Notebook. +Javascript and style files for the Jupyter ROOT Notebook.
%prep %setup -q -a 1 @@ -1581,6 +1654,12 @@ ROOT as a Jupyter Notebook. %patch7 -p1 %patch8 -p1 %patch9 -p1 +%patch10 -p1 +%patch11 -p1 +%patch12 -p1 +%patch13 -p1 +%patch14 -p1 +%patch15 -p1
# Remove bundled sources in order to be sure they are not used # * afterimage @@ -1610,11 +1689,13 @@ rm -rf documentation/doxygen/mathjax.tar.gz sed /mathjax.tar.gz/d -i documentation/doxygen/Makefile sed 's!(MATHJAX_RELPATH\s*=).*!\1 file:///usr/share/javascript/mathjax!' \ -i documentation/doxygen/Doxyfile -%if %{?fedora}%{!?fedora:0} >= 24 -# * string_view +%if %{root7} +# * string_view (<experimental/string_view> requires c++-14) rm core/foundation/inc/libcpp_string_view.h \ core/foundation/inc/RWrap_libcpp_string_view.h %endif +# * jsroot +rm -rf etc/http/*
# Remove bundled fonts provided by the OS distributions %if %{?fedora}%{!?fedora:0} >= 11 @@ -1638,22 +1719,29 @@ ar rv libgmock_main.a gmock_main.o popd fi
+# Remove pre-minified script and style files +rm etc/notebook/JsMVA/js/*.min.js +rm etc/notebook/JsMVA/css/*.min.css + %build unset QTDIR unset QTLIB unset QTINC
+# Minify script and style files +for s in etc/notebook/JsMVA/js/*.js ; do + yuicompressor ${s} -o ${s%.js}.min.js +done +for s in etc/notebook/JsMVA/css/*.css ; do + yuicompressor ${s} -o ${s%.css}.min.css +done + mkdir builddir pushd builddir
# Avoid overlinking (this used to be the default with the old configure script) LDFLAGS="-Wl,--as-needed %{?__global_ldflags}"
-%ifarch s390 s390x -# llvm/clang does not support -march=z900, z990, z9-109, z9-ec -%global optflags %(sed 's/-march=z9\S* /-march=z10 /g' <<< '%{optflags}') -%endif - %if %{?fedora}%{!?fedora:0} || %{?rhel}%{!?rhel:0} >= 8 %cmake \ %else @@ -1698,13 +1786,14 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dcling:BOOL=ON \ -Dcocoa:BOOL=OFF \ -Dcuda:BOOL=OFF \ -%if %{?fedora}%{!?fedora:0} >= 24 +%if %{root7} -Dcxx14:BOOL=ON \ -Droot7:BOOL=ON \ %else -Dcxx14:BOOL=OFF \ -Droot7:BOOL=OFF \ %endif + -Dcxx17:BOOL=OFF \ -Dcxxmodules:BOOL=OFF \ -Ddavix:BOOL=ON \ -Ddcache:BOOL=ON \ @@ -1741,6 +1830,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dldap:BOOL=ON \ -Dlibcxx:BOOL=OFF \ -Dmathmore:BOOL=ON \ + -Dmemory_termination:BOOL=OFF \ -Dmemstat:BOOL=ON \ -Dminuit2:BOOL=ON \ -Dmonalisa:BOOL=OFF \ @@ -1769,6 +1859,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" %else -Druby:BOOL=OFF \ %endif + -Druntime_cxxmodules:BOOL=OFF \ -Dsapdb:BOOL=OFF \ -Dshadowpw:BOOL=ON \ -Dshared:BOOL=ON \ @@ -1798,6 +1889,7 @@ LDFLAGS="-Wl,--as-needed %{?__global_ldflags}" -Dclingtest:BOOL=OFF \ -Dcoverage:BOOL=OFF \ -Droottest:BOOL=OFF \ + -Drootbench:BOOL=OFF \ ..
# Build PyROOT for python 3 (prep) @@ -1925,6 +2017,40 @@ ln -s ..`sed 's!%{_libdir}!!' <<< %{ruby_vendorarchdir}`/libRuby.so \ %{buildroot}%{_libdir}/%{name}/libRuby.so.%{version} %endif
+# Put jupyter stuff in the right places +mkdir -p %{buildroot}%{_datadir}/jupyter/kernels + +cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ + %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot +sed -e 's/ROOT C++/& (Python 2)/' -e 's!python!/usr/bin/python2!' \ + -i %{buildroot}%{_datadir}/jupyter/kernels/python2-jupyroot/kernel.json + +cp -pr %{buildroot}%{_datadir}/%{name}/notebook/kernels/root \ + %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot +sed -e 's/ROOT C++/& (Python 3)/' -e 's!python!/usr/bin/python3!' \ + -i %{buildroot}%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot/kernel.json + +rm -rf %{buildroot}%{_datadir}/%{name}/notebook/custom +rm -rf %{buildroot}%{_datadir}/%{name}/notebook/html +rm -rf %{buildroot}%{_datadir}/%{name}/notebook/kernels + +ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/notebook + +# Replace the rootnb.exe wrapper with a simpler one +cat > %{buildroot}%{_bindir}/rootnb.exe << EOF +#! /bin/sh +if [ -z "$(type jupyter 2>/dev/null)" ] ; then + echo jupyter not found in path. Exiting. + exit 1 +fi +if [ -z "$(type jupyter-notebook 2>/dev/null)" ] ; then + echo jupyter-notebook not found in path. Exiting. + exit 1 +fi +rm -rf ~/.rootnb +jupyter notebook +EOF + # These should be in PATH mv %{buildroot}%{_datadir}/%{name}/proof/utils/pq2/pq2* %{buildroot}%{_bindir}
@@ -1971,14 +2097,9 @@ rm %{buildroot}%{_datadir}/%{name}/root.desktop rm %{buildroot}%{_datadir}/%{name}/system.plugins-ios rm %{buildroot}%{_libdir}/%{name}/libmathtext.a rm %{buildroot}%{_libdir}/%{name}/libminicern.a -rm %{buildroot}%{_bindir}/corebasetestUnit -rm %{buildroot}%{_bindir}/coreconttestUnit rm %{buildroot}%{_bindir}/setenvwrap.csh rm %{buildroot}%{_bindir}/setxrd* rm %{buildroot}%{_bindir}/thisroot* -rm %{buildroot}%{_bindir}/testTBufferMerger -rm %{buildroot}%{_bindir}/testTProfile2Poly -rm %{buildroot}%{_bindir}/treetreeplayertestUnit rm %{buildroot}%{_mandir}/man1/g2rootold.1 rm %{buildroot}%{_mandir}/man1/genmap.1 rm %{buildroot}%{_mandir}/man1/proofserva.1 @@ -1994,8 +2115,7 @@ rm %{buildroot}%{_pkgdocdir}/README.ALIEN rm %{buildroot}%{_pkgdocdir}/README.MONALISA
# Remove references to deleted (or moved) files from cmake files -for target in mathtext minicern JupyROOT coreconttestUnit corebasetestUnit \ - testTProfile2Poly treetreeplayertestUnit testTBufferMerger ; do +for target in mathtext minicern JupyROOT; do sed -e "s/ ROOT::${target} / /" \ -e "/Create imported target ROOT::${target}/,/^$/d" \ -e "/set_target_properties(ROOT::${target}/,/^$/d" \ @@ -2053,6 +2173,10 @@ rmdir TImagePlugin rmdir TVirtualGeoConverter popd
+# Replace bundled jsroot with symlink to system version +rm -rf %{buildroot}%{_datadir}/%{name}/http +ln -s /usr/share/javascript/jsroot %{buildroot}%{_datadir}/%{name}/http + # Create ldconfig configuration mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d echo %{_libdir}/%{name} > \ @@ -2113,6 +2237,7 @@ ln -s ../../files files popd pushd runtutorials ln -s ../../files files +ln -sf ../../files/tutorials/tdf014_CsvDataSource_MuRun2010B.csv popd # Exclude some tests that can not be run # @@ -2130,19 +2255,49 @@ popd # - tutorial-multicore-imt101_parTreeProcessing # requires input data: http://root.cern.ch/files/tp_process_imt.root (707 MB) # +# - tutorial-pythia-pythia8 +# sometimes times out +excluded="test-stressIOPlugins-.*|tutorial-dataframe-tdf101_h1Analysis|tutorial-tree-run_h1analysis|tutorial-multicore-imt001_parBranchProcessing|tutorial-multicore-mp103_processSelector|tutorial-multicore-mp104_processH1|tutorial-multicore-mp105_processEntryList|tutorial-multicore-imt101_parTreeProcessing|tutorial-pythia-pythia8" + +%ifarch %{arm} +# Tests failing on arm +# https://sft.its.cern.ch/jira/browse/ROOT-8500 +# - mathcore-testMinim +# - minuit2-testMinimizer +# - test-minexam +# - test-stressfit # - test-stressiterators-interpreted # - tutorial-hist-sparsehist +# - tutorial-multicore-mt303_AsyncSimple +# - tutorial-multicore-mt304_AsyncNested +# - tutorial-multicore-mt305_TFuture # - tutorial-r-* -# currently fails on 32 bit arm - reported upstream: -# https://sft.its.cern.ch/jira/browse/ROOT-8500 +excluded="${excluded}|mathcore-testMinim|minuit2-testMinimizer|test-minexam|test-stressfit|test-stressiterators-interpreted|tutorial-hist-sparsehist|tutorial-multicore-mt303_AsyncSimple|tutorial-multicore-mt304_AsyncNested|tutorial-multicore-mt305_TFuture|tutorial-r-.*" +%endif
-excluded="test-stressIOPlugins-.*|tutorial-dataframe-tdf101_h1Analysis|tutorial-tree-run_h1analysis|tutorial-multicore-imt001_parBranchProcessing|tutorial-multicore-mp103_processSelector|tutorial-multicore-mp104_processH1|tutorial-multicore-mp105_processEntryList|tutorial-multicore-imt101_parTreeProcessing" -%ifarch %{arm} -excluded="${excluded}|test-stressiterators-interpreted|tutorial-hist-sparsehist|tutorial-r-.*" +%ifarch ppc64 +# Tests failing on ppc64 +# https://sft.its.cern.ch/jira/browse/ROOT-6434 +# - test-stresshistogram[-interpreted] +# - test-stressroostats[-interpreted] +# - test-stresshistofit[-interpreted] +# - tutorial-roofit-rf511_wsfactory_basic +# - tutorial-roostats-rs102_hypotestwithshapes (work on EPEL 7) +# - tutorial-roostats-rs701_BayesianCalculator +# - tutorial-dataframe-tdf006_ranges-py +excluded="${excluded}|test-stresshistogram|test-stressroostats|test-stresshistofit|tutorial-roofit-rf511_wsfactory_basic|tutorial-roostats-rs102_hypotestwithshapes|tutorial-roostats-rs701_BayesianCalculator|tutorial-dataframe-tdf006_ranges-py" +%endif + +%ifarch ppc64le +# Tests failing on ppc64le +# - test-stresshistogram[-interpreted] +excluded="${excluded}|test-stresshistogram" %endif + make test ARGS="%{?_smp_mflags} --output-on-failure -E "${excluded}"" popd
+%if %{?rhel}%{!?rhel:0} == 7 %post touch --no-create %{_datadir}/icons/hicolor >/dev/null 2>&1 || : update-desktop-database >/dev/null 2>&1 || : @@ -2158,6 +2313,7 @@ update-mime-database %{_datadir}/mime >/dev/null 2>&1 || :
%posttrans gtk-update-icon-cache %{_datadir}/icons/hicolor >/dev/null 2>&1 || : +%endif
%pre rootd # Remove old init config when systemd is used @@ -2218,7 +2374,7 @@ fi libPyROOT.so %{python2_sitearch}/libPyROOT.so 20 /sbin/ldconfig
-%post -n %{python3pkg}-%{name} +%post -n python%{python3_pkgversion}-%{name} if [ -r /var/lib/alternatives/libPyROOT.so ] ; then grep -q %{_libdir}/%{name}/libPyROOT.so.%{version} \ /var/lib/alternatives/libPyROOT.so || \ @@ -2235,22 +2391,44 @@ fi libPyROOT.so %{python3_sitearch}/libPyROOT%{py3soabi}.so 10 /sbin/ldconfig
-%preun -n %{python3pkg}-%{name} +%preun -n python%{python3_pkgversion}-%{name} if [ $1 = 0 ]; then %{_sbindir}/update-alternatives --remove \ libPyROOT.so %{python3_sitearch}/libPyROOT%{py3soabi}.so fi
-%postun -n %{python3pkg}-%{name} -p /sbin/ldconfig +%postun -n python%{python3_pkgversion}-%{name} -p /sbin/ldconfig
-%triggerpostun -n %{python3pkg}-%{name} -- %{name}-%{python3pkg} -# Uninstalling the old %{name}-%{python3pkg} will remove the alternatives -# for %{python3pkg}-%{name} - put them back in this triggerpostun script +%triggerpostun -n python%{python3_pkgversion}-%{name} -- %{name}-python%{python3_pkgversion} +# Uninstalling the old %{name}-python%{python3_pkgversion} will remove the alternatives +# for python%{python3_pkgversion}-%{name} - put them back in this triggerpostun script %{_sbindir}/update-alternatives --install \ %{_libdir}/%{name}/libPyROOT.so.%{version} \ libPyROOT.so %{python3_sitearch}/libPyROOT%{py3soabi}.so 10 /sbin/ldconfig
+%post notebook +mkdir -p /etc/jupyter +if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then + sed '/Extra static path for JupyROOT - start/','/Extra static path for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py +fi +cat << EOF >> /etc/jupyter/jupyter_notebook_config.py +# Extra static path for JupyROOT - start - do not remove this line +c.NotebookApp.extra_static_paths.append('%{_datadir}/%{name}/notebook') +# Extra static path for JupyROOT - end - do not remove this line +EOF + +%postun notebook +if [ $1 -eq 0 ] ; then + if [ -e /etc/jupyter/jupyter_notebook_config.py ] ; then + sed '/Extra static path for JupyROOT - start/','/Extra static path for JupyROOT - end/'d -i /etc/jupyter/jupyter_notebook_config.py + if [ ! -s /etc/jupyter/jupyter_notebook_config.py ] ; then + rm /etc/jupyter/jupyter_notebook_config.py + rmdir /etc/jupyter 2>/dev/null || : + fi + fi +fi + %post core -p /sbin/ldconfig %postun core -p /sbin/ldconfig %post multiproc -p /sbin/ldconfig @@ -2313,10 +2491,20 @@ fi %postun gui-qt -p /sbin/ldconfig %post gui-recorder -p /sbin/ldconfig %postun gui-recorder -p /sbin/ldconfig +%if %{root7} +%post gui-canvaspainter -p /sbin/ldconfig +%postun gui-canvaspainter -p /sbin/ldconfig +%post gui-webdisplay -p /sbin/ldconfig +%postun gui-webdisplay -p /sbin/ldconfig +%endif %post hbook -p /sbin/ldconfig %postun hbook -p /sbin/ldconfig %post hist -p /sbin/ldconfig %postun hist -p /sbin/ldconfig +%if %{root7} +%post hist-draw -p /sbin/ldconfig +%postun hist-draw -p /sbin/ldconfig +%endif %post hist-painter -p /sbin/ldconfig %postun hist-painter -p /sbin/ldconfig %post spectrum -p /sbin/ldconfig @@ -2403,6 +2591,14 @@ fi %postun net-ldap -p /sbin/ldconfig %post net-http -p /sbin/ldconfig %postun net-http -p /sbin/ldconfig + +%pretrans net-http -p <lua> +path = "%{_datadir}/%{name}/http" +st = posix.stat(path) +if st and st.type == "directory" then + os.execute("rm -rf " .. path) +end + %if %{xrootd} %post netx -p /sbin/ldconfig %postun netx -p /sbin/ldconfig @@ -2511,6 +2707,7 @@ fi %{_includedir}/%{name}/RConfigure.h %{_includedir}/%{name}/RGitCommit.h %{_includedir}/%{name}/compiledata.h +%{_includedir}/%{name}/module.modulemap %dir %{_includedir}/%{name}/Math %dir %{_includedir}/%{name}/ROOT %{_datadir}/aclocal/root.m4 @@ -2575,7 +2772,7 @@ fi %{python2_sitearch}/cppyy.py* %{python2_sitearch}/_pythonization.py*
-%files -n %{python3pkg}-%{name} -f includelist-bindings-pyroot +%files -n python%{python3_pkgversion}-%{name} -f includelist-bindings-pyroot %{_libdir}/%{name}/libPyROOT.rootmap %{_libdir}/%{name}/libPyROOT.so %{_libdir}/%{name}/libPyROOT.so.%{libversion} @@ -2590,17 +2787,19 @@ fi %files -n python2-jupyroot %{python2_sitearch}/JupyROOT %{python2_sitearch}/libJupyROOT.so +%{_datadir}/jupyter/kernels/python2-jupyroot %doc bindings/pyroot/JupyROOT/README.md
-%files -n %{python3pkg}-jupyroot +%files -n python%{python3_pkgversion}-jupyroot %{python3_sitearch}/JupyROOT %{python3_sitearch}/libJupyROOT.so +%{_datadir}/jupyter/kernels/python%{python3_pkgversion}-jupyroot %doc bindings/pyroot/JupyROOT/README.md
%files -n python2-jsmva %{python2_sitelib}/JsMVA
-%files -n %{python3pkg}-jsmva +%files -n python%{python3_pkgversion}-jsmva %{python3_sitelib}/JsMVA
%if %{ruby} @@ -2760,6 +2959,15 @@ fi %{_libdir}/%{name}/libRecorder.* %{_libdir}/%{name}/libRecorder_rdict.pcm
+%if %{root7} +%files gui-canvaspainter +%{_libdir}/%{name}/libROOTCanvasPainter.* + +%files gui-webdisplay -f includelist-gui-webdisplay +%{_libdir}/%{name}/libROOTWebDisplay.* +%{_libdir}/%{name}/libROOTWebDisplay_rdict.pcm +%endif + %files hbook -f includelist-hist-hbook %{_bindir}/g2root %{_bindir}/h2root @@ -2773,6 +2981,12 @@ fi %{_libdir}/%{name}/libHist_rdict.pcm %dir %{_includedir}/%{name}/v5
+%if %{root7} +%files hist-draw -f includelist-hist-histdraw +%{_libdir}/%{name}/libROOTHistDraw.* +%{_libdir}/%{name}/libROOTHistDraw_rdict.pcm +%endif + %files hist-painter -f includelist-hist-histpainter %{_libdir}/%{name}/libHistPainter.* %{_libdir}/%{name}/libHistPainter_rdict.pcm @@ -3161,6 +3375,24 @@ fi %{_datadir}/%{name}/notebook
%changelog +* Tue Dec 19 2017 Mattias Ellert mattias.ellert@physics.uu.se - 6.12.04-1 +- Update to 6.12.04 +- Drop patches accepted upstream +- Drop previously backported patches +- Unbundle jsroot in root-net-http +- Add hack to work around broken charmaps in StandardSymbolsPS.otf +- Use local static script and style files for JupyROOT +- Fix some javascript errors +- Fix build rules for test binaries so that they are not installed +- Address memory usage issue for ARM build +- Drop pre-minified javascript and style files (Fedora packaging guidelines) +- Enable builds on ppc/ppc64/ppc64le (do not pass all tests, but the list + of failing tests is much shorter with this release) +- Add dependency on python[23]-jsmva to python[23]-jupyroot +- New sub-packages: root-gui-canvaspainter, root-gui-webdisplay and + root-hist-draw (not for EPEL 7 since they are root7 specific and + require c++-14) + * Fri Oct 20 2017 Mattias Ellert mattias.ellert@physics.uu.se - 6.10.08-1 - Update to 6.10.08 - Add BuildRequires on lz4-devel and xxhash-devel diff --git a/sources b/sources index 5fcd7a6..498a567 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (root-6.10.08.tar.xz) = 84d712fe6fe260d22202187f0edf6ae36647f8de44533f791939f2ae382782270bf1efced69e6b6f08d9ca512fc4a3991d2439129fb4ca413a283bdeef7b3221 -SHA512 (root-testfiles.tar.xz) = 1a1295693b80aa27546bd9cf4a34cb38df1a3be2b14a3a29f418cd49058ae5d581e03e2e7fb9e978d448b29cf407e0f0bb4a5c26211e519d506166ec0b78e86b +SHA512 (root-6.12.04.tar.xz) = 271cc151073f0b147f4e4f5030f71e3782723be1e5c36c431b85086e8280dbdab1fde22c4f5c26e5f8d821ed309d4b7db5e846ec383db84d64714d0c627c8c7a +SHA512 (root-testfiles.tar.xz) = f697afb666c1081f98cfe66fe21998c4eab86c25a3671ff71a4ac98610d70f70081d70b40029a0b788b39d87c542b5aa4e31d71f7be494f4774323ed20e9bccb
arch-excludes@lists.fedoraproject.org