summaryrefslogtreecommitdiff
path: root/user/spack
diff options
context:
space:
mode:
Diffstat (limited to 'user/spack')
-rw-r--r--user/spack/APKBUILD79
-rw-r--r--user/spack/clingo-explicit-libatomic.patch12
-rw-r--r--user/spack/config.yaml22
-rw-r--r--user/spack/default-adelie-upstream-git.patch27
-rw-r--r--user/spack/default-no-buildcache.patch13
-rw-r--r--user/spack/openssl-explicit-linux-headers.patch12
-rw-r--r--user/spack/spack.post-install28
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