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