e2fsprogs: build fuse2fs on darwin (#328172)

This commit is contained in:
7c6f434c
2024-09-03 12:17:51 +00:00
committed by GitHub
2 changed files with 24 additions and 4 deletions
+4 -4
View File
@@ -1,5 +1,5 @@
{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
, withFuse ? stdenv.isLinux, fuse3
, withFuse ? stdenv.isLinux || stdenv.isDarwin, fuse3, macfuse-stubs
, shared ? !stdenv.hostPlatform.isStatic
, e2fsprogs, runCommand
}:
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ pkg-config texinfo ];
buildInputs = [ libuuid gettext ]
++ lib.optionals withFuse [ fuse3 ];
++ lib.optional withFuse (if stdenv.isDarwin then macfuse-stubs else fuse3);
patches = [
# Avoid trouble with older systems like NixOS 23.05.
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
url = "https://lore.kernel.org/linux-ext4/20240527091542.4121237-2-hi@alyssa.is/raw";
hash = "sha256-pMoqm2eo5zYaTdU+Ppa4+posCVFb2A9S4uo5oApaaqc=";
})
];
] ++ lib.optional stdenv.isDarwin ./macfuse.patch;
configureFlags =
if stdenv.isLinux then [
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
"--disable-uuidd"
] else [
"--enable-libuuid --disable-e2initrd-helper"
];
] ++ lib.optional stdenv.isDarwin "CFLAGS=-D_FILE_OFFSET_BITS=64";
nativeCheckInputs = [ buildPackages.perl ];
doCheck = true;
@@ -0,0 +1,20 @@
--- a/misc/fuse2fs.c
+++ b/misc/fuse2fs.c
@@ -2441,7 +2441,7 @@
#undef XATTR_TRANSLATOR
static int op_getxattr(const char *path, const char *key, char *value,
- size_t len)
+ size_t len, uint32_t position EXT2FS_ATTR((unused)))
{
struct fuse_context *ctxt = fuse_get_context();
struct fuse2fs *ff = (struct fuse2fs *)ctxt->private_data;
@@ -2623,7 +2623,7 @@
static int op_setxattr(const char *path EXT2FS_ATTR((unused)),
const char *key, const char *value,
- size_t len, int flags EXT2FS_ATTR((unused)))
+ size_t len, int flags EXT2FS_ATTR((unused)), uint32_t position EXT2FS_ATTR((unused)))
{
struct fuse_context *ctxt = fuse_get_context();
struct fuse2fs *ff = (struct fuse2fs *)ctxt->private_data;