diff --git a/pkgs/applications/science/misc/root/ROOT-8728-extra.patch b/pkgs/applications/science/misc/root/ROOT-8728-extra.patch deleted file mode 100644 index a396a848f142..000000000000 --- a/pkgs/applications/science/misc/root/ROOT-8728-extra.patch +++ /dev/null @@ -1,175 +0,0 @@ -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 &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( 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(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(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(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(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(im)); diff --git a/pkgs/applications/science/misc/root/default.nix b/pkgs/applications/science/misc/root/default.nix index ac04321ae0c4..676395d03d53 100644 --- a/pkgs/applications/science/misc/root/default.nix +++ b/pkgs/applications/science/misc/root/default.nix @@ -1,30 +1,24 @@ { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2 -, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lzma, gsl +, libX11, libXpm, libXft, libXext, mesa, zlib, libxml2, lz4, lzma, gsl, xxHash , Cocoa, OpenGL, noSplash ? false }: stdenv.mkDerivation rec { name = "root-${version}"; - version = "6.10.04"; + version = "6.10.08"; src = fetchurl { url = "https://root.cern.ch/download/root_v${version}.source.tar.gz"; - sha256 = "0nwg4bw02v6vahm2rwfaj7fzp3ffhjg5jk7h20il4246swhxw6s6"; + sha256 = "12mddl6pqwwc9nr4jqzp6h1jm4zycazd3v88dz306m1nmk97dlic"; }; nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl ] + buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl xxHash ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext mesa ] ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ] ; patches = [ ./sw_vers.patch - - # this prevents thisroot.sh from setting $p, which interferes with stdenv setup - ./thisroot.patch - - # https://sft.its.cern.ch/jira/browse/ROOT-8728 - ./ROOT-8728-extra.patch ]; preConfigure = '' diff --git a/pkgs/applications/science/misc/root/thisroot.patch b/pkgs/applications/science/misc/root/thisroot.patch deleted file mode 100644 index 57cd5838e64a..000000000000 --- a/pkgs/applications/science/misc/root/thisroot.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/config/thisroot.sh b/config/thisroot.sh -index 85dee20..532cb28 100644 ---- a/config/thisroot.sh -+++ b/config/thisroot.sh -@@ -15,8 +15,8 @@ drop_from_path() - return 1 - fi - -- p=$1 -- drop=$2 -+ local p=$1 -+ local drop=$2 - - newpath=`echo $p | sed -e "s;:${drop}:;:;g" \ - -e "s;:${drop};;g" \ diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix new file mode 100644 index 000000000000..d702500bf719 --- /dev/null +++ b/pkgs/development/libraries/xxHash/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "xxHash-${version}"; + version = "0.6.3.20171018"; + + src = fetchFromGitHub { + sha256 = "0061ivxpx0p24m4vg7kfx9fs9f0jxvv4g76bmyss5gp90p05hc18"; + rev = "333804ccf0c0339451accac023deeab9e5f7c002"; + repo = "xxHash"; + owner = "Cyan4973"; + }; + + outputs = [ "out" "dev" ]; + + makeFlags = [ "PREFIX=$(out)" "INCLUDEDIR=$(dev)/include" ]; + + meta = with stdenv.lib; { + description = "Extremely fast hash algorithm"; + longDescription = '' + xxHash is an Extremely fast Hash algorithm, running at RAM speed limits. + It successfully completes the SMHasher test suite which evaluates + collision, dispersion and randomness qualities of hash functions. Code is + highly portable, and hashes are identical on all platforms (little / big + endian). + ''; + homepage = https://github.com/Cyan4973/xxHash; + license = with licenses; [ bsd2 gpl2 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 49fb69b9e3d0..974ed3fee525 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11059,6 +11059,8 @@ with pkgs; xvidcore = callPackage ../development/libraries/xvidcore { }; + xxHash = callPackage ../development/libraries/xxHash {}; + xylib = callPackage ../development/libraries/xylib { }; yajl = callPackage ../development/libraries/yajl { };