1/* This file defines the composition for CRAN (R) packages. */
2
3{ R, pkgs, overrides }:
4
5let
6 inherit (pkgs) cacert fetchurl stdenv lib;
7
8 buildRPackage = pkgs.callPackage ./generic-builder.nix {
9 inherit R;
10 inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa Foundation;
11 inherit (pkgs) gettext gfortran;
12 };
13
14 # Generates package templates given per-repository settings
15 #
16 # some packages, e.g. cncaGUI, require X running while installation,
17 # so that we use xvfb-run if requireX is true.
18 mkDerive = {mkHomepage, mkUrls, hydraPlatforms ? null}: args:
19 let hydraPlatforms' = hydraPlatforms; in
20 lib.makeOverridable ({
21 name, version, sha256,
22 depends ? [],
23 doCheck ? true,
24 requireX ? false,
25 broken ? false,
26 platforms ? R.meta.platforms,
27 hydraPlatforms ? if hydraPlatforms' != null then hydraPlatforms' else platforms,
28 maintainers ? []
29 }: buildRPackage {
30 name = "${name}-${version}";
31 src = fetchurl {
32 inherit sha256;
33 urls = mkUrls (args // { inherit name version; });
34 };
35 inherit doCheck requireX;
36 propagatedBuildInputs = depends;
37 nativeBuildInputs = depends;
38 meta.homepage = mkHomepage (args // { inherit name; });
39 meta.platforms = platforms;
40 meta.hydraPlatforms = hydraPlatforms;
41 meta.broken = broken;
42 meta.maintainers = maintainers;
43 });
44
45 # Templates for generating Bioconductor and CRAN packages
46 # from the name, version, sha256, and optional per-package arguments above
47 #
48 deriveBioc = mkDerive {
49 mkHomepage = {name, biocVersion, ...}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
50 mkUrls = {name, version, biocVersion}: [
51 "mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
52 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}/${name}_${version}.tar.gz"
53 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}_${version}.tar.gz"
54 ];
55 };
56 deriveBiocAnn = mkDerive {
57 mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
58 mkUrls = {name, version, biocVersion}: [
59 "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz"
60 ];
61 hydraPlatforms = [];
62 };
63 deriveBiocExp = mkDerive {
64 mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
65 mkUrls = {name, version, biocVersion}: [
66 "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz"
67 ];
68 hydraPlatforms = [];
69 };
70 deriveCran = mkDerive {
71 mkHomepage = {name, snapshot, ...}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/";
72 mkUrls = {name, version, snapshot}: [
73 "http://mran.revolutionanalytics.com/snapshot/${snapshot}/src/contrib/${name}_${version}.tar.gz"
74 ];
75 };
76
77 # Overrides package definitions with nativeBuildInputs.
78 # For example,
79 #
80 # overrideNativeBuildInputs {
81 # foo = [ pkgs.bar ]
82 # } old
83 #
84 # results in
85 #
86 # {
87 # foo = old.foo.overrideDerivation (attrs: {
88 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
89 # });
90 # }
91 overrideNativeBuildInputs = overrides: old:
92 lib.mapAttrs (name: value:
93 (builtins.getAttr name old).overrideDerivation (attrs: {
94 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
95 })
96 ) overrides;
97
98 # Overrides package definitions with buildInputs.
99 # For example,
100 #
101 # overrideBuildInputs {
102 # foo = [ pkgs.bar ]
103 # } old
104 #
105 # results in
106 #
107 # {
108 # foo = old.foo.overrideDerivation (attrs: {
109 # buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
110 # });
111 # }
112 overrideBuildInputs = overrides: old:
113 lib.mapAttrs (name: value:
114 (builtins.getAttr name old).overrideDerivation (attrs: {
115 buildInputs = attrs.buildInputs ++ value;
116 })
117 ) overrides;
118
119 # Overrides package definitions with maintainers.
120 # For example,
121 #
122 # overrideMaintainers {
123 # foo = [ lib.maintainers.jsmith ]
124 # } old
125 #
126 # results in
127 #
128 # {
129 # foo = old.foo.override {
130 # maintainers = [ lib.maintainers.jsmith ];
131 # };
132 # }
133 overrideMaintainers = overrides: old:
134 lib.mapAttrs (name: value:
135 (builtins.getAttr name old).override {
136 maintainers = value;
137 }) overrides;
138
139 # Overrides package definitions with new R dependencies.
140 # For example,
141 #
142 # overrideRDepends {
143 # foo = [ self.bar ]
144 # } old
145 #
146 # results in
147 #
148 # {
149 # foo = old.foo.overrideDerivation (attrs: {
150 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
151 # propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
152 # });
153 # }
154 overrideRDepends = overrides: old:
155 lib.mapAttrs (name: value:
156 (builtins.getAttr name old).overrideDerivation (attrs: {
157 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
158 propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value;
159 })
160 ) overrides;
161
162 # Overrides package definition requiring X running to install.
163 # For example,
164 #
165 # overrideRequireX [
166 # "foo"
167 # ] old
168 #
169 # results in
170 #
171 # {
172 # foo = old.foo.override {
173 # requireX = true;
174 # };
175 # }
176 overrideRequireX = packageNames: old:
177 let
178 nameValuePairs = map (name: {
179 inherit name;
180 value = (builtins.getAttr name old).override {
181 requireX = true;
182 };
183 }) packageNames;
184 in
185 builtins.listToAttrs nameValuePairs;
186
187 # Overrides package definition requiring a home directory to install or to
188 # run tests.
189 # For example,
190 #
191 # overrideRequireHome [
192 # "foo"
193 # ] old
194 #
195 # results in
196 #
197 # {
198 # foo = old.foo.overrideAttrs (oldAttrs: {
199 # preInstall = ''
200 # ${oldAttrs.preInstall or ""}
201 # export HOME=$(mktemp -d)
202 # '';
203 # });
204 # }
205 overrideRequireHome = packageNames: old:
206 let
207 nameValuePairs = map (name: {
208 inherit name;
209 value = (builtins.getAttr name old).overrideAttrs (oldAttrs: {
210 preInstall = ''
211 ${oldAttrs.preInstall or ""}
212 export HOME=$(mktemp -d)
213 '';
214 });
215 }) packageNames;
216 in
217 builtins.listToAttrs nameValuePairs;
218
219 # Overrides package definition to skip check.
220 # For example,
221 #
222 # overrideSkipCheck [
223 # "foo"
224 # ] old
225 #
226 # results in
227 #
228 # {
229 # foo = old.foo.override {
230 # doCheck = false;
231 # };
232 # }
233 overrideSkipCheck = packageNames: old:
234 let
235 nameValuePairs = map (name: {
236 inherit name;
237 value = (builtins.getAttr name old).override {
238 doCheck = false;
239 };
240 }) packageNames;
241 in
242 builtins.listToAttrs nameValuePairs;
243
244 # Overrides package definition to mark it broken.
245 # For example,
246 #
247 # overrideBroken [
248 # "foo"
249 # ] old
250 #
251 # results in
252 #
253 # {
254 # foo = old.foo.override {
255 # broken = true;
256 # };
257 # }
258 overrideBroken = packageNames: old:
259 let
260 nameValuePairs = map (name: {
261 inherit name;
262 value = (builtins.getAttr name old).override {
263 broken = true;
264 };
265 }) packageNames;
266 in
267 builtins.listToAttrs nameValuePairs;
268
269 defaultOverrides = old: new:
270 let old0 = old; in
271 let
272 old1 = old0 // (overrideRequireX packagesRequiringX old0);
273 old2 = old1 // (overrideRequireHome packagesRequiringHome old1);
274 old3 = old2 // (overrideSkipCheck packagesToSkipCheck old2);
275 old4 = old3 // (overrideRDepends packagesWithRDepends old3);
276 old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4);
277 old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5);
278 old7 = old6 // (overrideBroken brokenPackages old6);
279 old8 = old7 // (overrideMaintainers packagesWithMaintainers old7);
280 old = old8;
281 in old // (otherOverrides old new);
282
283 # Recursive override pattern.
284 # `_self` is a collection of packages;
285 # `self` is `_self` with overridden packages;
286 # packages in `_self` may depends on overridden packages.
287 self = (defaultOverrides _self self) // overrides;
288 _self = { inherit buildRPackage; } //
289 import ./bioc-packages.nix { inherit self; derive = deriveBioc; } //
290 import ./bioc-annotation-packages.nix { inherit self; derive = deriveBiocAnn; } //
291 import ./bioc-experiment-packages.nix { inherit self; derive = deriveBiocExp; } //
292 import ./cran-packages.nix { inherit self; derive = deriveCran; };
293
294 # tweaks for the individual packages and "in self" follow
295
296 packagesWithMaintainers = with lib.maintainers; {
297 data_table = [ jbedo ];
298 BiocManager = [ jbedo ];
299 ggplot2 = [ jbedo ];
300 svaNUMT = [ jbedo ];
301 svaRetro = [ jbedo ];
302 StructuralVariantAnnotation = [ jbedo ];
303 };
304
305 packagesWithRDepends = {
306 FactoMineR = [ self.car ];
307 pander = [ self.codetools ];
308 };
309
310 packagesWithNativeBuildInputs = {
311 arrow = [ pkgs.pkg-config pkgs.arrow-cpp ];
312 adimpro = [ pkgs.imagemagick ];
313 animation = [ pkgs.which ];
314 audio = [ pkgs.portaudio ];
315 BayesSAE = [ pkgs.gsl ];
316 BayesVarSel = [ pkgs.gsl ];
317 BayesXsrc = with pkgs; [ readline.dev ncurses gsl ];
318 bigGP = [ pkgs.mpi ];
319 bio3d = [ pkgs.zlib ];
320 BiocCheck = [ pkgs.which ];
321 Biostrings = [ pkgs.zlib ];
322 bnpmr = [ pkgs.gsl ];
323 cairoDevice = [ pkgs.gtk2.dev ];
324 Cairo = with pkgs; [ libtiff libjpeg cairo.dev xlibsWrapper fontconfig.lib ];
325 Cardinal = [ pkgs.which ];
326 chebpol = [ pkgs.fftw.dev ];
327 ChemmineOB = with pkgs; [ openbabel pkg-config ];
328 curl = [ pkgs.curl.dev ];
329 data_table = [ pkgs.zlib.dev ] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
330 devEMF = with pkgs; [ xorg.libXft.dev xlibsWrapper ];
331 diversitree = with pkgs; [ gsl fftw ];
332 exactextractr = [ pkgs.geos ];
333 EMCluster = [ pkgs.lapack ];
334 fftw = [ pkgs.fftw.dev ];
335 fftwtools = with pkgs; [ fftw.dev pkg-config ];
336 Formula = [ pkgs.gmp ];
337 gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ];
338 ggiraph = with pkgs; [ pkgs.libpng.dev ];
339 git2r = with pkgs; [ zlib.dev openssl.dev libssh2.dev libgit2 pkg-config ];
340 GLAD = [ pkgs.gsl ];
341 glpkAPI = with pkgs; [ gmp glpk ];
342 gmp = [ pkgs.gmp.dev ];
343 graphscan = [ pkgs.gsl ];
344 gsl = [ pkgs.gsl ];
345 gert = [ pkgs.libgit2 ];
346 haven = with pkgs; [ libiconv zlib.dev ];
347 h5vc = [ pkgs.zlib.dev ];
348 HiCseg = [ pkgs.gsl ];
349 imager = [ pkgs.xlibsWrapper ];
350 iBMQ = [ pkgs.gsl ];
351 igraph = with pkgs; [ gmp libxml2.dev ];
352 JavaGD = [ pkgs.jdk ];
353 jpeg = [ pkgs.libjpeg.dev ];
354 jqr = [ pkgs.jq.dev ];
355 KFKSDS = [ pkgs.gsl ];
356 kza = [ pkgs.fftw.dev ];
357 lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
358 lwgeom = with pkgs; [ proj geos gdal ];
359 magick = [ pkgs.imagemagick.dev ];
360 ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
361 mvabund = [ pkgs.gsl ];
362 mwaved = [ pkgs.fftw.dev ];
363 mzR = with pkgs; [ zlib boost159.dev netcdf ];
364 ncdf4 = [ pkgs.netcdf ];
365 nloptr = with pkgs; [ nlopt pkg-config libiconv ];
366 n1qn1 = [ pkgs.gfortran ];
367 odbc = [ pkgs.unixODBC ];
368 pander = with pkgs; [ pandoc which ];
369 pbdMPI = [ pkgs.mpi ];
370 pbdPROF = [ pkgs.mpi ];
371 pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.which ];
372 pdftools = [ pkgs.poppler.dev ];
373 phytools = [ pkgs.which ];
374 PKI = [ pkgs.openssl.dev ];
375 png = [ pkgs.libpng.dev ];
376 protolite = [ pkgs.protobuf ];
377 R2SWF = with pkgs; [ zlib libpng freetype.dev ];
378 RAppArmor = [ pkgs.libapparmor ];
379 rapportools = [ pkgs.which ];
380 rapport = [ pkgs.which ];
381 readxl = [ pkgs.libiconv ];
382 rcdd = [ pkgs.gmp.dev ];
383 RcppCNPy = [ pkgs.zlib.dev ];
384 RcppGSL = [ pkgs.gsl ];
385 RcppZiggurat = [ pkgs.gsl ];
386 reprex = [ pkgs.which ];
387 rgdal = with pkgs; [ proj.dev gdal ];
388 rgeos = [ pkgs.geos ];
389 Rglpk = [ pkgs.glpk ];
390 RGtk2 = [ pkgs.gtk2.dev ];
391 rhdf5 = [ pkgs.zlib ];
392 Rhdf5lib = with pkgs; [ zlib.dev hdf5.dev ];
393 Rhpc = with pkgs; [ zlib bzip2.dev icu xz.dev mpi pcre.dev ];
394 Rhtslib = with pkgs; [ zlib.dev automake autoconf bzip2.dev xz.dev curl.dev ];
395 rjags = [ pkgs.jags ];
396 rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip ];
397 Rlibeemd = [ pkgs.gsl ];
398 rmatio = [ pkgs.zlib.dev ];
399 Rmpfr = with pkgs; [ gmp mpfr.dev ];
400 Rmpi = [ pkgs.mpi ];
401 RMySQL = with pkgs; [ zlib libmysqlclient openssl.dev ];
402 RNetCDF = with pkgs; [ netcdf udunits ];
403 RODBC = [ pkgs.libiodbc ];
404 rpanel = [ pkgs.bwidget ];
405 Rpoppler = [ pkgs.poppler ];
406 RPostgreSQL = with pkgs; [ postgresql postgresql ];
407 RProtoBuf = [ pkgs.protobuf ];
408 RSclient = [ pkgs.openssl.dev ];
409 Rserve = [ pkgs.openssl ];
410 Rssa = [ pkgs.fftw.dev ];
411 rsvg = [ pkgs.pkg-config ];
412 runjags = [ pkgs.jags ];
413 RVowpalWabbit = with pkgs; [ zlib.dev boost ];
414 rzmq = with pkgs; [ zeromq pkg-config ];
415 httpuv = [ pkgs.zlib.dev ];
416 clustermq = [ pkgs.zeromq ];
417 SAVE = with pkgs; [ zlib bzip2 icu xz pcre ];
418 sdcTable = with pkgs; [ gmp glpk ];
419 seewave = with pkgs; [ fftw.dev libsndfile.dev ];
420 seqinr = [ pkgs.zlib.dev ];
421 seqminer = with pkgs; [ zlib.dev bzip2 ];
422 sf = with pkgs; [ gdal proj geos ];
423 terra = with pkgs; [ gdal proj geos ];
424 showtext = with pkgs; [ zlib libpng icu freetype.dev ];
425 simplexreg = [ pkgs.gsl ];
426 spate = [ pkgs.fftw.dev ];
427 ssanv = [ pkgs.proj ];
428 stsm = [ pkgs.gsl ];
429 stringi = [ pkgs.icu.dev ];
430 survSNP = [ pkgs.gsl ];
431 svglite = [ pkgs.libpng.dev ];
432 sysfonts = with pkgs; [ zlib libpng freetype.dev ];
433 systemfonts = with pkgs; [ fontconfig.dev freetype.dev ];
434 TAQMNGR = [ pkgs.zlib.dev ];
435 tesseract = with pkgs; [ tesseract leptonica ];
436 tiff = [ pkgs.libtiff.dev ];
437 tkrplot = with pkgs; [ xorg.libX11 tk.dev ];
438 topicmodels = [ pkgs.gsl ];
439 udunits2 = with pkgs; [ udunits expat ];
440 units = [ pkgs.udunits ];
441 V8 = [ pkgs.v8 ];
442 XBRL = with pkgs; [ zlib libxml2.dev ];
443 xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
444 XML = with pkgs; [ libtool libxml2.dev xmlsec libxslt ];
445 affyPLM = [ pkgs.zlib.dev ];
446 bamsignals = [ pkgs.zlib.dev ];
447 BitSeq = [ pkgs.zlib.dev ];
448 DiffBind = [ pkgs.zlib ];
449 ShortRead = [ pkgs.zlib.dev ];
450 oligo = [ pkgs.zlib.dev ];
451 gmapR = [ pkgs.zlib.dev ];
452 Rsubread = [ pkgs.zlib.dev ];
453 XVector = [ pkgs.zlib.dev ];
454 Rsamtools = with pkgs; [ zlib.dev curl.dev ];
455 rtracklayer = [ pkgs.zlib.dev ];
456 affyio = [ pkgs.zlib.dev ];
457 VariantAnnotation = with pkgs; [ zlib.dev curl.dev ];
458 snpStats = [ pkgs.zlib.dev ];
459 hdf5r = [ pkgs.hdf5.dev ];
460 httpgd = with pkgs; [ cairo.dev ];
461 SymTS = [ pkgs.gsl ];
462 VBLPCM = [ pkgs.gsl ];
463 dynr = [ pkgs.gsl ];
464 mixlink = [ pkgs.gsl ];
465 ridge = [ pkgs.gsl ];
466 smam = [ pkgs.gsl ];
467 rnetcarto = [ pkgs.gsl ];
468 rGEDI = [ pkgs.gsl ];
469 mmpca = [ pkgs.gsl ];
470 monoreg = [ pkgs.gsl ];
471 mvst = [ pkgs.gsl ];
472 mixture = [ pkgs.gsl ];
473 jSDM = [ pkgs.gsl ];
474 immunoClust = [ pkgs.gsl ];
475 hSDM = [ pkgs.gsl ];
476 flowPeaks = [ pkgs.gsl ];
477 fRLR = [ pkgs.gsl ];
478 eaf = [ pkgs.gsl ];
479 diseq = [ pkgs.gsl ];
480 cit = [ pkgs.gsl ];
481 abn = [ pkgs.gsl ];
482 SimInf = [ pkgs.gsl ];
483 RJMCMCNucleosomes = [ pkgs.gsl ];
484 RDieHarder = [ pkgs.gsl ];
485 QF = [ pkgs.gsl ];
486 PICS = [ pkgs.gsl ];
487 RcppCWB = [ pkgs.pkg-config ];
488 rrd = [ pkgs.pkg-config ];
489 trackViewer = [ pkgs.zlib.dev ];
490 themetagenomics = [ pkgs.zlib.dev ];
491 NanoMethViz = [ pkgs.zlib.dev ];
492 RcppMeCab = [ pkgs.pkg-config ];
493 HilbertVisGUI = with pkgs; [ pkg-config which ];
494 textshaping = [ pkgs.pkg-config ];
495 ragg = [ pkgs.pkg-config ];
496 qqconf = [ pkgs.pkg-config ];
497 };
498
499 packagesWithBuildInputs = {
500 # sort -t '=' -k 2
501 gam = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
502 RcppArmadillo = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
503 quantreg = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
504 rmutil = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
505 robustbase = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
506 SparseM = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
507 hexbin = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
508 svKomodo = [ pkgs.which ];
509 nat = [ pkgs.which ];
510 nat_templatebrains = [ pkgs.which ];
511 pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
512 clustermq = [ pkgs.pkg-config ];
513 RMark = [ pkgs.which ];
514 RPushbullet = [ pkgs.which ];
515 RcppEigen = [ pkgs.libiconv ];
516 RCurl = [ pkgs.curl.dev ];
517 R2SWF = [ pkgs.pkg-config ];
518 rgl = with pkgs; [ libGLU libGLU.dev libGL xlibsWrapper ];
519 RGtk2 = [ pkgs.pkg-config ];
520 RProtoBuf = [ pkgs.pkg-config ];
521 Rpoppler = [ pkgs.pkg-config ];
522 XML = [ pkgs.pkg-config ];
523 cairoDevice = [ pkgs.pkg-config ];
524 chebpol = [ pkgs.pkg-config ];
525 fftw = [ pkgs.pkg-config ];
526 gdtools = [ pkgs.pkg-config ];
527 jqr = [ pkgs.jq.lib ];
528 kza = [ pkgs.pkg-config ];
529 lwgeom = with pkgs; [ pkg-config proj.dev sqlite.dev ];
530 magick = [ pkgs.pkg-config ];
531 mwaved = [ pkgs.pkg-config ];
532 odbc = [ pkgs.pkg-config ];
533 openssl = [ pkgs.pkg-config ];
534 pdftools = [ pkgs.pkg-config ];
535 sf = with pkgs; [ pkg-config sqlite.dev proj.dev ];
536 terra = with pkgs; [ pkg-config sqlite.dev proj.dev ];
537 showtext = [ pkgs.pkg-config ];
538 spate = [ pkgs.pkg-config ];
539 stringi = [ pkgs.pkg-config ];
540 sysfonts = [ pkgs.pkg-config ];
541 systemfonts = [ pkgs.pkg-config ];
542 tesseract = [ pkgs.pkg-config ];
543 Cairo = [ pkgs.pkg-config ];
544 CLVTools = [ pkgs.gsl ];
545 JMcmprsk = [ pkgs.gsl ];
546 mashr = [ pkgs.gsl ];
547 hadron = [ pkgs.gsl ];
548 AMOUNTAIN = [ pkgs.gsl ];
549 Rsymphony = with pkgs; [ pkg-config doxygen graphviz subversion ];
550 tcltk2 = with pkgs; [ tcl tk ];
551 tikzDevice = with pkgs; [ which texlive.combined.scheme-medium ];
552 gridGraphics = [ pkgs.which ];
553 adimpro = with pkgs; [ which xorg.xdpyinfo ];
554 cluster = [ pkgs.libiconv ];
555 KernSmooth = [ pkgs.libiconv ];
556 nlme = [ pkgs.libiconv ];
557 Matrix = [ pkgs.libiconv ];
558 mgcv = [ pkgs.libiconv ];
559 minqa = [ pkgs.libiconv ];
560 igraph = [ pkgs.libiconv ];
561 ape = [ pkgs.libiconv ];
562 expm = [ pkgs.libiconv ];
563 mnormt = [ pkgs.libiconv ];
564 pan = [ pkgs.libiconv ];
565 phangorn = [ pkgs.libiconv ];
566 quadprog = [ pkgs.libiconv ];
567 randomForest = [ pkgs.libiconv ];
568 sundialr = [ pkgs.libiconv ];
569 ucminf = [ pkgs.libiconv ];
570 glmnet = [ pkgs.libiconv ];
571 mvtnorm = [ pkgs.libiconv ];
572 statmod = [ pkgs.libiconv ];
573 rsvg = [ pkgs.librsvg.dev ];
574 ssh = with pkgs; [ libssh ];
575 s2 = [ pkgs.openssl.dev ];
576 ArrayExpressHTS = with pkgs; [ zlib.dev curl.dev which ];
577 bbl = with pkgs; [ gsl ];
578 writexl = with pkgs; [ zlib.dev ];
579 qpdf = with pkgs; [ libjpeg.dev zlib.dev ];
580 vcfR = with pkgs; [ zlib.dev ];
581 bio3d = with pkgs; [ zlib.dev ];
582 arrangements = with pkgs; [ gmp.dev ];
583 spp = with pkgs; [ zlib.dev ];
584 Rbowtie = with pkgs; [ zlib.dev ];
585 gaston = with pkgs; [ zlib.dev ];
586 csaw = with pkgs; [ zlib.dev curl ];
587 DirichletMultinomial = with pkgs; [ gsl ];
588 DiffBind = with pkgs; [ zlib.dev ];
589 CNEr = with pkgs; [ zlib ];
590 GMMAT = with pkgs; [ zlib.dev bzip2.dev ];
591 HiCDCPlus = [ pkgs.zlib.dev ];
592 PopGenome = [ pkgs.zlib.dev ];
593 QuasR = [ pkgs.zlib.dev ];
594 Rbowtie2 = [ pkgs.zlib.dev ];
595 Rmmquant = [ pkgs.zlib.dev ];
596 SICtools = with pkgs; [ zlib.dev ncurses.dev ];
597 Signac = [ pkgs.zlib.dev ];
598 TransView = [ pkgs.zlib.dev ];
599 bigsnpr = [ pkgs.zlib.dev ];
600 divest = [ pkgs.zlib.dev ];
601 hipread = [ pkgs.zlib.dev ];
602 jackalope = with pkgs; [ zlib.dev xz.dev ];
603 largeList = [ pkgs.zlib.dev ];
604 mappoly = [ pkgs.zlib.dev ];
605 matchingMarkets = [ pkgs.zlib.dev ];
606 methylKit = [ pkgs.zlib.dev ];
607 ndjson = [ pkgs.zlib.dev ];
608 podkat = [ pkgs.zlib.dev ];
609 qrqc = [ pkgs.zlib.dev ];
610 rJPSGCS = [ pkgs.zlib.dev ];
611 rhdf5filters = [ pkgs.zlib.dev ];
612 rtk = [ pkgs.zlib.dev ];
613 scPipe = [ pkgs.zlib.dev ];
614 seqTools = [ pkgs.zlib.dev ];
615 seqbias = [ pkgs.zlib.dev ];
616 sparkwarc = [ pkgs.zlib.dev ];
617 RoBMA = [ pkgs.jags ];
618 rGEDI = with pkgs; [ libgeotiff.dev libaec zlib.dev hdf5.dev ];
619 rawrr = [ pkgs.mono ];
620 HDF5Array = [ pkgs.zlib.dev ];
621 FLAMES = [ pkgs.zlib.dev ];
622 ncdfFlow = [ pkgs.zlib.dev ];
623 proj4 = [ pkgs.proj.dev ];
624 rtmpt = [ pkgs.gsl ];
625 mixcat = [ pkgs.gsl ];
626 libstableR = [ pkgs.gsl ];
627 landsepi = [ pkgs.gsl ];
628 flan = [ pkgs.gsl ];
629 econetwork = [ pkgs.gsl ];
630 crandep = [ pkgs.gsl ];
631 catSurv = [ pkgs.gsl ];
632 ccfindR = [ pkgs.gsl ];
633 SPARSEMODr = [ pkgs.gsl ];
634 RKHSMetaMod = [ pkgs.gsl ];
635 LCMCR = [ pkgs.gsl ];
636 BNSP = [ pkgs.gsl ];
637 scModels = [ pkgs.mpfr.dev ];
638 multibridge = [ pkgs.mpfr.dev ];
639 RcppCWB = with pkgs; [ pcre.dev glib.dev ];
640 RmecabKo = [ pkgs.mecab ];
641 PoissonBinomial = [ pkgs.fftw.dev ];
642 rrd = [ pkgs.rrdtool ];
643 flowWorkspace = [ pkgs.zlib.dev ];
644 RcppMeCab = [ pkgs.mecab ];
645 PING = [ pkgs.gsl ];
646 RcppAlgos = [ pkgs.gmp.dev ];
647 RcppBigIntAlgos = [ pkgs.gmp.dev ];
648 HilbertVisGUI = [ pkgs.gtkmm2.dev ];
649 textshaping = with pkgs; [ harfbuzz.dev freetype.dev fribidi libpng ];
650 DropletUtils = [ pkgs.zlib.dev ];
651 RMariaDB = [ pkgs.libmysqlclient.dev ];
652 ragg = with pkgs; [ freetype.dev libpng.dev libtiff.dev zlib.dev libjpeg.dev bzip2.dev ];
653 qqconf = [ pkgs.fftw.dev ];
654 };
655
656 packagesRequiringX = [
657 "accrual"
658 "ade4TkGUI"
659 "analogue"
660 "analogueExtra"
661 "AnalyzeFMRI"
662 "AnnotLists"
663 "AnthropMMD"
664 "aplpack"
665 "asbio"
666 "BAT"
667 "BCA"
668 "betapart"
669 "BiodiversityR"
670 "bio_infer"
671 "bipartite"
672 "biplotbootGUI"
673 "blender"
674 "cairoDevice"
675 "canceR"
676 "CCTpack"
677 "cncaGUI"
678 "cocorresp"
679 "CommunityCorrelogram"
680 "confidence"
681 "constrainedKriging"
682 "ConvergenceConcepts"
683 "cpa"
684 "DALY"
685 "dave"
686 "Deducer"
687 "DeducerPlugInExample"
688 "DeducerPlugInScaling"
689 "DeducerSpatial"
690 "DeducerSurvival"
691 "DeducerText"
692 "Demerelate"
693 "detrendeR"
694 "dpa"
695 "dynamicGraph"
696 "dynBiplotGUI"
697 "EasyqpcR"
698 "EcoVirtual"
699 "exactLoglinTest"
700 "fat2Lpoly"
701 "fbati"
702 "FD"
703 "feature"
704 "FeedbackTS"
705 "FFD"
706 "fgui"
707 "fisheyeR"
708 "forams"
709 "forensim"
710 "FreeSortR"
711 "fscaret"
712 "gcmr"
713 "geomorph"
714 "geoR"
715 "georob"
716 "GGEBiplotGUI"
717 "gnm"
718 "GrapheR"
719 "GroupSeq"
720 "gsubfn"
721 "GUniFrac"
722 "gWidgets2RGtk2"
723 "gWidgets2tcltk"
724 "HH"
725 "HiveR"
726 "ic50"
727 "iDynoR"
728 "in2extRemes"
729 "iplots"
730 "isopam"
731 "IsotopeR"
732 "JGR"
733 "KappaGUI"
734 "likeLTD"
735 "logmult"
736 "loon"
737 "LS2Wstat"
738 "MareyMap"
739 "memgene"
740 "metacom"
741 "Meth27QC"
742 "migui"
743 "miniGUI"
744 "mixsep"
745 "MplusAutomation"
746 "mpmcorrelogram"
747 "mritc"
748 "multgee"
749 "multibiplotGUI"
750 "OligoSpecificitySystem"
751 "onemap"
752 "OpenRepGrid"
753 "paleoMAS"
754 "pbatR"
755 "PBSadmb"
756 "PBSmodelling"
757 "PCPS"
758 "pez"
759 "phylotools"
760 "picante"
761 "plotSEMM"
762 "plsRbeta"
763 "plsRglm"
764 "PopGenReport"
765 "poppr"
766 "powerpkg"
767 "PredictABEL"
768 "prefmod"
769 "PrevMap"
770 "r4ss"
771 "RandomFields"
772 "rareNMtests"
773 "rAverage"
774 "RclusTool"
775 "Rcmdr"
776 "RcmdrPlugin_coin"
777 "RcmdrPlugin_depthTools"
778 "RcmdrPlugin_DoE"
779 "RcmdrPlugin_EACSPIR"
780 "RcmdrPlugin_EBM"
781 "RcmdrPlugin_EcoVirtual"
782 "RcmdrPlugin_EZR"
783 "RcmdrPlugin_FactoMineR"
784 "RcmdrPlugin_FuzzyClust"
785 "RcmdrPlugin_HH"
786 "RcmdrPlugin_IPSUR"
787 "RcmdrPlugin_KMggplot2"
788 "RcmdrPlugin_lfstat"
789 "RcmdrPlugin_MA"
790 "RcmdrPlugin_MPAStats"
791 "RcmdrPlugin_orloca"
792 "RcmdrPlugin_PcaRobust"
793 "RcmdrPlugin_plotByGroup"
794 "RcmdrPlugin_pointG"
795 "RcmdrPlugin_ROC"
796 "RcmdrPlugin_sampling"
797 "RcmdrPlugin_SCDA"
798 "RcmdrPlugin_SLC"
799 "RcmdrPlugin_sos"
800 "RcmdrPlugin_steepness"
801 "RcmdrPlugin_survival"
802 "RcmdrPlugin_TeachingDemos"
803 "RcmdrPlugin_temis"
804 "RcmdrPlugin_UCA"
805 "recluster"
806 "relimp"
807 "RHRV"
808 "rich"
809 "RNCEP"
810 "RSDA"
811 "RSurvey"
812 "simba"
813 "Simile"
814 "SimpleTable"
815 "SOLOMON"
816 "soundecology"
817 "spatsurv"
818 "sqldf"
819 "SSDforR"
820 "statcheck"
821 "StatDA"
822 "STEPCAM"
823 "stosim"
824 "strvalidator"
825 "stylo"
826 "svDialogstcltk"
827 "svIDE"
828 "svSocket"
829 "svWidgets"
830 "SYNCSA"
831 "SyNet"
832 "tcltk2"
833 "TestScorer"
834 "TIMP"
835 "tkrplot"
836 "tmap"
837 "tspmeta"
838 "TTAinterfaceTrendAnalysis"
839 "twiddler"
840 "uHMM"
841 "vcdExtra"
842 "VecStatGraphs3D"
843 "vegan"
844 "vegan3d"
845 "vegclust"
846 "x12GUI"
847 ];
848
849 packagesRequiringHome = [
850 "aroma_affymetrix"
851 "aroma_cn"
852 "aroma_core"
853 "csodata"
854 "DiceView"
855 "MSnID"
856 "OmnipathR"
857 "precommit"
858 "PSCBS"
859 "repmis"
860 "R_cache"
861 "R_filesets"
862 "RKorAPClient"
863 "R_rsp"
864 "scholar"
865 "stepR"
866 "styler"
867 "TreeTools"
868 "ACNE"
869 "APAlyzer"
870 "EstMix"
871 "PECA"
872 "Quartet"
873 "ShinyQuickStarter"
874 "TIN"
875 "TotalCopheneticIndex"
876 "TreeDist"
877 "biocthis"
878 "calmate"
879 "fgga"
880 "fulltext"
881 "immuneSIM"
882 "mastif"
883 "shinymeta"
884 "shinyobjects"
885 "wppi"
886 "pins"
887 "CoTiMA"
888 "TBRDist"
889 "Rogue"
890 "fixest"
891 "paxtoolsr"
892 "systemPipeShiny"
893 ];
894
895 packagesToSkipCheck = [
896 "Rmpi" # tries to run MPI processes
897 "pbdMPI" # tries to run MPI processes
898 "data_table" # fails to rename shared library before check
899 ];
900
901 # Packages which cannot be installed due to lack of dependencies or other reasons.
902 brokenPackages = [
903 "av"
904 "NetLogoR"
905 "valse"
906 "HierO"
907 "HIBAG"
908 "HiveR"
909
910 # Impure network access during build
911 "waddR"
912 "tiledb"
913 "x13binary"
914 "switchr"
915
916 # ExperimentHub dependents, require net access during build
917 "DuoClustering2018"
918 "FieldEffectCrc"
919 "GenomicDistributionsData"
920 "HDCytoData"
921 "HMP16SData"
922 "PANTHER_db"
923 "RNAmodR_Data"
924 "SCATEData"
925 "SingleMoleculeFootprintingData"
926 "TabulaMurisData"
927 "benchmarkfdrData2019"
928 "bodymapRat"
929 "clustifyrdatahub"
930 "depmap"
931 "emtdata"
932 "metaboliteIDmapping"
933 "msigdb"
934 "muscData"
935 "org_Mxanthus_db"
936 "scpdata"
937 "nullrangesData"
938 ];
939
940 otherOverrides = old: new: {
941 gifski = old.gifski.overrideDerivation (attrs: {
942 cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
943 src = attrs.src;
944 sourceRoot = "gifski/src/myrustlib";
945 hash = "sha256-vBrTQ+5JZA8554Aasbqw7mbaOfJNQjrOpG00IXAcamI=";
946 };
947
948 cargoRoot = "src/myrustlib";
949
950 nativeBuildInputs = attrs.nativeBuildInputs ++ [
951 pkgs.rustPlatform.cargoSetupHook
952 pkgs.cargo
953 pkgs.rustc
954 ];
955 });
956
957 stringi = old.stringi.overrideDerivation (attrs: {
958 postInstall = let
959 icuName = "icudt52l";
960 icuSrc = pkgs.fetchzip {
961 url = "http://static.rexamine.com/packages/${icuName}.zip";
962 sha256 = "0hvazpizziq5ibc9017i1bb45yryfl26wzfsv05vk9mc1575r6xj";
963 stripRoot = false;
964 };
965 in ''
966 ${attrs.postInstall or ""}
967 cp ${icuSrc}/${icuName}.dat $out/library/stringi/libs
968 '';
969 });
970
971 xml2 = old.xml2.overrideDerivation (attrs: {
972 preConfigure = ''
973 export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
974 patchShebangs configure
975 '';
976 });
977
978 rzmq = old.rzmq.overrideDerivation (attrs: {
979 preConfigure = "patchShebangs configure";
980 });
981
982 clustermq = old.clustermq.overrideDerivation (attrs: {
983 preConfigure = "patchShebangs configure";
984 });
985
986 Cairo = old.Cairo.overrideDerivation (attrs: {
987 NIX_LDFLAGS = "-lfontconfig";
988 });
989
990 curl = old.curl.overrideDerivation (attrs: {
991 preConfigure = "patchShebangs configure";
992 });
993
994 RcppParallel = old.RcppParallel.overrideDerivation (attrs: {
995 preConfigure = "patchShebangs configure";
996 });
997
998 RcppArmadillo = old.RcppArmadillo.overrideDerivation (attrs: {
999 patchPhase = "patchShebangs configure";
1000 });
1001
1002 data_table = old.data_table.overrideDerivation (attrs: {
1003 NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE + " -fopenmp";
1004 patchPhase = "patchShebangs configure";
1005 });
1006
1007 ModelMetrics = old.ModelMetrics.overrideDerivation (attrs: {
1008 NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE
1009 + lib.optionalString stdenv.isDarwin " -fopenmp";
1010 });
1011
1012 rpf = old.rpf.overrideDerivation (attrs: {
1013 patchPhase = "patchShebangs configure";
1014 });
1015
1016 rJava = old.rJava.overrideDerivation (attrs: {
1017 preConfigure = ''
1018 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
1019 export JAVA_HOME=${pkgs.jdk}
1020 '';
1021 });
1022
1023 JavaGD = old.JavaGD.overrideDerivation (attrs: {
1024 preConfigure = ''
1025 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
1026 export JAVA_HOME=${pkgs.jdk}
1027 '';
1028 });
1029
1030 jqr = old.jqr.overrideDerivation (attrs: {
1031 preConfigure = ''
1032 patchShebangs configure
1033 '';
1034 });
1035
1036 pbdZMQ = old.pbdZMQ.overrideDerivation (attrs: {
1037 postPatch = lib.optionalString stdenv.isDarwin ''
1038 for file in R/*.{r,r.in}; do
1039 sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.darwin.cctools}/bin/\1"#g' $file
1040 done
1041 '';
1042 });
1043
1044 Rmpi = old.Rmpi.overrideDerivation (attrs: {
1045 configureFlags = [
1046 "--with-Rmpi-type=OPENMPI"
1047 ];
1048 });
1049
1050 Rmpfr = old.Rmpfr.overrideDerivation (attrs: {
1051 configureFlags = [
1052 "--with-mpfr-include=${pkgs.mpfr.dev}/include"
1053 ];
1054 });
1055
1056 RVowpalWabbit = old.RVowpalWabbit.overrideDerivation (attrs: {
1057 configureFlags = [
1058 "--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
1059 ];
1060 });
1061
1062 RAppArmor = old.RAppArmor.overrideDerivation (attrs: {
1063 patches = [ ./patches/RAppArmor.patch ];
1064 LIBAPPARMOR_HOME = pkgs.libapparmor;
1065 });
1066
1067 RMySQL = old.RMySQL.overrideDerivation (attrs: {
1068 MYSQL_DIR = "${pkgs.libmysqlclient}";
1069 PKGCONFIG_CFLAGS = "-I${pkgs.libmysqlclient.dev}/include/mysql";
1070 NIX_CFLAGS_LINK = "-L${pkgs.libmysqlclient}/lib/mysql -lmysqlclient";
1071 preConfigure = ''
1072 patchShebangs configure
1073 '';
1074 });
1075
1076 devEMF = old.devEMF.overrideDerivation (attrs: {
1077 NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
1078 NIX_LDFLAGS = "-lX11";
1079 });
1080
1081 slfm = old.slfm.overrideDerivation (attrs: {
1082 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
1083 });
1084
1085 SamplerCompare = old.SamplerCompare.overrideDerivation (attrs: {
1086 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
1087 });
1088
1089 spMC = old.spMC.overrideDerivation (attrs: {
1090 patches = [ ./patches/spMC.patch ];
1091 });
1092
1093 openssl = old.openssl.overrideDerivation (attrs: {
1094 preConfigure = ''
1095 patchShebangs configure
1096 '';
1097 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
1098 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
1099 });
1100
1101 websocket = old.websocket.overrideDerivation (attrs: {
1102 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
1103 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
1104 });
1105
1106 Rserve = old.Rserve.overrideDerivation (attrs: {
1107 patches = [ ./patches/Rserve.patch ];
1108 configureFlags = [
1109 "--with-server" "--with-client"
1110 ];
1111 });
1112
1113 V8 = old.V8.overrideDerivation (attrs: {
1114 postPatch = ''
1115 substituteInPlace configure \
1116 --replace " -lv8_libplatform" ""
1117 '';
1118
1119 preConfigure = ''
1120 export INCLUDE_DIR=${pkgs.v8}/include
1121 export LIB_DIR=${pkgs.v8}/lib
1122 patchShebangs configure
1123 '';
1124
1125 R_MAKEVARS_SITE = lib.optionalString (pkgs.stdenv.system == "aarch64-linux")
1126 (pkgs.writeText "Makevars" ''
1127 CXX14PICFLAGS = -fPIC
1128 '');
1129 });
1130
1131 acs = old.acs.overrideDerivation (attrs: {
1132 preConfigure = ''
1133 patchShebangs configure
1134 '';
1135 });
1136
1137 gdtools = old.gdtools.overrideDerivation (attrs: {
1138 preConfigure = ''
1139 patchShebangs configure
1140 '';
1141 NIX_LDFLAGS = "-lfontconfig -lfreetype";
1142 });
1143
1144 magick = old.magick.overrideDerivation (attrs: {
1145 preConfigure = ''
1146 patchShebangs configure
1147 '';
1148 });
1149
1150 libgeos = old.libgeos.overrideDerivation (attrs: {
1151 preConfigure = ''
1152 patchShebangs configure
1153 '';
1154 });
1155
1156 protolite = old.protolite.overrideDerivation (attrs: {
1157 preConfigure = ''
1158 patchShebangs configure
1159 '';
1160 });
1161
1162 rpanel = old.rpanel.overrideDerivation (attrs: {
1163 preConfigure = ''
1164 export TCLLIBPATH="${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}"
1165 '';
1166 TCLLIBPATH = "${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}";
1167 });
1168
1169 RPostgres = old.RPostgres.overrideDerivation (attrs: {
1170 preConfigure = ''
1171 export INCLUDE_DIR=${pkgs.postgresql}/include
1172 export LIB_DIR=${pkgs.postgresql.lib}/lib
1173 patchShebangs configure
1174 '';
1175 });
1176
1177 OpenMx = old.OpenMx.overrideDerivation (attrs: {
1178 preConfigure = ''
1179 patchShebangs configure
1180 '';
1181 });
1182
1183 odbc = old.odbc.overrideDerivation (attrs: {
1184 preConfigure = ''
1185 patchShebangs configure
1186 '';
1187 });
1188
1189 x13binary = old.x13binary.overrideDerivation (attrs: {
1190 preConfigure = ''
1191 patchShebangs configure
1192 '';
1193 });
1194
1195 geojsonio = old.geojsonio.overrideDerivation (attrs: {
1196 buildInputs = [ cacert ] ++ attrs.buildInputs;
1197 });
1198
1199 rstan = old.rstan.overrideDerivation (attrs: {
1200 NIX_CFLAGS_COMPILE = "${attrs.NIX_CFLAGS_COMPILE} -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
1201 });
1202
1203 mongolite = old.mongolite.overrideDerivation (attrs: {
1204 preConfigure = ''
1205 patchShebangs configure
1206 '';
1207 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
1208 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz";
1209 });
1210
1211 ps = old.ps.overrideDerivation (attrs: {
1212 preConfigure = "patchShebangs configure";
1213 });
1214
1215 rlang = old.rlang.overrideDerivation (attrs: {
1216 preConfigure = "patchShebangs configure";
1217 });
1218
1219 systemfonts = old.systemfonts.overrideDerivation (attrs: {
1220 preConfigure = "patchShebangs configure";
1221 });
1222
1223 littler = old.littler.overrideAttrs (attrs: with pkgs; {
1224 buildInputs = [ pcre xz zlib bzip2 icu which ] ++ attrs.buildInputs;
1225 postInstall = ''
1226 install -d $out/bin $out/share/man/man1
1227 ln -s ../library/littler/bin/r $out/bin/r
1228 ln -s ../library/littler/bin/r $out/bin/lr
1229 ln -s ../../../library/littler/man-page/r.1 $out/share/man/man1
1230 # these won't run without special provisions, so better remove them
1231 rm -r $out/library/littler/script-tests
1232 '';
1233 });
1234
1235 lpsymphony = old.lpsymphony.overrideDerivation (attrs: {
1236 preConfigure = ''
1237 patchShebangs configure
1238 '';
1239 });
1240
1241 sodium = old.sodium.overrideDerivation (attrs: with pkgs; {
1242 preConfigure = ''
1243 patchShebangs configure
1244 '';
1245 nativeBuildInputs = [ pkg-config ] ++ attrs.nativeBuildInputs;
1246 buildInputs = [ libsodium.dev ] ++ attrs.buildInputs;
1247 });
1248
1249 keyring = old.keyring.overrideDerivation (attrs: {
1250 preConfigure = ''
1251 patchShebangs configure
1252 '';
1253 });
1254
1255 Rhtslib = old.Rhtslib.overrideDerivation (attrs: {
1256 preConfigure = ''
1257 substituteInPlace R/zzz.R --replace "-lcurl" "-L${pkgs.curl.out}/lib -lcurl"
1258 '';
1259 });
1260
1261 h2o = old.h2o.overrideDerivation (attrs: {
1262 preConfigure = ''
1263 # prevent download of jar file during install and postpone to first use
1264 sed -i '/downloadJar()/d' R/zzz.R
1265
1266 # during runtime the package directory is not writable as it's in the
1267 # nix store, so store the jar in the user's cache directory instead
1268 substituteInPlace R/connection.R --replace \
1269 'dest_file <- file.path(dest_folder, "h2o.jar")' \
1270 'dest_file <- file.path("~/.cache/", "h2o.jar")'
1271 '';
1272 });
1273
1274 SICtools = old.SICtools.overrideDerivation (attrs: {
1275 preConfigure = ''
1276 substituteInPlace src/Makefile --replace "-lcurses" "-lncurses"
1277 '';
1278 });
1279
1280 arrow = old.arrow.overrideDerivation (attrs: {
1281 preConfigure = ''
1282 patchShebangs configure
1283 '';
1284 });
1285
1286 proj4 = old.proj4.overrideDerivation (attrs: {
1287 preConfigure = ''
1288 substituteInPlace configure \
1289 --replace "-lsqlite3" "-L${lib.makeLibraryPath [ pkgs.sqlite ]} -lsqlite3"
1290 '';
1291 });
1292
1293 rrd = old.rrd.overrideDerivation (attrs: {
1294 preConfigure = ''
1295 patchShebangs configure
1296 '';
1297 });
1298
1299 ChIPXpress = old.ChIPXpress.override { hydraPlatforms = []; };
1300
1301 rgl = old.rgl.overrideDerivation (attrs: {
1302 RGL_USE_NULL = "true";
1303 });
1304
1305 Rrdrand = old.Rrdrand.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1306
1307 RandomFieldsUtils = old.RandomFieldsUtils.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1308
1309 flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1310
1311 geomorph = old.geomorph.overrideDerivation (attrs: {
1312 RGL_USE_NULL = "true";
1313 });
1314
1315 Rhdf5lib = old.Rhdf5lib.overrideDerivation (attrs: {
1316 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ pkgs.hdf5.dev ];
1317 });
1318
1319 RNifti = old.RNifti.overrideDerivation (attrs: {
1320 patches = [ ./patches/RNifti.patch ];
1321 });
1322 };
1323in
1324 self