From 843d1bfd0f5f0fbb008728fe68e62c017d89d84a Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Thu, 2 Nov 2023 10:37:45 -0500 Subject: user/spack: support all targets. * ppc requires explicit -latomic; this patch fixes adelie/spack#6 for both the initial clingo bootstrap and 'spack install clingo' * fix regression where all targets not supported by golang/rust could not be bootstrapped; this patch fixes adelie/spack#7 * pmmx still requires the archspec patch; fixes #794 * enable debug output during bootstrap build * disable buildcache by default (do not attempt to pull binaries) * fix package paths --- user/spack/40841.patch | 38 ++++++++++++++++++++++++++++++ user/spack/APKBUILD | 37 ++++++++++++++++------------- user/spack/clingo-explicit-libatomic.patch | 12 ++++++++++ 3 files changed, 71 insertions(+), 16 deletions(-) create mode 100644 user/spack/40841.patch create mode 100644 user/spack/clingo-explicit-libatomic.patch diff --git a/user/spack/40841.patch b/user/spack/40841.patch new file mode 100644 index 000000000..fb63b32e9 --- /dev/null +++ b/user/spack/40841.patch @@ -0,0 +1,38 @@ +From fcf9e19a418b9db1fa517b98d087a5e387d1af8f Mon Sep 17 00:00:00 2001 +From: Harmen Stoppels +Date: Thu, 2 Nov 2023 13:17:14 +0100 +Subject: [PATCH] go/rust bootstrap: no versions if unsupported arch + +The lookup in a dictionary causes KeyError on package load for +unsupported architectures such as i386 and ppc big endian. +--- + var/spack/repos/builtin/packages/go-bootstrap/package.py | 2 +- + var/spack/repos/builtin/packages/rust-bootstrap/package.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/var/spack/repos/builtin/packages/go-bootstrap/package.py b/var/spack/repos/builtin/packages/go-bootstrap/package.py +index 047f9f3353b93..4f5c8f0073243 100644 +--- a/var/spack/repos/builtin/packages/go-bootstrap/package.py ++++ b/var/spack/repos/builtin/packages/go-bootstrap/package.py +@@ -59,7 +59,7 @@ class GoBootstrap(Package): + + # determine system os and architecture/target + os = platform.system().lower() +- target = go_targets[platform.machine().lower()] ++ target = go_targets.get(platform.machine().lower(), platform.machine().lower()) + + # construct releases for current system configuration + for release in go_releases: +diff --git a/var/spack/repos/builtin/packages/rust-bootstrap/package.py b/var/spack/repos/builtin/packages/rust-bootstrap/package.py +index 84100bf2424a1..337618e20e38f 100644 +--- a/var/spack/repos/builtin/packages/rust-bootstrap/package.py ++++ b/var/spack/repos/builtin/packages/rust-bootstrap/package.py +@@ -73,7 +73,7 @@ class RustBootstrap(Package): + + # Determine system os and architecture/target. + os = platform.system().lower() +- target = rust_targets[platform.machine().lower()] ++ target = rust_targets.get(platform.machine().lower(), platform.machine().lower()) + + # Pre-release versions of the bootstrap compiler. + # Note: These versions are unchecksumed since they will change diff --git a/user/spack/APKBUILD b/user/spack/APKBUILD index ee963fd25..ef1b8250f 100644 --- a/user/spack/APKBUILD +++ b/user/spack/APKBUILD @@ -2,10 +2,10 @@ # Maintainer: Zach van Rijn pkgname=spack pkgver=0.20.3_p1 -pkgrel=0 +pkgrel=1 pkgdesc="A flexible package manager for supercomputers." url="https://spack.io/" -arch="all !ppc" # see #794 +arch="all" license="Apache-2.0 OR MIT" options="!dbg !strip" makedepends="python3-dev" @@ -16,8 +16,11 @@ depends="$makedepends subpackages="" # https://git.adelielinux.org/adelie/docs/-/wikis/Developer-Resources/Maintaining-Spack source="https://git.adelielinux.org/adelie/$pkgname/-/archive/adelie-v$pkgver/$pkgname-adelie-v$pkgver.tar.bz2 - default-no-buildcache.patch + 40841.patch + clingo-explicit-libatomic.patch archspec-fix-cpu-family-detection.patch + + default-no-buildcache.patch " builddir="$srcdir/$pkgname-adelie-v$pkgver" @@ -38,25 +41,27 @@ check() { export SPACK_DISABLE_LOCAL_CONFIG=true export SPACK_USER_CONFIG_PATH=$builddir/tmp export SPACK_USER_CACHE_PATH=$builddir/tmp - bin/spack install zlib + bin/spack --debug install zlib rm -fr var/spack/cache rm -fr etc/spack/linux # caches compilers.yaml } package() { - for k in etc lib share var; do - mkdir -p "$pkgdir"/${k}; - cp -r ${k}/spack "$pkgdir"/${k}; + find bin \( -name '*.ps1' -o -name '*.py' -o -name '*.bat' \) -delete; + + install -m755 -d "$pkgdir"/usr; + for k in bin share lib; do + mv ${k} "$pkgdir"/usr/${k}; + done + + for k in etc var; do + install -m755 -d "$pkgdir"/${k}; + mv ${k}/spack "$pkgdir"/${k}; done - mkdir -p "$pkgdir"/bin - install \ - bin/sbang \ - bin/spack \ - bin/spack-python \ - "$pkgdir"/bin \ - ; } sha512sums="9629ee48d4f93158c4c2d3f14bc8755e33df1a82428337fc27495b7bbfba3f056c193b95bcb9f90025d89c7759fcf2ef09a1f1639880a8db87a786ee1bd138e2 spack-adelie-v0.20.3_p1.tar.bz2 -eec3e7dd818c39daea7b8d63b04a6c71d9eb3af32dd899cddc3642152252f4e2eebfd53c3c95365117f9a4826f6f29553f44373948e5c474388021302c8a5ce9 default-no-buildcache.patch -a6503238d116b74ff9c4ecd08a984df90ce02f95c3e10e907481d99917c73339db1cc49f2b473a37875b92a9a6607cac72057c0a7b3d9a57d44c89ebe0ad3915 archspec-fix-cpu-family-detection.patch" +195d9dd1da12be338169a4a2a0b12fece1fefd4ac6570111913ce0d50a8e007fc3320340573cee760d1eab55dddfcf7eed04221bd686a59d18d0ab2ef46f65a0 40841.patch +30f6d193971bc6f2941141d0da50d339c459f2b9c6157cc2659a589bd2b546fba35d580cad79dd1bc74bcd9de7db31bc937418598d73b68c69876fee6a1c5c73 clingo-explicit-libatomic.patch +a6503238d116b74ff9c4ecd08a984df90ce02f95c3e10e907481d99917c73339db1cc49f2b473a37875b92a9a6607cac72057c0a7b3d9a57d44c89ebe0ad3915 archspec-fix-cpu-family-detection.patch +eec3e7dd818c39daea7b8d63b04a6c71d9eb3af32dd899cddc3642152252f4e2eebfd53c3c95365117f9a4826f6f29553f44373948e5c474388021302c8a5ce9 default-no-buildcache.patch" diff --git a/user/spack/clingo-explicit-libatomic.patch b/user/spack/clingo-explicit-libatomic.patch new file mode 100644 index 000000000..6a1d1a0aa --- /dev/null +++ b/user/spack/clingo-explicit-libatomic.patch @@ -0,0 +1,12 @@ +diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py +index ab5fe9a043..8a31208850 100644 +--- a/var/spack/repos/builtin/packages/clingo/package.py ++++ b/var/spack/repos/builtin/packages/clingo/package.py +@@ -120,6 +120,7 @@ def cmake_args(self): + "-DCLINGO_BUILD_WITH_PYTHON=ON", + "-DPYCLINGO_USER_INSTALL=OFF", + "-DPYCLINGO_USE_INSTALL_PREFIX=ON", ++ "-DCMAKE_CXX_STANDARD_LIBRARIES=-latomic", + self.cmake_py_shared, + ] + if self.spec["cmake"].satisfies("@3.16.0:"): -- cgit v1.2.3-60-g2f50