Without the change the instantiation in `linux` fails as:
$ nix-instantiate -A wine
error:
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:34:12:
33|
34| strict = derivationStrict drvAttrs;
| ^
35|
… while evaluating derivation 'wine-9.0'
whose name attribute is located at /tmp/z/nixpkgs/pkgs/stdenv/generic/make-derivation.nix:336:7
… while evaluating attribute 'NIX_LDFLAGS' of derivation 'wine-9.0'
at /tmp/z/nixpkgs/pkgs/applications/emulators/wine/base.nix:121:3:
120| # LD_LIBRARY_PATH.
121| NIX_LDFLAGS = toString (map (path: "-rpath " + path) (
| ^
122| map (x: "${lib.getLib x}/lib") ([ stdenv.cc.cc ]
(stack trace truncated; use '--show-trace' to show the full, detailed trace)
error: Package ‘apple-sdk-14.4’ in /tmp/z/nixpkgs/pkgs/by-name/ap/apple-sdk/package.nix:111 is not available on the requested hostPlatform:
hostPlatform.config = "i686-unknown-linux-gnu"
package.meta.platforms = [
"x86_64-darwin"
"i686-darwin"
"aarch64-darwin"
"armv7a-darwin"
]
package.meta.badPlatforms = [
{
cpu = {
bits = 32;
};
}
]
, refusing to evaluate.
a) To temporarily allow packages that are unsupported for this system, you can use an environment variable
for a single invocation of the nix tools.
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
then pass `--impure` in order to allow use of environment variables.
b) For `nixos-rebuild` you can set
{ nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
{ allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.
The GCC bootstrap builds each stage with an unwrapped GCC, which needs
to correctly handle looking for libraries and headers in sysroot.
Setting the native header folder to `/usr/include` will actually cause
GCC to search `<sysroot>/usr/include`, which is the SDKROOT in nixpkgs.
The original logic was prepending to the array, but this one prepends
the array to itself, which breaks the x86_64-linux stdenv bootstrap. The
correct thing to do is build up the arguments in a temporary array and
prepend it like the original code was doing.
file_cmds 352.40.6 added a C-based implementation of xattr, which is the
version of xattr used on recent releases of macOS. Align nixpkgs with
what macOS is shipping, which has also the benefit of allowing xattr to
be cross-compiled (previously precluded due to Python limitations).