Compare commits

...

11 Commits

Author SHA1 Message Date
Wouter Deconinck
910031d927 professor: fix style 2025-04-29 13:18:54 -05:00
Wouter Deconinck
5b3d0cc67d professor: set PWD in environment 2025-04-29 13:18:53 -05:00
Wouter Deconinck
f321833a64 professor: set PROF_ROOT for pyext/setup.py 2025-04-29 13:18:22 -05:00
wdconinc
d988e7e8ea [@spackbot] updating style on behalf of wdconinc 2025-04-29 13:17:28 -05:00
Valentin Volkl
532703657f add hep tag 2025-04-29 13:17:28 -05:00
Wouter Deconinck
a8c7fa12f5 professor: depends_on py-setuptools 2025-04-29 13:17:28 -05:00
wdconinc
03dce5685b [@spackbot] updating style on behalf of wdconinc 2025-04-29 13:17:28 -05:00
Wouter Deconinck
0d51f7c78c professor: use gitlab url; working_dir; py-pip 2025-04-29 13:17:27 -05:00
Wouter Deconinck
f20b128589 hep: reenable professor 2025-04-29 13:16:48 -05:00
Wouter Deconinck
096b598812 professor: add v2.3.4; require py-iminuit@2: when=@2.4: 2025-04-29 13:16:47 -05:00
Wouter Deconinck
72e5550ae9 professor: add v2.5.0 2025-04-29 13:16:47 -05:00
2 changed files with 34 additions and 6 deletions

View File

@ -88,7 +88,7 @@ spack:
- pandorasdk - pandorasdk
- photos +hepmc3 - photos +hepmc3
- podio +rntuple +sio - podio +rntuple +sio
#- professor - professor
- py-awkward - py-awkward
- py-boost-histogram - py-boost-histogram
- py-hepunits - py-hepunits

View File

@ -3,6 +3,7 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os import os
import spack.util.environment
from spack.package import * from spack.package import *
@ -10,10 +11,17 @@ class Professor(Package):
"""Professor Monte-Carlo tuning package""" """Professor Monte-Carlo tuning package"""
homepage = "https://professor.hepforge.org/" homepage = "https://professor.hepforge.org/"
url = "https://professor.hepforge.org/downloads/?f=Professor-2.3.3.tar.gz" url = "https://gitlab.com/hepcedar/professor/-/archive/professor-2.5.1/professor-professor-2.5.1.tar.gz"
tags = ["hep"]
maintainers("mjk655") maintainers("mjk655")
version("2.5.1", sha256="c49174d1e4117da13083928a57e9bd6a52be25b9ccadee620315742f8e6b9430")
version("2.5.0", sha256="3b5791ff02e415fec9fd8ddd7e8e7e35977e1aec51efae39509cf4709dfd2252")
version("2.4.2", sha256="469d9b92d078fd621ea2c67383de10457811a1348a64b08fb585fc3a3e1046c1")
version("2.4.1", sha256="943199e8a45ae3c48c6d411f810b7ff8f0789db64a9149709e549678cff0b630")
version("2.4.0", sha256="8488f12a87080571837809b364864ce4ef079398089b6ea071def30ae43941aa")
version("2.3.4", sha256="a4e932170804c8da5ebb41e819d5b3b5484ccfd54b2dcf39e1a1c0ace50b19b7")
version("2.3.3", sha256="60c5ba00894c809e2c31018bccf22935a9e1f51c0184468efbdd5d27b211009f") version("2.3.3", sha256="60c5ba00894c809e2c31018bccf22935a9e1f51c0184468efbdd5d27b211009f")
variant( variant(
@ -28,18 +36,38 @@ class Professor(Package):
depends_on("eigen") depends_on("eigen")
depends_on("py-cython") depends_on("py-cython")
depends_on("py-iminuit") depends_on("py-iminuit")
depends_on("py-iminuit@2:", when="@2.4.0:")
depends_on("py-matplotlib") depends_on("py-matplotlib")
depends_on("py-matplotlib backend=wx", when="+interactive") depends_on("py-matplotlib backend=wx", when="+interactive")
depends_on("root") depends_on("root")
depends_on("gmake", type="build") depends_on("gmake", type="build")
depends_on("py-pip", type="build", when="@2.3.4:")
depends_on("py-setuptools", type="build", when="@2.3.4:")
extends("python") extends("python")
def url_for_version(self, version):
if self.spec.satisfies("@2.4:"):
return f"https://gitlab.com/hepcedar/professor/-/archive/professor-{version}/professor-professor-{version}.tar.gz"
else:
return f"https://professor.hepforge.org/downloads/?f=Professor-{version}.tar.gz"
def setup_build_environment(self, env: EnvironmentModifications) -> None: def setup_build_environment(self, env: EnvironmentModifications) -> None:
env.set("PROF_VERSION", self.spec.version) env.set("PROF_VERSION", self.spec.version)
@run_before("install")
def configure(self):
if self.spec.satisfies("@2.5.0:"):
with working_dir(self.stage.source_path):
Executable("./configure")(
f"--prefix={self.prefix}", f"--with-eigen={self.spec['eigen'].prefix}"
)
def install(self, spec, prefix): def install(self, spec, prefix):
make() with working_dir(self.stage.source_path):
make("PREFIX={0}".format(prefix), "install") # Makefile sets PROF_ROOT to PWD but that is not set for root user in CI
if self.spec.satisfies("~interactive"): with spack.util.environment.set_env(PWD=self.stage.source_path):
os.remove(join_path(prefix.bin, "prof2-I")) make()
make(f"PREFIX={prefix}", "install")
if self.spec.satisfies("~interactive"):
os.remove(join_path(prefix.bin, "prof2-I"))