Revert "e2fsprogs: build fuse2fs on darwin"

This change, while fine in isolation, breaks evaluation in combination
with <https://github.com/NixOS/nixpkgs/pull/329721>, as `xar` depends
on `e2fsprogs` which now depends on `macfuse-stubs` which depends on
`xar`. This broke `staging-next`.

A couple possible solutions are to disable the `e2fsprogs` dependency
in the version of `xar` used for the bootstrap, or to build
`macfuse-stubs` from source to avoid the `xar` dependency.

This reverts commit 0dfc820f4a.
This commit is contained in:
Emily 2024-09-04 05:06:42 +01:00
parent 23b4832da0
commit 8f61973d92
2 changed files with 4 additions and 24 deletions

View File

@ -1,5 +1,5 @@
{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pkg-config, libuuid, gettext, texinfo
, withFuse ? stdenv.isLinux || stdenv.isDarwin, fuse3, macfuse-stubs
, withFuse ? stdenv.isLinux, fuse3
, 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.optional withFuse (if stdenv.isDarwin then macfuse-stubs else fuse3);
++ lib.optionals withFuse [ 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;

View File

@ -1,20 +0,0 @@
--- 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;