We are migrating packages that meet below requirements:
1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration
The tool is here: https://github.com/Aleksanaa/by-name-migrate.
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.
Wine supports a form of futexes on Darwin when built with the 14.4 SDK
and running on 14.4 or later. It will fall back automatically to other
primitives when running on older systems.