nixpkgs/pkgs/development/tools/parsing/bison/3.x.nix
Dan Peebles 0419452113 Fix Darwin stdenv to work on 10.13
The main changes are in libSystem, which lost the coretls component in 10.13
and some hardening changes that quietly crash any program that uses %n in
a non-constant format string, so we've needed to patch a lot of programs that
use gnulib.
2017-07-11 21:56:38 -04:00

43 lines
1.4 KiB
Nix

{ stdenv, hostPlatform, fetchurl, m4, perl, help2man }:
stdenv.mkDerivation rec {
name = "bison-3.0.4";
src = fetchurl {
url = "mirror://gnu/bison/${name}.tar.gz";
sha256 = "b67fd2daae7a64b5ba862c66c07c1addb9e6b1b05c5f2049392cfd8a2172952e";
};
patches = stdenv.lib.optional hostPlatform.isDarwin stdenv.secure-format-patch;
nativeBuildInputs = [ m4 perl ] ++ stdenv.lib.optional stdenv.isSunOS help2man;
propagatedBuildInputs = [ m4 ];
# FIXME needs gcc 4.9 in bootstrap tools
hardeningDisable = [ "stackprotector" ];
meta = {
homepage = "http://www.gnu.org/software/bison/";
description = "Yacc-compatible parser generator";
license = stdenv.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 = stdenv.lib.platforms.unix;
};
passthru = { glrSupport = true; };
}