summary refs log tree commit diff
diff options
context:
space:
mode:
authormidchildan <git@midchildan.org>2021-01-02 01:02:32 +0900
committermidchildan <git@midchildan.org>2021-03-21 15:50:13 +0900
commitfa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc (patch)
tree2d8c118a61edab5d2bcce7ce49a6e00ec9667920
parent85141b8609cae8747d29ea9ca66e58828a3a85e4 (diff)
downloadnixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar.gz
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar.bz2
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar.lz
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar.xz
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.tar.zst
nixpkgs-fa6c8b656b72dfa97d7a5aa9892569fd6eb64dfc.zip
macfuse-stubs: init at 4.0.4
replaces osxfuse 3.8.3
-rw-r--r--pkgs/development/python-modules/llfuse/default.nix4
-rw-r--r--pkgs/os-specific/darwin/macfuse/default.nix53
-rw-r--r--pkgs/os-specific/darwin/osxfuse/default.nix48
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/s3fs/default.nix4
-rw-r--r--pkgs/tools/filesystems/unionfs-fuse/default.nix8
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix4
8 files changed, 66 insertions, 60 deletions
diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix
index e615582a282..6dffffd8b08 100644
--- a/pkgs/development/python-modules/llfuse/default.nix
+++ b/pkgs/development/python-modules/llfuse/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which
-, contextlib2, osxfuse
+, contextlib2, macfuse-stubs
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   buildInputs =
     lib.optionals stdenv.isLinux [ fuse ]
-    ++ lib.optionals stdenv.isDarwin [ osxfuse ];
+    ++ lib.optionals stdenv.isDarwin [ macfuse-stubs ];
 
   checkInputs = [ pytest which ] ++
     lib.optionals stdenv.isLinux [ attr ];
