From e18d3b4894ab9a2d2671f15fa693fd522b254c4a Mon Sep 17 00:00:00 2001 From: Florian Nagel Date: Wed, 17 Jul 2024 10:06:42 +0200 Subject: [PATCH] Added an error message when using enableFakechroot on Darwin (#327336) * Added an error message when using enableFakechroot on Darwin Co-authored-by: Valentin Gagarin --- pkgs/build-support/docker/default.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index ea461ccffa07..e9256c0503e6 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -24,6 +24,7 @@ , runtimeShell , shadow , skopeo +, stdenv , storeDir ? builtins.storeDir , substituteAll , symlinkJoin @@ -922,6 +923,13 @@ rec { assert (lib.assertMsg (maxLayers > 1) "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})"); + assert + (lib.assertMsg (enableFakechroot -> !stdenv.isDarwin) '' + cannot use `enableFakechroot` because `proot` is not portable to Darwin. Workarounds: + - use `fakeRootCommands` with the restricted `fakeroot` environment + - cross-compile your packages + - run your packages in a virtual machine + Discussion: https://github.com/NixOS/nixpkgs/issues/327311''); let baseName = baseNameOf name;