anchor.diff:      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:
  
positive.code:     description = "FUSE UnionFS implementation";
      homepage = "https://github.com/rpodgorny/unionfs-fuse";
      license = licenses.bsd3;
      platforms = platforms.linux;
      maintainers = with maintainers; [ orivej ];
    };
  }
  
negative.code:   #
    # This must be done in preConfigure because the build process removes
    # helper from the source directory during the build.
    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
  