diff --git a/pkgs/os-specific/darwin/macfuse/default.nix b/pkgs/os-specific/darwin/macfuse/default.nix
new file mode 100644
index 00000000000..a5162b3aed2
--- /dev/null
+++ b/pkgs/os-specific/darwin/macfuse/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, fetchurl, cpio, xar, undmg, libtapi }:
+
+stdenv.mkDerivation rec {
+  pname = "macfuse-stubs";
+  version = "4.1.0";
+
+  src = fetchurl {
+    url = "https://github.com/osxfuse/osxfuse/releases/download/macfuse-${version}/macfuse-${version}.dmg";
+    sha256 = "118hg64w5wb95lbxw6w1hbqxrx3plcbxfjhvxx86q0zx0saa9diw";
+  };
+
+  nativeBuildInputs = [ cpio xar undmg libtapi ];
+
+  postUnpack = ''
+    xar -xf 'Install macFUSE.pkg'
+    cd Core.pkg
+    gunzip -dc Payload | cpio -i
+  '';
+
+  sourceRoot = ".";
+
+  buildPhase = ''
+    pushd usr/local/lib
+    for f in *.dylib; do
+      tapi stubify --filetype=tbd-v2  "$f" -o "''${f%%.dylib}.tbd"
+    done
+    sed -i "s|^prefix=.*|prefix=$out|" pkgconfig/fuse.pc
+    popd
+  '';
+
+  # NOTE: Keep in mind that different parts of macFUSE are distributed under a
+  # different license
+  installPhase = ''
+    mkdir -p $out/include $out/lib/pkgconfig
+    cp usr/local/lib/*.tbd $out/lib
+    cp usr/local/lib/pkgconfig/*.pc $out/lib/pkgconfig
+    cp -R usr/local/include/* $out/include
+  '';
+
+  meta = with lib; {
+    homepage = "https://osxfuse.github.io";
+    description = "Build time stubs for FUSE on macOS";
+    platforms = platforms.darwin;
+    maintainers = with maintainers; [ midchildan ];
+
+    # macFUSE as a whole includes code with restrictions on commercial
+    # redistribution. However, the build artifacts that we actually touch for
+    # this derivation are distributed under a free license.
+    license = with licenses; [
+      lgpl2Plus # libfuse
+    ];
+  };
+}
diff --git a/pkgs/os-specific/darwin/osxfuse/default.nix b/pkgs/os-specific/darwin/osxfuse/default.nix
deleted file mode 100644
index d0f6b0f5311..00000000000
--- a/pkgs/os-specific/darwin/osxfuse/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib, stdenv, runCommand, fetchFromGitHub, autoreconfHook }:
-
-let
-  version = "3.8.3";
-
-  headers = runCommand "osxfuse-common-${version}" {
-    src = fetchFromGitHub {
-      owner = "osxfuse";
-      repo = "osxfuse";
-      rev = "osxfuse-${version}";
-      sha256 = "13lmg41zcyiajh8m42w7szkbg2is4551ryx2ia2mmzvvd23pag0z";
-    };
-  } ''
-    mkdir -p $out/include
-    cp --target-directory=$out/include $src/common/*.h
-  '';
-in
-
-stdenv.mkDerivation {
-
-  pname = "osxfuse";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "osxfuse";
-    repo = "fuse";
-    rev = "1a1977a"; # Submodule reference from osxfuse/osxfuse at tag osxfuse-${version}
-    sha256 = "101fw8j40ylfbbrjycnwr5qp422agyf9sfbczyb9w5ivrkds3rfw";
-  };
-
-  postPatch = ''
-    touch config.rpath
-  '';
-
-  postInstall = ''
-    ln -s osxfuse.pc $out/lib/pkgconfig/fuse.pc
-  '';
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ headers ];
-
-  meta = with lib; {
-    homepage = "https://osxfuse.github.io";
-    description = "C-based FUSE for macOS SDK";
-    platforms = platforms.darwin;
-    license = licenses.gpl2;
-  };
-}
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index 44c5e5d0fe3..a6d2382a1a6 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fuse, pkg-config, osxfuse }:
+{ lib, stdenv, fetchurl, fuse, pkg-config, macfuse-stubs }:
 
 stdenv.mkDerivation rec {
   version = "1.15.1";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = if stdenv.isDarwin
-                then [ osxfuse ]
+                then [ macfuse-stubs ]
                 else [ fuse ];
   postFixup = ''
     ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs
diff --git a/pkgs/tools/filesystems/s3fs/default.nix b/pkgs/tools/filesystems/s3fs/default.nix
index e80e6530371..63a6153e8ca 100644
--- a/pkgs/tools/filesystems/s3fs/default.nix
+++ b/pkgs/tools/filesystems/s3fs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse, osxfuse }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, curl, openssl, libxml2, fuse, macfuse-stubs }:
 
 stdenv.mkDerivation rec {
   pname = "s3fs-fuse";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ curl openssl libxml2 ]
     ++ lib.optionals stdenv.isLinux [ fuse ]
-    ++ lib.optionals stdenv.isDarwin [ osxfuse ];
+    ++ lib.optionals stdenv.isDarwin [ macfuse-stubs ];
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   configureFlags = [
diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix
index 6af582d91a7..acfd3b1e9a0 100644
--- a/pkgs/tools/filesystems/unionfs-fuse/default.nix
+++ b/pkgs/tools/filesystems/unionfs-fuse/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, fuse, osxfuse }:
+{ lib, stdenv, fetchFromGitHub, cmake, fuse, macfuse-stubs }:
 
 stdenv.mkDerivation rec {
   pname = "unionfs-fuse";
@@ -21,13 +21,11 @@ stdenv.mkDerivation rec {
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     substituteInPlace CMakeLists.txt \
-      --replace '/usr/local/include/osxfuse/fuse' '${osxfuse}/include/osxfuse/fuse'
-    substituteInPlace src/CMakeLists.txt \
-      --replace 'target_link_libraries(unionfs fuse pthread)' 'target_link_libraries(unionfs osxfuse pthread)'
+      --replace '/usr/local/include/osxfuse/fuse' '${macfuse-stubs}/include/fuse'
   '';
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ (if stdenv.isDarwin then osxfuse else fuse) ];
+  buildInputs = [ (if stdenv.isDarwin then macfuse-stubs else fuse) ];
 
   # Put the unionfs mount helper in place as mount.unionfs-fuse. This makes it
   # possible to do:
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b2ff3e93c3a..0a901b2f7cb 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -459,6 +459,7 @@ mapAliases ({
   openssh_with_kerberos = openssh; # added 2018-01-28
   onnxruntime = throw "onnxruntime has been removed due to poor maintainability"; # added 2020-12-04
   osquery = throw "osquery has been removed."; # added 2019-11-24
+  osxfuse = macfuse-stubs; # added 2021-03-20
   otter-browser = throw "otter-browser has been removed from nixpkgs, as it was unmaintained"; # added 2020-02-02
   owncloudclient = owncloud-client;  # added 2016-08
   p11_kit = p11-kit; # added 2018-02-25
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3444df35798..af424136d5d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -19374,7 +19374,9 @@ in
     inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
   };
 
-  osxfuse = callPackage ../os-specific/darwin/osxfuse { };
+  macfuse-stubs = callPackage ../os-specific/darwin/macfuse {
+    inherit (darwin) libtapi;
+  };
 
   osxsnarf = callPackage ../os-specific/darwin/osxsnarf { };