nixpkgs/pkgs/shells/bash/bash-completion/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
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.
2023-01-21 12:00:00 +00:00

75 lines
2.4 KiB
Nix

{ lib, stdenv, fetchurl
, fetchpatch
, autoreconfHook
, perl
, ps
, python3Packages
, bashInteractive
}:
stdenv.mkDerivation rec {
pname = "bash-completion";
version = "2.11";
# Using fetchurl because fetchGithub or fetchzip will have trouble on
# e.g. APFS filesystems (macOS) because of non UTF-8 characters in some of the
# test fixtures that are part of the repository.
# See discussion in https://github.com/NixOS/nixpkgs/issues/107768
src = fetchurl {
url = "https://github.com/scop/${pname}/releases/download/${version}/${pname}-${version}.tar.xz";
sha256 = "1b0iz7da1sgifx1a5wdyx1kxbzys53v0kyk8nhxfipllmm5qka3k";
};
strictDeps = true;
nativeBuildInputs = [ autoreconfHook ];
# tests are super flaky unfortunately, and regularily break.
# let's disable them for now.
doCheck = false;
nativeCheckInputs = [
# perl is assumed by perldoc completion
perl
# ps assumed to exist by gdb, killall, pgrep, pidof,
# pkill, pwdx, renice, and reptyr completions
ps
python3Packages.pexpect
python3Packages.pytest
bashInteractive
];
# - ignore test_gcc on ARM because it assumes -march=native
# - ignore test_chsh because it assumes /etc/shells exists
# - ignore test_ether_wake, test_ifdown, test_ifstat, test_ifup,
# test_iperf, test_iperf3, test_nethogs and ip_addresses
# because they try to touch network
# - ignore test_ls because impure logic
# - ignore test_screen because it assumes vt terminals exist
checkPhase = ''
pytest . \
${lib.optionalString stdenv.hostPlatform.isAarch "--ignore=test/t/test_gcc.py"} \
--ignore=test/t/test_chsh.py \
--ignore=test/t/test_ether_wake.py \
--ignore=test/t/test_ifdown.py \
--ignore=test/t/test_ifstat.py \
--ignore=test/t/test_ifup.py \
--ignore=test/t/test_iperf.py \
--ignore=test/t/test_iperf3.py \
--ignore=test/t/test_nethogs.py \
--ignore=test/t/unit/test_unit_ip_addresses.py \
--ignore=test/t/test_ls.py \
--ignore=test/t/test_screen.py
'';
prePatch = lib.optionalString stdenv.isDarwin ''
sed -i -e 's/readlink -f/readlink/g' bash_completion completions/*
'';
meta = with lib; {
homepage = "https://github.com/scop/bash-completion";
description = "Programmable completion for the bash shell";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ maintainers.xfix ];
};
}