e2fsprogs: build fuse2fs on darwin
This commit is contained in:
parent
4496f7dd0b
commit
0dfc820f4a
@ -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;
|
||||
|
20
pkgs/tools/filesystems/e2fsprogs/macfuse.patch
Normal file
20
pkgs/tools/filesystems/e2fsprogs/macfuse.patch
Normal file
@ -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;
|
Loading…
Reference in New Issue
Block a user