checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
Cherry-pick upstream commit to ensure that completions for commands
like mkfs.xfs(8) end up in mkfs.xfs.fish by fixing over-eager stripping
of file extensions.
All mkfs.*(8) (and fsck.*(8), etc.) programs would yield mkfs.fish files
with unique `complete -c mkfs ...` lines using the same command.
Thus completing `mkfs` in fish would for example yield XFS specific
suggestions, given "xfsprogs" was installed **and** won over other
packages.
Noticed through build logs:
```
building '/nix/store/5fz5jgkd2ycx5fk3lb30my2hr2br639f-system_fish-completions.drv'...
warning: collision between `/nix/store/1z01j2pma0l005w3qg6slndn0rp136s8-dosfstools-4.2_fish-completions/mkfs.fish' and `/nix/store/jxxgrng41l6qakg45fksk1qpil976vgi-xfsprogs-5.16.0_fish-completions/mkfs.fish'
```
Python is still used for tests, but does not become part of the closure.
In addition, nowadays fish only ever uses Python via __fish_anypython,
so using sed or propagating python isn't necessary anymore.
Replacing all occurrences of `/usr` with `/nix` doesn't work, because
one test is just verifying if `wdirname` works (and `dirname /usr/lib`
is not the same as `dirname /nix/lib`).
This new option allows for replacing the sourcing of
/etc/fish/nixos-env-preinit.fish with another file, optionally passing
it through `fenv`. The idea here is that non-NixOS users can do
something like
fish.override {
fishEnvPreInit = sourceBash:
sourceBash "${nix}/etc/profile.d/nix-daemon.sh";
}
and this will set up their shell environment for Nix just as though they
were running NixOS.
`nix-build -A fish.tests.fishConfig` will now test that the
`fish_config` tool would start up properly. Previously, this test was
effectively disabled due to `withTests` being stubbed out.
I don't think this test ever truly worked, because the generated
temporary file would be cleaned up automatically (or maybe this
"automatically" changed between versions). The solution to this is to
add `delete=False` to the `NamedTemporaryFile` function call, to keep
the temporary file around in order to grep its contents for the expected
output.
https://github.com/fish-shell/fish-shell/compare/3.1.1...3.1.2
"This release of fish fixes a major issue discovered in fish 3.1.1:
Commands such as `fzf` and `enhancd`, when used with `eval`, would hang.
`eval` buffered output too aggressively, which has been fixed."
https://github.com/fish-shell/fish-shell/compare/3.1.0...3.1.1
The patch we had to use for Apple SDKs was merged upstream, so it can be
dropped. I ran nixpkgs-fmt, and removed the `with stdenv.lib;` scope
expander.
Additionally, did a little bit of cleanup. I plan on refactoring this
more down the line, but this'll do for now.
I finally figured out why we use `fetchurl` for the tagged release: the
published release tarballs contain a version file, which the
`build_tools/git_version_gen.sh` script reads (and uses as the version
if it exists). The other thing it contains are pre-generated docs for
various `fish` builtins. I've expanded the comment to document this so
nobody is as confused as I was when I first saw it. (Though I plan to
change this and add sphinx as a native build input in order to build the
docs ourselves.)