summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/apptainer/package.py27
-rw-r--r--var/spack/repos/builtin/packages/e2fsprogs/package.py26
-rw-r--r--var/spack/repos/builtin/packages/fuse-overlayfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/gocryptfs/package.py24
-rw-r--r--var/spack/repos/builtin/packages/squashfuse/package.py2
5 files changed, 80 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/apptainer/package.py b/var/spack/repos/builtin/packages/apptainer/package.py
index a2e3711226..28743ac95a 100644
--- a/var/spack/repos/builtin/packages/apptainer/package.py
+++ b/var/spack/repos/builtin/packages/apptainer/package.py
@@ -4,6 +4,9 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+from glob import glob
+from os.path import basename
+
from spack.package import *
from spack.pkg.builtin.singularityce import SingularityBase
@@ -33,6 +36,7 @@ class Apptainer(SingularityBase):
)
version("main", branch="main")
+ version("1.3.1", sha256="6956c689c4a8f148789c5c34b33c15ad8f3460b4cee3f48022119fd872eacee9")
version("1.2.5", sha256="606b67ef97683e1420401718687d258b1034fdf2edae72eeacd0828dffbfc2c2")
version("1.1.9", sha256="c615777539154288542cf393d3fd44c04ccb3260bc6330dc324d4e4ebe902bfa")
version("1.1.7", sha256="e6d3956a26c3965703402e17f153ba07f59bf710068806462b314d2d04e825e7")
@@ -42,8 +46,15 @@ class Apptainer(SingularityBase):
version("1.1.3", sha256="c7bf7f4d5955e1868739627928238d02f94ca9fd0caf110b0243d65548427899")
version("1.0.2", sha256="2d7a9d0a76d5574459d249c3415e21423980d9154ce85e8c34b0600782a7dfd3")
+ depends_on("e2fsprogs@1.47:+fuse2fs", type="run")
depends_on("go@1.17.5:", when="@1.1.0:")
+ depends_on("go@1.19:", when="@1.2:")
+ depends_on("go@1.20:", when="@1.3:")
+ depends_on("gocryptfs@2.4:", type="run", when="@1.3:")
depends_on("squashfuse", type="run")
+ depends_on("squashfuse@0.5.1:", type="run", when="@1.3:")
+ depends_on("fuse-overlayfs", type="run")
+ depends_on("fuse-overlayfs@1.13:", type="run", when="@1.3:")
singularity_org = "apptainer"
singularity_name = "apptainer"
@@ -65,3 +76,19 @@ class Apptainer(SingularityBase):
# Certain go modules this build pulls in cannot be built with anything
# other than -O0. Best to just discard any injected flags.
return (None, flags, None)
+
+ # They started vendoring the fuse bits and assume they'll be in the
+ # libexec/apptainer prefix as a result. When singularity is run with
+ # suid it doesn't search the user's $PATH for security reasons.
+ # Since we don't use the vendored deps and instead install them in
+ # their own prefixes they are not found by default.
+ # This is likely only relevant for 1.3:, but it should be fine everywhere
+ @run_after("install")
+ def fix_binary_path(self):
+ for i in [
+ s for s in ["e2fsprogs", "gocryptfs", "squashfuse", "fuse-overlayfs"] if s in self.spec
+ ]:
+ for binary in glob(join_path(self.spec[i].prefix.bin, "*")):
+ symlink(
+ binary, join_path(self.spec.prefix.libexec.apptainer.bin, basename(binary))
+ )
diff --git a/var/spack/repos/builtin/packages/e2fsprogs/package.py b/var/spack/repos/builtin/packages/e2fsprogs/package.py
index 5560a5348d..44d472051f 100644
--- a/var/spack/repos/builtin/packages/e2fsprogs/package.py
+++ b/var/spack/repos/builtin/packages/e2fsprogs/package.py
@@ -15,14 +15,38 @@ class E2fsprogs(AutotoolsPackage):
license("GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND MIT")
+ version("1.47.1", sha256="db95ff1cb6ef741c9aa8875d9f3f52a34168360febba765b6377b80bada09a8c")
+ version("1.47.0", sha256="74c8ea97c73294edc6c11dc5e7fbb4324f86c28efd66ad0ba50be4eec8a48be2")
version("1.45.6", sha256="d785164a2977cd88758cb0cac5c29add3fe491562a60040cfb193abcd0f9609b")
version("1.45.5", sha256="0fd76e55c1196c1d97a2c01f2e84f463b8e99484541b43ff4197f5a695159fd3")
+ variant("fuse2fs", default=False, description="Build fuse2fs")
+
depends_on("texinfo", type="build")
+ depends_on("fuse", when="+fuse2fs")
+
+ # fuse3 support is in the yet unreleased 1.47.1
+ patch(
+ "https://github.com/tytso/e2fsprogs/commit/5598a96.patch?full_index=1",
+ sha256="72b28eb4599dbae45a01a1518ab6b8b6fc23db4f67381b49f63d3a3d45822340",
+ when="@:1.47.0 +fuse2fs",
+ )
+ patch(
+ "https://github.com/tytso/e2fsprogs/commit/1ac0061.patch?full_index=1",
+ sha256="c5fbcd4e6d7f29d083d923b33998d916e2059b8f108c8cc20e8b5c928186eef2",
+ when="@:1.47.0 +fuse2fs",
+ )
+ patch(
+ "https://github.com/tytso/e2fsprogs/commit/448a3f8.patch?full_index=1",
+ sha256="fb45c3af229b49fab19c70c00c33b9f3579a9455025aedb8049ff411b1cf3a96",
+ when="@:1.47.0 +fuse2fs",
+ )
def setup_run_environment(self, env):
env.prepend_path("PATH", self.prefix.sbin)
def configure_args(self):
# avoid installing things in /etc
- return ["--without-udev-rules-dir", "--without-crond-dir", "--without-systemd-unit-dir"]
+ args = ["--without-udev-rules-dir", "--without-crond-dir", "--without-systemd-unit-dir"]
+ args.extend(self.enable_or_disable("fuse2fs"))
+ return args
diff --git a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
index 18112758dc..4abdd52992 100644
--- a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
+++ b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
@@ -15,6 +15,7 @@ class FuseOverlayfs(AutotoolsPackage):
license("GPL-2.0-or-later")
+ version("1.13", sha256="96d10344921d5796bcba7a38580ae14a53c4e60399bb90b238ac5a10b3bb65b2")
version("1.10", sha256="4351eaed7cf26a5012c14c6e0fc883ef65a7b5dcc95ba129ce485904106c25a9")
version("1.7.1", sha256="fe2c076aed7b8669e7970301a99c0b197759b611035d8199de4c0add7d2fb2b4")
version("1.7", sha256="e4d9a794d270e237a38e7ced95af95ad15268e0584eab981ed7c7b3758b95995")
@@ -33,3 +34,4 @@ class FuseOverlayfs(AutotoolsPackage):
depends_on("m4", type="build")
depends_on("pkgconfig", type="build")
depends_on("fuse")
+ depends_on("libfuse@3.2.1:", when="^[virtuals=fuse] libfuse")
diff --git a/var/spack/repos/builtin/packages/gocryptfs/package.py b/var/spack/repos/builtin/packages/gocryptfs/package.py
new file mode 100644
index 0000000000..7bd64762da
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gocryptfs/package.py
@@ -0,0 +1,24 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack.package import *
+
+
+class Gocryptfs(GoPackage):
+ """Encrypted overlay filesystem written in Go"""
+
+ homepage = "https://nuetzlich.net/gocryptfs/"
+ url = (
+ "https://github.com/rfjakob/gocryptfs/releases/download/v2.4.0/gocryptfs_v2.4.0_src.tar.gz"
+ )
+
+ maintainers("snehring")
+
+ license("MIT", checked_by="snehring")
+
+ version("2.4.0", sha256="26a93456588506f4078f192b70e7816b6a4042a14b748b28a50d2b6c9b10e2ec")
+
+ depends_on("openssl")
+ depends_on("pkg-config", type="build")
diff --git a/var/spack/repos/builtin/packages/squashfuse/package.py b/var/spack/repos/builtin/packages/squashfuse/package.py
index 0c1ce20c62..5bac685126 100644
--- a/var/spack/repos/builtin/packages/squashfuse/package.py
+++ b/var/spack/repos/builtin/packages/squashfuse/package.py
@@ -18,6 +18,8 @@ class Squashfuse(AutotoolsPackage):
license("BSD-2-Clause")
version("master", branch="master")
+ version("0.5.2", sha256="54e4baaa20796e86a214a1f62bab07c7c361fb7a598375576d585712691178f5")
+ version("0.5.1", sha256="4dd81ea10323078193e5435ad8481b59f3ac8539648ddc732bcaea50b13966c9")
version("0.5.0", sha256="d7602c7a3b1d0512764547d27cb8cc99d1b21181e1c9819e76461ee96c2ab4d9")
version("0.4.0", sha256="646e31449b7914d2404933aea88f8d5f72c5d135d7deae3370ccb394c40d114a")
version("0.2.0", sha256="e8eea1b013b41d0a320e5a07b131bc70df14e6b3f2d3a849bdee66d100186f4f")