about summary refs log tree commit diff
path: root/nixpkgs/pkgs/top-level/octave-packages.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-04-09 18:28:16 +0000
committerAlyssa Ross <hi@alyssa.is>2021-04-12 18:46:15 +0000
commitfd2e737e0678ee7d8081baef05b305146a2c0034 (patch)
treeac3e9b27576a0382335532d126f9a66d486bc638 /nixpkgs/pkgs/top-level/octave-packages.nix
parentcc207d720b6aa836e256c1ee9842bc739e630a8a (diff)
parent9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2 (diff)
downloadnixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.gz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.bz2
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.lz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.xz
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.tar.zst
nixlib-fd2e737e0678ee7d8081baef05b305146a2c0034.zip
Merge remote-tracking branch 'nixpkgs/nixos-unstable'
Diffstat (limited to 'nixpkgs/pkgs/top-level/octave-packages.nix')
-rw-r--r--nixpkgs/pkgs/top-level/octave-packages.nix220
1 files changed, 220 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/top-level/octave-packages.nix b/nixpkgs/pkgs/top-level/octave-packages.nix
new file mode 100644
index 000000000000..115b38095ed1
--- /dev/null
+++ b/nixpkgs/pkgs/top-level/octave-packages.nix
@@ -0,0 +1,220 @@
+# This file contains the GNU Octave add-on packages set.
+# Each attribute is an Octave library.
+# Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
+
+# When contributing a new package, if that package has a dependency on another
+# octave package, then you DO NOT need to explicitly list it as such when
+# performing the callPackage. It will be passed implicitly.
+# In addition, try to use the same dependencies as the ones octave needs, which
+# should ensure greater compatibility between Octave itself and its packages.
+
+# Like python-packages.nix, packages from top-level.nix are not in the scope
+# of the `callPackage` used for packages here. So, when we do need packages
+# from outside, we can `inherit` them from `pkgs`.
+{ pkgs
+, lib
+, stdenv
+, fetchurl
+, newScope
+, octave
+}:
+
+with lib;
+
+makeScope newScope (self:
+  let
+    inherit (octave) blas lapack gfortran python texinfo gnuplot;
+
+    callPackage = self.callPackage;
+
+    buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
+      inherit lib stdenv;
+      inherit octave;
+      inherit computeRequiredOctavePackages;
+    };
+
+    wrapOctave = callPackage ../development/interpreters/octave/wrap-octave.nix {
+      inherit octave;
+      inherit (pkgs) makeSetupHook makeWrapper;
+    };
+
+    # Given a list of required Octave package derivations, get a list of
+    # ALL required Octave packages needed for the ones specified to run.
+    computeRequiredOctavePackages = drvs: let
+      # Check whether a derivation is an octave package
+      hasOctavePackage = drv: drv?isOctavePackage;
+      packages = filter hasOctavePackage drvs;
+    in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
+
+  in {
+
+    inherit callPackage buildOctavePackage computeRequiredOctavePackages;
+
+    inherit (callPackage ../development/interpreters/octave/hooks { })
+      writeRequiredOctavePackagesHook;
+
+    arduino = callPackage ../development/octave-modules/arduino {
+      inherit (pkgs) arduino;
+    };
+
+    audio = callPackage ../development/octave-modules/audio { };
+
+    bim = callPackage ../development/octave-modules/bim { };
+
+    bsltl = callPackage ../development/octave-modules/bsltl { };
+
+    cgi = callPackage ../development/octave-modules/cgi { };
+
+    communications = callPackage ../development/octave-modules/communications { };
+
+    control = callPackage ../development/octave-modules/control { };
+
+    data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
+
+    database = callPackage ../development/octave-modules/database { };
+
+    dataframe = callPackage ../development/octave-modules/dataframe { };
+
+    dicom = callPackage ../development/octave-modules/dicom { };
+
+    divand = callPackage ../development/octave-modules/divand { };
+
+    doctest = callPackage ../development/octave-modules/doctest { };
+
+    econometrics = callPackage ../development/octave-modules/econometrics { };
+
+    fem-fenics = callPackage ../development/octave-modules/fem-fenics {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+      ffc = null;
+    };
+
+    fits = callPackage ../development/octave-modules/fits { };
+
+    financial = callPackage ../development/octave-modules/financial { };
+
+    fpl = callPackage ../development/octave-modules/fpl { };
+
+    fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
+
+    ga = callPackage ../development/octave-modules/ga { };
+
+    general = callPackage ../development/octave-modules/general {
+      nettle = pkgs.nettle;
+    };
+
+    generate_html = callPackage ../development/octave-modules/generate_html { };
+
+    geometry = callPackage ../development/octave-modules/geometry { };
+
+    gsl = callPackage ../development/octave-modules/gsl {
+      inherit (pkgs) gsl;
+    };
+
+    image = callPackage ../development/octave-modules/image { };
+
+    image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
+
+    instrument-control = callPackage ../development/octave-modules/instrument-control { };
+
+    io = callPackage ../development/octave-modules/io {
+      inherit (octave) enableJava;
+    };
+
+    interval = callPackage ../development/octave-modules/interval { };
+
+    level-set = callPackage ../development/octave-modules/level-set { };
+
+    linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
+
+    lssa = callPackage ../development/octave-modules/lssa { };
+
+    ltfat = callPackage ../development/octave-modules/ltfat {
+      inherit (octave) fftw fftwSinglePrec portaudio jdk;
+      inherit (pkgs) fftwFloat fftwLongDouble;
+    };
+
+    mapping = callPackage ../development/octave-modules/mapping { };
+
+    matgeom = callPackage ../development/octave-modules/matgeom { };
+
+    miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
+
+    msh = callPackage ../development/octave-modules/msh {
+      # PLACEHOLDER until KarlJoad gets dolfin packaged.
+      dolfin = null;
+    };
+
+    mvn = callPackage ../development/octave-modules/mvn { };
+
+    nan = callPackage ../development/octave-modules/nan { };
+
+    ncarray = callPackage ../development/octave-modules/ncarray { };
+
+    netcdf = callPackage ../development/octave-modules/netcdf {
+      inherit (pkgs) netcdf;
+    };
+
+    nurbs = callPackage ../development/octave-modules/nurbs { };
+
+    ocl = callPackage ../development/octave-modules/ocl { };
+
+    octclip = callPackage ../development/octave-modules/octclip { };
+
+    octproj = callPackage ../development/octave-modules/octproj { };
+
+    optics = callPackage ../development/octave-modules/optics { };
+
+    optim = callPackage ../development/octave-modules/optim { };
+
+    optiminterp = callPackage ../development/octave-modules/optiminterp { };
+
+    parallel = callPackage ../development/octave-modules/parallel { };
+
+    quaternion = callPackage ../development/octave-modules/quaternion { };
+
+    queueing = callPackage ../development/octave-modules/queueing { };
+
+    signal = callPackage ../development/octave-modules/signal { };
+
+    sockets = callPackage ../development/octave-modules/sockets { };
+
+    sparsersb = callPackage ../development/octave-modules/sparsersb { };
+
+    stk = callPackage ../development/octave-modules/stk { };
+
+    splines = callPackage ../development/octave-modules/splines { };
+
+    statistics = callPackage ../development/octave-modules/statistics { };
+
+    strings = callPackage ../development/octave-modules/strings { };
+
+    struct = callPackage ../development/octave-modules/struct { };
+
+    symbolic = callPackage ../development/octave-modules/symbolic {
+      inherit (octave) python;
+    };
+
+    tisean = callPackage ../development/octave-modules/tisean { };
+
+    tsa = callPackage ../development/octave-modules/tsa { };
+
+    vibes = callPackage ../development/octave-modules/vibes {
+      vibes = null;
+      # TODO: Need to package vibes:
+      # https://github.com/ENSTABretagneRobotics/VIBES
+    };
+
+    video = callPackage ../development/octave-modules/video { };
+
+    vrml = callPackage ../development/octave-modules/vrml {
+      freewrl = null;
+    };
+
+    windows = callPackage ../development/octave-modules/windows { };
+
+    zeromq = callPackage ../development/octave-modules/zeromq {
+      inherit (pkgs) zeromq;
+    };
+
+  })