summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam J. Stewart <ajstewart426@gmail.com>2021-05-27 16:21:11 -0500
committerGitHub <noreply@github.com>2021-05-27 23:21:11 +0200
commitef56462867ad87d6f9450f8e9ee45d46f5fda969 (patch)
treeeb3b79d4f96a45d33a8ab66ca3c9d6a47cf7a34b
parentb91dff4aaf0cce52a187c9aef39e241002a1b91d (diff)
downloadspack-ef56462867ad87d6f9450f8e9ee45d46f5fda969.tar.gz
spack-ef56462867ad87d6f9450f8e9ee45d46f5fda969.tar.bz2
spack-ef56462867ad87d6f9450f8e9ee45d46f5fda969.tar.xz
spack-ef56462867ad87d6f9450f8e9ee45d46f5fda969.zip
Add fuse virtual dependency, new macfuse package (#23904)
-rw-r--r--etc/spack/defaults/darwin/packages.yaml10
-rw-r--r--etc/spack/defaults/packages.yaml1
-rw-r--r--var/spack/repos/builtin/packages/fuse-overlayfs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/libfuse/package.py2
-rw-r--r--var/spack/repos/builtin/packages/macfuse/package.py46
-rw-r--r--var/spack/repos/builtin/packages/py-fusepy/package.py1
-rw-r--r--var/spack/repos/builtin/packages/squashfuse/package.py4
-rw-r--r--var/spack/repos/builtin/packages/sshfs/package.py2
8 files changed, 58 insertions, 10 deletions
diff --git a/etc/spack/defaults/darwin/packages.yaml b/etc/spack/defaults/darwin/packages.yaml
index 8ce443a9fd..cd3dca60a3 100644
--- a/etc/spack/defaults/darwin/packages.yaml
+++ b/etc/spack/defaults/darwin/packages.yaml
@@ -21,12 +21,10 @@ packages:
- gcc
- intel
providers:
- elf:
- - libelf
- unwind:
- - apple-libunwind
- uuid:
- - apple-libuuid
+ elf: [libelf]
+ fuse: [macfuse]
+ unwind: [apple-libunwind]
+ uuid: [apple-libuuid]
apple-libunwind:
buildable: false
externals:
diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml
index d42c815fd1..bc6a1c110d 100644
--- a/etc/spack/defaults/packages.yaml
+++ b/etc/spack/defaults/packages.yaml
@@ -24,6 +24,7 @@ packages:
elf: [elfutils]
fftw-api: [fftw, amdfftw]
flame: [libflame, amdlibflame]
+ fuse: [libfuse]
gl: [mesa+opengl, mesa18, opengl]
glu: [mesa-glu, openglu]
glx: [mesa+glx, mesa18+glx, opengl]
diff --git a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
index 81bed7cd1d..81103c3103 100644
--- a/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
+++ b/var/spack/repos/builtin/packages/fuse-overlayfs/package.py
@@ -24,4 +24,4 @@ class FuseOverlayfs(AutotoolsPackage):
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
- depends_on('libfuse')
+ depends_on('fuse')
diff --git a/var/spack/repos/builtin/packages/libfuse/package.py b/var/spack/repos/builtin/packages/libfuse/package.py
index 298c0decdf..14788f3672 100644
--- a/var/spack/repos/builtin/packages/libfuse/package.py
+++ b/var/spack/repos/builtin/packages/libfuse/package.py
@@ -34,7 +34,9 @@ class Libfuse(MesonPackage):
"which typically sets up udev rules and "
"and init script in /etc/init.d"))
+ provides('fuse')
conflicts("+useroot", when='~system_install', msg="useroot requires system_install")
+ conflicts('platform=darwin', msg='libfuse does not support OS-X, use macfuse instead')
# Drops the install script which does system configuration
patch('0001-Do-not-run-install-script.patch', when='@3: ~system_install')
diff --git a/var/spack/repos/builtin/packages/macfuse/package.py b/var/spack/repos/builtin/packages/macfuse/package.py
new file mode 100644
index 0000000000..8061e3dabe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/macfuse/package.py
@@ -0,0 +1,46 @@
+# Copyright 2013-2021 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 import *
+
+
+class Macfuse(Package):
+ """FUSE for macOS allows you to extend macOS via third party file systems."""
+
+ homepage = "https://osxfuse.github.io/"
+ git = "https://github.com/osxfuse/osxfuse.git"
+ has_code = False # only distributed in binary form
+
+ version('4.1.2')
+
+ provides('fuse')
+ conflicts('platform=linux', msg='macfuse does not support linux, use libfuse instead')
+ conflicts('platform=cray', msg='macfuse does not support cray, use libfuse instead')
+
+ def install(self, spec, prefix):
+ msg = """
+macFUSE is only distributed in binary form.
+To use macFUSE with Spack, manually download the .dmg from:
+
+ https://github.com/osxfuse/osxfuse/releases
+
+and double-click to install. Once macFUSE is installed,
+add it as an external package by running:
+
+ $ spack config edit packages
+
+and add an entry like so:
+
+ packages:
+ macfuse:
+ buildable: false
+ externals:
+ - spec: macfuse@4.1.2
+ prefix: /Library/Frameworks/macFUSE.framework"""
+
+ raise InstallError(msg)
+
+ def setup_dependent_run_environment(self, env, dependent_spec):
+ env.set('FUSE_LIBRARY_PATH', self.prefix.macFUSE)
diff --git a/var/spack/repos/builtin/packages/py-fusepy/package.py b/var/spack/repos/builtin/packages/py-fusepy/package.py
index 2c3ba9a971..6c648e719b 100644
--- a/var/spack/repos/builtin/packages/py-fusepy/package.py
+++ b/var/spack/repos/builtin/packages/py-fusepy/package.py
@@ -17,3 +17,4 @@ class PyFusepy(PythonPackage):
version('2.0.4', sha256='10f5c7f5414241bffecdc333c4d3a725f1d6605cae6b4eaf86a838ff49cdaf6c')
depends_on('py-setuptools', type='build')
+ depends_on('fuse@2.6:')
diff --git a/var/spack/repos/builtin/packages/squashfuse/package.py b/var/spack/repos/builtin/packages/squashfuse/package.py
index 7bce4a6b2a..7a4e995b82 100644
--- a/var/spack/repos/builtin/packages/squashfuse/package.py
+++ b/var/spack/repos/builtin/packages/squashfuse/package.py
@@ -31,8 +31,8 @@ class Squashfuse(AutotoolsPackage):
conflicts('~shared', when='~static', msg="Enable shared, static or both")
- depends_on('libfuse@2.5:')
- depends_on('libfuse@:2.99', when='@:0.1.103')
+ depends_on('fuse@2.5:')
+ depends_on('fuse@:2.99', when='@:0.1.103')
# Note: typically libfuse is external, but this implies that you have to make
# pkg-config external too, because spack's pkg-config doesn't know how to
diff --git a/var/spack/repos/builtin/packages/sshfs/package.py b/var/spack/repos/builtin/packages/sshfs/package.py
index 6145b9a16e..400c1604c4 100644
--- a/var/spack/repos/builtin/packages/sshfs/package.py
+++ b/var/spack/repos/builtin/packages/sshfs/package.py
@@ -18,7 +18,7 @@ class Sshfs(MesonPackage):
version('3.7.1', sha256='fe5d3436d61b46974889e0c4515899c21a9d67851e3793c209989f72353d7750')
depends_on('glib')
- depends_on('libfuse@3.1.0:')
+ depends_on('fuse@3.1.0:')
# used for libfuse; when libfuse is external, make sure that pkgconfig is
# external too, since spack's pkgconfig might not be able to locate libfuse.