nixpkgs/pkgs/development/compilers/ocaml/ber-metaocaml-003.nix
Bjørn Forsman c9baba9212 Fix many package descriptions
(My OCD kicked in today...)

Remove repeated package names, capitalize first word, remove trailing
periods and move overlong descriptions to longDescription.

I also simplified some descriptions as well, when they were particularly
long or technical, often based on Arch Linux' package descriptions.

I've tried to stay away from generated expressions (and I think I
succeeded).

Some specifics worth mentioning:
 * cron, has "Vixie Cron" in its description. The "Vixie" part is not
   mentioned anywhere else. I kept it in a parenthesis at the end of the
   description.

 * ctags description started with "Exuberant Ctags ...", and the
   "exuberant" part is not mentioned elsewhere. Kept it in a parenthesis
   at the end of description.

 * nix has the description "The Nix Deployment System". Since that
   doesn't really say much what it is/does (especially after removing
   the package name!), I changed that to "Powerful package manager that
   makes package management reliable and reproducible" (borrowed from
   nixos.org).

 * Tons of "GNU Foo, Foo is a [the important bits]" descriptions
   is changed to just [the important bits]. If the package name doesn't
   contain GNU I don't think it's needed to say it in the description
   either.
2014-08-24 22:31:37 +02:00

64 lines
1.9 KiB
Nix

{ stdenv, fetchurl, ncurses, x11 }:
let
useX11 = stdenv.isi686 || stdenv.isx86_64;
useNativeCompilers = stdenv.isi686 || stdenv.isx86_64 || stdenv.isMips;
inherit (stdenv.lib) optionals optionalString;
in
stdenv.mkDerivation rec {
name = "ber-metaocaml-003";
src = fetchurl {
url = "http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.2.tar.bz2";
sha256 = "0hw1yp1mmfyn1pmda232d0ry69m7ln1z0fn5lgi8nz3y1mx3iww6";
};
metaocaml = fetchurl {
url = "http://okmij.org/ftp/ML/ber-metaocaml.tar.gz";
sha256 = "1kq1if25c1wvcdiy4g46xk05dkc1am2gc4qvmg4x19wvvaz09gzf";
};
# Needed to avoid a SIGBUS on the final executable on mips
NIX_CFLAGS_COMPILE = if stdenv.isMips then "-fPIC" else "";
patches = optionals stdenv.isDarwin [ ./gnused-on-osx-fix.patch ];
prefixKey = "-prefix ";
configureFlags = ["-no-tk"] ++ optionals useX11 [ "-x11lib" x11 ];
buildFlags = "core coreboot all"; # "world" + optionalString useNativeCompilers " bootstrap world.opt";
buildInputs = [ncurses] ++ optionals useX11 [ x11 ];
installFlags = "-i";
installTargets = "install"; # + optionalString useNativeCompilers " installopt";
prePatch = ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
patch -p0 < ${./mips64.patch}
'';
postConfigure = ''
tar -xvzf $metaocaml
cd ${name}
make patch
cd ..
'';
postBuild = ''
mkdir -p $out/include
ln -sv $out/lib/ocaml/caml $out/include/caml
'';
postInstall = ''
cd ${name}
make all
make install
make test
make test-compile
cd ..
'';
meta = {
homepage = "http://okmij.org/ftp/ML/index.html#ber-metaocaml";
license = [ "QPL" /* compiler */ "LGPLv2" /* library */ ];
description = "A conservative extension of OCaml with the primitive type of code values, and three basic multi-stage expression forms: Brackets, Escape, and Run";
};
}