1 # This file contains the GNU Octave add-on packages set.
2 # Each attribute is an Octave library.
3 # Expressions for the Octave libraries are supposed to be in `pkgs/development/octave-modules/<name>/default.nix`.
5 # When contributing a new package, if that package has a dependency on another
6 # octave package, then you DO NOT need to explicitly list it as such when
7 # performing the callPackage. It will be passed implicitly.
8 # In addition, try to use the same dependencies as the ones octave needs, which
9 # should ensure greater compatibility between Octave itself and its packages.
11 # Like python-packages.nix, packages from top-level.nix are not in the scope
12 # of the `callPackage` used for packages here. So, when we do need packages
13 # from outside, we can `inherit` them from `pkgs`.
32 makeScope newScope (self:
34 callPackage = self.callPackage;
36 buildOctavePackage = callPackage ../development/interpreters/octave/build-octave-package.nix {
39 inherit computeRequiredOctavePackages;
42 # Given a list of required Octave package derivations, get a list of
43 # ALL required Octave packages needed for the ones specified to run.
44 computeRequiredOctavePackages = drvs: let
45 # Check whether a derivation is an octave package
46 hasOctavePackage = drv: drv?isOctavePackage;
47 packages = filter hasOctavePackage drvs;
48 in unique (packages ++ concatLists (catAttrs "requiredOctavePackages" packages));
52 inherit callPackage buildOctavePackage computeRequiredOctavePackages;
54 inherit (callPackage ../development/interpreters/octave/hooks { })
55 writeRequiredOctavePackagesHook;
57 arduino = callPackage ../development/octave-modules/arduino {
58 inherit (pkgs) arduino-core-unwrapped;
61 audio = callPackage ../development/octave-modules/audio { };
63 bim = callPackage ../development/octave-modules/bim { };
65 bsltl = callPackage ../development/octave-modules/bsltl { };
67 cgi = callPackage ../development/octave-modules/cgi { };
69 communications = callPackage ../development/octave-modules/communications { };
71 control = callPackage ../development/octave-modules/control { };
73 data-smoothing = callPackage ../development/octave-modules/data-smoothing { };
75 database = callPackage ../development/octave-modules/database { };
77 dataframe = callPackage ../development/octave-modules/dataframe { };
79 dicom = callPackage ../development/octave-modules/dicom { };
81 divand = callPackage ../development/octave-modules/divand { };
83 doctest = callPackage ../development/octave-modules/doctest { };
85 econometrics = callPackage ../development/octave-modules/econometrics { };
87 fem-fenics = callPackage ../development/octave-modules/fem-fenics {
88 # PLACEHOLDER until KarlJoad gets dolfin packaged.
93 fits = callPackage ../development/octave-modules/fits { };
95 financial = callPackage ../development/octave-modules/financial { };
97 fpl = callPackage ../development/octave-modules/fpl { };
99 fuzzy-logic-toolkit = callPackage ../development/octave-modules/fuzzy-logic-toolkit { };
101 ga = callPackage ../development/octave-modules/ga { };
103 general = callPackage ../development/octave-modules/general {
104 nettle = pkgs.nettle;
107 generate_html = callPackage ../development/octave-modules/generate_html { };
109 geometry = callPackage ../development/octave-modules/geometry { };
111 gsl = callPackage ../development/octave-modules/gsl {
115 image = callPackage ../development/octave-modules/image { };
117 image-acquisition = callPackage ../development/octave-modules/image-acquisition { };
119 instrument-control = callPackage ../development/octave-modules/instrument-control { };
121 io = callPackage ../development/octave-modules/io {
122 inherit (octave) enableJava;
125 interval = callPackage ../development/octave-modules/interval { };
127 level-set = callPackage ../development/octave-modules/level-set { };
129 linear-algebra = callPackage ../development/octave-modules/linear-algebra { };
131 lssa = callPackage ../development/octave-modules/lssa { };
133 ltfat = callPackage ../development/octave-modules/ltfat {
134 inherit (octave) fftw fftwSinglePrec portaudio jdk;
135 inherit (pkgs) fftwFloat fftwLongDouble;
138 mapping = callPackage ../development/octave-modules/mapping { };
140 matgeom = callPackage ../development/octave-modules/matgeom { };
142 miscellaneous = callPackage ../development/octave-modules/miscellaneous { };
144 msh = callPackage ../development/octave-modules/msh {
145 # PLACEHOLDER until KarlJoad gets dolfin packaged.
149 mvn = callPackage ../development/octave-modules/mvn { };
151 nan = callPackage ../development/octave-modules/nan { };
153 ncarray = callPackage ../development/octave-modules/ncarray { };
155 netcdf = callPackage ../development/octave-modules/netcdf {
156 inherit (pkgs) netcdf;
159 nurbs = callPackage ../development/octave-modules/nurbs { };
161 ocl = callPackage ../development/octave-modules/ocl { };
163 octclip = callPackage ../development/octave-modules/octclip { };
165 octproj = callPackage ../development/octave-modules/octproj { };
167 optics = callPackage ../development/octave-modules/optics { };
169 optim = callPackage ../development/octave-modules/optim { };
171 optiminterp = callPackage ../development/octave-modules/optiminterp { };
173 parallel = callPackage ../development/octave-modules/parallel { };
175 quaternion = callPackage ../development/octave-modules/quaternion { };
177 queueing = callPackage ../development/octave-modules/queueing { };
179 signal = callPackage ../development/octave-modules/signal { };
181 sockets = callPackage ../development/octave-modules/sockets { };
183 sparsersb = callPackage ../development/octave-modules/sparsersb { };
185 stk = callPackage ../development/octave-modules/stk { };
187 splines = callPackage ../development/octave-modules/splines { };
189 statistics = callPackage ../development/octave-modules/statistics { };
191 strings = callPackage ../development/octave-modules/strings { };
193 struct = callPackage ../development/octave-modules/struct { };
195 symbolic = callPackage ../development/octave-modules/symbolic {
196 inherit (octave) python;
199 tisean = callPackage ../development/octave-modules/tisean { };
201 tsa = callPackage ../development/octave-modules/tsa { };
203 vibes = callPackage ../development/octave-modules/vibes {
205 # TODO: Need to package vibes:
206 # https://github.com/ENSTABretagneRobotics/VIBES
209 video = callPackage ../development/octave-modules/video { };
211 vrml = callPackage ../development/octave-modules/vrml {
215 windows = callPackage ../development/octave-modules/windows { };
217 zeromq = callPackage ../development/octave-modules/zeromq {
218 inherit (pkgs) zeromq autoreconfHook;