Merge pull request #119126 from fabaff/pycomfoconnect
[NixPkgs.git] / pkgs / development / r-modules / default.nix
blobae23b32b71a294eee13a9340e05725441ea5c789
1 /* This file defines the composition for CRAN (R) packages. */
3 { R, pkgs, overrides }:
5 let
6   inherit (pkgs) cacert fetchurl stdenv lib;
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   };
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   });
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, biocVersion, ...}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
46     mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
47                                              "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}/${name}_${version}.tar.gz"
48                                              "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}_${version}.tar.gz" ];
49   };
50   deriveBiocAnn = mkDerive {
51     mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
52     mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz" ];
53   };
54   deriveBiocExp = mkDerive {
55     mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
56     mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz" ];
57   };
58   deriveCran = mkDerive {
59     mkHomepage = {name, snapshot, ...}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/";
60     mkUrls = {name, version, snapshot}: [ "http://mran.revolutionanalytics.com/snapshot/${snapshot}/src/contrib/${name}_${version}.tar.gz" ];
61   };
63   # Overrides package definitions with nativeBuildInputs.
64   # For example,
65   #
66   # overrideNativeBuildInputs {
67   #   foo = [ pkgs.bar ]
68   # } old
69   #
70   # results in
71   #
72   # {
73   #   foo = old.foo.overrideDerivation (attrs: {
74   #     nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
75   #   });
76   # }
77   overrideNativeBuildInputs = overrides: old:
78     lib.mapAttrs (name: value:
79       (builtins.getAttr name old).overrideDerivation (attrs: {
80         nativeBuildInputs = attrs.nativeBuildInputs ++ value;
81       })
82     ) overrides;
84   # Overrides package definitions with buildInputs.
85   # For example,
86   #
87   # overrideBuildInputs {
88   #   foo = [ pkgs.bar ]
89   # } old
90   #
91   # results in
92   #
93   # {
94   #   foo = old.foo.overrideDerivation (attrs: {
95   #     buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
96   #   });
97   # }
98   overrideBuildInputs = overrides: old:
99     lib.mapAttrs (name: value:
100       (builtins.getAttr name old).overrideDerivation (attrs: {
101         buildInputs = attrs.buildInputs ++ value;
102       })
103     ) overrides;
105   # Overrides package definitions with new R dependencies.
106   # For example,
107   #
108   # overrideRDepends {
109   #   foo = [ self.bar ]
110   # } old
111   #
112   # results in
113   #
114   # {
115   #   foo = old.foo.overrideDerivation (attrs: {
116   #     nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
117   #     propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
118   #   });
119   # }
120   overrideRDepends = overrides: old:
121     lib.mapAttrs (name: value:
122       (builtins.getAttr name old).overrideDerivation (attrs: {
123         nativeBuildInputs = attrs.nativeBuildInputs ++ value;
124         propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value;
125       })
126     ) overrides;
128   # Overrides package definition requiring X running to install.
129   # For example,
130   #
131   # overrideRequireX [
132   #   "foo"
133   # ] old
134   #
135   # results in
136   #
137   # {
138   #   foo = old.foo.override {
139   #     requireX = true;
140   #   };
141   # }
142   overrideRequireX = packageNames: old:
143     let
144       nameValuePairs = map (name: {
145         inherit name;
146         value = (builtins.getAttr name old).override {
147           requireX = true;
148         };
149       }) packageNames;
150     in
151       builtins.listToAttrs nameValuePairs;
153   # Overrides package definition to skip check.
154   # For example,
155   #
156   # overrideSkipCheck [
157   #   "foo"
158   # ] old
159   #
160   # results in
161   #
162   # {
163   #   foo = old.foo.override {
164   #     doCheck = false;
165   #   };
166   # }
167   overrideSkipCheck = packageNames: old:
168     let
169       nameValuePairs = map (name: {
170         inherit name;
171         value = (builtins.getAttr name old).override {
172           doCheck = false;
173         };
174       }) packageNames;
175     in
176       builtins.listToAttrs nameValuePairs;
178   # Overrides package definition to mark it broken.
179   # For example,
180   #
181   # overrideBroken [
182   #   "foo"
183   # ] old
184   #
185   # results in
186   #
187   # {
188   #   foo = old.foo.override {
189   #     broken = true;
190   #   };
191   # }
192   overrideBroken = packageNames: old:
193     let
194       nameValuePairs = map (name: {
195         inherit name;
196         value = (builtins.getAttr name old).override {
197           broken = true;
198         };
199       }) packageNames;
200     in
201       builtins.listToAttrs nameValuePairs;
203   defaultOverrides = old: new:
204     let old0 = old; in
205     let
206       old1 = old0 // (overrideRequireX packagesRequireingX old0);
207       old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1);
208       old3 = old2 // (overrideRDepends packagesWithRDepends old2);
209       old4 = old3 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old3);
210       old5 = old4 // (overrideBuildInputs packagesWithBuildInputs old4);
211       old6 = old5 // (overrideBroken brokenPackages old5);
212       old = old6;
213     in old // (otherOverrides old new);
215   # Recursive override pattern.
216   # `_self` is a collection of packages;
217   # `self` is `_self` with overridden packages;
218   # packages in `_self` may depends on overridden packages.
219   self = (defaultOverrides _self self) // overrides;
220   _self = { inherit buildRPackage; } //
221           import ./bioc-packages.nix { inherit self; derive = deriveBioc; } //
222           import ./bioc-annotation-packages.nix { inherit self; derive = deriveBiocAnn; } //
223           import ./bioc-experiment-packages.nix { inherit self; derive = deriveBiocExp; } //
224           import ./cran-packages.nix { inherit self; derive = deriveCran; };
226   # tweaks for the individual packages and "in self" follow
228   packagesWithRDepends = {
229     FactoMineR = [ self.car ];
230     pander = [ self.codetools ];
231   };
233   packagesWithNativeBuildInputs = {
234     arrow = [ pkgs.pkg-config pkgs.arrow-cpp ];
235     adimpro = [ pkgs.imagemagick ];
236     animation = [ pkgs.which ];
237     audio = [ pkgs.portaudio ];
238     BayesSAE = [ pkgs.gsl_1 ];
239     BayesVarSel = [ pkgs.gsl_1 ];
240     BayesXsrc = [ pkgs.readline.dev pkgs.ncurses ];
241     bigGP = [ pkgs.mpi ];
242     bio3d = [ pkgs.zlib ];
243     BiocCheck = [ pkgs.which ];
244     Biostrings = [ pkgs.zlib ];
245     bnpmr = [ pkgs.gsl_1 ];
246     cairoDevice = [ pkgs.gtk2.dev ];
247     Cairo = [ pkgs.libtiff pkgs.libjpeg pkgs.cairo.dev pkgs.x11 pkgs.fontconfig.lib ];
248     Cardinal = [ pkgs.which ];
249     chebpol = [ pkgs.fftw ];
250     ChemmineOB = [ pkgs.openbabel pkgs.pkg-config ];
251     cit = [ pkgs.gsl_1 ];
252     curl = [ pkgs.curl.dev ];
253     data_table = [pkgs.zlib.dev] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
254     devEMF = [ pkgs.xorg.libXft.dev pkgs.x11 ];
255     diversitree = [ pkgs.gsl_1 pkgs.fftw ];
256     EMCluster = [ pkgs.lapack ];
257     fftw = [ pkgs.fftw.dev ];
258     fftwtools = [ pkgs.fftw.dev ];
259     Formula = [ pkgs.gmp ];
260     gdtools = [ pkgs.cairo.dev pkgs.fontconfig.lib pkgs.freetype.dev ];
261     git2r = [ pkgs.zlib.dev pkgs.openssl.dev pkgs.libssh2.dev pkgs.libgit2 pkgs.pkg-config ];
262     GLAD = [ pkgs.gsl_1 ];
263     glpkAPI = [ pkgs.gmp pkgs.glpk ];
264     gmp = [ pkgs.gmp.dev ];
265     graphscan = [ pkgs.gsl_1 ];
266     gsl = [ pkgs.gsl_1 ];
267     gert = [ pkgs.libgit2 ];
268     haven = [ pkgs.libiconv pkgs.zlib.dev ];
269     h5vc = [ pkgs.zlib.dev ];
270     HiCseg = [ pkgs.gsl_1 ];
271     imager = [ pkgs.x11 ];
272     iBMQ = [ pkgs.gsl_1 ];
273     igraph = [ pkgs.gmp pkgs.libxml2.dev ];
274     JavaGD = [ pkgs.jdk ];
275     jpeg = [ pkgs.libjpeg.dev ];
276     jqr = [ pkgs.jq.dev ];
277     KFKSDS = [ pkgs.gsl_1 ];
278     kza = [ pkgs.fftw.dev ];
279     magick = [ pkgs.imagemagick.dev ];
280     ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
281     mvabund = [ pkgs.gsl_1 ];
282     mwaved = [ pkgs.fftw.dev ];
283     ncdf4 = [ pkgs.netcdf ];
284     nloptr = [ pkgs.nlopt pkgs.pkg-config ];
285     n1qn1 = [ pkgs.gfortran ];
286     odbc = [ pkgs.unixODBC ];
287     pander = [ pkgs.pandoc pkgs.which ];
288     pbdMPI = [ pkgs.mpi ];
289     pbdPROF = [ pkgs.mpi ];
290     pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.which ];
291     pdftools = [ pkgs.poppler.dev ];
292     phytools = [ pkgs.which ];
293     PKI = [ pkgs.openssl.dev ];
294     png = [ pkgs.libpng.dev ];
295     proj4 = [ pkgs.proj ];
296     protolite = [ pkgs.protobuf ];
297     R2SWF = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
298     RAppArmor = [ pkgs.libapparmor ];
299     rapportools = [ pkgs.which ];
300     rapport = [ pkgs.which ];
301     readxl = [ pkgs.libiconv ];
302     rcdd = [ pkgs.gmp.dev ];
303     RcppCNPy = [ pkgs.zlib.dev ];
304     RcppGSL = [ pkgs.gsl_1 ];
305     RcppZiggurat = [ pkgs.gsl_1 ];
306     reprex = [ pkgs.which ];
307     rgdal = [ pkgs.proj.dev pkgs.gdal ];
308     rgeos = [ pkgs.geos ];
309     Rglpk = [ pkgs.glpk ];
310     RGtk2 = [ pkgs.gtk2.dev ];
311     rhdf5 = [ pkgs.zlib ];
312     Rhdf5lib = [ pkgs.zlib ];
313     Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.mpi pkgs.pcre.dev ];
314     Rhtslib = [ pkgs.zlib.dev pkgs.automake pkgs.autoconf pkgs.bzip2.dev pkgs.xz.dev pkgs.curl.dev ];
315     rjags = [ pkgs.jags ];
316     rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.xz.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
317     Rlibeemd = [ pkgs.gsl_1 ];
318     rmatio = [ pkgs.zlib.dev ];
319     Rmpfr = [ pkgs.gmp pkgs.mpfr.dev ];
320     Rmpi = [ pkgs.mpi ];
321     RMySQL = [ pkgs.zlib pkgs.libmysqlclient pkgs.openssl.dev ];
322     RNetCDF = [ pkgs.netcdf pkgs.udunits ];
323     RODBC = [ pkgs.libiodbc ];
324     rpanel = [ pkgs.bwidget ];
325     rpg = [ pkgs.postgresql ];
326     Rpoppler = [ pkgs.poppler ];
327     RPostgreSQL = [ pkgs.postgresql pkgs.postgresql ];
328     RProtoBuf = [ pkgs.protobuf ];
329     RSclient = [ pkgs.openssl.dev ];
330     Rserve = [ pkgs.openssl ];
331     Rssa = [ pkgs.fftw.dev ];
332     rtiff = [ pkgs.libtiff.dev ];
333     runjags = [ pkgs.jags ];
334     RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
335     rzmq = [ pkgs.zeromq pkgs.pkg-config ];
336     clustermq = [ pkgs.zeromq ];
337     SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.xz pkgs.pcre ];
338     sdcTable = [ pkgs.gmp pkgs.glpk ];
339     seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
340     seqinr = [ pkgs.zlib.dev ];
341     seqminer = [ pkgs.zlib.dev pkgs.bzip2 ];
342     sf = [ pkgs.gdal pkgs.proj pkgs.geos ];
343     showtext = [ pkgs.zlib pkgs.libpng pkgs.icu pkgs.freetype.dev ];
344     simplexreg = [ pkgs.gsl_1 ];
345     spate = [ pkgs.fftw.dev ];
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     systemfonts = [ pkgs.fontconfig.dev pkgs.freetype.dev ];
352     TAQMNGR = [ pkgs.zlib.dev ];
353     tesseract = [ pkgs.tesseract pkgs.leptonica ];
354     tiff = [ pkgs.libtiff.dev ];
355     tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ];
356     topicmodels = [ pkgs.gsl_1 ];
357     udunits2 = [ pkgs.udunits pkgs.expat ];
358     units = [ pkgs.udunits ];
359     V8 = [ pkgs.v8 ];
360     XBRL = [ pkgs.zlib pkgs.libxml2.dev ];
361     xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
362     XML = [ pkgs.libtool pkgs.libxml2.dev pkgs.xmlsec pkgs.libxslt ];
363     affyPLM = [ pkgs.zlib.dev ];
364     bamsignals = [ pkgs.zlib.dev ];
365     BitSeq = [ pkgs.zlib.dev ];
366     DiffBind = [ pkgs.zlib ];
367     ShortRead = [ pkgs.zlib.dev ];
368     oligo = [ pkgs.zlib.dev ];
369     gmapR = [ pkgs.zlib.dev ];
370     Rsubread = [ pkgs.zlib.dev ];
371     XVector = [ pkgs.zlib.dev ];
372     Rsamtools = [ pkgs.zlib.dev pkgs.curl.dev ];
373     rtracklayer = [ pkgs.zlib.dev ];
374     affyio = [ pkgs.zlib.dev ];
375     VariantAnnotation = [ pkgs.zlib.dev pkgs.curl.dev ];
376     snpStats = [ pkgs.zlib.dev ];
377   };
379   packagesWithBuildInputs = {
380     # sort -t '=' -k 2
381     gam = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
382     quantreg = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
383     rmutil = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
384     robustbase = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
385     SparseM = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
386     hexbin = lib.optionals stdenv.isDarwin [ pkgs.libiconv ];
387     svKomodo = [ pkgs.which ];
388     nat = [ pkgs.which ];
389     nat_templatebrains = [ pkgs.which ];
390     pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
391     clustermq = [  pkgs.pkg-config ];
392     RMark = [ pkgs.which ];
393     RPushbullet = [ pkgs.which ];
394     RcppEigen = [ pkgs.libiconv ];
395     RCurl = [ pkgs.curl.dev ];
396     R2SWF = [ pkgs.pkg-config ];
397     rgl = [ pkgs.libGLU pkgs.libGLU.dev pkgs.libGL pkgs.xlibsWrapper ];
398     RGtk2 = [ pkgs.pkg-config ];
399     RProtoBuf = [ pkgs.pkg-config ];
400     Rpoppler = [ pkgs.pkg-config ];
401     XML = [ pkgs.pkg-config ];
402     cairoDevice = [ pkgs.pkg-config ];
403     chebpol = [ pkgs.pkg-config ];
404     fftw = [ pkgs.pkg-config ];
405     gdtools = [ pkgs.pkg-config ];
406     jqr = [ pkgs.jq.lib ];
407     kza = [ pkgs.pkg-config ];
408     magick = [ pkgs.pkg-config ];
409     mwaved = [ pkgs.pkg-config ];
410     odbc = [ pkgs.pkg-config ];
411     openssl = [ pkgs.pkg-config ];
412     pdftools = [ pkgs.pkg-config ];
413     sf = [ pkgs.pkg-config pkgs.sqlite.dev pkgs.proj.dev ];
414     showtext = [ pkgs.pkg-config ];
415     spate = [ pkgs.pkg-config ];
416     stringi = [ pkgs.pkg-config ];
417     sysfonts = [ pkgs.pkg-config ];
418     systemfonts = [ pkgs.pkg-config ];
419     tesseract = [ pkgs.pkg-config ];
420     Cairo = [ pkgs.pkg-config ];
421     CLVTools = [ pkgs.gsl ];
422     JMcmprsk = [ pkgs.gsl ];
423     mashr = [ pkgs.gsl ];
424     hadron = [ pkgs.gsl ];
425     AMOUNTAIN = [ pkgs.gsl ];
426     Rsymphony = [ pkgs.pkg-config pkgs.doxygen pkgs.graphviz pkgs.subversion ];
427     tcltk2 = [ pkgs.tcl pkgs.tk ];
428     tikzDevice = [ pkgs.which pkgs.texlive.combined.scheme-medium ];
429     gridGraphics = [ pkgs.which ];
430     adimpro = [ pkgs.which pkgs.xorg.xdpyinfo ];
431     mzR = [ pkgs.netcdf ];
432     cluster = [ pkgs.libiconv ];
433     KernSmooth = [ pkgs.libiconv ];
434     nlme = [ pkgs.libiconv ];
435     Matrix = [ pkgs.libiconv ];
436     mgcv = [ pkgs.libiconv ];
437     minqa = [ pkgs.libiconv ];
438     igraph = [ pkgs.libiconv ];
439     ape = [ pkgs.libiconv ];
440     expm = [ pkgs.libiconv ];
441     mnormt = [ pkgs.libiconv ];
442     pan = [ pkgs.libiconv ];
443     phangorn = [ pkgs.libiconv ];
444     quadprog = [ pkgs.libiconv ];
445     randomForest = [ pkgs.libiconv ];
446     sundialr = [ pkgs.libiconv ];
447     ucminf = [ pkgs.libiconv ];
448     glmnet = [ pkgs.libiconv ];
449     mvtnorm = [ pkgs.libiconv ];
450     statmod = [ pkgs.libiconv ];
451   };
453   packagesRequireingX = [
454     "accrual"
455     "ade4TkGUI"
456     "analogue"
457     "analogueExtra"
458     "AnalyzeFMRI"
459     "AnnotLists"
460     "AnthropMMD"
461     "aplpack"
462     "asbio"
463     "BAT"
464     "BCA"
465     "betapart"
466     "BiodiversityR"
467     "bio_infer"
468     "bipartite"
469     "biplotbootGUI"
470     "blender"
471     "cairoDevice"
472     "CCTpack"
473     "cncaGUI"
474     "cocorresp"
475     "CommunityCorrelogram"
476     "confidence"
477     "constrainedKriging"
478     "ConvergenceConcepts"
479     "cpa"
480     "DALY"
481     "dave"
482     "Deducer"
483     "DeducerPlugInExample"
484     "DeducerPlugInScaling"
485     "DeducerSpatial"
486     "DeducerSurvival"
487     "DeducerText"
488     "Demerelate"
489     "detrendeR"
490     "dgmb"
491     "dpa"
492     "DSpat"
493     "dynamicGraph"
494     "dynBiplotGUI"
495     "EasyqpcR"
496     "EcoVirtual"
497     "exactLoglinTest"
498     "fat2Lpoly"
499     "fbati"
500     "FD"
501     "feature"
502     "FeedbackTS"
503     "FFD"
504     "fgui"
505     "fisheyeR"
506     "forams"
507     "forensim"
508     "FreeSortR"
509     "fscaret"
510     "gcmr"
511     "geomorph"
512     "geoR"
513     "georob"
514     "GGEBiplotGUI"
515     "gnm"
516     "GrapheR"
517     "GroupSeq"
518     "gsubfn"
519     "GUniFrac"
520     "gWidgets2RGtk2"
521     "gWidgets2tcltk"
522     "HH"
523     "HiveR"
524     "ic50"
525     "iDynoR"
526     "in2extRemes"
527     "iplots"
528     "isopam"
529     "IsotopeR"
530     "JGR"
531     "KappaGUI"
532     "likeLTD"
533     "logmult"
534     "LS2Wstat"
535     "MareyMap"
536     "memgene"
537     "metacom"
538     "Meth27QC"
539     "migui"
540     "miniGUI"
541     "mixsep"
542     "MplusAutomation"
543     "mpmcorrelogram"
544     "mritc"
545     "multgee"
546     "multibiplotGUI"
547     "OligoSpecificitySystem"
548     "onemap"
549     "OpenRepGrid"
550     "paleoMAS"
551     "pbatR"
552     "PBSadmb"
553     "PBSmodelling"
554     "PCPS"
555     "pez"
556     "phylotools"
557     "picante"
558     "plotSEMM"
559     "plsRbeta"
560     "plsRglm"
561     "PopGenReport"
562     "poppr"
563     "powerpkg"
564     "PredictABEL"
565     "prefmod"
566     "PrevMap"
567     "ProbForecastGOP"
568     "r4ss"
569     "RandomFields"
570     "rareNMtests"
571     "rAverage"
572     "Rcmdr"
573     "RcmdrPlugin_coin"
574     "RcmdrPlugin_depthTools"
575     "RcmdrPlugin_DoE"
576     "RcmdrPlugin_EACSPIR"
577     "RcmdrPlugin_EBM"
578     "RcmdrPlugin_EcoVirtual"
579     "RcmdrPlugin_EZR"
580     "RcmdrPlugin_FactoMineR"
581     "RcmdrPlugin_HH"
582     "RcmdrPlugin_IPSUR"
583     "RcmdrPlugin_KMggplot2"
584     "RcmdrPlugin_lfstat"
585     "RcmdrPlugin_MA"
586     "RcmdrPlugin_MPAStats"
587     "RcmdrPlugin_orloca"
588     "RcmdrPlugin_plotByGroup"
589     "RcmdrPlugin_pointG"
590     "RcmdrPlugin_ROC"
591     "RcmdrPlugin_sampling"
592     "RcmdrPlugin_SCDA"
593     "RcmdrPlugin_SLC"
594     "RcmdrPlugin_sos"
595     "RcmdrPlugin_steepness"
596     "RcmdrPlugin_survival"
597     "RcmdrPlugin_TeachingDemos"
598     "RcmdrPlugin_temis"
599     "RcmdrPlugin_UCA"
600     "recluster"
601     "relimp"
602     "rgl"
603     "RHRV"
604     "rich"
605     "RNCEP"
606     "RSDA"
607     "RSurvey"
608     "simba"
609     "Simile"
610     "SimpleTable"
611     "SOLOMON"
612     "soundecology"
613     "spatsurv"
614     "sqldf"
615     "SSDforR"
616     "statcheck"
617     "StatDA"
618     "STEPCAM"
619     "stosim"
620     "strvalidator"
621     "stylo"
622     "svDialogstcltk"
623     "svIDE"
624     "svSocket"
625     "svWidgets"
626     "SYNCSA"
627     "SyNet"
628     "tcltk2"
629     "TestScorer"
630     "TIMP"
631     "tkrplot"
632     "tmap"
633     "tspmeta"
634     "TTAinterfaceTrendAnalysis"
635     "twiddler"
636     "vcdExtra"
637     "VecStatGraphs3D"
638     "vegan"
639     "vegan3d"
640     "vegclust"
641     "x12GUI"
642   ];
644   packagesToSkipCheck = [
645     "Rmpi"     # tries to run MPI processes
646     "pbdMPI"   # tries to run MPI processes
647     "data_table" # fails to rename shared library before check
648   ];
650   # Packages which cannot be installed due to lack of dependencies or other reasons.
651   brokenPackages = [
652   ];
654   otherOverrides = old: new: {
655     stringi = old.stringi.overrideDerivation (attrs: {
656       postInstall = let
657         icuName = "icudt52l";
658         icuSrc = pkgs.fetchzip {
659           url = "http://static.rexamine.com/packages/${icuName}.zip";
660           sha256 = "0hvazpizziq5ibc9017i1bb45yryfl26wzfsv05vk9mc1575r6xj";
661           stripRoot = false;
662         };
663         in ''
664           ${attrs.postInstall or ""}
665           cp ${icuSrc}/${icuName}.dat $out/library/stringi/libs
666         '';
667     });
669     xml2 = old.xml2.overrideDerivation (attrs: {
670       preConfigure = ''
671         export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
672         patchShebangs configure
673         '';
674     });
676     rzmq = old.rzmq.overrideDerivation (attrs: {
677       preConfigure = "patchShebangs configure";
678     });
680     clustermq = old.clustermq.overrideDerivation (attrs: {
681       preConfigure = "patchShebangs configure";
682     });
684     Cairo = old.Cairo.overrideDerivation (attrs: {
685       NIX_LDFLAGS = "-lfontconfig";
686     });
688     curl = old.curl.overrideDerivation (attrs: {
689       preConfigure = "patchShebangs configure";
690     });
692     RcppParallel = old.RcppParallel.overrideDerivation (attrs: {
693       preConfigure = "patchShebangs configure";
694     });
696     ggbio = old.ggbio.overrideDerivation (attrs: {
697       patches = [
698         (pkgs.fetchpatch {
699           url = "https://github.com/tengfei/ggbio/commit/b04a9840cf5c0bd0514db2536f2e610bbd364727.patch";
700           sha256 = "blwtObyIYo1UBWz4nlmcJ8Nyw/n0qwmJrtwFWuoUyMg=";
701         })
702       ];
703     });
705     RcppArmadillo = old.RcppArmadillo.overrideDerivation (attrs: {
706       patchPhase = "patchShebangs configure";
707     });
709     data_table = old.data_table.overrideDerivation (attrs: {
710       NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE + " -fopenmp";
711       patchPhase = "patchShebangs configure";
712     });
714     ModelMetrics = old.ModelMetrics.overrideDerivation (attrs: {
715       NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE
716         + lib.optionalString stdenv.isDarwin " -fopenmp";
717     });
719     rpf = old.rpf.overrideDerivation (attrs: {
720       patchPhase = "patchShebangs configure";
721     });
723     BayesXsrc = old.BayesXsrc.overrideDerivation (attrs: {
724       patches = [ ./patches/BayesXsrc.patch ];
725     });
727     Rhdf5lib = old.Rhdf5lib.overrideDerivation (attrs: {
728       patches = [ ./patches/Rhdf5lib.patch ];
729     });
731     rJava = old.rJava.overrideDerivation (attrs: {
732       preConfigure = ''
733         export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
734         export JAVA_HOME=${pkgs.jdk}
735       '';
736     });
738     JavaGD = old.JavaGD.overrideDerivation (attrs: {
739       preConfigure = ''
740         export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
741         export JAVA_HOME=${pkgs.jdk}
742       '';
743     });
745     jqr = old.jqr.overrideDerivation (attrs: {
746       preConfigure = ''
747         patchShebangs configure
748         '';
749     });
751     pbdZMQ = old.pbdZMQ.overrideDerivation (attrs: {
752       postPatch = lib.optionalString stdenv.isDarwin ''
753         for file in R/*.{r,r.in}; do
754             sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.darwin.cctools}/bin/\1"#g' $file
755         done
756       '';
757     });
759     Rmpi = old.Rmpi.overrideDerivation (attrs: {
760       configureFlags = [
761         "--with-Rmpi-type=OPENMPI"
762       ];
763     });
765     Rmpfr = old.Rmpfr.overrideDerivation (attrs: {
766       configureFlags = [
767         "--with-mpfr-include=${pkgs.mpfr.dev}/include"
768       ];
769     });
771     RVowpalWabbit = old.RVowpalWabbit.overrideDerivation (attrs: {
772       configureFlags = [
773         "--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
774       ];
775     });
777     RAppArmor = old.RAppArmor.overrideDerivation (attrs: {
778       patches = [ ./patches/RAppArmor.patch ];
779       LIBAPPARMOR_HOME = pkgs.libapparmor;
780     });
782     RMySQL = old.RMySQL.overrideDerivation (attrs: {
783       MYSQL_DIR="${pkgs.libmysqlclient}";
784       preConfigure = ''
785         patchShebangs configure
786       '';
787     });
789     devEMF = old.devEMF.overrideDerivation (attrs: {
790       NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
791       NIX_LDFLAGS = "-lX11";
792     });
794     slfm = old.slfm.overrideDerivation (attrs: {
795       PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
796     });
798     SamplerCompare = old.SamplerCompare.overrideDerivation (attrs: {
799       PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
800     });
802     EMCluster = old.EMCluster.overrideDerivation (attrs: {
803       patches = [ ./patches/EMCluster.patch ];
804     });
806     spMC = old.spMC.overrideDerivation (attrs: {
807       patches = [ ./patches/spMC.patch ];
808     });
810     openssl = old.openssl.overrideDerivation (attrs: {
811       preConfigure = ''
812         patchShebangs configure
813       '';
814       PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
815       PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -lssl -lcrypto";
816     });
818     websocket = old.websocket.overrideDerivation (attrs: {
819       PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
820       PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -lssl -lcrypto";
821     });
823     Rserve = old.Rserve.overrideDerivation (attrs: {
824       patches = [ ./patches/Rserve.patch ];
825       configureFlags = [
826         "--with-server" "--with-client"
827       ];
828     });
830     nloptr = old.nloptr.overrideDerivation (attrs: {
831       # Drop bundled nlopt source code. Probably unnecessary, but I want to be
832       # sure we're using the system library, not this one.
833       preConfigure = "rm -r src/nlopt_src";
834     });
836     V8 = old.V8.overrideDerivation (attrs: {
837       postPatch = ''
838         substituteInPlace configure \
839           --replace " -lv8_libplatform" ""
840       '';
842       preConfigure = ''
843         export INCLUDE_DIR=${pkgs.v8}/include
844         export LIB_DIR=${pkgs.v8}/lib
845         patchShebangs configure
846       '';
847     });
849     acs = old.acs.overrideDerivation (attrs: {
850       preConfigure = ''
851         patchShebangs configure
852         '';
853     });
855     gdtools = old.gdtools.overrideDerivation (attrs: {
856       preConfigure = ''
857         patchShebangs configure
858         '';
859       NIX_LDFLAGS = "-lfontconfig -lfreetype";
860     });
862     magick = old.magick.overrideDerivation (attrs: {
863       preConfigure = ''
864         patchShebangs configure
865         '';
866     });
868     libgeos = old.libgeos.overrideDerivation (attrs: {
869       preConfigure = ''
870         patchShebangs configure
871         '';
872     });
874     protolite = old.protolite.overrideDerivation (attrs: {
875       preConfigure = ''
876         patchShebangs configure
877         '';
878     });
880     rpanel = old.rpanel.overrideDerivation (attrs: {
881       preConfigure = ''
882         export TCLLIBPATH="${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}"
883       '';
884       TCLLIBPATH = "${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}";
885     });
887     RPostgres = old.RPostgres.overrideDerivation (attrs: {
888       preConfigure = ''
889         export INCLUDE_DIR=${pkgs.postgresql}/include
890         export LIB_DIR=${pkgs.postgresql.lib}/lib
891         patchShebangs configure
892         '';
893     });
895     OpenMx = old.OpenMx.overrideDerivation (attrs: {
896       preConfigure = ''
897         patchShebangs configure
898         '';
899     });
901     odbc = old.odbc.overrideDerivation (attrs: {
902       preConfigure = ''
903         patchShebangs configure
904         '';
905     });
907     x13binary = old.x13binary.overrideDerivation (attrs: {
908       preConfigure = ''
909         patchShebangs configure
910         '';
911     });
913     geojsonio = old.geojsonio.overrideDerivation (attrs: {
914       buildInputs = [ cacert ] ++ attrs.buildInputs;
915     });
917     rstan = old.rstan.overrideDerivation (attrs: {
918       NIX_CFLAGS_COMPILE = "${attrs.NIX_CFLAGS_COMPILE} -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
919     });
921     mongolite = old.mongolite.overrideDerivation (attrs: {
922       preConfigure = ''
923         patchShebangs configure
924         '';
925       PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
926       PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz";
927     });
929     ps = old.ps.overrideDerivation (attrs: {
930       preConfigure = "patchShebangs configure";
931     });
933     rlang = old.rlang.overrideDerivation (attrs: {
934       preConfigure = "patchShebangs configure";
935     });
937     systemfonts = old.systemfonts.overrideDerivation (attrs: {
938       preConfigure = "patchShebangs configure";
939     });
941     littler = old.littler.overrideAttrs (attrs: with pkgs; {
942       buildInputs = [ pcre xz zlib bzip2 icu which ] ++ attrs.buildInputs;
943       postInstall = ''
944         install -d $out/bin $out/share/man/man1
945         ln -s ../library/littler/bin/r $out/bin/r
946         ln -s ../library/littler/bin/r $out/bin/lr
947         ln -s ../../../library/littler/man-page/r.1 $out/share/man/man1
948         # these won't run without special provisions, so better remove them
949         rm -r $out/library/littler/script-tests
950       '';
951     });
953   };
955   self