summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuan Miguel Carceller <22276694+jmcarcell@users.noreply.github.com>2024-09-26 20:24:01 +0200
committerGitHub <noreply@github.com>2024-09-26 12:24:01 -0600
commitf25e586f0a4288424c7a7809d02cfb9e7b3e8ca0 (patch)
treee459ad7cc6986dade7842ada6d6440305e73e2a2
parent0191e15a6a0c86520152694d2a75c3e595763d0a (diff)
downloadspack-f25e586f0a4288424c7a7809d02cfb9e7b3e8ca0.tar.gz
spack-f25e586f0a4288424c7a7809d02cfb9e7b3e8ca0.tar.bz2
spack-f25e586f0a4288424c7a7809d02cfb9e7b3e8ca0.tar.xz
spack-f25e586f0a4288424c7a7809d02cfb9e7b3e8ca0.zip
madgraph5: add newer versions and a pythia8 variant (#41128)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com> Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
-rw-r--r--var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch38
-rw-r--r--var/spack/repos/builtin/packages/madgraph5amc/package.py78
2 files changed, 99 insertions, 17 deletions
diff --git a/var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch b/var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
new file mode 100644
index 0000000000..d7cf655bbd
--- /dev/null
+++ b/var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
@@ -0,0 +1,38 @@
+From b470cfe805e747204a86eedada1d90aae1ebceec Mon Sep 17 00:00:00 2001
+From: Joseph C Wang <joequant@gmail.com>
+Date: Sat, 24 Aug 2024 00:36:46 +0800
+Subject: [PATCH] add compile flags for gcc14 compilation
+
+This disables pointer mismatch warnings which are now errors in
+gcc14.
+---
+ vendor/StdHEP/mcfio/src/GNUmakefile | 2 +-
+ vendor/StdHEP/src/stdhep/GNUmakefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/vendor/StdHEP/mcfio/src/GNUmakefile b/vendor/StdHEP/mcfio/src/GNUmakefile
+index 591007abe3..14862ba79e 100644
+--- a/vendor/StdHEP/mcfio/src/GNUmakefile
++++ b/vendor/StdHEP/mcfio/src/GNUmakefile
+@@ -13,7 +13,7 @@ BINDIR = ../../bin
+ include ../arch_mcfio
+
+ FFLAGS += -std=legacy
+-CFLAGS += -Wno-implicit-function-declaration
++CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
+
+ FINC = -I.
+ CINC = -I. -I/usr/include/tirpc
+diff --git a/vendor/StdHEP/src/stdhep/GNUmakefile b/vendor/StdHEP/src/stdhep/GNUmakefile
+index b1d7591ef0..d0421788c9 100644
+--- a/vendor/StdHEP/src/stdhep/GNUmakefile
++++ b/vendor/StdHEP/src/stdhep/GNUmakefile
+@@ -8,7 +8,7 @@ STDHEP_DIR = ../..
+ #this has been added by MZ
+ FFLAGS+= -fd-lines-as-code -fPIE
+ FFLAGS += -std=legacy
+-CFLAGS += -Wno-implicit-function-declaration
++CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
+
+ SLIB = $(STDHEP_DIR)/lib
+ SBIN = $(STDHEP_DIR)/bin
diff --git a/var/spack/repos/builtin/packages/madgraph5amc/package.py b/var/spack/repos/builtin/packages/madgraph5amc/package.py
index eb08e306bd..76fb5cb1ae 100644
--- a/var/spack/repos/builtin/packages/madgraph5amc/package.py
+++ b/var/spack/repos/builtin/packages/madgraph5amc/package.py
@@ -17,16 +17,42 @@ class Madgraph5amc(MakefilePackage):
event manipulation and analysis."""
homepage = "https://launchpad.net/mg5amcnlo"
- url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
+ url = "https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz"
tags = ["hep"]
- version(
- "2.8.1",
- sha256="acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c",
- url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz",
- )
- version("2.7.3.py3", sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225")
+ # Launchpad can sometimes be slow to respond
+ timeout = {"timeout": 60}
+
+ with default_args(fetch_options=timeout):
+ version("3.5.5", sha256="3b4262024cefb8a06082faa9a7ba43484b27a3f2b940a06fbe49c640c5b7ebd7")
+ version(
+ "2.9.20",
+ sha256="09a70e2e8b52e504bcaaa6527d3cec9641b043f5f853f2d11fa3c9970b7efae9",
+ url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz",
+ )
+ with default_args(deprecated=True):
+ version(
+ "2.9.19",
+ sha256="ec95d40ec8845e57682400ef24a3b769a4d0542e3a849b7c5e10105d0a0f8e61",
+ url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.19.tar.gz",
+ )
+ version(
+ "2.9.17",
+ sha256="6781c515ccc2005a953c35dcf9238632b761a937f1832bdfaa5514510b8c5a17",
+ url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.17.tar.gz",
+ )
+ # Older versions have been removed, only the latest LTS versions are available:
+ version(
+ "2.8.3.2",
+ sha256="4077eee75f9255fe627755fe0ac5da5d72f5d5c4f70b6e06e4e564e9c512b215",
+ url="https://launchpad.net/mg5amcnlo/lts/2.8.x/+download/MG5_aMC_v2.8.3.2.tar.gz",
+ )
+ version(
+ "2.7.3.py3",
+ sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225",
+ url="https://launchpad.net/mg5amcnlo/lts/2.7.x/+download/MG5_aMC_v2.7.3.py3.tar.gz",
+ )
variant(
"atlas",
@@ -35,6 +61,7 @@ class Madgraph5amc(MakefilePackage):
)
variant("ninja", default=False, description="Use external installation" + " of Ninja")
variant("collier", default=False, description="Use external installation" + " of Collier")
+ variant("pythia8", default=False, description="Use external installation of Pythia8")
conflicts("%gcc@10:", when="@2.7.3")
@@ -46,15 +73,21 @@ class Madgraph5amc(MakefilePackage):
depends_on("py-six", when="@2.7.3.py3,2.8.0:", type=("build", "run"))
depends_on("python@3.7:", when="@2.7.3.py3", type=("build", "run"))
- depends_on("python@2.7.0:2.8.0,3.7:", when="@2.8.0:", type=("build", "run"))
depends_on("libtirpc")
+ depends_on("pythia8", when="+pythia8")
- patch("array-bounds.patch")
- patch("madgraph5amc.patch", level=0)
- patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py2+atlas")
+ patch("gcc14.patch", when="@:3.5.5%gcc@14:")
+ patch("array-bounds.patch", when="@:2.8.1")
+ patch("madgraph5amc.patch", level=0, when="@:2.9")
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py3+atlas")
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.0+atlas")
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.1+atlas")
+ # Fix running from CVMFS on AFS, for example on lxplus at CERN
+ patch(
+ "https://patch-diff.githubusercontent.com/raw/mg5amcnlo/mg5amcnlo/pull/96.diff?full_index=1",
+ sha256="ac6644f1d0ef51d9bdb27a1519261f1cf27d075d39faa278fbc2849acbc5575d",
+ when="@3:3.5",
+ )
def edit(self, spec, prefix):
def set_parameter(name, value):
@@ -85,12 +118,6 @@ class Madgraph5amc(MakefilePackage):
with working_dir(join_path("vendor", "CutTools")):
make(parallel=False)
- with working_dir(join_path("vendor", "StdHEP")):
- for m in ["mcfio/arch_mcfio", "src/stdhep_arch"]:
- arch = FileFilter(m)
- arch.filter("CC.*=.*", "CC = {0}".format(spack_cc))
- make(parallel=False)
-
if "+atlas" in spec:
if os.path.exists(join_path("bin", "compile.py")):
compile_py = Executable(join_path("bin", "compile.py"))
@@ -120,3 +147,20 @@ class Madgraph5amc(MakefilePackage):
join_path("Template", "LO", "Source", ".make_opts"),
join_path(prefix, "Template", "LO", "Source", "make_opts"),
)
+
+ # TODO: Fix for reproducibility, see https://github.com/spack/spack/pull/41128#issuecomment-2305777485
+ if "+pythia8" in spec:
+ with open("install-pythia8-interface", "w") as f:
+ f.write(
+ f"""set pythia8_path {spec['pythia8'].prefix}
+ install mg5amc_py8_interface
+ """
+ )
+ mg5 = Executable(join_path(prefix, "bin", "mg5_aMC"))
+ mg5("install-pythia8-interface")
+
+ def url_for_version(self, version):
+ major = str(version).split(".")[0]
+ minor = str(version).split(".")[1]
+ url = f"https://launchpad.net/mg5amcnlo/{major}.0/{major}.{minor}.x/+download/MG5_aMC_v{version}.tar.gz"
+ return url