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