From c0fc05cf64707a5fdfe05c2e4f0ee57ca20df909 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 19 Jul 2026 12:57:30 -0500 Subject: [PATCH 1/6] professor: add v2.5.6 --- .../builtin/packages/professor/package.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/repos/spack_repo/builtin/packages/professor/package.py b/repos/spack_repo/builtin/packages/professor/package.py index 67709dea16e..a1ff2c6037e 100644 --- a/repos/spack_repo/builtin/packages/professor/package.py +++ b/repos/spack_repo/builtin/packages/professor/package.py @@ -13,9 +13,14 @@ class Professor(Package): homepage = "https://professor.hepforge.org/" url = "https://professor.hepforge.org/downloads/?f=Professor-2.3.3.tar.gz" + git = "https://gitlab.com/hepcedar/professor" + list_url = "https://professor.hepforge.org/downloads/" maintainers("mjk655") + version("2.5.6", sha256="7537f23078bd56f00e67e1f96c7a24026b255cc26907ad5d5234b8371e49b3c7") + version("2.4.2", sha256="d1a602f2301dac5a165d8cb5baf31d8a1a3d92f30a7069cda66b98c595a4fa21") + version("2.3.4", sha256="2c293479342d3a74a6261e7139677bf3580ec34c7bc6a389854fc26497c65ad8") version("2.3.3", sha256="60c5ba00894c809e2c31018bccf22935a9e1f51c0184468efbdd5d27b211009f") variant( @@ -25,6 +30,8 @@ class Professor(Package): ) depends_on("cxx", type="build") # generated + depends_on("gmake", type="build") + depends_on("py-pip", type="build") depends_on("yoda") depends_on("eigen") @@ -33,15 +40,20 @@ class Professor(Package): depends_on("py-matplotlib") depends_on("py-matplotlib backend=wx", when="+interactive") depends_on("root") - depends_on("gmake", type="build") extends("python") + def patch(self): + filter_file("PROF_ROOT=$(PWD)", "PROF_ROOT=$(CURDIR)", "Makefile", string=True) + def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PROF_VERSION", self.spec.version) def install(self, spec, prefix): - make() - make("PREFIX={0}".format(prefix), "install") + with working_dir(self.stage.source_path): + configure = Executable("./configure") + configure("--prefix={0}".format(prefix), "--with-eigen={0}".format(spec["eigen"].prefix)) + make() + make("PREFIX={0}".format(prefix), "install") if self.spec.satisfies("~interactive"): os.remove(join_path(prefix.bin, "prof2-I")) From 3d101d4a2b49c3c95eefbcef91babb1191251de1 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 19 Jul 2026 13:03:38 -0500 Subject: [PATCH 2/6] professor: fix style --- repos/spack_repo/builtin/packages/professor/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/professor/package.py b/repos/spack_repo/builtin/packages/professor/package.py index a1ff2c6037e..b247e441f7e 100644 --- a/repos/spack_repo/builtin/packages/professor/package.py +++ b/repos/spack_repo/builtin/packages/professor/package.py @@ -52,7 +52,9 @@ def setup_build_environment(self, env: EnvironmentModifications) -> None: def install(self, spec, prefix): with working_dir(self.stage.source_path): configure = Executable("./configure") - configure("--prefix={0}".format(prefix), "--with-eigen={0}".format(spec["eigen"].prefix)) + configure( + "--prefix={0}".format(prefix), "--with-eigen={0}".format(spec["eigen"].prefix) + ) make() make("PREFIX={0}".format(prefix), "install") if self.spec.satisfies("~interactive"): From 239d4bc602bc70f3dfea8c6c8881801472e01dd9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Sun, 19 Jul 2026 13:08:49 -0500 Subject: [PATCH 3/6] professor: rm incorrect anubis checksums --- repos/spack_repo/builtin/packages/professor/package.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/repos/spack_repo/builtin/packages/professor/package.py b/repos/spack_repo/builtin/packages/professor/package.py index b247e441f7e..2d7d6900520 100644 --- a/repos/spack_repo/builtin/packages/professor/package.py +++ b/repos/spack_repo/builtin/packages/professor/package.py @@ -19,8 +19,6 @@ class Professor(Package): maintainers("mjk655") version("2.5.6", sha256="7537f23078bd56f00e67e1f96c7a24026b255cc26907ad5d5234b8371e49b3c7") - version("2.4.2", sha256="d1a602f2301dac5a165d8cb5baf31d8a1a3d92f30a7069cda66b98c595a4fa21") - version("2.3.4", sha256="2c293479342d3a74a6261e7139677bf3580ec34c7bc6a389854fc26497c65ad8") version("2.3.3", sha256="60c5ba00894c809e2c31018bccf22935a9e1f51c0184468efbdd5d27b211009f") variant( From 322a224bbaf7abde1e72da0dc12d92d9162e1816 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 20 Jul 2026 12:43:28 -0500 Subject: [PATCH 4/6] HEP: re-enable professor in stack --- stacks/hep/spack.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stacks/hep/spack.yaml b/stacks/hep/spack.yaml index 6d7a2dc8752..6df9c49c0ae 100644 --- a/stacks/hep/spack.yaml +++ b/stacks/hep/spack.yaml @@ -118,7 +118,7 @@ spack: - pandorasdk - photos +hepmc3 - podio +rntuple +sio - #- professor + - professor - py-awkward - py-boost-histogram - py-dask-awkward ~io From d239a65b347f5adc0884a489ea4451df16553c7b Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 20 Jul 2026 12:54:36 -0500 Subject: [PATCH 5/6] professor: depends_on py-iminuit@2 and limit configure to @2.5 --- .../spack_repo/builtin/packages/professor/package.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/professor/package.py b/repos/spack_repo/builtin/packages/professor/package.py index 2d7d6900520..f84a6d36e90 100644 --- a/repos/spack_repo/builtin/packages/professor/package.py +++ b/repos/spack_repo/builtin/packages/professor/package.py @@ -35,6 +35,7 @@ class Professor(Package): depends_on("eigen") depends_on("py-cython") depends_on("py-iminuit") + depends_on("py-iminuit@2:", when="@2.4:") depends_on("py-matplotlib") depends_on("py-matplotlib backend=wx", when="+interactive") depends_on("root") @@ -47,12 +48,14 @@ def patch(self): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PROF_VERSION", self.spec.version) + @when("@2.5.0:") + def configure(self, spec, prefix): + with working_dir(self.stage.source_path): + configure = Executable("configure") + configure(f"--prefix={prefix}", f"--with-eigen={self.spec['eigen'].prefix}") + def install(self, spec, prefix): with working_dir(self.stage.source_path): - configure = Executable("./configure") - configure( - "--prefix={0}".format(prefix), "--with-eigen={0}".format(spec["eigen"].prefix) - ) make() make("PREFIX={0}".format(prefix), "install") if self.spec.satisfies("~interactive"): From 308ac5d9995ddc2e3c216c1e93ddb10333c16f63 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Mon, 20 Jul 2026 12:58:53 -0500 Subject: [PATCH 6/6] professor: run_before when for configure --- repos/spack_repo/builtin/packages/professor/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/professor/package.py b/repos/spack_repo/builtin/packages/professor/package.py index f84a6d36e90..9da71472dee 100644 --- a/repos/spack_repo/builtin/packages/professor/package.py +++ b/repos/spack_repo/builtin/packages/professor/package.py @@ -48,7 +48,7 @@ def patch(self): def setup_build_environment(self, env: EnvironmentModifications) -> None: env.set("PROF_VERSION", self.spec.version) - @when("@2.5.0:") + @run_before("install", when="@2.5.0:") def configure(self, spec, prefix): with working_dir(self.stage.source_path): configure = Executable("configure")