1/* This file defines the composition for CRAN (R) packages. */
2
3{ R, pkgs, overrides }:
4
5let
6 inherit (pkgs) 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}: args:
19 lib.makeOverridable ({
20 name, version, sha256,
21 depends ? [],
22 doCheck ? true,
23 requireX ? false,
24 broken ? false,
25 hydraPlatforms ? R.meta.hydraPlatforms
26 }: buildRPackage {
27 name = "${name}-${version}";
28 src = fetchurl {
29 inherit sha256;
30 urls = mkUrls (args // { inherit name version; });
31 };
32 inherit doCheck requireX;
33 propagatedBuildInputs = depends;
34 nativeBuildInputs = depends;
35 meta.homepage = mkHomepage (args // { inherit name; });
36 meta.platforms = R.meta.platforms;
37 meta.hydraPlatforms = hydraPlatforms;
38 meta.broken = broken;
39 });
40
41 # Templates for generating Bioconductor and CRAN packages
42 # from the name, version, sha256, and optional per-package arguments above
43 #
44 deriveBioc = mkDerive {
45 mkHomepage = {name, rVersion}: "https://bioconductor.org/packages/${rVersion}/bioc/html/${name}.html";
46 mkUrls = {name, version, rVersion}: [ "mirror://bioc/${rVersion}/bioc/src/contrib/${name}_${version}.tar.gz" ];
47 };
48 deriveBiocAnn = mkDerive {
49 mkHomepage = {name, rVersion}: "http://www.bioconductor.org/packages/${name}.html";
50 mkUrls = {name, version, rVersion}: [ "mirror://bioc/${rVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz" ];
51 };
52 deriveBiocExp = mkDerive {
53 mkHomepage = {name, rVersion}: "http://www.bioconductor.org/packages/${name}.html";
54 mkUrls = {name, version, rVersion}: [ "mirror://bioc/${rVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz" ];
55 };
56 deriveCran = mkDerive {
57 mkHomepage = {name, snapshot}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/";
58 mkUrls = {name, version, snapshot}: [ "http://mran.revolutionanalytics.com/snapshot/${snapshot}/src/contrib/${name}_${version}.tar.gz" ];
59 };
60
61 # Overrides package definitions with nativeBuildInputs.
62 # For example,
63 #
64 # overrideNativeBuildInputs {
65 # foo = [ pkgs.bar ]
66 # } old
67 #
68 # results in
69 #
70 # {
71 # foo = old.foo.overrideDerivation (attrs: {
72 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
73 # });
74 # }
75 overrideNativeBuildInputs = overrides: old:
76 lib.mapAttrs (name: value:
77 (builtins.getAttr name old).overrideDerivation (attrs: {
78 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
79 })
80 ) overrides;
81
82 # Overrides package definitions with buildInputs.
83 # For example,
84 #
85 # overrideBuildInputs {
86 # foo = [ pkgs.bar ]
87 # } old
88 #
89 # results in
90 #
91 # {
92 # foo = old.foo.overrideDerivation (attrs: {
93 # buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
94 # });
95 # }
96 overrideBuildInputs = overrides: old:
97 lib.mapAttrs (name: value:
98 (builtins.getAttr name old).overrideDerivation (attrs: {
99 buildInputs = attrs.buildInputs ++ value;
100 })
101 ) overrides;
102
103 # Overrides package definitions with new R dependencies.
104 # For example,
105 #
106 # overrideRDepends {
107 # foo = [ self.bar ]
108 # } old
109 #
110 # results in
111 #
112 # {
113 # foo = old.foo.overrideDerivation (attrs: {
114 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
115 # propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
116 # });
117 # }
118 overrideRDepends = overrides: old:
119 lib.mapAttrs (name: value:
120 (builtins.getAttr name old).overrideDerivation (attrs: {
121 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
122 propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value;
123 })
124 ) overrides;
125
126 # Overrides package definition requiring X running to install.
127 # For example,
128 #
129 # overrideRequireX [
130 # "foo"
131 # ] old
132 #
133 # results in
134 #
135 # {
136 # foo = old.foo.override {
137 # requireX = true;
138 # };
139 # }
140 overrideRequireX = packageNames: old:
141 let
142 nameValuePairs = map (name: {
143 inherit name;
144 value = (builtins.getAttr name old).override {
145 requireX = true;
146 };
147 }) packageNames;
148 in
149 builtins.listToAttrs nameValuePairs;
150
151 # Overrides package definition to skip check.
152 # For example,
153 #
154 # overrideSkipCheck [
155 # "foo"
156 # ] old
157 #
158 # results in
159 #
160 # {
161 # foo = old.foo.override {
162 # doCheck = false;
163 # };
164 # }
165 overrideSkipCheck = packageNames: old:
166 let
167 nameValuePairs = map (name: {
168 inherit name;
169 value = (builtins.getAttr name old).override {
170 doCheck = false;
171 };
172 }) packageNames;
173 in
174 builtins.listToAttrs nameValuePairs;
175
176 # Overrides package definition to mark it broken.
177 # For example,
178 #
179 # overrideBroken [
180 # "foo"
181 # ] old
182 #
183 # results in
184 #
185 # {
186 # foo = old.foo.override {
187 # broken = true;
188 # };
189 # }
190 overrideBroken = packageNames: old:
191 let
192 nameValuePairs = map (name: {
193 inherit name;
194 value = (builtins.getAttr name old).override {
195 broken = true;
196 };
197 }) packageNames;
198 in
199 builtins.listToAttrs nameValuePairs;
200
201 defaultOverrides = old: new:
202 let old0 = old; in
203 let
204 old1 = old0 // (overrideRequireX packagesRequireingX old0);
205 old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1);
206 old3 = old2 // (overrideRDepends packagesWithRDepends old2);
207 old4 = old3 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old3);
208 old5 = old4 // (overrideBuildInputs packagesWithBuildInputs old4);
209 old6 = old5 // (overrideBroken brokenPackages old5);
210 old = old6;
211 in old // (otherOverrides old new);
212
213 # Recursive override pattern.
214 # `_self` is a collection of packages;
215 # `self` is `_self` with overridden packages;
216 # packages in `_self` may depends on overridden packages.
217 self = (defaultOverrides _self self) // overrides;
218 _self = import ./bioc-packages.nix { inherit self; derive = deriveBioc; } //
219 import ./bioc-annotation-packages.nix { inherit self; derive = deriveBiocAnn; } //
220 import ./bioc-experiment-packages.nix { inherit self; derive = deriveBiocExp; } //
221 import ./cran-packages.nix { inherit self; derive = deriveCran; };
222
223 # tweaks for the individual packages and "in self" follow
224
225 packagesWithRDepends = {
226 FactoMineR = [ self.car ];
227 pander = [ self.codetools ];
228 };
229
230 packagesWithNativeBuildInputs = {
231 abn = [ pkgs.gsl_1 ];
232 adimpro = [ pkgs.imagemagick ];
233 audio = [ pkgs.portaudio ];
234 BayesSAE = [ pkgs.gsl_1 ];
235 BayesVarSel = [ pkgs.gsl_1 ];
236 BayesXsrc = [ pkgs.readline.dev pkgs.ncurses ];
237 bigGP = [ pkgs.openmpi ];
238 bio3d = [ pkgs.zlib ];
239 BiocCheck = [ pkgs.which ];
240 Biostrings = [ pkgs.zlib ];
241 bnpmr = [ pkgs.gsl_1 ];
242 cairoDevice = [ pkgs.gtk2.dev ];
243 Cairo = [ pkgs.libtiff pkgs.libjpeg pkgs.cairo.dev pkgs.x11 pkgs.fontconfig.lib ];
244 Cardinal = [ pkgs.which ];
245 chebpol = [ pkgs.fftw ];
246 ChemmineOB = [ pkgs.openbabel pkgs.pkgconfig ];
247 cit = [ pkgs.gsl_1 ];
248 curl = [ pkgs.curl.dev ];
249 devEMF = [ pkgs.xorg.libXft.dev pkgs.x11 ];
250 diversitree = [ pkgs.gsl_1 pkgs.fftw ];
251 EMCluster = [ pkgs.liblapack ];
252 fftw = [ pkgs.fftw.dev ];
253 fftwtools = [ pkgs.fftw.dev ];
254 Formula = [ pkgs.gmp ];
255 geoCount = [ pkgs.gsl_1 ];
256 git2r = [ pkgs.zlib.dev pkgs.openssl.dev ];
257 GLAD = [ pkgs.gsl_1 ];
258 glpkAPI = [ pkgs.gmp pkgs.glpk ];
259 gmp = [ pkgs.gmp.dev ];
260 graphscan = [ pkgs.gsl_1 ];
261 gsl = [ pkgs.gsl_1 ];
262 h5 = [ pkgs.hdf5-cpp pkgs.which ];
263 h5vc = [ pkgs.zlib.dev ];
264 HiCseg = [ pkgs.gsl_1 ];
265 imager = [ pkgs.x11 ];
266 iBMQ = [ pkgs.gsl_1 ];
267 igraph = [ pkgs.gmp ];
268 JavaGD = [ pkgs.jdk ];
269 jpeg = [ pkgs.libjpeg.dev ];
270 KFKSDS = [ pkgs.gsl_1 ];
271 kza = [ pkgs.fftw.dev ];
272 libamtrack = [ pkgs.gsl_1 ];
273 mixcat = [ pkgs.gsl_1 ];
274 mvabund = [ pkgs.gsl_1 ];
275 mwaved = [ pkgs.fftw.dev ];
276 ncdf4 = [ pkgs.netcdf ];
277 nloptr = [ pkgs.nlopt ];
278 openssl = [ pkgs.openssl.dev ];
279 outbreaker = [ pkgs.gsl_1 ];
280 pander = [ pkgs.pandoc pkgs.which ];
281 pbdMPI = [ pkgs.openmpi ];
282 pbdNCDF4 = [ pkgs.netcdf ];
283 pbdPROF = [ pkgs.openmpi ];
284 pbdZMQ = [ pkgs.which ];
285 PKI = [ pkgs.openssl.dev ];
286 png = [ pkgs.libpng.dev ];
287 PopGenome = [ pkgs.zlib.dev ];
288 proj4 = [ pkgs.proj ];
289 qtbase = [ pkgs.qt4 ];
290 qtpaint = [ pkgs.qt4 ];
291 R2GUESS = [ pkgs.gsl_1 ];
292 R2SWF = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
293 RAppArmor = [ pkgs.libapparmor ];
294 rapportools = [ pkgs.which ];
295 rapport = [ pkgs.which ];
296 rbamtools = [ pkgs.zlib.dev ];
297 rcdd = [ pkgs.gmp.dev ];
298 RcppCNPy = [ pkgs.zlib.dev ];
299 RcppGSL = [ pkgs.gsl_1 ];
300 RcppOctave = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.pcre.dev pkgs.octave ];
301 RcppZiggurat = [ pkgs.gsl_1 ];
302 rgdal = [ pkgs.proj pkgs.gdal ];
303 rgeos = [ pkgs.geos ];
304 rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
305 rgl = [ pkgs.mesa pkgs.xlibsWrapper ];
306 Rglpk = [ pkgs.glpk ];
307 RGtk2 = [ pkgs.gtk2.dev ];
308 rhdf5 = [ pkgs.zlib ];
309 Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.openmpi pkgs.pcre.dev ];
310 Rhtslib = [ pkgs.zlib.dev ];
311 RJaCGH = [ pkgs.zlib.dev ];
312 rjags = [ pkgs.jags ];
313 rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
314 Rlibeemd = [ pkgs.gsl_1 ];
315 rmatio = [ pkgs.zlib.dev ];
316 Rmpfr = [ pkgs.gmp pkgs.mpfr.dev ];
317 Rmpi = [ pkgs.openmpi ];
318 RMySQL = [ pkgs.zlib pkgs.mysql.lib ];
319 RNetCDF = [ pkgs.netcdf pkgs.udunits ];
320 RODBCext = [ pkgs.libiodbc ];
321 RODBC = [ pkgs.libiodbc ];
322 rpg = [ pkgs.postgresql ];
323 rphast = [ pkgs.pcre.dev pkgs.zlib pkgs.bzip2 pkgs.gzip pkgs.readline ];
324 Rpoppler = [ pkgs.poppler ];
325 RPostgreSQL = [ pkgs.postgresql ];
326 RProtoBuf = [ pkgs.protobuf ];
327 rPython = [ pkgs.python ];
328 RSclient = [ pkgs.openssl.dev ];
329 Rserve = [ pkgs.openssl ];
330 Rssa = [ pkgs.fftw.dev ];
331 rtfbs = [ pkgs.zlib pkgs.pcre.dev pkgs.bzip2 pkgs.gzip pkgs.readline ];
332 rtiff = [ pkgs.libtiff.dev ];
333 runjags = [ pkgs.jags ];
334 RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
335 rzmq = [ pkgs.zeromq3 ];
336 SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.lzma pkgs.pcre ];
337 sdcTable = [ pkgs.gmp pkgs.glpk ];
338 seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
339 seqinr = [ pkgs.zlib.dev ];
340 seqminer = [ pkgs.zlib.dev pkgs.bzip2 ];
341 showtext = [ pkgs.zlib pkgs.libpng pkgs.icu pkgs.freetype.dev ];
342 simplexreg = [ pkgs.gsl_1 ];
343 SOD = [ pkgs.opencl-headers ];
344 spate = [ pkgs.fftw.dev ];
345 sprint = [ pkgs.openmpi ];
346 ssanv = [ pkgs.proj ];
347 stsm = [ pkgs.gsl_1 ];
348 stringi = [ pkgs.icu.dev ];
349 survSNP = [ pkgs.gsl_1 ];
350 sysfonts = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
351 TAQMNGR = [ pkgs.zlib.dev ];
352 tiff = [ pkgs.libtiff.dev ];
353 TKF = [ pkgs.gsl_1 ];
354 tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ];
355 topicmodels = [ pkgs.gsl_1 ];
356 udunits2 = [ pkgs.udunits pkgs.expat ];
357 V8 = [ pkgs.v8 ];
358 VBLPCM = [ pkgs.gsl_1 ];
359 VBmix = [ pkgs.gsl_1 pkgs.fftw pkgs.qt4 ];
360 WhopGenome = [ pkgs.zlib.dev ];
361 XBRL = [ pkgs.zlib pkgs.libxml2.dev ];
362 xml2 = [ pkgs.libxml2.dev ];
363 XML = [ pkgs.libtool pkgs.libxml2.dev pkgs.xmlsec pkgs.libxslt ];
364 affyPLM = [ pkgs.zlib.dev ];
365 bamsignals = [ pkgs.zlib.dev ];
366 BitSeq = [ pkgs.zlib.dev ];
367 DiffBind = [ pkgs.zlib ];
368 ShortRead = [ pkgs.zlib.dev ];
369 oligo = [ pkgs.zlib.dev ];
370 gmapR = [ pkgs.zlib.dev ];
371 Rsubread = [ pkgs.zlib.dev ];
372 XVector = [ pkgs.zlib.dev ];
373 Rsamtools = [ pkgs.zlib.dev ];
374 rtracklayer = [ pkgs.zlib.dev ];
375 affyio = [ pkgs.zlib.dev ];
376 VariantAnnotation = [ pkgs.zlib.dev ];
377 snpStats = [ pkgs.zlib.dev ];
378 gputools = [ pkgs.pcre.dev pkgs.lzma.dev pkgs.zlib.dev pkgs.bzip2.dev pkgs.icu.dev ];
379 };
380
381 packagesWithBuildInputs = {
382 # sort -t '=' -k 2
383 svKomodo = [ pkgs.which ];
384 nat = [ pkgs.which ];
385 nat_nblast = [ pkgs.which ];
386 nat_templatebrains = [ pkgs.which ];
387 RMark = [ pkgs.which ];
388 RPushbullet = [ pkgs.which ];
389 qtpaint = [ pkgs.cmake ];
390 qtbase = [ pkgs.cmake pkgs.perl ];
391 gmatrix = [ pkgs.cudatoolkit pkgs.which ];
392 RCurl = [ pkgs.curl.dev ];
393 R2SWF = [ pkgs.pkgconfig ];
394 rggobi = [ pkgs.pkgconfig ];
395 RGtk2 = [ pkgs.pkgconfig ];
396 RProtoBuf = [ pkgs.pkgconfig ];
397 Rpoppler = [ pkgs.pkgconfig ];
398 VBmix = [ pkgs.pkgconfig ];
399 XML = [ pkgs.pkgconfig ];
400 cairoDevice = [ pkgs.pkgconfig ];
401 chebpol = [ pkgs.pkgconfig ];
402 fftw = [ pkgs.pkgconfig ];
403 geoCount = [ pkgs.pkgconfig ];
404 kza = [ pkgs.pkgconfig ];
405 mwaved = [ pkgs.pkgconfig ];
406 showtext = [ pkgs.pkgconfig ];
407 spate = [ pkgs.pkgconfig ];
408 stringi = [ pkgs.pkgconfig ];
409 sysfonts = [ pkgs.pkgconfig ];
410 Cairo = [ pkgs.pkgconfig ];
411 Rsymphony = [ pkgs.pkgconfig pkgs.doxygen pkgs.graphviz pkgs.subversion ];
412 qtutils = [ pkgs.qt4 ];
413 tcltk2 = [ pkgs.tcl pkgs.tk ];
414 tikzDevice = [ pkgs.which pkgs.texlive.combined.scheme-medium ];
415 rPython = [ pkgs.which ];
416 gridGraphics = [ pkgs.which ];
417 gputools = [ pkgs.which pkgs.cudatoolkit ];
418 adimpro = [ pkgs.which pkgs.xorg.xdpyinfo ];
419 PET = [ pkgs.which pkgs.xorg.xdpyinfo pkgs.imagemagick ];
420 dti = [ pkgs.which pkgs.xorg.xdpyinfo pkgs.imagemagick ];
421 mzR = [ pkgs.netcdf ];
422 };
423
424 packagesRequireingX = [
425 "accrual"
426 "ade4TkGUI"
427 "adehabitat"
428 "analogue"
429 "analogueExtra"
430 "AnalyzeFMRI"
431 "AnnotLists"
432 "AnthropMMD"
433 "aplpack"
434 "aqfig"
435 "arf3DS4"
436 "asbio"
437 "AtelieR"
438 "BAT"
439 "bayesDem"
440 "BCA"
441 "BEQI2"
442 "betapart"
443 "betaper"
444 "BiodiversityR"
445 "BioGeoBEARS"
446 "bio_infer"
447 "bipartite"
448 "biplotbootGUI"
449 "blender"
450 "cairoDevice"
451 "CCTpack"
452 "cncaGUI"
453 "cocorresp"
454 "CommunityCorrelogram"
455 "confidence"
456 "constrainedKriging"
457 "ConvergenceConcepts"
458 "cpa"
459 "DALY"
460 "dave"
461 "debug"
462 "Deducer"
463 "DeducerExtras"
464 "DeducerPlugInExample"
465 "DeducerPlugInScaling"
466 "DeducerSpatial"
467 "DeducerSurvival"
468 "DeducerText"
469 "Demerelate"
470 "detrendeR"
471 "dgmb"
472 "DivMelt"
473 "dpa"
474 "DSpat"
475 "dynamicGraph"
476 "dynBiplotGUI"
477 "EasyqpcR"
478 "EcoVirtual"
479 "ENiRG"
480 "EnQuireR"
481 "eVenn"
482 "exactLoglinTest"
483 "FAiR"
484 "fat2Lpoly"
485 "fbati"
486 "FD"
487 "feature"
488 "FeedbackTS"
489 "FFD"
490 "fgui"
491 "fisheyeR"
492 "fit4NM"
493 "forams"
494 "forensim"
495 "FreeSortR"
496 "fscaret"
497 "fSRM"
498 "gcmr"
499 "GeoGenetix"
500 "geomorph"
501 "geoR"
502 "geoRglm"
503 "georob"
504 "GeoXp"
505 "GGEBiplotGUI"
506 "gnm"
507 "GPCSIV"
508 "GrammR"
509 "GrapheR"
510 "GroupSeq"
511 "gsubfn"
512 "GUniFrac"
513 "gWidgets2RGtk2"
514 "gWidgets2tcltk"
515 "gWidgetsRGtk2"
516 "gWidgetstcltk"
517 "HH"
518 "HiveR"
519 "HomoPolymer"
520 "iBUGS"
521 "ic50"
522 "iDynoR"
523 "in2extRemes"
524 "iplots"
525 "isopam"
526 "IsotopeR"
527 "JGR"
528 "KappaGUI"
529 "likeLTD"
530 "logmult"
531 "LS2Wstat"
532 "MAR1"
533 "MareyMap"
534 "memgene"
535 "MergeGUI"
536 "metacom"
537 "Meth27QC"
538 "MetSizeR"
539 "MicroStrategyR"
540 "migui"
541 "miniGUI"
542 "MissingDataGUI"
543 "mixsep"
544 "mlDNA"
545 "MplusAutomation"
546 "mpmcorrelogram"
547 "mritc"
548 "MTurkR"
549 "multgee"
550 "multibiplotGUI"
551 "nodiv"
552 "OligoSpecificitySystem"
553 "onemap"
554 "OpenRepGrid"
555 "palaeoSig"
556 "paleoMAS"
557 "pbatR"
558 "PBSadmb"
559 "PBSmodelling"
560 "PCPS"
561 "pez"
562 "phylotools"
563 "picante"
564 "PKgraph"
565 "playwith"
566 "plotSEMM"
567 "plsRbeta"
568 "plsRglm"
569 "PopGenReport"
570 "poppr"
571 "powerpkg"
572 "PredictABEL"
573 "prefmod"
574 "PrevMap"
575 "ProbForecastGOP"
576 "QCAGUI"
577 "qtbase"
578 "qtpaint"
579 "qtutils"
580 "R2STATS"
581 "r4ss"
582 "RandomFields"
583 "rareNMtests"
584 "rAverage"
585 "Rcmdr"
586 "RcmdrPlugin_BCA"
587 "RcmdrPlugin_coin"
588 "RcmdrPlugin_depthTools"
589 "RcmdrPlugin_DoE"
590 "RcmdrPlugin_doex"
591 "RcmdrPlugin_EACSPIR"
592 "RcmdrPlugin_EBM"
593 "RcmdrPlugin_EcoVirtual"
594 "RcmdrPlugin_epack"
595 "RcmdrPlugin_EZR"
596 "RcmdrPlugin_FactoMineR"
597 "RcmdrPlugin_HH"
598 "RcmdrPlugin_IPSUR"
599 "RcmdrPlugin_KMggplot2"
600 "RcmdrPlugin_lfstat"
601 "RcmdrPlugin_MA"
602 "RcmdrPlugin_mosaic"
603 "RcmdrPlugin_MPAStats"
604 "RcmdrPlugin_orloca"
605 "RcmdrPlugin_plotByGroup"
606 "RcmdrPlugin_pointG"
607 "RcmdrPlugin_qual"
608 "RcmdrPlugin_ROC"
609 "RcmdrPlugin_sampling"
610 "RcmdrPlugin_SCDA"
611 "RcmdrPlugin_SLC"
612 "RcmdrPlugin_SM"
613 "RcmdrPlugin_sos"
614 "RcmdrPlugin_steepness"
615 "RcmdrPlugin_survival"
616 "RcmdrPlugin_TeachingDemos"
617 "RcmdrPlugin_temis"
618 "RcmdrPlugin_UCA"
619 "recluster"
620 "relax"
621 "relimp"
622 "RenextGUI"
623 "reportRx"
624 "reshapeGUI"
625 "rgl"
626 "RHRV"
627 "rich"
628 "rioja"
629 "ripa"
630 "rite"
631 "RNCEP"
632 "RQDA"
633 "RSDA"
634 "rsgcc"
635 "RSurvey"
636 "RunuranGUI"
637 "sharpshootR"
638 "simba"
639 "Simile"
640 "SimpleTable"
641 "SOLOMON"
642 "soundecology"
643 "SPACECAP"
644 "spacodiR"
645 "spatsurv"
646 "sqldf"
647 "SRRS"
648 "SSDforR"
649 "statcheck"
650 "StatDA"
651 "STEPCAM"
652 "stosim"
653 "strvalidator"
654 "stylo"
655 "svDialogstcltk"
656 "svIDE"
657 "svSocket"
658 "svWidgets"
659 "SYNCSA"
660 "SyNet"
661 "tcltk2"
662 "TED"
663 "TestScorer"
664 "TIMP"
665 "titan"
666 "tkrgl"
667 "tkrplot"
668 "tmap"
669 "tspmeta"
670 "TTAinterfaceTrendAnalysis"
671 "twiddler"
672 "vcdExtra"
673 "VecStatGraphs3D"
674 "vegan"
675 "vegan3d"
676 "vegclust"
677 "VIMGUI"
678 "WMCapacity"
679 "x12GUI"
680 "xergm"
681 ];
682
683 packagesToSkipCheck = [
684 "Rmpi" # tries to run MPI processes
685 "gmatrix" # requires CUDA runtime
686 "gputools" # requires CUDA runtime
687 "sprint" # tries to run MPI processes
688 "pbdMPI" # tries to run MPI processes
689 ];
690
691 # Packages which cannot be installed due to lack of dependencies or other reasons.
692 brokenPackages = [
693 "gputools" # depends on non-free cudatoolkit-8.0.61
694 "gmatrix" # depends on non-free cudatoolkit-8.0.61
695 ];
696
697 otherOverrides = old: new: {
698 stringi = old.stringi.overrideDerivation (attrs: {
699 postInstall = let
700 icuName = "icudt52l";
701 icuSrc = pkgs.fetchzip {
702 url = "http://static.rexamine.com/packages/${icuName}.zip";
703 sha256 = "0hvazpizziq5ibc9017i1bb45yryfl26wzfsv05vk9mc1575r6xj";
704 stripRoot = false;
705 };
706 in ''
707 ${attrs.postInstall or ""}
708 cp ${icuSrc}/${icuName}.dat $out/library/stringi/libs
709 '';
710 });
711
712 xml2 = old.xml2.overrideDerivation (attrs: {
713 preConfigure = ''
714 export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
715 patchShebangs configure
716 '';
717 });
718
719 Cairo = old.Cairo.overrideDerivation (attrs: {
720 NIX_LDFLAGS = "-lfontconfig";
721 });
722
723 curl = old.curl.overrideDerivation (attrs: {
724 preConfigure = "patchShebangs configure";
725 });
726
727 RcppArmadillo = old.RcppArmadillo.overrideDerivation (attrs: {
728 patchPhase = "patchShebangs configure";
729 });
730
731 rpf = old.rpf.overrideDerivation (attrs: {
732 patchPhase = "patchShebangs configure";
733 });
734
735 BayesXsrc = old.BayesXsrc.overrideDerivation (attrs: {
736 patches = [ ./patches/BayesXsrc.patch ];
737 });
738
739 rJava = old.rJava.overrideDerivation (attrs: {
740 preConfigure = ''
741 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
742 export JAVA_HOME=${pkgs.jdk}
743 '';
744 });
745
746 JavaGD = old.JavaGD.overrideDerivation (attrs: {
747 preConfigure = ''
748 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
749 export JAVA_HOME=${pkgs.jdk}
750 '';
751 });
752
753 Mposterior = old.Mposterior.overrideDerivation (attrs: {
754 PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
755 });
756
757 qtbase = old.qtbase.overrideDerivation (attrs: {
758 patches = [ ./patches/qtbase.patch ];
759 });
760
761 Rmpi = old.Rmpi.overrideDerivation (attrs: {
762 configureFlags = [
763 "--with-Rmpi-type=OPENMPI"
764 ];
765 });
766
767 Rmpfr = old.Rmpfr.overrideDerivation (attrs: {
768 configureFlags = [
769 "--with-mpfr-include=${pkgs.mpfr.dev}/include"
770 ];
771 });
772
773 RVowpalWabbit = old.RVowpalWabbit.overrideDerivation (attrs: {
774 configureFlags = [
775 "--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
776 ];
777 });
778
779 RAppArmor = old.RAppArmor.overrideDerivation (attrs: {
780 patches = [ ./patches/RAppArmor.patch ];
781 LIBAPPARMOR_HOME = "${pkgs.libapparmor}";
782 });
783
784 RMySQL = old.RMySQL.overrideDerivation (attrs: {
785 patches = [ ./patches/RMySQL.patch ];
786 MYSQL_DIR="${pkgs.mysql.lib}";
787 });
788
789 devEMF = old.devEMF.overrideDerivation (attrs: {
790 NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
791 NIX_LDFLAGS = "-lX11";
792 });
793
794 slfm = old.slfm.overrideDerivation (attrs: {
795 PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
796 });
797
798 SamplerCompare = old.SamplerCompare.overrideDerivation (attrs: {
799 PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
800 });
801
802 EMCluster = old.EMCluster.overrideDerivation (attrs: {
803 patches = [ ./patches/EMCluster.patch ];
804 });
805
806 spMC = old.spMC.overrideDerivation (attrs: {
807 patches = [ ./patches/spMC.patch ];
808 });
809
810 BayesLogit = old.BayesLogit.overrideDerivation (attrs: {
811 patches = [ ./patches/BayesLogit.patch ];
812 buildInputs = (attrs.buildInputs or []) ++ [ pkgs.openblasCompat ];
813 });
814
815 BayesBridge = old.BayesBridge.overrideDerivation (attrs: {
816 patches = [ ./patches/BayesBridge.patch ];
817 });
818
819 openssl = old.openssl.overrideDerivation (attrs: {
820 OPENSSL_INCLUDES = "${pkgs.openssl.dev}/include";
821 });
822
823 Rserve = old.Rserve.overrideDerivation (attrs: {
824 patches = [ ./patches/Rserve.patch ];
825 configureFlags = [
826 "--with-server" "--with-client"
827 ];
828 });
829
830 nloptr = old.nloptr.overrideDerivation (attrs: {
831 configureFlags = [
832 "--with-nlopt-cflags=-I${pkgs.nlopt}/include"
833 "--with-nlopt-libs='-L${pkgs.nlopt}/lib -lnlopt_cxx -lm'"
834 ];
835 });
836
837 V8 = old.V8.overrideDerivation (attrs: {
838 preConfigure = "export V8_INCLUDES=${pkgs.v8}/include";
839 });
840
841 };
842in
843 self