diff --git a/lib/customisation.nix b/lib/customisation.nix index 16f248cd1b207..ce20c3b572308 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -154,6 +154,7 @@ rec { makeOverridable = f: let + fargs = functionArgs f; # Creates a functor with the same arguments as f mirrorArgs = mirrorFunctionArgs f; in @@ -178,11 +179,21 @@ rec { ); # Change the result of the function call by applying g to it overrideResult = g: makeOverridable (mirrorArgs (args: g (f args))) origArgs; + + overrideResultAndArgs = g: newArgs: makeOverridable (mirrorArgs (args: g (f args))) (overrideWith newArgs); in if isAttrs result then result // { - override = overrideArgs; + override = newArgs: + if result ? override then + let + outerArgs = intersectAttrs fargs newArgs; + innerArgs = removeAttrs newArgs (attrNames fargs); + in + overrideResultAndArgs (x: x.override innerArgs) outerArgs + else + overrideArgs newArgs; overrideDerivation = fdrv: overrideResult (x: overrideDerivation x fdrv); ${if result ? overrideAttrs then "overrideAttrs" else null} = /** diff --git a/pkgs/by-name/_1/_1password-gui/package.nix b/pkgs/by-name/_1/_1password-gui/package.nix index b1f68bf68035f..0af3e1f31c278 100644 --- a/pkgs/by-name/_1/_1password-gui/package.nix +++ b/pkgs/by-name/_1/_1password-gui/package.nix @@ -4,8 +4,6 @@ channel ? "stable", fetchurl, lib, - # This is only relevant for Linux, so we need to pass it through - polkitPolicyOwners ? [ ], }: let @@ -63,6 +61,5 @@ else version src meta - polkitPolicyOwners ; } diff --git a/pkgs/by-name/gl/glib/package.nix b/pkgs/by-name/gl/glib/package.nix index 99e289918ecd4..f1ad8dc6f61dd 100644 --- a/pkgs/by-name/gl/glib/package.nix +++ b/pkgs/by-name/gl/glib/package.nix @@ -37,9 +37,7 @@ libsysprof-capture, mesonEmulatorHook, withIntrospection ? - stdenv.hostPlatform.emulatorAvailable buildPackages - && lib.meta.availableOn stdenv.hostPlatform gobject-introspection - && stdenv.hostPlatform.isLittleEndian == stdenv.buildPlatform.isLittleEndian, + false, }: assert stdenv.hostPlatform.isLinux -> util-linuxMinimal != null;