From 082c42559391d57f278195c4da91347ed7c8cfe7 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Sat, 19 Oct 2024 13:33:01 -0400 Subject: [PATCH 1/3] sherpa: 2.2.15 -> 2.2.16 --- pkgs/applications/science/physics/sherpa/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix index 21a5ee7ec234..7701ca0c72e5 100644 --- a/pkgs/applications/science/physics/sherpa/default.nix +++ b/pkgs/applications/science/physics/sherpa/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "sherpa"; - version = "2.2.15"; + version = "2.2.16"; src = fetchurl { url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz"; - sha256 = "sha256-3zvLa1k/bm7uOWKUsTyQM39cPBXJJlF1OgPgznl1hks="; + sha256 = "sha256-AntSN5BhtJFuDBoOFvrzoCr/W4SnX5CeAXiTcz9MjUs="; }; postPatch = lib.optionalString (stdenv.hostPlatform.libc == "glibc") '' From 393c1b3691d28188496450e727c3cde064bbe2c8 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Thu, 22 Aug 2024 15:43:27 -0400 Subject: [PATCH 2/3] yoda: 1.9.10 -> 2.0.1 --- .../physics/fastnlo-toolkit/default.nix | 5 + .../fastnlo-toolkit/yoda2_support.patch | 247 ++++++++++++++++++ .../libraries/physics/yoda/default.nix | 14 +- 3 files changed, 261 insertions(+), 5 deletions(-) create mode 100644 pkgs/development/libraries/physics/fastnlo-toolkit/yoda2_support.patch diff --git a/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix b/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix index 3c781689bbf8..820afcbd8f68 100644 --- a/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix +++ b/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix @@ -22,6 +22,11 @@ stdenv.mkDerivation rec { sha256 = "sha256-7aIMYCOkHC/17CHYiEfrxvtSJxTDivrS7BQ32cGiEy0="; }; + patches = [ + # Compatibility with YODA 2.x + ./yoda2_support.patch + ]; + buildInputs = [ boost gfortran diff --git a/pkgs/development/libraries/physics/fastnlo-toolkit/yoda2_support.patch b/pkgs/development/libraries/physics/fastnlo-toolkit/yoda2_support.patch new file mode 100644 index 000000000000..d9f4aaa5159f --- /dev/null +++ b/pkgs/development/libraries/physics/fastnlo-toolkit/yoda2_support.patch @@ -0,0 +1,247 @@ +diff --git a/src/fnlo-tk-statunc.cc b/src/fnlo-tk-statunc.cc +index 62d1eec..ad62cac 100644 +--- a/src/fnlo-tk-statunc.cc ++++ b/src/fnlo-tk-statunc.cc +@@ -30,7 +30,16 @@ + #include "fastnlotk/fastNLOLHAPDF.h" + #include "fastnlotk/speaker.h" + #ifdef WITH_YODA ++#if defined __has_include ++#if !__has_include("YODA/WriterAIDA.h") ++#define WITH_YODA2 ++#endif ++#endif ++#ifdef WITH_YODA2 ++#include "YODA/Scatter.h" ++#else + #include "YODA/Scatter2D.h" ++#endif + #include "YODA/WriterYODA.h" + #endif + +@@ -493,28 +502,25 @@ int main(int argc, char** argv) { + + //! --- 1D + if (NDim == 1) { +- //! Vectors to fill 2D scatter plot +- vector < double > x; +- vector < double > y; +- vector < double > exminus; +- vector < double > explus; +- vector < double > eyminus; +- vector < double > eyplus; ++ //! Vector to fill 2D scatter plot ++ vector points; + //! Loop over bins in outer (1st) dimension + for (unsigned int k =0 ; k x; +- vector < double > y; +- vector < double > exminus; +- vector < double > explus; +- vector < double > eyminus; +- vector < double > eyplus; ++ //! Vector to fill 2D scatter plot ++ vector points; + //! Loop over bins in inner (2nd) dimension + NDimBins[1] = fnlo.GetNDim1Bins(j); + for (unsigned int k = 0; k x; +- vector < double > y; +- vector < double > exminus; +- vector < double > explus; +- vector < double > eyminus; +- vector < double > eyplus; ++ //! Vector to fill 2D scatter plot ++ vector < YODA::Point2D > points; + //! Loop over bins in outer (1st) dimension + for (unsigned int k =0 ; k x; +- vector < double > y; +- vector < double > exminus; +- vector < double > explus; +- vector < double > eyminus; +- vector < double > eyplus; ++ vector < YODA::Point2D > points; + //! Loop over bins in inner (2nd) dimension + NDimBins[1] = fnlo->GetNDim1Bins(j); + for (unsigned int k = 0; kGetNDim1Bins(j); + for (unsigned int k = 0; k x; +- vector < double > y; +- vector < double > exminus; +- vector < double > explus; +- vector < double > eyminus; +- vector < double > eyplus; ++ vector < YODA::Point2D > points; + //! Loop over bins in inner (3rd) dimension + NDimBins[2] = fnlo->GetNDim2Bins(j,k); + for (unsigned int l = 0; l Date: Thu, 22 Aug 2024 19:48:13 -0400 Subject: [PATCH 3/3] rivet: 3.1.10 -> 4.0.1 --- .../science/physics/sherpa/default.nix | 4 +- .../libraries/physics/rivet/default.nix | 54 +++++++++---------- .../libraries/physics/thepeg/default.nix | 15 ++++-- pkgs/top-level/all-packages.nix | 1 - 4 files changed, 41 insertions(+), 33 deletions(-) diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix index 7701ca0c72e5..64202c1ef128 100644 --- a/pkgs/applications/science/physics/sherpa/default.nix +++ b/pkgs/applications/science/physics/sherpa/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, autoconf, gfortran, hepmc2, fastjet, lhapdf, rivet, sqlite }: +{ lib, stdenv, fetchurl, autoconf, gfortran, hepmc3, fastjet, lhapdf, rivet, sqlite }: stdenv.mkDerivation rec { pname = "sherpa"; @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-sqlite3=${sqlite.dev}" - "--enable-hepmc2=${hepmc2}" + "--enable-hepmc3=${hepmc3}" "--enable-fastjet=${fastjet}" "--enable-lhapdf=${lhapdf}" "--enable-rivet=${rivet}" diff --git a/pkgs/development/libraries/physics/rivet/default.nix b/pkgs/development/libraries/physics/rivet/default.nix index c8db0fb22d0e..3246d9e06ec3 100644 --- a/pkgs/development/libraries/physics/rivet/default.nix +++ b/pkgs/development/libraries/physics/rivet/default.nix @@ -1,12 +1,12 @@ -{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }: +{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, hdf5, hepmc3, highfive, imagemagick, less, pkg-config, python3, rsync, texliveBasic, yoda, which, makeWrapper }: stdenv.mkDerivation rec { pname = "rivet"; - version = "3.1.10"; + version = "4.0.1"; src = fetchurl { url = "https://www.hepforge.org/archive/rivet/Rivet-${version}.tar.bz2"; - hash = "sha256-RYuODfHec46ZctJLJg6qCH3xLJnU/p3uU3fUfqakmRk="; + hash = "sha256-ToaS1uilOWHHeYPra6SJPDdlzyP3BXieTYZb5Iku/3k="; }; latex = texliveBasic.withPackages (ps: with ps; [ @@ -25,43 +25,43 @@ stdenv.mkDerivation rec { xstring ]); - nativeBuildInputs = [ rsync makeWrapper ]; - buildInputs = [ hepmc imagemagick python3 latex python3.pkgs.yoda ]; - propagatedBuildInputs = [ fastjet fastjet-contrib ]; + nativeBuildInputs = [ rsync makeWrapper pkg-config ]; + buildInputs = [ hepmc3 highfive imagemagick python3 latex python3.pkgs.yoda ]; + propagatedBuildInputs = [ hdf5 fastjet fastjet-contrib ]; preConfigure = '' + substituteInPlace configure \ + --replace-fail 'if test $HEPMC_VERSION -le 310; then' 'if false; then' substituteInPlace bin/rivet-build.in \ - --replace 'num_jobs=$(getconf _NPROCESSORS_ONLN)' 'num_jobs=''${NIX_BUILD_CORES:-$(getconf _NPROCESSORS_ONLN)}' \ - --replace 'which' '"${which}/bin/which"' \ - --replace 'mycxx=' 'mycxx=${stdenv.cc}/bin/${if stdenv.cc.isClang or false then "clang++" else "g++"} #' \ - --replace 'mycxxflags="' "mycxxflags=\"$NIX_CFLAGS_COMPILE $NIX_CXXSTDLIB_COMPILE $NIX_CFLAGS_LINK " + --replace-fail 'num_jobs=$(getconf _NPROCESSORS_ONLN)' 'num_jobs=''${NIX_BUILD_CORES:-$(getconf _NPROCESSORS_ONLN)}' \ + --replace-fail 'which' '"${which}/bin/which"' \ + --replace-fail 'mycxx=' 'mycxx=${stdenv.cc}/bin/${if stdenv.cc.isClang or false then "clang++" else "g++"} #' \ + --replace-fail 'mycxxflags="' "mycxxflags=\"$NIX_CFLAGS_COMPILE $NIX_CXXSTDLIB_COMPILE $NIX_CFLAGS_LINK " ''; preInstall = '' substituteInPlace bin/make-plots \ - --replace '"which"' '"${which}/bin/which"' \ - --replace '"latex"' '"'$latex'/bin/latex"' \ - --replace '"dvips"' '"'$latex'/bin/dvips"' \ - --replace '"ps2pdf"' '"${ghostscript}/bin/ps2pdf"' \ - --replace '"ps2eps"' '"${ghostscript}/bin/ps2eps"' \ - --replace '"kpsewhich"' '"'$latex'/bin/kpsewhich"' \ - --replace '"convert"' '"${imagemagick.out}/bin/convert"' + --replace-fail '"which"' '"${which}/bin/which"' \ + --replace-fail '"latex"' '"'$latex'/bin/latex"' \ + --replace-fail '"dvips"' '"'$latex'/bin/dvips"' \ + --replace-fail '"ps2pdf"' '"${ghostscript}/bin/ps2pdf"' \ + --replace-fail '"ps2eps"' '"${ghostscript}/bin/ps2eps"' \ + --replace-fail '"kpsewhich"' '"'$latex'/bin/kpsewhich"' \ + --replace-fail '"convert"' '"${imagemagick.out}/bin/convert"' substituteInPlace bin/rivet \ - --replace '"less"' '"${less}/bin/less"' - substituteInPlace bin/rivet-mkhtml \ - --replace '"make-plots"' \"$out/bin/make-plots\" \ - --replace '"rivet-cmphistos"' \"$out/bin/rivet-cmphistos\" \ - --replace 'ch_cmd = [sys.executable, os.path.join(os.path.dirname(__file__),' 'ch_cmd = [(' + --replace-fail '"less"' '"${less}/bin/less"' + substituteInPlace bin/rivet-mkhtml-tex \ + --replace-fail '"make-plots"' \"$out/bin/make-plots\" \ + --replace-fail '"rivet-cmphistos"' \"$out/bin/rivet-cmphistos\" \ + --replace-fail 'ch_cmd = [sys.executable, os.path.join(os.path.dirname(__file__),' 'ch_cmd = [(' ''; configureFlags = [ "--with-fastjet=${fastjet}" "--with-yoda=${yoda}" - ] ++ (if lib.versions.major hepmc.version == "3" then [ - "--with-hepmc3=${hepmc}" - ] else [ - "--with-hepmc=${hepmc}" - ]); + "--with-hepmc3=${hepmc3}" + "--with-highfive=${highfive}" + ]; enableParallelBuilding = true; diff --git a/pkgs/development/libraries/physics/thepeg/default.nix b/pkgs/development/libraries/physics/thepeg/default.nix index b55d6869e4da..d4274b9dbed4 100644 --- a/pkgs/development/libraries/physics/thepeg/default.nix +++ b/pkgs/development/libraries/physics/thepeg/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, autoreconfHook, boost, fastjet, gsl, hepmc2, lhapdf, rivet, zlib }: +{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, boost, fastjet, gsl, hepmc3, lhapdf, rivet, zlib }: stdenv.mkDerivation rec { pname = "thepeg"; @@ -9,12 +9,21 @@ stdenv.mkDerivation rec { hash = "sha256-rDWXmuicKWCMqSwVakn/aKrOeloSoMkvCgGoM9LTRXI="; }; + patches = [ + # Rivet 4 support + (fetchpatch { + url = "https://github.com/hep-mirrors/thepeg/commit/d974704fe48876c13cb7f544cabcf6ef30c00f48.diff"; + hash = "sha256-HzyNigbhWzSpjvvYw3+LZvnrSoV6Pmzghw/5VY5nlqk="; + }) + ]; + nativeBuildInputs = [ autoreconfHook ]; - buildInputs = [ boost fastjet gsl hepmc2 lhapdf rivet zlib ]; + buildInputs = [ boost fastjet gsl hepmc3 lhapdf rivet zlib ]; configureFlags = [ - "--with-hepmc=${hepmc2}" + "--with-hepmc=${hepmc3}" + "--with-hepmcversion=3" "--with-rivet=${rivet}" "--without-javagui" ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index faa1341f021b..806f422fe54e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37664,7 +37664,6 @@ with pkgs; }; rivet = callPackage ../development/libraries/physics/rivet { - hepmc = hepmc2; imagemagick = graphicsmagick-imagemagick-compat; };