mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-14 08:54:46 +00:00
4f0dadbf38
After final improvements to the official formatter implementation, this commit now performs the first treewide reformat of Nix files using it. This is part of the implementation of RFC 166. Only "inactive" files are reformatted, meaning only files that aren't being touched by any PR with activity in the past 2 months. This is to avoid conflicts for PRs that might soon be merged. Later we can do a full treewide reformat to get the rest, which should not cause as many conflicts. A CI check has already been running for some time to ensure that new and already-formatted files are formatted, so the files being reformatted here should also stay formatted. This commit was automatically created and can be verified using nix-builda08b3a4d19
.tar.gz \ --argstr baseRevb32a094368
result/bin/apply-formatting $NIXPKGS_PATH
74 lines
2.2 KiB
Nix
74 lines
2.2 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
fetchurl,
|
|
m4,
|
|
perl,
|
|
help2man,
|
|
}:
|
|
|
|
# Note: this package is used for bootstrapping fetchurl, and thus
|
|
# cannot use fetchpatch! All mutable patches (generated by GitHub or
|
|
# cgit) that are needed here should be included directly in Nixpkgs as
|
|
# files.
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "bison";
|
|
version = "3.8.2";
|
|
|
|
src = fetchurl {
|
|
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
|
|
sha256 = "sha256-BsnhO99+sk1M62tZIFpPZ8LH5yExGWREMP6C+9FKCrs=";
|
|
};
|
|
|
|
# gnulib relies on --host= to detect iconv() features on musl().
|
|
# Otherwise tests fail due to incorrect unicode symbol oconversion.
|
|
configurePlatforms = [
|
|
"build"
|
|
"host"
|
|
];
|
|
|
|
# there's a /bin/sh shebang in bin/yacc which when no strictDeps is patched with the build stdenv shell
|
|
# however when cross-compiling it would still be patched with the build stdenv shell which would be wrong
|
|
# cannot add bash to buildInputs due to infinite recursion
|
|
strictDeps = stdenv.hostPlatform != stdenv.buildPlatform;
|
|
|
|
nativeBuildInputs = [
|
|
m4
|
|
perl
|
|
] ++ lib.optional stdenv.hostPlatform.isSunOS help2man;
|
|
propagatedBuildInputs = [ m4 ];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
# Normal check and install check largely execute the same test suite
|
|
doCheck = false;
|
|
doInstallCheck = true;
|
|
|
|
meta = {
|
|
homepage = "https://www.gnu.org/software/bison/";
|
|
description = "Yacc-compatible parser generator";
|
|
license = lib.licenses.gpl3Plus;
|
|
|
|
longDescription = ''
|
|
Bison is a general-purpose parser generator that converts an
|
|
annotated context-free grammar into an LALR(1) or GLR parser for
|
|
that grammar. Once you are proficient with Bison, you can use
|
|
it to develop a wide range of language parsers, from those used
|
|
in simple desk calculators to complex programming languages.
|
|
|
|
Bison is upward compatible with Yacc: all properly-written Yacc
|
|
grammars ought to work with Bison with no change. Anyone
|
|
familiar with Yacc should be able to use Bison with little
|
|
trouble. You need to be fluent in C or C++ programming in order
|
|
to use Bison.
|
|
'';
|
|
|
|
platforms = lib.platforms.unix;
|
|
};
|
|
|
|
passthru = {
|
|
glrSupport = true;
|
|
};
|
|
}
|