mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-21 21:21:06 +00:00
Merge pull request #117360 from midchildan/feat/fuse/darwin
fuse: use macfuse-stubs instead on Darwin
This commit is contained in:
commit
fa9cd72c09
19
doc/builders/packages/fuse.section.md
Normal file
19
doc/builders/packages/fuse.section.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
# FUSE {#sec-fuse}
|
||||
|
||||
Some packages rely on
|
||||
[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide
|
||||
support for additional filesystems not supported by the kernel.
|
||||
|
||||
In general, FUSE software are primarily developed for Linux but many of them can
|
||||
also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires
|
||||
[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE
|
||||
currently isn't packaged in Nixpkgs mainly because it includes a kernel
|
||||
extension, which isn't supported by Nix outside of NixOS.
|
||||
|
||||
If a package fails to run on macOS with an error message similar to the
|
||||
following, it's a likely sign that you need to have macFUSE installed.
|
||||
|
||||
dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib
|
||||
Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
|
||||
Reason: image not found
|
||||
[1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs
|
|
@ -12,6 +12,7 @@
|
|||
<xi:include href="emacs.section.xml" />
|
||||
<xi:include href="firefox.section.xml" />
|
||||
<xi:include href="fish.section.xml" />
|
||||
<xi:include href="fuse.section.xml" />
|
||||
<xi:include href="ibus.section.xml" />
|
||||
<xi:include href="kakoune.section.xml" />
|
||||
<xi:include href="linux.section.xml" />
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which
|
||||
, contextlib2, macfuse-stubs, DiskArbitration
|
||||
, contextlib2
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -21,9 +21,7 @@ buildPythonPackage rec {
|
|||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs =
|
||||
lib.optionals stdenv.isLinux [ fuse ]
|
||||
++ lib.optionals stdenv.isDarwin [ DiskArbitration macfuse-stubs ];
|
||||
buildInputs = [ fuse ];
|
||||
|
||||
checkInputs = [ pytest which ] ++
|
||||
lib.optionals stdenv.isLinux [ attr ];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, cpio, xar, undmg, libtapi }:
|
||||
{ lib, stdenv, fetchurl, cpio, xar, undmg, libtapi, DiskArbitration }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "macfuse-stubs";
|
||||
|
@ -10,6 +10,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ cpio xar undmg libtapi ];
|
||||
propagatedBuildInputs = [ DiskArbitration ];
|
||||
|
||||
postUnpack = ''
|
||||
xar -xf 'Install macFUSE.pkg'
|
||||
|
@ -40,6 +41,11 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
homepage = "https://osxfuse.github.io";
|
||||
description = "Build time stubs for FUSE on macOS";
|
||||
longDescription = ''
|
||||
macFUSE is required for this package to work on macOS. To install macFUSE,
|
||||
use the installer from the <link xlink:href="https://osxfuse.github.io/">
|
||||
project website</link>.
|
||||
'';
|
||||
platforms = platforms.darwin;
|
||||
maintainers = with maintainers; [ midchildan ];
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchurl, fuse, pkg-config, macfuse-stubs }:
|
||||
{ lib, stdenv, fetchurl, fuse, pkg-config }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.15.1";
|
||||
|
@ -10,9 +10,7 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = if stdenv.isDarwin
|
||||
then [ macfuse-stubs ]
|
||||
else [ fuse ];
|
||||
buildInputs = [ fuse ];
|
||||
postFixup = ''
|
||||
ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs
|
||||
'';
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse, macfuse-stubs }:
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "s3fs-fuse";
|
||||
|
@ -11,9 +11,7 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-Agb0tq7B98Ioe0G/XEZCYcFQKnMuYXX9x0yg4Gvu3/k=";
|
||||
};
|
||||
|
||||
buildInputs = [ curl openssl libxml2 ]
|
||||
++ lib.optionals stdenv.isLinux [ fuse ]
|
||||
++ lib.optionals stdenv.isDarwin [ macfuse-stubs ];
|
||||
buildInputs = [ curl openssl libxml2 fuse ];
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
|
||||
configureFlags = [
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, fuse, macfuse-stubs }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, fuse }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "unionfs-fuse";
|
||||
|
@ -21,11 +21,11 @@ stdenv.mkDerivation rec {
|
|||
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace '/usr/local/include/osxfuse/fuse' '${macfuse-stubs}/include/fuse'
|
||||
--replace '/usr/local/include/osxfuse/fuse' '${fuse}/include/fuse'
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ (if stdenv.isDarwin then macfuse-stubs else fuse) ];
|
||||
buildInputs = [ fuse ];
|
||||
|
||||
# Put the unionfs mount helper in place as mount.unionfs-fuse. This makes it
|
||||
# possible to do:
|
||||
|
|
|
@ -19286,7 +19286,7 @@ in
|
|||
fusePackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/fuse {
|
||||
util-linux = util-linuxMinimal;
|
||||
});
|
||||
fuse = lowPrio fusePackages.fuse_2;
|
||||
fuse = lowPrio (if stdenv.isDarwin then macfuse-stubs else fusePackages.fuse_2);
|
||||
fuse3 = fusePackages.fuse_3;
|
||||
fuse-common = hiPrio fusePackages.fuse_3.common;
|
||||
|
||||
|
@ -19425,6 +19425,7 @@ in
|
|||
|
||||
macfuse-stubs = callPackage ../os-specific/darwin/macfuse {
|
||||
inherit (darwin) libtapi;
|
||||
inherit (darwin.apple_sdk.frameworks) DiskArbitration;
|
||||
};
|
||||
|
||||
osxsnarf = callPackage ../os-specific/darwin/osxsnarf { };
|
||||
|
|
|
@ -3974,7 +3974,6 @@ in {
|
|||
|
||||
llfuse = callPackage ../development/python-modules/llfuse {
|
||||
inherit (pkgs) fuse;
|
||||
inherit (pkgs.darwin.apple_sdk.frameworks) DiskArbitration;
|
||||
};
|
||||
|
||||
llvmlite = callPackage ../development/python-modules/llvmlite {
|
||||
|
|
Loading…
Reference in a new issue