From 5a49c9599d8bf346a97bb64cd78d5266a4d72ee2 Mon Sep 17 00:00:00 2001 From: Konstantin Alekseev Date: Sun, 7 Mar 2021 01:50:29 +0300 Subject: [PATCH] unionfs-fuse: enable darwin --- .../filesystems/unionfs-fuse/default.nix | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix index 77f45d06c91c..6af582d91a7b 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 }: +{ lib, stdenv, fetchFromGitHub, cmake, fuse, osxfuse }: stdenv.mkDerivation rec { pname = "unionfs-fuse"; @@ -11,16 +11,23 @@ stdenv.mkDerivation rec { sha256 = "0bwx70x834qgqh53vqp18bhbxbsny80hz922rbgj8k9wj7cbfilm"; }; - patches = - [ # Prevent the unionfs daemon from being killed during - # shutdown. See - # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ - # for details. - ./prevent-kill-on-shutdown.patch - ]; + patches = [ + # Prevent the unionfs daemon from being killed during + # shutdown. See + # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ + # for details. + ./prevent-kill-on-shutdown.patch + ]; + + 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)' + ''; nativeBuildInputs = [ cmake ]; - buildInputs = [ fuse ]; + buildInputs = [ (if stdenv.isDarwin then osxfuse else fuse) ]; # Put the unionfs mount helper in place as mount.unionfs-fuse. This makes it # possible to do: @@ -28,7 +35,7 @@ stdenv.mkDerivation rec { # # This must be done in preConfigure because the build process removes # helper from the source directory during the build. - preConfigure = '' + preConfigure = lib.optionalString (!stdenv.isDarwin) '' mkdir -p $out/sbin cp -a mount.unionfs $out/sbin/mount.unionfs-fuse substituteInPlace $out/sbin/mount.unionfs-fuse --replace mount.fuse ${fuse}/sbin/mount.fuse @@ -39,7 +46,7 @@ stdenv.mkDerivation rec { description = "FUSE UnionFS implementation"; homepage = "https://github.com/rpodgorny/unionfs-fuse"; license = licenses.bsd3; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = with maintainers; [ orivej ]; }; }