From e7ebb4c36a34d3f377f22c3510b12d555a95e89e Mon Sep 17 00:00:00 2001 From: Chris Green Date: Fri, 23 Jun 2023 13:04:24 -0500 Subject: [PATCH 1/5] [range-v3] Remove overbroad boost dependence --- .../repos/builtin/packages/range-v3/package.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/var/spack/repos/builtin/packages/range-v3/package.py b/var/spack/repos/builtin/packages/range-v3/package.py index be0e6004a00b94..14e8e5592b5d0b 100644 --- a/var/spack/repos/builtin/packages/range-v3/package.py +++ b/var/spack/repos/builtin/packages/range-v3/package.py @@ -7,7 +7,6 @@ import shutil from spack.package import * -from spack.pkg.builtin.boost import Boost class RangeV3(CMakePackage): @@ -67,13 +66,16 @@ class RangeV3(CMakePackage): depends_on("cmake@3.6:", type="build") depends_on("doxygen+graphviz", type="build", when="+doc") - depends_on("boost@1.59.0: cxxstd=14", type="build", when="+examples cxxstd=14") - depends_on("boost@1.59.0: cxxstd=17", type="build", when="+examples cxxstd=17") - - # TODO: replace this with an explicit list of components of Boost, - # for instance depends_on('boost +filesystem') - # See https://github.com/spack/spack/pull/22303 for reference - depends_on(Boost.with_default_variants, type="build") + depends_on( + "boost+date_time+program_options@1.59.0: cxxstd=14", + type="build", + when="+examples cxxstd=14", + ) + depends_on( + "boost+date_time+program_options@1.59.0: cxxstd=17", + type="build", + when="+examples cxxstd=17", + ) # Fix reported upstream issue # https://github.com/ericniebler/range-v3/issues/1196 per PR From cbeeb8fa18204d74d051ea61c2bae9b8509b5cee Mon Sep 17 00:00:00 2001 From: Chris Green Date: Wed, 28 Jun 2023 14:26:02 -0500 Subject: [PATCH 2/5] [perl] Variant `opcode` a la `open` to handle deficient externals --- var/spack/repos/builtin/packages/perl/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index c136614f5f4548..08fee6963f8275 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -137,6 +137,7 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package variant("shared", default=True, description="Build a shared libperl.so library") variant("threads", default=True, description="Build perl with threads support") variant("open", default=True, description="Support open.pm") + variant("opcode", default=True, description="Support Opcode.pm") resource( name="cpanm", @@ -200,6 +201,10 @@ def determine_variants(cls, exes, version): fail_on_error=False, ) variants += "+open" if perl.returncode == 0 else "~open" + # this is just to detect incomplete installs + # normally perl installs Opcode.pm + perl("-e", "use Opcode", output=os.devnull, error=os.devnull, fail_on_error=False) + variants += "+opcode" if perl.returncode == 0 else "~opcode" return variants # On a lustre filesystem, patch may fail when files From a1c95cebbc9437038b5c6455d58948bb5af29e00 Mon Sep 17 00:00:00 2001 From: Chris Green Date: Wed, 28 Jun 2023 14:26:38 -0500 Subject: [PATCH 3/5] [postgresql] Opcode.pm is required for perl bindings --- var/spack/repos/builtin/packages/postgresql/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/var/spack/repos/builtin/packages/postgresql/package.py b/var/spack/repos/builtin/packages/postgresql/package.py index baee7139bb1c24..b2b71b94f841e2 100644 --- a/var/spack/repos/builtin/packages/postgresql/package.py +++ b/var/spack/repos/builtin/packages/postgresql/package.py @@ -58,7 +58,7 @@ class Postgresql(AutotoolsPackage): depends_on("libedit", when="lineedit=libedit") depends_on("openssl") depends_on("tcl", when="+tcl") - depends_on("perl", when="+perl") + depends_on("perl+opcode", when="+perl") depends_on("python", when="+python") depends_on("libxml2", when="+xml") From a4a2e57ba7b9e4b2805039edc65c12fa14441848 Mon Sep 17 00:00:00 2001 From: Chris Green Date: Tue, 11 Jul 2023 08:58:07 -0500 Subject: [PATCH 4/5] [cairo] Minimal change for successful build on AL9 --- var/spack/repos/builtin/packages/cairo/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py index 4035728e2e2d40..4886c1dd853644 100644 --- a/var/spack/repos/builtin/packages/cairo/package.py +++ b/var/spack/repos/builtin/packages/cairo/package.py @@ -84,6 +84,7 @@ def configure_args(self): args.extend(self.enable_or_disable("gobject")) args.extend(self.enable_or_disable("ft")) args.extend(self.enable_or_disable("fc")) + args.append("--disable-dependency-tracking") return args From 89a32a05cebe0f642d79035f39c9a61976325af3 Mon Sep 17 00:00:00 2001 From: Chris Green Date: Tue, 11 Jul 2023 13:04:26 -0500 Subject: [PATCH 5/5] [libunwind] GCC >=4.9 required by version >=1.6 for `stdatomic.h` --- var/spack/repos/builtin/packages/libunwind/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/var/spack/repos/builtin/packages/libunwind/package.py b/var/spack/repos/builtin/packages/libunwind/package.py index 39f806486bf52a..301c188d891126 100644 --- a/var/spack/repos/builtin/packages/libunwind/package.py +++ b/var/spack/repos/builtin/packages/libunwind/package.py @@ -88,6 +88,7 @@ class Libunwind(AutotoolsPackage): depends_on("zlib", type="link", when="+zlib") conflicts("platform=darwin", msg="Non-GNU libunwind needs ELF libraries Darwin does not have") + conflicts("%gcc@:4.9", when="@1.6:", msg="libunwind >=1.6 requires stdatomic.h") provides("unwind")