Merge pull request #116958 from midchildan/package/macfuse

macfuse-stubs: replace osxfuse 3.8.3
This commit is contained in:
Bernardo Meurer 2021-03-21 07:28:48 +00:00 committed by GitHub
commit 1d1089dbf4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 67 additions and 60 deletions

View File

@ -1,5 +1,5 @@
{ lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which { lib, stdenv, fetchPypi, fetchpatch, buildPythonPackage, pkg-config, pytest, fuse, attr, which
, contextlib2, osxfuse , contextlib2, macfuse-stubs, DiskArbitration
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -23,7 +23,7 @@ buildPythonPackage rec {
buildInputs = buildInputs =
lib.optionals stdenv.isLinux [ fuse ] lib.optionals stdenv.isLinux [ fuse ]
++ lib.optionals stdenv.isDarwin [ osxfuse ]; ++ lib.optionals stdenv.isDarwin [ DiskArbitration macfuse-stubs ];
checkInputs = [ pytest which ] ++ checkInputs = [ pytest which ] ++
lib.optionals stdenv.isLinux [ attr ]; lib.optionals stdenv.isLinux [ attr ];

View File

@ -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
];
};
}

View File

@ -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;
};
}

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fuse, pkg-config, osxfuse }: { lib, stdenv, fetchurl, fuse, pkg-config, macfuse-stubs }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.15.1"; version = "1.15.1";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ pkg-config ];
buildInputs = if stdenv.isDarwin buildInputs = if stdenv.isDarwin
then [ osxfuse ] then [ macfuse-stubs ]
else [ fuse ]; else [ fuse ];
postFixup = '' postFixup = ''
ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs ln -s $out/bin/bindfs $out/bin/mount.fuse.bindfs

View File

@ -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 { stdenv.mkDerivation rec {
pname = "s3fs-fuse"; pname = "s3fs-fuse";
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
buildInputs = [ curl openssl libxml2 ] buildInputs = [ curl openssl libxml2 ]
++ lib.optionals stdenv.isLinux [ fuse ] ++ lib.optionals stdenv.isLinux [ fuse ]
++ lib.optionals stdenv.isDarwin [ osxfuse ]; ++ lib.optionals stdenv.isDarwin [ macfuse-stubs ];
nativeBuildInputs = [ autoreconfHook pkg-config ]; nativeBuildInputs = [ autoreconfHook pkg-config ];
configureFlags = [ configureFlags = [

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, cmake, fuse, osxfuse }: { lib, stdenv, fetchFromGitHub, cmake, fuse, macfuse-stubs }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "unionfs-fuse"; pname = "unionfs-fuse";
@ -21,13 +21,11 @@ stdenv.mkDerivation rec {
postPatch = lib.optionalString stdenv.isDarwin '' postPatch = lib.optionalString stdenv.isDarwin ''
substituteInPlace CMakeLists.txt \ substituteInPlace CMakeLists.txt \
--replace '/usr/local/include/osxfuse/fuse' '${osxfuse}/include/osxfuse/fuse' --replace '/usr/local/include/osxfuse/fuse' '${macfuse-stubs}/include/fuse'
substituteInPlace src/CMakeLists.txt \
--replace 'target_link_libraries(unionfs fuse pthread)' 'target_link_libraries(unionfs osxfuse pthread)'
''; '';
nativeBuildInputs = [ cmake ]; 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 # Put the unionfs mount helper in place as mount.unionfs-fuse. This makes it
# possible to do: # possible to do:

View File

@ -459,6 +459,7 @@ mapAliases ({
openssh_with_kerberos = openssh; # added 2018-01-28 openssh_with_kerberos = openssh; # added 2018-01-28
onnxruntime = throw "onnxruntime has been removed due to poor maintainability"; # added 2020-12-04 onnxruntime = throw "onnxruntime has been removed due to poor maintainability"; # added 2020-12-04
osquery = throw "osquery has been removed."; # added 2019-11-24 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 otter-browser = throw "otter-browser has been removed from nixpkgs, as it was unmaintained"; # added 2020-02-02
owncloudclient = owncloud-client; # added 2016-08 owncloudclient = owncloud-client; # added 2016-08
p11_kit = p11-kit; # added 2018-02-25 p11_kit = p11-kit; # added 2018-02-25

View File

@ -19404,7 +19404,9 @@ in
inherit (pkgs.darwin.apple_sdk.frameworks) IOKit; 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 { }; osxsnarf = callPackage ../os-specific/darwin/osxsnarf { };

View File

@ -3966,6 +3966,7 @@ in {
llfuse = callPackage ../development/python-modules/llfuse { llfuse = callPackage ../development/python-modules/llfuse {
inherit (pkgs) fuse; inherit (pkgs) fuse;
inherit (pkgs.darwin.apple_sdk.frameworks) DiskArbitration;
}; };
llvmlite = callPackage ../development/python-modules/llvmlite { llvmlite = callPackage ../development/python-modules/llvmlite {