diff --git a/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch b/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch new file mode 100644 index 000000000000..6886bc4fd172 --- /dev/null +++ b/pkgs/tools/filesystems/fuse-ext2/darwin-no-installer.patch @@ -0,0 +1,31 @@ +diff --git a/fuse-ext2/Makefile.am b/fuse-ext2/Makefile.am +index 9d3a065..c73f337 100644 +--- a/fuse-ext2/Makefile.am ++++ b/fuse-ext2/Makefile.am +@@ -113,7 +113,7 @@ fuse_ext2_CFLAGS = \ + -DHAVE_CONFIG_H \ + -I/usr/local/include + +-if DARWIN ++if FALSE + bin_PROGRAMS += \ + fuse-ext2.wait \ + fuse-ext2.install \ +@@ -151,9 +151,6 @@ endif + if DARWIN + install-exec-local: + $(INSTALL) -d "$(DESTDIR)/$(sbindir)" +- $(LN_S) -f "/Library/Filesystems/fuse-ext2.fs/Contents/Resources/mount_fuse-ext2" "$(DESTDIR)/$(sbindir)/mount_fuse-ext2" +- $(LN_S) -f "/usr/local/opt/e2fsprogs/sbin/e2label" "$(DESTDIR)/$(sbindir)/e2label" +- $(LN_S) -f "/usr/local/opt/e2fsprogs/sbin/mke2fs" "$(DESTDIR)/$(sbindir)/mke2fs" + endif + if LINUX + install-data-hook: +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 52f81e1..78c418f 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -1,2 +1,2 @@ + +-SUBDIRS = macosx ++SUBDIRS = diff --git a/pkgs/tools/filesystems/fuse-ext2/default.nix b/pkgs/tools/filesystems/fuse-ext2/default.nix new file mode 100644 index 000000000000..aaff185a4a1b --- /dev/null +++ b/pkgs/tools/filesystems/fuse-ext2/default.nix @@ -0,0 +1,46 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, e2fsprogs +, fuse +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "fuse-ext2"; + version = "unstable-2020-07-12"; + + src = fetchFromGitHub { + owner = "alperakcan"; + repo = "fuse-ext2"; + rev = "899f17c982dadcea13aa447c3a83c53b9431435a"; + sha256 = "AE7Z+HePAy/h2TCNI9tsz6GVLdnE2AIOM3GnQzerKn8="; + }; + + patches = [ + # Remove references to paths outside the nix store + ./remove-impure-paths.patch + # Don't build macOS desktop installer + ./darwin-no-installer.patch + ]; + + nativeBuildInputs = [ + autoreconfHook + ]; + + buildInputs = [ + e2fsprogs + fuse + ]; + + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=incompatible-function-pointer-types"; + + meta = with lib; { + description = "FUSE module to mount ext2, ext3 and ext4 with read write support"; + homepage = "https://github.com/alperakcan/fuse-ext2"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ emilytrau ]; + platforms = platforms.unix; + mainProgram = "fuse-ext2"; + }; +}) diff --git a/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch b/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch new file mode 100644 index 000000000000..02a8b1e5a826 --- /dev/null +++ b/pkgs/tools/filesystems/fuse-ext2/remove-impure-paths.patch @@ -0,0 +1,35 @@ +diff --git a/fuse-ext2/Makefile.am b/fuse-ext2/Makefile.am +index 9d3a065..0bb4341 100644 +--- a/fuse-ext2/Makefile.am ++++ b/fuse-ext2/Makefile.am +@@ -17,8 +17,7 @@ fuse_ext2_probe_SOURCES = \ + + fuse_ext2_probe_CFLAGS = \ + -Wall \ +- -DHAVE_CONFIG_H \ +- -I/usr/local/include ++ -DHAVE_CONFIG_H + + fuse_ext2_SOURCES = \ + fuse-ext2.h \ +@@ -98,9 +97,7 @@ umfuseext2_la_CFLAGS = \ + -Wall \ + -DHAVE_CONFIG_H \ + -D_GNU_SOURCE \ +- $(DEVELFLAGS) \ +- -I$(includedir)/umview \ +- -I/usr/local/include ++ $(DEVELFLAGS) + + umfuseext2_la_LDFLAGS = \ + -module \ +@@ -110,8 +107,7 @@ umfuseext2_la_LDFLAGS = \ + + fuse_ext2_CFLAGS = \ + -Wall \ +- -DHAVE_CONFIG_H \ +- -I/usr/local/include ++ -DHAVE_CONFIG_H + + if DARWIN + bin_PROGRAMS += \ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e1a6f286610f..d05f62fe49a0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8410,6 +8410,8 @@ with pkgs; fuse-archive = callPackage ../tools/filesystems/fuse-archive { }; + fuse-ext2 = darwin.apple_sdk_11_0.callPackage ../tools/filesystems/fuse-ext2 { }; + fuse-overlayfs = callPackage ../tools/filesystems/fuse-overlayfs { }; fusee-interfacee-tk = callPackage ../applications/misc/fusee-interfacee-tk { };