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>
This commit is contained in:
parent
0191e15a6a
commit
f25e586f0a
38
var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
Normal file
38
var/spack/repos/builtin/packages/madgraph5amc/gcc14.patch
Normal file
@ -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
|
@ -17,16 +17,42 @@ class Madgraph5amc(MakefilePackage):
|
|||||||
event manipulation and analysis."""
|
event manipulation and analysis."""
|
||||||
|
|
||||||
homepage = "https://launchpad.net/mg5amcnlo"
|
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"]
|
tags = ["hep"]
|
||||||
|
|
||||||
version(
|
# Launchpad can sometimes be slow to respond
|
||||||
"2.8.1",
|
timeout = {"timeout": 60}
|
||||||
sha256="acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c",
|
|
||||||
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz",
|
with default_args(fetch_options=timeout):
|
||||||
)
|
version("3.5.5", sha256="3b4262024cefb8a06082faa9a7ba43484b27a3f2b940a06fbe49c640c5b7ebd7")
|
||||||
version("2.7.3.py3", sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225")
|
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(
|
variant(
|
||||||
"atlas",
|
"atlas",
|
||||||
@ -35,6 +61,7 @@ class Madgraph5amc(MakefilePackage):
|
|||||||
)
|
)
|
||||||
variant("ninja", default=False, description="Use external installation" + " of Ninja")
|
variant("ninja", default=False, description="Use external installation" + " of Ninja")
|
||||||
variant("collier", default=False, description="Use external installation" + " of Collier")
|
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")
|
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("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@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("libtirpc")
|
||||||
|
depends_on("pythia8", when="+pythia8")
|
||||||
|
|
||||||
patch("array-bounds.patch")
|
patch("gcc14.patch", when="@:3.5.5%gcc@14:")
|
||||||
patch("madgraph5amc.patch", level=0)
|
patch("array-bounds.patch", when="@:2.8.1")
|
||||||
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py2+atlas")
|
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.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.0+atlas")
|
||||||
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.1+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 edit(self, spec, prefix):
|
||||||
def set_parameter(name, value):
|
def set_parameter(name, value):
|
||||||
@ -85,12 +118,6 @@ def build(self, spec, prefix):
|
|||||||
with working_dir(join_path("vendor", "CutTools")):
|
with working_dir(join_path("vendor", "CutTools")):
|
||||||
make(parallel=False)
|
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 "+atlas" in spec:
|
||||||
if os.path.exists(join_path("bin", "compile.py")):
|
if os.path.exists(join_path("bin", "compile.py")):
|
||||||
compile_py = Executable(join_path("bin", "compile.py"))
|
compile_py = Executable(join_path("bin", "compile.py"))
|
||||||
@ -120,3 +147,20 @@ def installfile(filename):
|
|||||||
join_path("Template", "LO", "Source", ".make_opts"),
|
join_path("Template", "LO", "Source", ".make_opts"),
|
||||||
join_path(prefix, "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
|
||||||
|
Loading…
Reference in New Issue
Block a user