mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 23:36:17 +01:00
root: 6.08.02 -> 6.09.02
This also fixes breakage on darwin due to LLVM4.0 migration. I had to enable opengl because otherwise macOS build is broken. See root commit 23f8871c7 ('Do not include OpenGL directly but use our TGLIncludes for that purpose.') I've enabled xml because TUnfold depends on it.
This commit is contained in:
parent
5dd731b801
commit
be9c0e8b7e
4 changed files with 218 additions and 10 deletions
200
pkgs/applications/science/misc/root/ROOT-8728-extra.patch
Normal file
200
pkgs/applications/science/misc/root/ROOT-8728-extra.patch
Normal file
|
@ -0,0 +1,200 @@
|
|||
diff --git a/core/base/inc/ROOT/StringConv.hxx b/core/base/inc/ROOT/StringConv.hxx
|
||||
index 629fc18..4efa54a 100644
|
||||
--- a/core/base/inc/ROOT/StringConv.hxx
|
||||
+++ b/core/base/inc/ROOT/StringConv.hxx
|
||||
@@ -89,7 +89,7 @@ EFromHumanReadableSize FromHumanReadableSize(std::string_view str, T &value)
|
||||
size_t size = str.size();
|
||||
size_t cur;
|
||||
// Parse leading numeric factor
|
||||
- const double coeff = stod(str, &cur);
|
||||
+ const double coeff = stod(static_cast<std::string>(str), &cur);
|
||||
|
||||
// Skip any intermediate white space
|
||||
while (cur<size && isspace(str[cur])) ++cur;
|
||||
diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx
|
||||
index d71cb74..076facb 100644
|
||||
--- a/core/metacling/src/TCling.cxx
|
||||
+++ b/core/metacling/src/TCling.cxx
|
||||
@@ -756,7 +756,7 @@ int TCling_GenerateDictionary(const std::vector<std::string> &classes,
|
||||
gSystem->PrependPathName(dirbase, header);
|
||||
dir = gSystem->DirName(dir);
|
||||
}
|
||||
- fileContent += TString("#include \"") + header + "\"\n";
|
||||
+ fileContent += (TString("#include \"") + header + "\"\n").Data();
|
||||
}
|
||||
}
|
||||
for (it = fwdDecls.begin(); it != fwdDecls.end(); ++it) {
|
||||
@@ -1061,7 +1061,7 @@ TCling::TCling(const char *name, const char *title)
|
||||
ROOT::TMetaUtils::SetPathsForRelocatability(clingArgsStorage);
|
||||
|
||||
// Add -I early so ASTReader can find the headers.
|
||||
- std::string interpInclude(TROOT::GetEtcDir());
|
||||
+ std::string interpInclude(TROOT::GetEtcDir().Data());
|
||||
clingArgsStorage.push_back("-I" + interpInclude);
|
||||
|
||||
// Add include path to etc/cling. FIXME: This is a short term solution. The
|
||||
@@ -1070,7 +1070,7 @@ TCling::TCling(const char *name, const char *title)
|
||||
clingArgsStorage.push_back("-I" + interpInclude + "/cling");
|
||||
|
||||
// Add the root include directory and etc/ to list searched by default.
|
||||
- clingArgsStorage.push_back(std::string("-I" + TROOT::GetIncludeDir()));
|
||||
+ clingArgsStorage.push_back(std::string(("-I" + TROOT::GetIncludeDir()).Data()));
|
||||
|
||||
// Add the current path to the include path
|
||||
// TCling::AddIncludePath(".");
|
||||
diff --git a/hist/hist/src/TFormula.cxx b/hist/hist/src/TFormula.cxx
|
||||
index abf3929..e7dad98 100644
|
||||
--- a/hist/hist/src/TFormula.cxx
|
||||
+++ b/hist/hist/src/TFormula.cxx
|
||||
@@ -1677,7 +1677,7 @@ void TFormula::ProcessFormula(TString &formula)
|
||||
if(fun.fName.Contains("::")) // add support for nested namespaces
|
||||
{
|
||||
// look for last occurence of "::"
|
||||
- std::string name(fun.fName);
|
||||
+ std::string name(fun.fName.Data());
|
||||
size_t index = name.rfind("::");
|
||||
assert(index != std::string::npos);
|
||||
TString className = fun.fName(0,fun.fName(0,index).Length());
|
||||
@@ -1869,7 +1869,7 @@ void TFormula::ProcessFormula(TString &formula)
|
||||
|
||||
// save copy of inputFormula in a std::strig for the unordered map
|
||||
// and also formula is same as FClingInput typically and it will be modified
|
||||
- std::string inputFormula = std::string(formula);
|
||||
+ std::string inputFormula = std::string(formula.Data());
|
||||
|
||||
|
||||
// valid input formula - try to put into Cling
|
||||
diff --git a/main/src/nbmain.cxx b/main/src/nbmain.cxx
|
||||
index 55d4f2f..8490149 100644
|
||||
--- a/main/src/nbmain.cxx
|
||||
+++ b/main/src/nbmain.cxx
|
||||
@@ -173,9 +173,9 @@ static bool CreateStamp(string dest)
|
||||
|
||||
int main()
|
||||
{
|
||||
- string rootbin(TROOT::GetBinDir());
|
||||
- string rootlib(TROOT::GetLibDir());
|
||||
- string rootetc(TROOT::GetEtcDir());
|
||||
+ string rootbin(TROOT::GetBinDir().Data());
|
||||
+ string rootlib(TROOT::GetLibDir().Data());
|
||||
+ string rootetc(TROOT::GetEtcDir().Data());
|
||||
|
||||
// If needed, install ROOT notebook files in the user's home directory
|
||||
#ifdef WIN32
|
||||
diff --git a/math/minuit/src/TMinuitMinimizer.cxx b/math/minuit/src/TMinuitMinimizer.cxx
|
||||
index 4e2082a..18215c0 100644
|
||||
--- a/math/minuit/src/TMinuitMinimizer.cxx
|
||||
+++ b/math/minuit/src/TMinuitMinimizer.cxx
|
||||
@@ -454,7 +454,7 @@ std::string TMinuitMinimizer::VariableName(unsigned int ivar) const {
|
||||
// return the variable name
|
||||
if (!CheckMinuitInstance()) return std::string();
|
||||
if (!CheckVarIndex(ivar)) return std::string();
|
||||
- return std::string(fMinuit->fCpnam[ivar]);
|
||||
+ return std::string(fMinuit->fCpnam[ivar].Data());
|
||||
}
|
||||
|
||||
int TMinuitMinimizer::VariableIndex(const std::string & ) const {
|
||||
diff --git a/tmva/tmva/src/Factory.cxx b/tmva/tmva/src/Factory.cxx
|
||||
index 36060ef..a1bbe34 100644
|
||||
--- a/tmva/tmva/src/Factory.cxx
|
||||
+++ b/tmva/tmva/src/Factory.cxx
|
||||
@@ -390,7 +390,7 @@ TMVA::MethodBase* TMVA::Factory::BookMethod( TMVA::DataLoader *loader, TString t
|
||||
// initialize methods
|
||||
IMethod* im;
|
||||
if (!boostNum) {
|
||||
- im = ClassifierFactory::Instance().Create( std::string(theMethodName),
|
||||
+ im = ClassifierFactory::Instance().Create( std::string(theMethodName.Data()),
|
||||
fJobName,
|
||||
methodTitle,
|
||||
loader->DefaultDataSetInfo(),
|
||||
@@ -933,7 +933,7 @@ void TMVA::Factory::TrainAllMethods()
|
||||
|
||||
// recreate
|
||||
m = dynamic_cast<MethodBase*>( ClassifierFactory::Instance()
|
||||
- .Create( std::string(Types::Instance().GetMethodName(methodType)),
|
||||
+ .Create( std::string(Types::Instance().GetMethodName(methodType).Data()),
|
||||
dataSetInfo, weightfile ) );
|
||||
if( m->GetMethodType() == Types::kCategory ){
|
||||
MethodCategory *methCat = (dynamic_cast<MethodCategory*>(m));
|
||||
diff --git a/tmva/tmva/src/MethodBoost.cxx b/tmva/tmva/src/MethodBoost.cxx
|
||||
index 1349e5d..2125ab3 100644
|
||||
--- a/tmva/tmva/src/MethodBoost.cxx
|
||||
+++ b/tmva/tmva/src/MethodBoost.cxx
|
||||
@@ -389,7 +389,7 @@ void TMVA::MethodBoost::Train()
|
||||
// the first classifier shows the option string output, the rest not
|
||||
if (fCurrentMethodIdx>0) TMVA::MsgLogger::InhibitOutput();
|
||||
|
||||
- IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName),
|
||||
+ IMethod* method = ClassifierFactory::Instance().Create(std::string(fBoostedMethodName.Data()),
|
||||
GetJobName(),
|
||||
Form("%s_B%04i", fBoostedMethodTitle.Data(),fCurrentMethodIdx),
|
||||
DataInfo(),
|
||||
diff --git a/tmva/tmva/src/MethodCategory.cxx b/tmva/tmva/src/MethodCategory.cxx
|
||||
index c2cbe80..d278cca 100644
|
||||
--- a/tmva/tmva/src/MethodCategory.cxx
|
||||
+++ b/tmva/tmva/src/MethodCategory.cxx
|
||||
@@ -147,7 +147,7 @@ TMVA::IMethod* TMVA::MethodCategory::AddMethod( const TCut& theCut,
|
||||
const TString& theTitle,
|
||||
const TString& theOptions )
|
||||
{
|
||||
- std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod));
|
||||
+ std::string addedMethodName = std::string(Types::Instance().GetMethodName(theMethod).Data());
|
||||
|
||||
Log() << kINFO << "Adding sub-classifier: " << addedMethodName << "::" << theTitle << Endl;
|
||||
|
||||
diff --git a/tmva/tmva/src/MethodCompositeBase.cxx b/tmva/tmva/src/MethodCompositeBase.cxx
|
||||
index 98fa5da..96bd9a3 100644
|
||||
--- a/tmva/tmva/src/MethodCompositeBase.cxx
|
||||
+++ b/tmva/tmva/src/MethodCompositeBase.cxx
|
||||
@@ -194,7 +194,7 @@ void TMVA::MethodCompositeBase::ReadWeightsFromXML( void* wghtnode )
|
||||
((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodTypeName), methodName, optionString );
|
||||
}
|
||||
fMethods.push_back(ClassifierFactory::Instance().Create(
|
||||
- std::string(methodTypeName),jobName, methodName,DataInfo(),optionString));
|
||||
+ std::string(methodTypeName.Data()),jobName, methodName,DataInfo(),optionString));
|
||||
|
||||
fMethodWeight.push_back(methodWeight);
|
||||
MethodBase* meth = dynamic_cast<MethodBase*>(fMethods.back());
|
||||
@@ -259,7 +259,7 @@ void TMVA::MethodCompositeBase::ReadWeightsFromStream( std::istream& istr )
|
||||
((TMVA::MethodBoost*)this)->BookMethod( Types::Instance().GetMethodType( methodName), methodTitle, optionString );
|
||||
}
|
||||
else methodTitle=Form("%s (%04i)",GetMethodName().Data(),fCurrentMethodIdx);
|
||||
- fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName), jobName,
|
||||
+ fMethods.push_back(ClassifierFactory::Instance().Create( std::string(methodName.Data()), jobName,
|
||||
methodTitle,DataInfo(), optionString) );
|
||||
fMethodWeight.push_back( methodWeight );
|
||||
if(MethodBase* m = dynamic_cast<MethodBase*>(fMethods.back()) )
|
||||
diff --git a/tmva/tmva/src/Reader.cxx b/tmva/tmva/src/Reader.cxx
|
||||
index 94a8b28..0b67867 100644
|
||||
--- a/tmva/tmva/src/Reader.cxx
|
||||
+++ b/tmva/tmva/src/Reader.cxx
|
||||
@@ -401,7 +401,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( const TString& methodTag, const TString& w
|
||||
|
||||
TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const TString& weightfile )
|
||||
{
|
||||
- IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
|
||||
+ IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
|
||||
DataInfo(), weightfile );
|
||||
|
||||
MethodBase *method = (dynamic_cast<MethodBase*>(im));
|
||||
@@ -440,7 +440,7 @@ TMVA::IMethod* TMVA::Reader::BookMVA( TMVA::Types::EMVA methodType, const char*
|
||||
#if ROOT_VERSION_CODE >= ROOT_VERSION(5,26,00)
|
||||
|
||||
// books MVA method from weightfile
|
||||
- IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType )),
|
||||
+ IMethod* im = ClassifierFactory::Instance().Create(std::string(Types::Instance().GetMethodName( methodType ).Data()),
|
||||
DataInfo(), "" );
|
||||
|
||||
MethodBase *method = (dynamic_cast<MethodBase*>(im));
|
||||
diff -aru a/core/base/inc/TString.h b/core/base/inc/TString.h
|
||||
--- a/core/base/inc/TString.h
|
||||
+++ b/core/base/inc/TString.h
|
||||
@@ -106,7 +106,7 @@
|
||||
char operator[](Ssiz_t i) const; // Index with bounds checking
|
||||
|
||||
operator std::string_view() const { return std::string_view(Data(),fExtent); }
|
||||
- operator std::string() const { return std::string_view(Data(),fExtent).to_string(); }
|
||||
+ operator std::string() const { return static_cast<std::string>(std::string_view(Data(),fExtent)); }
|
||||
|
||||
const char *Data() const;
|
||||
Ssiz_t Length() const { return fExtent; }
|
|
@ -1,18 +1,19 @@
|
|||
{ stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
|
||||
, libX11, libXpm, libXft, libXext, zlib, lzma, gsl, Cocoa }:
|
||||
, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lzma, gsl
|
||||
, Cocoa, OpenGL }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "root-${version}";
|
||||
version = "6.08.02";
|
||||
version = "6.09.02";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
|
||||
sha256 = "0530v1r4rvds52hgb13f00l3phhn76z6vii550mwv8bj3sl5070k";
|
||||
sha256 = "0fc6b0l7bw66cyckxs4ikvyzcv1zlfx88205jx153smdhih0jj2k";
|
||||
};
|
||||
|
||||
buildInputs = [ cmake pcre pkgconfig python2 zlib lzma gsl ]
|
||||
++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext ]
|
||||
++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa ]
|
||||
buildInputs = [ cmake pcre pkgconfig python2 zlib libxml2 lzma gsl ]
|
||||
++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext mesa ]
|
||||
++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
|
||||
;
|
||||
|
||||
patches = [
|
||||
|
@ -20,6 +21,13 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# this prevents thisroot.sh from setting $p, which interferes with stdenv setup
|
||||
./thisroot.patch
|
||||
|
||||
# https://sft.its.cern.ch/jira/browse/ROOT-8728
|
||||
(fetchpatch {
|
||||
url = "https://sft.its.cern.ch/jira/secure/attachment/20025/0001-std-string_view-has-no-more-to_string.patch";
|
||||
sha256 = "0ngyk960xfrcsj4vhr1ax8h85fx0g1cfycxi3k35a6ych2zmyg8q";
|
||||
})
|
||||
./ROOT-8728-extra.patch
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
|
@ -47,7 +55,7 @@ stdenv.mkDerivation rec {
|
|||
"-Dmonalisa=OFF"
|
||||
"-Dmysql=OFF"
|
||||
"-Dodbc=OFF"
|
||||
"-Dopengl=OFF"
|
||||
"-Dopengl=ON"
|
||||
"-Doracle=OFF"
|
||||
"-Dpgsql=OFF"
|
||||
"-Dpythia6=OFF"
|
||||
|
@ -55,7 +63,7 @@ stdenv.mkDerivation rec {
|
|||
"-Drfio=OFF"
|
||||
"-Dsqlite=OFF"
|
||||
"-Dssl=OFF"
|
||||
"-Dxml=OFF"
|
||||
"-Dxml=ON"
|
||||
"-Dxrootd=OFF"
|
||||
]
|
||||
++ stdenv.lib.optional (stdenv.cc.libc != null) "-DC_INCLUDE_DIRS=${stdenv.lib.getDev stdenv.cc.libc}/include";
|
||||
|
|
|
@ -25,7 +25,7 @@ diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake
|
|||
- COMMAND cut -d . -f 2
|
||||
- OUTPUT_VARIABLE MACOSX_MINOR OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
-
|
||||
- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang)
|
||||
- if(MACOSX_VERSION VERSION_GREATER 10.7 AND ${CMAKE_CXX_COMPILER_ID} MATCHES Clang)
|
||||
set(libcxx ON CACHE BOOL "Build using libc++" FORCE)
|
||||
- endif()
|
||||
|
||||
|
|
|
@ -17789,7 +17789,7 @@ with pkgs;
|
|||
megam = callPackage ../applications/science/misc/megam { };
|
||||
|
||||
root = callPackage ../applications/science/misc/root {
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa;
|
||||
inherit (darwin.apple_sdk.frameworks) Cocoa OpenGL;
|
||||
};
|
||||
|
||||
simgrid = callPackage ../applications/science/misc/simgrid { };
|
||||
|
|
Loading…
Reference in a new issue