diff options
Diffstat (limited to 'user/spack')
-rw-r--r-- | user/spack/APKBUILD | 79 | ||||
-rw-r--r-- | user/spack/clingo-explicit-libatomic.patch | 12 | ||||
-rw-r--r-- | user/spack/config.yaml | 22 | ||||
-rw-r--r-- | user/spack/default-adelie-upstream-git.patch | 27 | ||||
-rw-r--r-- | user/spack/default-no-buildcache.patch | 13 | ||||
-rw-r--r-- | user/spack/openssl-explicit-linux-headers.patch | 12 | ||||
-rw-r--r-- | user/spack/spack.post-install | 28 |
7 files changed, 193 insertions, 0 deletions
diff --git a/user/spack/APKBUILD b/user/spack/APKBUILD new file mode 100644 index 000000000..71f7331c3 --- /dev/null +++ b/user/spack/APKBUILD @@ -0,0 +1,79 @@ +# Contributor: Zach van Rijn <me@zv.io> +# Maintainer: Zach van Rijn <me@zv.io> +pkgname=spack +pkgver=0.23.0_p1 +pkgrel=0 +pkgdesc="A flexible package manager for supercomputers." +url="https://spack.io/" +arch="all" +license="Apache-2.0 OR MIT" +options="!dbg !strip !fhs" +makedepends="python3-dev" +depends="$makedepends + gcc g++ gfortran + bzip2 file git gnupg gzip libarchive-tools make patch unzip xz + " +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 + clingo-explicit-libatomic.patch + openssl-explicit-linux-headers.patch + + default-no-buildcache.patch + default-adelie-upstream-git.patch + + config.yaml + " +install="$pkgname.post-install" +builddir="${srcdir}/${pkgname}-adelie-v${pkgver}" + +prepare() +{ + default_prepare + + # disable binary bootstrap + sed -i etc/spack/defaults/bootstrap.yaml -e '/github-actions/d'; + + # delete windows files + find bin \( -name '*.ps1' -o -name '*.py' -o -name '*.bat' \) -delete; +} + +check() { + ## + # On first run, Spack >=0.17.0 will bootstrap "clingo", + # Spack's new "concretizer". The output from this process + # is not kept, however it demonstrates Spack's functionality. + # + # The '--deprecated' flag is to prevent an interactive prompt + # warning about "deprecated" packages and/or versions. Order + # is important; it must come after the 'install' verb. + # + export SPACK_DISABLE_LOCAL_CONFIG=true + export SPACK_USER_CONFIG_PATH=${builddir}/tmp + export SPACK_USER_CACHE_PATH=${builddir}/tmp + bin/spack --debug install --deprecated zlib + + rm -fr var/spack/cache + rm -fr etc/spack/linux # caches compilers.yaml +} + +package() { + install -m755 -d "${pkgdir}"/opt/spack; + for k in bin etc lib share var; do + mv "${k}" "${pkgdir}"/opt/spack; + done + + for k in LICENSE-APACHE LICENSE-MIT NOTICE; do + install -Dm644 ${k} "${pkgdir}"/usr/share/licenses/${pkgname}/${k}; + done + + # lower precedence than /opt/spack/etc/spack/config.yaml + install -D -m644 "${srcdir}"/config.yaml "$pkgdir"/etc/spack/config.yaml; +} + +sha512sums="c40eb2ce32a7a432474c76ec76cda3a2830b7e9668d1dd76bf491d09d4bea6902e24f1fbff3c39ac67d2c0dd1f89560662a2828f9516ed99df8dc8bbd01afe6d spack-adelie-v0.23.0_p1.tar.bz2 +a84df22016109bb8d86b5215b698251a5b10873042361c8bab79e4235e00f381a2d66cbfd84ce6b7933125971f3248008124ef7f7ad85451bf72b815c5b56aa0 clingo-explicit-libatomic.patch +8ded405082eec192187fb72896c68200985ee1226b2ef7da19ab43f31138972d5b4000cf997cb6e22664a7c100b52b842df07c44e188f87d4250f698d1885ea6 openssl-explicit-linux-headers.patch +eec3e7dd818c39daea7b8d63b04a6c71d9eb3af32dd899cddc3642152252f4e2eebfd53c3c95365117f9a4826f6f29553f44373948e5c474388021302c8a5ce9 default-no-buildcache.patch +eb09ce82d2c5c63c2cc63b2f82db2888f15ce82100311614f5a73773be2f605337811c4580e0d4eb2f87b730e7ce4afa6dcdc3f3f52321f63a29a2ad533ea5d4 default-adelie-upstream-git.patch +864ae8e73cd80560ed9c4ce03bc6ae8f58b928da348a261617e42b6a680f8cf18f48b120401fe7b4a3f3af260675922044dbd9abbc79b1d2e90f821c00569d5e config.yaml" diff --git a/user/spack/clingo-explicit-libatomic.patch b/user/spack/clingo-explicit-libatomic.patch new file mode 100644 index 000000000..60bf83c5d --- /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 73ff2b1769..40c2c61dfc 100644 +--- a/var/spack/repos/builtin/packages/clingo/package.py ++++ b/var/spack/repos/builtin/packages/clingo/package.py +@@ -118,6 +118,7 @@ def cmake_args(self): + self.define("PYCLINGO_USE_INSTALL_PREFIX", True), + self.define("PYCLINGO_INSTALL_DIR", python_platlib), + self.define("PYCLINGO_SUFFIX", suffix), ++ self.define("CMAKE_CXX_STANDARD_LIBRARIES", "-latomic"), + self.cmake_py_shared, + ] + else: diff --git a/user/spack/config.yaml b/user/spack/config.yaml new file mode 100644 index 000000000..c7ffefb41 --- /dev/null +++ b/user/spack/config.yaml @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------- +# This is the Adélie spack configuration file. +# +# Settings here are versioned with Adélie and are intended to provide +# sensible defaults out of the box. Adélie maintainers should edit this +# file to keep it current. +# +# Users can override these settings by editing the following files. +# +# Per-spack-instance settings (overrides defaults): +# /opt/spack/etc/spack/config.yaml +# +# Per-user settings (overrides default and site settings): +# ~/.spack/config.yaml +# ------------------------------------------------------------------------- + +config: + + install_tree: + root: $user_cache_path + + source_cache: $user_cache_path/cache diff --git a/user/spack/default-adelie-upstream-git.patch b/user/spack/default-adelie-upstream-git.patch new file mode 100644 index 000000000..cf8e982dd --- /dev/null +++ b/user/spack/default-adelie-upstream-git.patch @@ -0,0 +1,27 @@ +diff --git a/lib/spack/spack/cmd/clone.py b/lib/spack/spack/cmd/clone.py +index ade3c2a739..610ef78ea1 100644 +--- a/lib/spack/spack/cmd/clone.py ++++ b/lib/spack/spack/cmd/clone.py +@@ -12,7 +12,7 @@ + import spack.util.git + from spack.util.executable import ProcessError + +-_SPACK_UPSTREAM = "https://github.com/spack/spack" ++_SPACK_UPSTREAM = "https://git.adelielinux.org/adelie/spack.git" + + description = "create a new installation of spack in another prefix" + section = "admin" +@@ -37,10 +37,10 @@ def get_origin_info(remote): + try: + branch = git("symbolic-ref", "--short", "HEAD", output=str) + except ProcessError: +- branch = "develop" ++ branch = "adelie" + tty.warn("No branch found; using default branch: %s" % branch) +- if remote == "origin" and branch not in ("master", "develop"): +- branch = "develop" ++ if remote == "origin" and branch not in ("master", "develop", "adelie"): ++ branch = "adelie" + tty.warn("Unknown branch found; using default branch: %s" % branch) + try: + origin_url = git( diff --git a/user/spack/default-no-buildcache.patch b/user/spack/default-no-buildcache.patch new file mode 100644 index 000000000..f0cd1bb1f --- /dev/null +++ b/user/spack/default-no-buildcache.patch @@ -0,0 +1,13 @@ +diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py +index 3f9a948a23..bc46e98395 100644 +--- a/lib/spack/spack/cmd/install.py ++++ b/lib/spack/spack/cmd/install.py +@@ -120,7 +120,7 @@ def setup_parser(subparser): + "--use-cache", + action="store_true", + dest="use_cache", +- default=True, ++ default=False, + help="check for pre-built Spack packages in mirrors (default)", + ) + cache_group.add_argument( diff --git a/user/spack/openssl-explicit-linux-headers.patch b/user/spack/openssl-explicit-linux-headers.patch new file mode 100644 index 000000000..763be9df3 --- /dev/null +++ b/user/spack/openssl-explicit-linux-headers.patch @@ -0,0 +1,12 @@ +diff --git a/var/spack/repos/builtin/packages/openssl/package.py b/var/spack/repos/builtin/packages/openssl/package.py +index 21b076856a..e73c60a7c1 100644 +--- a/var/spack/repos/builtin/packages/openssl/package.py ++++ b/var/spack/repos/builtin/packages/openssl/package.py +@@ -380,6 +380,7 @@ class Openssl(Package): # Uses Fake Autotools, should subclass Package + depends_on("perl@5.14.0:", type=("build", "test")) + depends_on("ca-certificates-mozilla", type="build", when="certs=mozilla") + depends_on("nasm", when="platform=windows") ++ depends_on("linux-headers", when="platform=linux") + + patch( + "https://github.com/openssl/openssl/commit/f9e578e720bb35228948564192adbe3bc503d5fb.patch?full_index=1", diff --git a/user/spack/spack.post-install b/user/spack/spack.post-install new file mode 100644 index 000000000..e627b96da --- /dev/null +++ b/user/spack/spack.post-install @@ -0,0 +1,28 @@ +#!/bin/sh -e + +cat <<EOF +* +* Welcome to Spack on the Adélie Linux platform, the first +* musl-based distribution for supercomputers. +* +* Please keep in mind that binary mirrors are not currently +* available for this platform, so all packages will need to +* be built from source, including the initial bootstrap. +* +* +* The Spack environment is obtained by sourcing: +* +* $ . /opt/spack/share/spack/setup-env.sh +* +* +* Documentation: +* +* https://spack.readthedocs.io/ +* +* +* Report Adélie-specific Spack issues: +* +* https://git.adelielinux.org/adelie/spack/-/issues +* https://git.adelielinux.org/adelie/packages/-/issues +* +EOF |