diff options
author | Alastair Pharo <asppsa@gmail.com> | 2017-03-29 19:50:58 +1100 |
---|---|---|
committer | Alastair Pharo <asppsa@gmail.com> | 2017-04-09 21:54:14 +1000 |
commit | 813eb41cf6a3edcff719fad7d67193f7ca39faf7 (patch) | |
tree | 6ea632051d3bab009d4fbec5b3570f817bbb72f9 /pkgs/development/interpreters/octave | |
parent | 250ddfe1a213af6ad600edca0c35b35f0c5d75d7 (diff) |
octaveHg: add package
Diffstat (limited to 'pkgs/development/interpreters/octave')
-rw-r--r-- | pkgs/development/interpreters/octave/hg.nix | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/octave/hg.nix b/pkgs/development/interpreters/octave/hg.nix new file mode 100644 index 0000000000000..a34834af48cb6 --- /dev/null +++ b/pkgs/development/interpreters/octave/hg.nix @@ -0,0 +1,75 @@ +args@{ stdenv, openblas, ghostscript ? null, texinfo + + , # These are arguments that shouldn't be passed to the + # octave package. + texlive, tex ? texlive.combined.scheme-small + , epstool, pstoedit, transfig + , lib, fetchhg, callPackage + , autoconf, automake, libtool + , bison, librsvg, icoutils, gperf + + , # These are options that can be passed in addition to the ones + # octave usually takes. + # - rev is the HG revision. Use "tip" for the bleeding edge. + # - docs can be set to false to skip building documentation. + rev ? "23269", docs ? true + + , # All remaining arguments will be passed to the octave package. + ... + }: + +with stdenv.lib; +let + octaveArgs = removeAttrs args + [ "texlive" "tex" + "epstool" "pstoedit" "transfig" + "lib" "fetchhg" "callPackage" + "autoconf" "automake" "libtool" + "bison" "librsvg" "icoutils" "gperf" + "rev" "docs" + ]; + octave = callPackage ./default.nix octaveArgs; + + # List of hashes for known HG revisions. + sha256s = { + "23269" = "87f560e873ad1454fdbcdd8aca65f9f0b1e605bdc00aebbdc4f9d862ca72ff1d"; + }; + +in lib.overrideDerivation octave (attrs: rec { + version = "4.3.0pre${rev}"; + name = "octave-${version}"; + + src = fetchhg { + url = http://www.octave.org/hg/octave; + inherit rev; + + sha256 = + if builtins.hasAttr rev sha256s + then builtins.getAttr rev sha256s + else null; + + fetchSubrepos = true; + }; + + # Octave's test for including this flag seems to be broken in 4.3. + F77_INTEGER_8_FLAG = optional openblas.blas64 "-fdefault-integer-8"; + + # This enables texinfo to find the files it needs. + TEXINPUTS = ".:build-aux:${texinfo}/texmf-dist/tex/generic/epsf:"; + + disableDocs = !docs || ghostscript == null; + + nativeBuildInputs = attrs.nativeBuildInputs + ++ [ autoconf automake libtool bison librsvg icoutils gperf ] + ++ optionals (!disableDocs) [ tex epstool pstoedit transfig ]; + + # Run bootstrap before any other patches, as other patches may refer + # to files that are generated by the bootstrap. + prePatch = '' + patchShebangs bootstrap + ./bootstrap + '' + attrs.prePatch; + + configureFlags = attrs.configureFlags ++ + optional disableDocs "--disable-docs"; +}) |