summary refs log tree commit diff
path: root/pkgs/development/interpreters/octave
diff options
context:
space:
mode:
authorAlastair Pharo <asppsa@gmail.com>2017-03-29 19:50:58 +1100
committerAlastair Pharo <asppsa@gmail.com>2017-04-09 21:54:14 +1000
commit813eb41cf6a3edcff719fad7d67193f7ca39faf7 (patch)
tree6ea632051d3bab009d4fbec5b3570f817bbb72f9 /pkgs/development/interpreters/octave
parent250ddfe1a213af6ad600edca0c35b35f0c5d75d7 (diff)
downloadnixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar.gz
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar.bz2
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar.lz
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar.xz
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.tar.zst
nixpkgs-813eb41cf6a3edcff719fad7d67193f7ca39faf7.zip
octaveHg: add package
Diffstat (limited to 'pkgs/development/interpreters/octave')
-rw-r--r--pkgs/development/interpreters/octave/hg.nix75
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 00000000000..a34834af48c
--- /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";
+})