1 /* This file defines the composition for R packages. */
4 importJSON = f: builtins.fromJSON (builtins.readFile f);
6 biocPackagesGenerated = importJSON ./bioc-packages.json;
7 biocAnnotationPackagesGenerated = importJSON ./bioc-annotation-packages.json;
8 biocExperimentPackagesGenerated = importJSON ./bioc-experiment-packages.json;
9 cranPackagesGenerated = importJSON ./cran-packages.json;
12 { R, pkgs, overrides }:
15 inherit (pkgs) cacert fetchurl stdenv lib;
17 buildRPackage = pkgs.callPackage ./generic-builder.nix {
19 inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa Foundation;
20 inherit (pkgs) gettext gfortran;
23 # Generates package templates given per-repository settings
25 # some packages, e.g. cncaGUI, require X running while installation,
26 # so that we use xvfb-run if requireX is true.
27 mkDerive = {mkHomepage, mkUrls, hydraPlatforms ? null}: args:
28 let hydraPlatforms' = hydraPlatforms; in
29 lib.makeOverridable ({
30 name, version, sha256,
35 platforms ? R.meta.platforms,
36 hydraPlatforms ? if hydraPlatforms' != null then hydraPlatforms' else platforms,
39 name = "${name}-${version}";
42 urls = mkUrls (args // { inherit name version; });
44 inherit doCheck requireX;
45 propagatedBuildInputs = depends;
46 nativeBuildInputs = depends;
47 meta.homepage = mkHomepage (args // { inherit name; });
48 meta.platforms = platforms;
49 meta.hydraPlatforms = hydraPlatforms;
51 meta.maintainers = maintainers;
54 # Templates for generating Bioconductor and CRAN packages
55 # from the name, version, sha256, and optional per-package arguments above
57 deriveBioc = mkDerive {
58 mkHomepage = {name, biocVersion}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
59 mkUrls = {name, version, biocVersion}: [
60 "mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
61 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}/${name}_${version}.tar.gz"
62 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}_${version}.tar.gz"
65 deriveBiocAnn = mkDerive {
66 mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
67 mkUrls = {name, version, biocVersion}: [
68 "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz"
72 deriveBiocExp = mkDerive {
73 mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
74 mkUrls = {name, version, biocVersion}: [
75 "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz"
79 deriveCran = mkDerive {
80 mkHomepage = {name}: "https://cran.r-project.org/web/packages/${name}/";
81 mkUrls = {name, version}: [
82 "mirror://cran/${name}_${version}.tar.gz"
83 "mirror://cran/Archive/${name}/${name}_${version}.tar.gz"
87 # Overrides package definitions with nativeBuildInputs.
90 # overrideNativeBuildInputs {
97 # foo = old.foo.overrideAttrs (attrs: {
98 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
101 overrideNativeBuildInputs = overrides: old:
102 lib.mapAttrs (name: value:
103 (builtins.getAttr name old).overrideAttrs (attrs: {
104 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
108 # Overrides package definitions with buildInputs.
111 # overrideBuildInputs {
118 # foo = old.foo.overrideAttrs (attrs: {
119 # buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
122 overrideBuildInputs = overrides: old:
123 lib.mapAttrs (name: value:
124 (builtins.getAttr name old).overrideAttrs (attrs: {
125 buildInputs = attrs.buildInputs ++ value;
129 # Overrides package definitions with maintainers.
132 # overrideMaintainers {
133 # foo = [ lib.maintainers.jsmith ]
139 # foo = old.foo.override {
140 # maintainers = [ lib.maintainers.jsmith ];
143 overrideMaintainers = overrides: old:
144 lib.mapAttrs (name: value:
145 (builtins.getAttr name old).override {
149 # Overrides package definitions with new R dependencies.
159 # foo = old.foo.overrideAttrs (attrs: {
160 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
161 # propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
164 overrideRDepends = overrides: old:
165 lib.mapAttrs (name: value:
166 (builtins.getAttr name old).overrideAttrs (attrs: {
167 nativeBuildInputs = (attrs.nativeBuildInputs or []) ++ value;
168 propagatedNativeBuildInputs = (attrs.propagatedNativeBuildInputs or []) ++ value;
172 # Overrides package definition requiring X running to install.
182 # foo = old.foo.override {
186 overrideRequireX = packageNames: old:
188 nameValuePairs = map (name: {
190 value = (builtins.getAttr name old).override {
195 builtins.listToAttrs nameValuePairs;
197 # Overrides package definition requiring a home directory to install or to
201 # overrideRequireHome [
208 # foo = old.foo.overrideAttrs (oldAttrs: {
210 # ${oldAttrs.preInstall or ""}
211 # export HOME=$(mktemp -d)
215 overrideRequireHome = packageNames: old:
217 nameValuePairs = map (name: {
219 value = (builtins.getAttr name old).overrideAttrs (oldAttrs: {
221 ${oldAttrs.preInstall or ""}
222 export HOME=$(mktemp -d)
227 builtins.listToAttrs nameValuePairs;
229 # Overrides package definition to skip check.
232 # overrideSkipCheck [
239 # foo = old.foo.override {
243 overrideSkipCheck = packageNames: old:
245 nameValuePairs = map (name: {
247 value = (builtins.getAttr name old).override {
252 builtins.listToAttrs nameValuePairs;
254 # Overrides package definition to mark it broken.
264 # foo = old.foo.override {
268 overrideBroken = packageNames: old:
270 nameValuePairs = map (name: {
272 value = (builtins.getAttr name old).override {
277 builtins.listToAttrs nameValuePairs;
279 defaultOverrides = old: new:
282 old1 = old0 // (overrideRequireX packagesRequiringX old0);
283 old2 = old1 // (overrideRequireHome packagesRequiringHome old1);
284 old3 = old2 // (overrideSkipCheck packagesToSkipCheck old2);
285 old4 = old3 // (overrideRDepends packagesWithRDepends old3);
286 old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4);
287 old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5);
288 old7 = old6 // (overrideBroken brokenPackages old6);
289 old8 = old7 // (overrideMaintainers packagesWithMaintainers old7);
291 in old // (otherOverrides old new);
293 # Recursive override pattern.
294 # `_self` is a collection of packages;
295 # `self` is `_self` with overridden packages;
296 # packages in `_self` may depends on overridden packages.
297 self = (defaultOverrides _self self) // overrides;
298 _self = { inherit buildRPackage; } //
299 mkPackageSet deriveBioc biocPackagesGenerated //
300 mkPackageSet deriveBiocAnn biocAnnotationPackagesGenerated //
301 mkPackageSet deriveBiocExp biocExperimentPackagesGenerated //
302 mkPackageSet deriveCran cranPackagesGenerated;
304 # Takes in a generated JSON file's imported contents
305 # and transforms it by swapping each element of the depends array with the dependency's derivation
306 # and passing this new object to the provided derive function
307 mkPackageSet = derive: packagesJSON: lib.mapAttrs (
308 k: v: derive packagesJSON.extraArgs (v // { depends = lib.map (name: builtins.getAttr name self) v.depends; })
309 ) packagesJSON.packages;
312 # tweaks for the individual packages and "in self" follow
314 packagesWithMaintainers = with lib.maintainers; {
315 data_table = [ jbedo ];
316 BiocManager = [ jbedo ];
319 svaRetro = [ jbedo ];
320 StructuralVariantAnnotation = [ jbedo ];
321 RQuantLib = [ kupac ];
324 packagesWithRDepends = {
325 spectralGraphTopology = [ self.CVXR ];
326 FactoMineR = [ self.car ];
327 pander = [ self.codetools ];
328 rmsb = [ self.rstantools ];
329 gastempt = [ self.rstantools ];
330 interactiveDisplay = [ self.BiocManager ];
331 disbayes = [ self.rstantools ];
332 tipsae = [ self.rstantools ];
333 TriDimRegression = [ self.rstantools ];
334 bbmix = [ self.rstantools ];
337 packagesWithNativeBuildInputs = {
338 adbcpostgresql = [ pkgs.postgresql ];
339 adimpro = [ pkgs.imagemagick ];
340 animation = [ pkgs.which ];
341 Apollonius = with pkgs; [ pkg-config gmp.dev mpfr.dev ];
342 arrow = with pkgs; [ pkg-config cmake ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ intltool ];
343 alcyon = with pkgs; [ cmake which ];
344 audio = [ pkgs.portaudio ];
345 BayesSAE = [ pkgs.gsl ];
346 BayesVarSel = [ pkgs.gsl ];
347 BayesXsrc = with pkgs; [ readline.dev ncurses gsl ];
348 bioacoustics = [ pkgs.fftw.dev pkgs.cmake ];
349 bigGP = [ pkgs.mpi ];
350 bigrquerystorage = with pkgs; [ grpc protobuf which ];
351 bio3d = [ pkgs.zlib ];
352 BiocCheck = [ pkgs.which ];
353 Biostrings = [ pkgs.zlib ];
354 CellBarcode = [ pkgs.zlib ];
355 cld3 = [ pkgs.protobuf ];
356 bnpmr = [ pkgs.gsl ];
357 caviarpd = [ pkgs.cargo ];
358 cairoDevice = [ pkgs.gtk2.dev ];
359 Cairo = with pkgs; [ libtiff libjpeg cairo.dev xorg.libXt.dev fontconfig.lib ];
360 Cardinal = [ pkgs.which ];
361 chebpol = [ pkgs.fftw.dev ];
362 ChemmineOB = [ pkgs.pkg-config ];
363 interpolation = [ pkgs.pkg-config ];
364 clarabel = [ pkgs.cargo ];
365 curl = [ pkgs.curl.dev ];
366 CytoML = [ pkgs.libxml2.dev ];
367 data_table = with pkgs; [ pkg-config zlib.dev ] ++ lib.optional stdenv.hostPlatform.isDarwin pkgs.llvmPackages.openmp;
368 devEMF = with pkgs; [ xorg.libXft.dev ];
369 diversitree = with pkgs; [ gsl fftw ];
370 exactextractr = [ pkgs.geos ];
371 EMCluster = [ pkgs.lapack ];
372 fangs = [ pkgs.cargo ];
373 fcl = [ pkgs.cargo ];
374 fftw = [ pkgs.fftw.dev ];
375 fftwtools = with pkgs; [ fftw.dev pkg-config ];
376 fingerPro = [ pkgs.gsl ];
377 Formula = [ pkgs.gmp ];
378 frailtyMMpen = [ pkgs.gsl ];
379 gamstransfer = [ pkgs.zlib ];
380 gdalraster = [ pkgs.pkg-config ];
381 gdtools = with pkgs; [ cairo.dev fontconfig.lib freetype.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ expat xorg.libXdmcp ];
382 GeneralizedWendland = [ pkgs.gsl ];
383 ggiraph = with pkgs; [ pkgs.libpng.dev ];
384 git2r = with pkgs; [ zlib.dev openssl.dev libssh2.dev libgit2 pkg-config ];
386 glpkAPI = with pkgs; [ gmp glpk ];
387 gmp = [ pkgs.gmp.dev ];
388 GPBayes = [ pkgs.gsl ];
389 graphscan = [ pkgs.gsl ];
391 gslnls = [ pkgs.gsl ];
392 gert = [ pkgs.libgit2 ];
393 haven = with pkgs; [ zlib.dev ];
394 hellorust = [ pkgs.cargo ];
395 hgwrr = [ pkgs.gsl ];
396 h5vc = with pkgs; [ zlib.dev bzip2.dev xz.dev ];
397 yyjsonr = with pkgs; [ zlib.dev ];
398 RNifti = with pkgs; [ zlib.dev ];
399 RNiftyReg = with pkgs; [ zlib.dev ];
400 highs = [ pkgs.which pkgs.cmake ];
401 crc32c = [ pkgs.which pkgs.cmake ];
402 rbedrock = [ pkgs.zlib.dev pkgs.which pkgs.cmake ];
403 HiCseg = [ pkgs.gsl ];
404 imager = [ pkgs.xorg.libX11.dev ];
405 imbibe = [ pkgs.zlib.dev ];
406 image_CannyEdges = with pkgs; [ fftw.dev libpng.dev ];
408 jack = [ pkgs.pkg-config ];
409 JavaGD = [ pkgs.jdk ];
410 jpeg = [ pkgs.libjpeg.dev ];
411 jqr = [ pkgs.jq.dev ];
412 KFKSDS = [ pkgs.gsl ];
413 KSgeneral = with pkgs; [ pkg-config ];
414 kza = [ pkgs.fftw.dev ];
415 leidenAlg = [ pkgs.gmp.dev ];
416 Libra = [ pkgs.gsl ];
417 libstable4u = [ pkgs.gsl ];
418 heck = [ pkgs.cargo ];
419 LOMAR = [ pkgs.gmp.dev ];
420 littler = [ pkgs.libdeflate ];
421 lpsymphony = with pkgs; [ pkg-config gfortran gettext ];
422 lwgeom = with pkgs; [ proj geos gdal ];
423 rsbml = [ pkgs.pkg-config ];
424 rvg = [ pkgs.libpng.dev ];
425 MAGEE = [ pkgs.zlib.dev pkgs.bzip2.dev ];
426 magick = [ pkgs.imagemagick.dev ];
427 ModelMetrics = lib.optional stdenv.hostPlatform.isDarwin pkgs.llvmPackages.openmp;
428 mvabund = [ pkgs.gsl ];
429 mcrPioda = [ pkgs.gsl ];
430 mwaved = [ pkgs.fftw.dev ];
431 mzR = with pkgs; [ zlib netcdf ];
432 nanonext = with pkgs; [ mbedtls nng ];
433 ncdf4 = [ pkgs.netcdf ];
434 neojags = [ pkgs.jags ];
435 nloptr = with pkgs; [ nlopt pkg-config ];
436 n1qn1 = [ pkgs.gfortran ];
437 odbc = [ pkgs.unixODBC ];
438 opencv = [ pkgs.pkg-config ];
439 pak = [ pkgs.curl.dev ];
440 pander = with pkgs; [ pandoc which ];
441 pbdMPI = [ pkgs.mpi ];
442 pbdPROF = [ pkgs.mpi ];
443 pbdZMQ = [ pkgs.pkg-config ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.which ];
444 pcaL1 = [ pkgs.pkg-config pkgs.clp ];
445 pdftools = [ pkgs.poppler.dev ];
446 PEPBVS = [ pkgs.gsl ];
447 phytools = [ pkgs.which ];
448 PKI = [ pkgs.openssl.dev ];
449 png = [ pkgs.libpng.dev ];
450 protolite = [ pkgs.protobuf ];
451 R2SWF = with pkgs; [ zlib libpng freetype.dev ];
452 RAppArmor = [ pkgs.libapparmor ];
453 rapportools = [ pkgs.which ];
454 rapport = [ pkgs.which ];
455 rcdd = [ pkgs.gmp.dev ];
456 RcppCNPy = [ pkgs.zlib.dev ];
457 RcppGSL = [ pkgs.gsl ];
458 RcppZiggurat = [ pkgs.gsl ];
459 reprex = [ pkgs.which ];
460 resultant = with pkgs; [ gmp.dev mpfr.dev pkg-config ];
461 rgdal = with pkgs; [ proj.dev gdal ];
462 Rhisat2 = [ pkgs.which pkgs.hostname ];
463 gdalcubes = [ pkgs.pkg-config ];
464 rgeos = [ pkgs.geos ];
465 Rglpk = [ pkgs.glpk ];
466 RGtk2 = [ pkgs.gtk2.dev ];
467 rhdf5 = [ pkgs.zlib ];
468 Rhdf5lib = with pkgs; [ zlib.dev ];
469 Rhpc = with pkgs; [ zlib bzip2.dev icu xz.dev mpi pcre.dev ];
470 Rhtslib = with pkgs; [ zlib.dev automake autoconf bzip2.dev xz.dev curl.dev ];
471 rjags = [ pkgs.jags ];
472 rJava = with pkgs; [ zlib bzip2.dev icu xz.dev pcre.dev jdk libzip libdeflate ];
473 Rlibeemd = [ pkgs.gsl ];
474 rmatio = [ pkgs.zlib.dev pkgs.pkg-config ];
475 Rmpfr = with pkgs; [ gmp mpfr.dev ];
477 RMySQL = with pkgs; [ zlib libmysqlclient openssl.dev ];
478 RNetCDF = with pkgs; [ netcdf udunits ];
479 RODBC = [ pkgs.libiodbc ];
480 rpanel = [ pkgs.tclPackages.bwidget ];
481 Rpoppler = [ pkgs.poppler ];
482 RPostgres = with pkgs; [ postgresql ];
483 RPostgreSQL = with pkgs; [ postgresql postgresql ];
484 RProtoBuf = [ pkgs.protobuf ];
485 RSclient = [ pkgs.openssl.dev ];
486 Rserve = [ pkgs.openssl ];
487 Rssa = [ pkgs.fftw.dev ];
488 rsvg = [ pkgs.pkg-config ];
489 runjags = [ pkgs.jags ];
490 xslt = [ pkgs.pkg-config ];
491 RVowpalWabbit = with pkgs; [ zlib.dev boost ];
492 rzmq = with pkgs; [ zeromq pkg-config ];
493 httpuv = [ pkgs.zlib.dev ];
494 clustermq = [ pkgs.zeromq ];
495 SAVE = with pkgs; [ zlib bzip2 icu xz pcre ];
496 salso = [ pkgs.cargo ];
497 ymd = [ pkgs.cargo ];
498 arcpbf = [ pkgs.cargo ];
499 sdcTable = with pkgs; [ gmp glpk ];
500 seewave = with pkgs; [ fftw.dev libsndfile.dev ];
501 seqinr = [ pkgs.zlib.dev ];
502 smcryptoR = with pkgs; [ cargo rustc which ];
503 webp = [ pkgs.pkg-config ];
504 seqminer = with pkgs; [ zlib.dev bzip2 ];
505 sf = with pkgs; [ gdal proj geos libtiff curl ];
506 strawr = with pkgs; [ curl.dev ];
507 string2path = [ pkgs.cargo ];
508 terra = with pkgs; [ gdal proj geos ];
509 tok = [ pkgs.cargo ];
510 rshift = [ pkgs.cargo ];
511 arcgisutils = with pkgs; [ cargo rustc ];
512 arcgisgeocode = with pkgs; [ cargo rustc ];
513 arcgisplaces = with pkgs; [ pkg-config openssl.dev cargo rustc ];
514 apcf = with pkgs; [ geos ];
515 SemiCompRisks = [ pkgs.gsl ];
516 showtext = with pkgs; [ zlib libpng icu freetype.dev ];
517 simplexreg = [ pkgs.gsl ];
518 spate = [ pkgs.fftw.dev ];
519 ssanv = [ pkgs.proj ];
521 stringi = [ pkgs.icu.dev ];
522 survSNP = [ pkgs.gsl ];
523 svglite = [ pkgs.libpng.dev ];
524 sysfonts = with pkgs; [ zlib libpng freetype.dev ];
525 systemfonts = with pkgs; [ fontconfig.dev freetype.dev ];
526 TAQMNGR = [ pkgs.zlib.dev ];
528 tesseract = with pkgs; [ tesseract leptonica ];
529 tiff = [ pkgs.libtiff.dev ];
530 tkrplot = with pkgs; [ xorg.libX11 tk.dev ];
531 topicmodels = [ pkgs.gsl ];
532 udunits2 = with pkgs; [ udunits expat ];
533 units = [ pkgs.udunits ];
534 unigd = [ pkgs.pkg-config ];
535 vdiffr = [ pkgs.libpng.dev ];
536 V8 = [ pkgs.nodejs.libv8 ];
537 XBRL = with pkgs; [ zlib libxml2.dev ];
538 XLConnect = [ pkgs.jdk ];
539 xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.perl ];
540 XML = with pkgs; [ libtool libxml2.dev xmlsec libxslt ];
541 affyPLM = [ pkgs.zlib.dev ];
542 BitSeq = [ pkgs.zlib.dev ];
543 DiffBind = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
544 ShortRead = [ pkgs.zlib.dev ];
545 oligo = [ pkgs.zlib.dev ];
546 gmapR = [ pkgs.zlib.dev ];
547 Rsubread = [ pkgs.zlib.dev ];
548 XVector = [ pkgs.zlib.dev ];
549 Rsamtools = with pkgs; [ zlib.dev curl.dev bzip2 xz ];
550 rtracklayer = with pkgs; [ zlib.dev curl.dev ];
551 affyio = [ pkgs.zlib.dev ];
552 snpStats = [ pkgs.zlib.dev ];
553 vcfppR = [ pkgs.curl.dev pkgs.bzip2 pkgs.zlib.dev pkgs.xz];
554 httpgd = with pkgs; [ cairo.dev ];
555 SymTS = [ pkgs.gsl ];
556 VBLPCM = [ pkgs.gsl ];
558 mixlink = [ pkgs.gsl ];
559 ridge = [ pkgs.gsl ];
561 rnetcarto = [ pkgs.gsl ];
562 rGEDI = [ pkgs.gsl ];
563 mmpca = [ pkgs.gsl ];
564 monoreg = [ pkgs.gsl ];
566 mixture = [ pkgs.gsl ];
568 immunoClust = [ pkgs.gsl ];
570 flowPeaks = [ pkgs.gsl ];
573 diseq = [ pkgs.gsl ];
576 SimInf = [ pkgs.gsl ];
577 RJMCMCNucleosomes = [ pkgs.gsl ];
578 RDieHarder = [ pkgs.gsl ];
581 RationalMatrix = [ pkgs.pkg-config pkgs.gmp.dev];
582 RcppCWB = [ pkgs.pkg-config pkgs.pcre2 ];
583 redux = [ pkgs.pkg-config ];
584 rswipl = with pkgs; [ cmake pkg-config ];
585 scorematchingad = [ pkgs.cmake ];
586 rrd = [ pkgs.pkg-config ];
587 surveyvoi = [ pkgs.pkg-config ];
588 Rbwa = [ pkgs.zlib.dev ];
589 trackViewer = [ pkgs.zlib.dev ];
590 themetagenomics = [ pkgs.zlib.dev ];
591 Rsymphony = [ pkgs.pkg-config ];
592 NanoMethViz = [ pkgs.zlib.dev ];
593 RcppMeCab = [ pkgs.pkg-config ];
594 HilbertVisGUI = with pkgs; [ pkg-config which ];
595 textshaping = [ pkgs.pkg-config ];
596 ragg = [ pkgs.pkg-config ];
597 qqconf = [ pkgs.pkg-config ];
598 qspray = [ pkgs.pkg-config ];
599 ratioOfQsprays = [ pkgs.pkg-config ];
600 symbolicQspray = [ pkgs.pkg-config ];
601 sphereTessellation = [ pkgs.pkg-config ];
602 vapour = [ pkgs.pkg-config ];
605 packagesWithBuildInputs = {
607 asciicast = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev libdeflate ];
608 island = [ pkgs.gsl.dev ];
609 svKomodo = [ pkgs.which ];
610 ulid = [ pkgs.zlib.dev ];
611 unrtf = with pkgs; [ xz.dev bzip2.dev zlib.dev icu.dev libdeflate ];
612 nat = [ pkgs.which ];
613 nat_templatebrains = [ pkgs.which ];
614 pbdZMQ = [ pkgs.zeromq ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.darwin.binutils ];
615 bigmemory = lib.optionals stdenv.hostPlatform.isLinux [ pkgs.libuuid.dev ];
616 bayesWatch = [ pkgs.boost.dev ];
617 clustermq = [ pkgs.pkg-config ];
618 coga = [ pkgs.gsl.dev ];
619 mBvs = [ pkgs.gsl.dev ];
620 rcontroll = [ pkgs.gsl.dev ];
621 deepSNV = with pkgs; [ xz.dev bzip2.dev zlib.dev ];
622 epialleleR = with pkgs; [ xz.dev bzip2.dev zlib.dev ];
623 gdalraster = with pkgs; [ gdal proj.dev sqlite.dev ];
624 mitoClone2 = with pkgs; [ xz.dev bzip2.dev zlib.dev ];
625 gpg = [ pkgs.gpgme ];
626 webp = [ pkgs.libwebp ];
627 RMark = [ pkgs.which ];
628 RPushbullet = [ pkgs.which ];
629 stpphawkes = [ pkgs.gsl ];
630 registr = with pkgs; [ icu.dev zlib.dev bzip2.dev xz.dev libdeflate ];
631 RCurl = [ pkgs.curl.dev ];
632 R2SWF = [ pkgs.pkg-config ];
633 rDEA = [ pkgs.glpk ];
634 rgl = with pkgs; [ libGLU libGL xorg.libX11.dev freetype.dev libpng.dev ];
635 RGtk2 = [ pkgs.pkg-config ];
636 RProtoBuf = [ pkgs.pkg-config ];
637 Rpoppler = [ pkgs.pkg-config ];
638 XML = [ pkgs.pkg-config ];
639 apsimx = [ pkgs.which ];
640 cairoDevice = [ pkgs.pkg-config ];
641 chebpol = [ pkgs.pkg-config ];
642 eds = [ pkgs.zlib.dev ];
643 pgenlibr = [ pkgs.zlib.dev ];
644 fftw = [ pkgs.pkg-config ];
645 gdtools = [ pkgs.pkg-config ];
646 archive = [ pkgs.libarchive];
647 gdalcubes = with pkgs; [ proj.dev gdal sqlite.dev netcdf ];
648 rsbml = [ pkgs.libsbml ];
649 SuperGauss = [ pkgs.pkg-config pkgs.fftw.dev];
650 ravetools = with pkgs; [ pkg-config fftw.dev];
651 specklestar = [ pkgs.fftw.dev ];
652 cartogramR = [ pkgs.fftw.dev ];
653 jqr = [ pkgs.jq.out ];
654 kza = [ pkgs.pkg-config ];
655 igraph = with pkgs; [ gmp libxml2.dev glpk ];
656 interpolation = [ pkgs.gmp ];
657 image_textlinedetector = with pkgs; [ pkg-config opencv ];
658 lwgeom = with pkgs; [ pkg-config proj.dev sqlite.dev ];
659 magick = [ pkgs.pkg-config ];
660 mwaved = [ pkgs.pkg-config ];
661 odbc = [ pkgs.pkg-config ];
662 openssl = [ pkgs.pkg-config ];
663 pdftools = [ pkgs.pkg-config ];
664 qckitfastq = [ pkgs.zlib.dev ];
665 raer = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
666 RQuantLib = with pkgs; [ quantlib.dev boost.dev ];
667 sf = with pkgs; [ pkg-config sqlite.dev proj.dev ];
668 terra = with pkgs; [ pkg-config sqlite.dev proj.dev ];
669 showtext = [ pkgs.pkg-config ];
670 spate = [ pkgs.pkg-config ];
671 stringi = [ pkgs.pkg-config ];
672 sysfonts = [ pkgs.pkg-config ];
673 systemfonts = [ pkgs.pkg-config ];
674 tesseract = [ pkgs.pkg-config ];
675 Cairo = [ pkgs.pkg-config ];
676 CLVTools = [ pkgs.gsl ];
677 excursions = [ pkgs.gsl ];
678 OpenCL = with pkgs; [ opencl-clhpp ocl-icd ];
679 gpuMagic = [ pkgs.ocl-icd ];
680 JMcmprsk = [ pkgs.gsl ];
681 KSgeneral = [ pkgs.fftw.dev ];
682 mashr = [ pkgs.gsl ];
683 hadron = [ pkgs.gsl ];
684 AMOUNTAIN = [ pkgs.gsl ];
685 Rsymphony = with pkgs; [ symphony doxygen graphviz subversion cgl clp];
686 tcltk2 = with pkgs; [ tcl tk ];
687 rswipl = with pkgs; [ ncurses.dev libxcrypt zlib.dev ];
688 GrafGen = [ pkgs.zlib ];
689 tikzDevice = with pkgs; [ which texliveMedium ];
690 gridGraphics = [ pkgs.which ];
691 adimpro = with pkgs; [ which xorg.xdpyinfo ];
692 tfevents = [ pkgs.protobuf ];
693 rsvg = [ pkgs.librsvg.dev ];
694 ssh = with pkgs; [ libssh ];
695 s2 = [ pkgs.openssl.dev ];
696 ArrayExpressHTS = with pkgs; [ zlib.dev curl.dev which ];
697 bbl = with pkgs; [ gsl ];
698 diffHic = with pkgs; [ xz.dev bzip2.dev ];
699 writexl = with pkgs; [ zlib.dev ];
700 xslt = with pkgs; [ libxslt libxml2 ];
701 qpdf = with pkgs; [ libjpeg.dev zlib.dev ];
702 vcfR = with pkgs; [ zlib.dev ];
703 bio3d = with pkgs; [ zlib.dev ];
704 arrangements = with pkgs; [ gmp.dev ];
705 gfilogisreg = [ pkgs.gmp.dev ];
706 spp = with pkgs; [ zlib.dev ];
707 bamsignals = with pkgs; [ zlib.dev xz.dev bzip2 ];
708 Rbowtie = with pkgs; [ zlib.dev ];
709 gaston = with pkgs; [ zlib.dev ];
710 csaw = with pkgs; [ zlib.dev xz.dev bzip2.dev curl ];
711 DirichletMultinomial = with pkgs; [ gsl ];
712 DiffBind = with pkgs; [ zlib.dev ];
713 CNEr = with pkgs; [ zlib ];
714 GMMAT = with pkgs; [ zlib.dev bzip2.dev ];
715 rmumps = with pkgs; [ zlib.dev ];
716 HiCDCPlus = [ pkgs.zlib.dev ];
717 PopGenome = [ pkgs.zlib.dev ];
718 QuasR = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
719 Rarr = [ pkgs.zlib.dev ];
720 Rbowtie2 = [ pkgs.zlib.dev ];
721 Rfastp = with pkgs; [ xz.dev bzip2.dev zlib.dev ];
722 maftools = with pkgs; [ zlib.dev bzip2 xz.dev ];
723 Rmmquant = [ pkgs.zlib.dev ];
724 SICtools = with pkgs; [ zlib.dev ncurses.dev ];
725 Signac = [ pkgs.zlib.dev ];
726 TransView = with pkgs; [ xz.dev bzip2.dev zlib.dev ];
727 bigsnpr = [ pkgs.zlib.dev ];
728 zlib = [ pkgs.zlib.dev ];
729 divest = [ pkgs.zlib.dev ];
730 hipread = [ pkgs.zlib.dev ];
731 jack = with pkgs; [ gmp.dev mpfr.dev ];
732 jackalope = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
733 largeList = [ pkgs.zlib.dev ];
734 mappoly = [ pkgs.zlib.dev ];
735 VariantAnnotation = with pkgs; [ zlib.dev curl.dev bzip2.dev xz.dev ];
736 matchingMarkets = [ pkgs.zlib.dev ];
737 methylKit = with pkgs; [ zlib.dev bzip2.dev xz.dev ];
738 ndjson = [ pkgs.zlib.dev ];
739 podkat = with pkgs; [ zlib.dev xz.dev bzip2.dev ];
740 qrqc = [ pkgs.zlib.dev ];
741 rJPSGCS = [ pkgs.zlib.dev ];
742 rhdf5filters = with pkgs; [ zlib.dev bzip2.dev ];
743 symengine = with pkgs; [ mpfr symengine flint ];
744 rtk = [ pkgs.zlib.dev ];
745 scPipe = with pkgs; [ bzip2.dev xz.dev zlib.dev ];
746 seqTools = [ pkgs.zlib.dev ];
747 seqbias = with pkgs; [ zlib.dev bzip2.dev xz.dev ];
748 sparkwarc = [ pkgs.zlib.dev ];
749 RoBMA = [ pkgs.jags ];
750 RoBSA = [ pkgs.jags ];
751 pexm = [ pkgs.jags ];
752 rGEDI = with pkgs; [ libgeotiff.dev libaec zlib.dev hdf5.dev ];
753 rawrr = [ pkgs.mono ];
754 HDF5Array = [ pkgs.zlib.dev ];
755 FLAMES = with pkgs; [ zlib.dev bzip2.dev xz.dev ];
756 ncdfFlow = [ pkgs.zlib.dev ];
757 proj4 = [ pkgs.proj.dev ];
758 rtmpt = [ pkgs.gsl ];
759 mixcat = [ pkgs.gsl ];
760 libstableR = [ pkgs.gsl ];
761 landsepi = [ pkgs.gsl ];
763 econetwork = [ pkgs.gsl ];
764 crandep = [ pkgs.gsl ];
765 catSurv = [ pkgs.gsl ];
766 ccfindR = [ pkgs.gsl ];
767 screenCounter = [ pkgs.zlib.dev ];
768 SPARSEMODr = [ pkgs.gsl ];
769 RKHSMetaMod = [ pkgs.gsl ];
770 LCMCR = [ pkgs.gsl ];
772 scModels = [ pkgs.mpfr.dev ];
773 multibridge = with pkgs; [ pkg-config mpfr.dev ];
774 RcppCWB = with pkgs; [ pcre.dev glib.dev ];
775 redux = [ pkgs.hiredis ];
776 RmecabKo = [ pkgs.mecab ];
777 markets = [ pkgs.gsl ];
778 rlas = [ pkgs.boost ];
779 bgx = [ pkgs.boost ];
780 PoissonBinomial = [ pkgs.fftw.dev ];
781 poisbinom = [ pkgs.fftw.dev ];
782 PoissonMultinomial = [ pkgs.fftw.dev ];
783 psbcGroup = [ pkgs.gsl.dev ];
784 rrd = [ pkgs.rrdtool ];
785 flowWorkspace = [ pkgs.zlib.dev ];
786 RITCH = [ pkgs.zlib.dev ];
787 RcppMeCab = [ pkgs.mecab ];
789 PROJ = [ pkgs.proj.dev ];
790 RcppAlgos = [ pkgs.gmp.dev ];
791 RcppBigIntAlgos = [ pkgs.gmp.dev ];
792 spaMM = [ pkgs.gsl ];
793 shrinkTVP = [ pkgs.gsl ];
794 sbrl = with pkgs; [ gsl gmp.dev ];
795 surveyvoi = with pkgs; [ gmp.dev mpfr.dev ];
796 unigd = with pkgs; [ cairo.dev libpng.dev ];
797 HilbertVisGUI = [ pkgs.gtkmm2.dev ];
798 textshaping = with pkgs; [ harfbuzz.dev freetype.dev fribidi libpng ];
799 DropletUtils = [ pkgs.zlib.dev ];
800 RMariaDB = [ pkgs.libmysqlclient.dev ];
801 ijtiff = [ pkgs.libtiff ];
802 ragg = with pkgs; [ freetype.dev libpng.dev libtiff.dev zlib.dev libjpeg.dev bzip2.dev ] ++ lib.optional stdenv.hostPlatform.isDarwin lerc.dev;
803 qqconf = [ pkgs.fftw.dev ];
804 spFW = [ pkgs.fftw.dev ];
805 qspray = with pkgs; [ gmp.dev mpfr.dev ];
806 ratioOfQsprays = with pkgs; [ gmp.dev mpfr.dev ];
807 symbolicQspray = with pkgs; [ gmp.dev mpfr.dev ];
808 sphereTessellation = with pkgs; [ gmp.dev mpfr.dev ];
809 vapour = with pkgs; [ proj.dev gdal ];
810 MedianaDesigner = [ pkgs.zlib.dev ];
811 ChemmineOB = with pkgs; [ eigen openbabel ];
812 DGP4LCF = [ pkgs.lapack pkgs.blas ];
815 packagesRequiringX = [
824 "CommunityCorrelogram"
826 "DeducerPlugInExample"
827 "DeducerPlugInScaling"
856 "OligoSpecificitySystem"
864 "RcmdrPlugin_FuzzyClust"
867 "RcmdrPlugin_PcaRobust"
868 "RcmdrPlugin_plotByGroup"
870 "RcmdrPlugin_sampling"
873 "RcmdrPlugin_steepness"
885 "TTAinterfaceTrendAnalysis"
891 packagesRequiringHome = [
936 "TotalCopheneticIndex"
958 packagesToSkipCheck = [
959 "MsDataHub" # tries to connect to ExperimentHub
960 "Rmpi" # tries to run MPI processes
961 "ReactomeContentService4R" # tries to connect to Reactome
962 "PhIPData" # tries to download something from a DB
963 "RBioFormats" # tries to download jar during load test
964 "pbdMPI" # tries to run MPI processes
965 "CTdata" # tries to connect to ExperimentHub
966 "rfaRm" # tries to connect to Ebi
967 "data_table" # fails to rename shared library before check
968 "coMethDMR" # tries to connect to ExperimentHub
969 "multiMiR" # tries to connect to DB
970 "snapcount" # tries to connect to snaptron.cs.jhu.edu
973 # Packages which cannot be installed due to lack of dependencies or other reasons.
982 # Impure network access during build
988 # ExperimentHub dependents, require net access during build
991 "GenomicDistributionsData"
998 "SingleMoleculeFootprintingData"
1000 "benchmarkfdrData2019"
1006 "metaboliteIDmapping"
1015 otherOverrides = old: new: {
1016 # it can happen that the major version of arrow-cpp is ahead of the
1017 # rPackages.arrow that would be built from CRAN sources; therefore, to avoid
1018 # build failures and manual updates of the hash, we use the R source at
1019 # the GitHub release state of libarrow (arrow-cpp) in Nixpkgs. This may
1020 # not exactly represent the CRAN sources, but because patching of the
1021 # CRAN R package is mostly done to meet special CRAN build requirements,
1022 # this is a straightforward approach. Example where patching was necessary
1023 # -> arrow 14.0.0.2 on CRAN; was lagging behind libarrow release:
1024 # https://github.com/apache/arrow/issues/39698 )
1026 vegan3d = old.vegan3d.overrideAttrs (attrs: {
1027 RGL_USE_NULL = "true";
1030 arrow = old.arrow.overrideAttrs (attrs: {
1031 src = pkgs.arrow-cpp.src;
1032 name = "r-arrow-${pkgs.arrow-cpp.version}";
1035 patchShebangs configure
1037 buildInputs = attrs.buildInputs ++ [
1042 gifski = old.gifski.overrideAttrs (attrs: {
1043 cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
1045 sourceRoot = "gifski/src/myrustlib";
1046 hash = "sha256-e6nuiQU22GiO2I+bu0muyICGrdkCLSZUDHDz2mM2hz0=";
1049 cargoRoot = "src/myrustlib";
1051 nativeBuildInputs = attrs.nativeBuildInputs ++ [
1052 pkgs.rustPlatform.cargoSetupHook
1058 timeless = old.timeless.overrideAttrs (attrs: {
1059 preConfigure = "patchShebangs configure";
1060 cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
1062 sourceRoot = "timeless/src/rust";
1063 hash = "sha256-AccuRY3lfTXzaMnaYieKCEJErKo5132oSXgILbFhePI=";
1066 cargoRoot = "src/rust";
1068 nativeBuildInputs = attrs.nativeBuildInputs ++ [
1069 pkgs.rustPlatform.cargoSetupHook
1074 stringi = old.stringi.overrideAttrs (attrs: {
1076 icuName = "icudt52l";
1077 icuSrc = pkgs.fetchzip {
1078 url = "http://static.rexamine.com/packages/${icuName}.zip";
1079 sha256 = "0hvazpizziq5ibc9017i1bb45yryfl26wzfsv05vk9mc1575r6xj";
1083 ${attrs.postInstall or ""}
1084 cp ${icuSrc}/${icuName}.dat $out/library/stringi/libs
1088 xml2 = old.xml2.overrideAttrs (attrs: {
1090 export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
1091 patchShebangs configure
1095 alcyon = old.alcyon.overrideAttrs (attrs: {
1097 "--enable-force-openmp"
1101 lwgeom = old.lwgeom.overrideAttrs (attrs: {
1103 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
1107 sf = old.sf.overrideAttrs (attrs: {
1109 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
1113 terra = old.terra.overrideAttrs (attrs: {
1115 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
1119 vapour = old.vapour.overrideAttrs (attrs: {
1121 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
1125 rzmq = old.rzmq.overrideAttrs (attrs: {
1126 preConfigure = "patchShebangs configure";
1129 clustermq = old.clustermq.overrideAttrs (attrs: {
1130 preConfigure = "patchShebangs configure";
1133 Cairo = old.Cairo.overrideAttrs (attrs: {
1134 NIX_LDFLAGS = "-lfontconfig";
1137 curl = old.curl.overrideAttrs (attrs: {
1138 preConfigure = "patchShebangs configure";
1141 Cyclops = old.Cyclops.overrideAttrs (attrs: {
1142 preConfigure = "patchShebangs configure";
1145 RcppParallel = old.RcppParallel.overrideAttrs (attrs: {
1146 preConfigure = "patchShebangs configure";
1149 Colossus = old.Colossus.overrideAttrs (_: {
1150 postPatch = "patchShebangs configure";
1153 gmailr = old.gmailr.overrideAttrs (attrs: {
1154 postPatch = "patchShebangs configure";
1157 heck = old.heck.overrideAttrs (attrs: {
1158 postPatch = "patchShebangs configure";
1161 surtvep = old.surtvep.overrideAttrs (attrs: {
1162 postPatch = "patchShebangs configure";
1165 purrr = old.purrr.overrideAttrs (attrs: {
1166 patchPhase = "patchShebangs configure";
1169 luajr = old.luajr.overrideAttrs (attrs: {
1170 hardeningDisable = [ "format" ];
1171 postPatch = "patchShebangs configure";
1174 RcppArmadillo = old.RcppArmadillo.overrideAttrs (attrs: {
1175 patchPhase = "patchShebangs configure";
1178 RcppGetconf = old.RcppGetconf.overrideAttrs (attrs: {
1179 postPatch = "patchShebangs configure";
1182 SpliceWiz = old.SpliceWiz.overrideAttrs (attrs: {
1183 postPatch = "patchShebangs configure";
1186 zoomerjoin = old.zoomerjoin.overrideAttrs (attrs: {
1187 nativeBuildInputs = [ pkgs.cargo ] ++ attrs.nativeBuildInputs;
1188 postPatch = "patchShebangs configure";
1191 b64 = old.b64.overrideAttrs (attrs: {
1192 nativeBuildInputs = [ pkgs.cargo ] ++ attrs.nativeBuildInputs;
1193 postPatch = "patchShebangs configure";
1196 ocf = old.ocf.overrideAttrs (attrs: {
1197 postPatch = "patchShebangs configure";
1200 data_table = old.data_table.overrideAttrs (attrs: {
1201 env = (attrs.env or { }) // {
1202 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fopenmp";
1204 patchPhase = "patchShebangs configure";
1207 cisPath = old.cisPath.overrideAttrs (attrs: {
1208 hardeningDisable = [ "format" ];
1211 HilbertVis = old.HilbertVis.overrideAttrs (attrs: {
1212 hardeningDisable = [ "format" ];
1215 HilbertVisGUI = old.HilbertVisGUI.overrideAttrs (attrs: {
1216 hardeningDisable = [ "format" ];
1219 MANOR = old.MANOR.overrideAttrs (attrs: {
1220 hardeningDisable = [ "format" ];
1223 rGADEM = old.rGADEM.overrideAttrs (attrs: {
1224 hardeningDisable = [ "format" ];
1227 rsgeo = old.rsgeo.overrideAttrs (attrs: {
1228 nativeBuildInputs = [ pkgs.cargo ] ++ attrs.nativeBuildInputs;
1229 postPatch = "patchShebangs configure";
1232 instantiate = old.instantiate.overrideAttrs (attrs: {
1233 postPatch = "patchShebangs configure";
1236 exifr = old.exifr.overrideAttrs (attrs: {
1238 for f in .onLoad .onAttach ; do
1239 substituteInPlace R/load_hook.R \
1241 "$f <- function(libname, pkgname) {" \
1242 "$f <- function(libname, pkgname) {
1244 exifr.perlpath = \"${lib.getBin pkgs.perl}/bin/perl\",
1245 exifr.exiftoolcommand = \"${lib.getBin pkgs.exiftool}/bin/exiftool\"
1251 NGCHM = old.NGCHM.overrideAttrs (attrs: {
1253 substituteInPlace "inst/base.config/conf.d/01-server-protocol-scl.R" \
1255 "/bin/hostname" "${lib.getBin pkgs.hostname}/bin/hostname"
1259 ModelMetrics = old.ModelMetrics.overrideAttrs (attrs: {
1260 env = (attrs.env or { }) // {
1261 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + lib.optionalString stdenv.hostPlatform.isDarwin " -fopenmp";
1265 rawrr = old.rawrr.overrideAttrs (attrs: {
1267 substituteInPlace "R/zzz.R" "R/dotNetAssembly.R" --replace-warn \
1268 "Sys.which('mono')" "'${lib.getBin pkgs.mono}/bin/mono'"
1270 substituteInPlace "R/dotNetAssembly.R" --replace-warn \
1271 "Sys.which(\"xbuild\")" "\"${lib.getBin pkgs.mono}/bin/xbuild\""
1273 substituteInPlace "R/dotNetAssembly.R" --replace-warn \
1274 "cmd <- ifelse(Sys.which(\"msbuild\") != \"\", \"msbuild\", \"xbuild\")" \
1275 "cmd <- \"${lib.getBin pkgs.mono}/bin/xbuild\""
1277 substituteInPlace "R/rawrr.R" --replace-warn \
1278 "Sys.which(\"mono\")" "\"${lib.getBin pkgs.mono}/bin/mono\""
1282 rpf = old.rpf.overrideAttrs (attrs: {
1283 patchPhase = "patchShebangs configure";
1286 rJava = old.rJava.overrideAttrs (attrs: {
1288 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
1289 export JAVA_HOME=${pkgs.jdk}
1290 substituteInPlace R/zzz.R.in \
1291 --replace-fail ".onLoad <- function(libname, pkgname) {" \
1292 ".onLoad <- function(libname, pkgname) {
1293 Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.jdk}\"))"
1297 JavaGD = old.JavaGD.overrideAttrs (attrs: {
1299 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
1300 export JAVA_HOME=${pkgs.jdk}
1304 jqr = old.jqr.overrideAttrs (attrs: {
1306 patchShebangs configure
1310 pathfindR = old.pathfindR.overrideAttrs (attrs: {
1312 substituteInPlace "R/zzz.R" \
1313 --replace-fail " check_java_version()" " Sys.setenv(JAVA_HOME = \"${lib.getBin pkgs.jre_minimal}\"); check_java_version()"
1314 substituteInPlace "R/active_snw_search.R" \
1315 --replace-fail "system(paste0(\"java" "system(paste0(\"${lib.getBin pkgs.jre_minimal}/bin/java"
1319 pbdZMQ = old.pbdZMQ.overrideAttrs (attrs: {
1320 postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
1321 for file in R/*.{r,r.in}; do
1322 sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.cctools}/bin/\1"#g' $file
1327 quarto = old.quarto.overrideAttrs (attrs: {
1328 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ pkgs.quarto ];
1330 substituteInPlace "R/quarto.R" \
1331 --replace-fail "Sys.getenv(\"QUARTO_PATH\", unset = NA_character_)" "Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
1335 Rhisat2 = old.Rhisat2.overrideAttrs (attrs: {
1336 enableParallelBuilding = false;
1339 s2 = old.s2.overrideAttrs (attrs: {
1340 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
1341 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
1344 Rmpi = old.Rmpi.overrideAttrs (attrs: {
1346 "--with-Rmpi-type=OPENMPI"
1350 Rmpfr = old.Rmpfr.overrideAttrs (attrs: {
1352 "--with-mpfr-include=${pkgs.mpfr.dev}/include"
1356 covidsymptom = old.covidsymptom.overrideAttrs (attrs: {
1357 preConfigure = "rm R/covidsymptomdata.R";
1360 cubature = old.cubature.overrideAttrs (attrs: {
1361 enableParallelBuilding = false;
1364 RVowpalWabbit = old.RVowpalWabbit.overrideAttrs (attrs: {
1366 "--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
1370 RAppArmor = old.RAppArmor.overrideAttrs (attrs: {
1371 patches = [ ./patches/RAppArmor.patch ];
1372 LIBAPPARMOR_HOME = pkgs.libapparmor;
1375 RMySQL = old.RMySQL.overrideAttrs (attrs: {
1376 MYSQL_DIR = "${pkgs.libmysqlclient}";
1377 PKGCONFIG_CFLAGS = "-I${pkgs.libmysqlclient.dev}/include/mysql";
1378 NIX_CFLAGS_LINK = "-L${pkgs.libmysqlclient}/lib/mysql -lmysqlclient";
1380 patchShebangs configure
1384 devEMF = old.devEMF.overrideAttrs (attrs: {
1385 NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
1386 NIX_LDFLAGS = "-lX11";
1389 hdf5r = old.hdf5r.overrideAttrs (attrs: {
1390 buildInputs = attrs.buildInputs ++ [ new.Rhdf5lib.hdf5 ];
1393 slfm = old.slfm.overrideAttrs (attrs: {
1394 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
1397 SamplerCompare = old.SamplerCompare.overrideAttrs (attrs: {
1398 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
1401 FLAMES = old.FLAMES.overrideAttrs (attrs: {
1402 patches = [ ./patches/FLAMES.patch ];
1405 openssl = old.openssl.overrideAttrs (attrs: {
1407 patchShebangs configure
1409 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
1410 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
1413 websocket = old.websocket.overrideAttrs (attrs: {
1414 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
1415 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
1418 Rserve = old.Rserve.overrideAttrs (attrs: {
1419 patches = [ ./patches/Rserve.patch ];
1421 "--with-server" "--with-client"
1425 universalmotif = old.universalmotif.overrideAttrs (attrs: {
1426 patches = [ ./patches/universalmotif.patch];
1429 V8 = old.V8.overrideAttrs (attrs: {
1431 substituteInPlace configure \
1432 --replace-fail " -lv8_libplatform" ""
1433 # Bypass the test checking if pointer compression is needed
1434 substituteInPlace configure \
1435 --replace-fail "./pctest1" "true"
1439 export INCLUDE_DIR=${pkgs.nodejs.libv8}/include
1440 export LIB_DIR=${pkgs.nodejs.libv8}/lib
1441 patchShebangs configure
1444 R_MAKEVARS_SITE = lib.optionalString (pkgs.stdenv.system == "aarch64-linux")
1445 (pkgs.writeText "Makevars" ''
1446 CXX14PICFLAGS = -fPIC
1450 acs = old.acs.overrideAttrs (attrs: {
1452 patchShebangs configure
1456 gdtools = old.gdtools.overrideAttrs (attrs: {
1458 patchShebangs configure
1460 NIX_LDFLAGS = "-lfontconfig -lfreetype";
1463 magick = old.magick.overrideAttrs (attrs: {
1465 patchShebangs configure
1469 libgeos = old.libgeos.overrideAttrs (attrs: {
1471 patchShebangs configure
1475 protolite = old.protolite.overrideAttrs (attrs: {
1477 patchShebangs configure
1481 rgoslin = old.rgoslin.overrideAttrs (attrs: {
1482 enableParallelBuilding = false;
1485 rpanel = old.rpanel.overrideAttrs (attrs: {
1487 export TCLLIBPATH="${pkgs.tclPackages.bwidget}/lib/bwidget${pkgs.tclPackages.bwidget.version}"
1489 TCLLIBPATH = "${pkgs.tclPackages.bwidget}/lib/bwidget${pkgs.tclPackages.bwidget.version}";
1492 networkscaleup = old.networkscaleup.overrideAttrs (attrs: {
1493 env = (attrs.env or { }) // {
1494 # needed to avoid "log limit exceeded" on Hydra
1495 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
1498 # consumes a lot of resources in parallel
1499 enableParallelBuilding = false;
1502 RPostgres = old.RPostgres.overrideAttrs (attrs: {
1504 export INCLUDE_DIR=${pkgs.postgresql}/include
1505 export LIB_DIR=${pkgs.postgresql.lib}/lib
1506 patchShebangs configure
1510 OpenMx = old.OpenMx.overrideAttrs (attrs: {
1511 env = (attrs.env or { }) // {
1512 # needed to avoid "log limit exceeded" on Hydra
1513 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
1516 patchShebangs configure
1520 odbc = old.odbc.overrideAttrs (attrs: {
1522 patchShebangs configure
1526 x13binary = old.x13binary.overrideAttrs (attrs: {
1528 patchShebangs configure
1532 FlexReg = old.FlexReg.overrideAttrs (attrs: {
1533 env = (attrs.env or { }) // {
1534 # needed to avoid "log limit exceeded" on Hydra
1535 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
1538 # consumes a lot of resources in parallel
1539 enableParallelBuilding = false;
1542 geojsonio = old.geojsonio.overrideAttrs (attrs: {
1543 buildInputs = [ cacert ] ++ attrs.buildInputs;
1548 MHC41alleleList = fetchurl {
1549 url = "https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list";
1550 hash = "sha256-CRZ+0uHzcq5zK5eONucAChXIXO8tnq5sSEAS80Z7jhg=";
1553 MHCII40alleleList = fetchurl {
1554 url = "https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list";
1555 hash = "sha256-K4Ic2NUs3P4IkvOODwZ0c4Yh8caex5Ih0uO5jXRHp40=";
1558 # List of valid countries, regions and ethnic groups
1559 # The original page is changing a bit every day, but the relevant
1560 # content does not. Use archive.org to get a stable snapshot.
1561 # It can be updated from time to time, or when the package becomes
1562 # deficient. This may be difficult to know.
1563 # Update the snapshot date, and add id_ after it, as described here:
1564 # https://web.archive.org/web/20130806040521/http://faq.web.archive.org/page-without-wayback-code/
1565 validGeographics = fetchurl {
1566 url = "https://web.archive.org/web/20240418194005id_/http://www.allelefrequencies.net/hla6006a.asp";
1567 hash = "sha256-m7Wkmh/cPxeqn94LwoznIh+fcFXskmSGErUYj6kTqak=";
1569 in old.immunotation.overrideAttrs (attrs: {
1570 patches = [ ./patches/immunotation.patch ];
1572 substituteInPlace "R/external_resources_input.R" --replace-fail \
1573 "nix-NetMHCpan-4.1-allele-list" ${MHC41alleleList}
1575 substituteInPlace "R/external_resources_input.R" --replace-fail \
1576 "nix-NETMHCIIpan-4.0-alleles-name-list" ${MHCII40alleleList}
1578 substituteInPlace "R/AFND_interface.R" --replace-fail \
1579 "nix-valid-geographics" ${validGeographics}
1584 angrist = fetchurl {
1585 url = "https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv";
1586 hash = "sha256-lb+HMHnRGonc26merFGB0B7Vk1Lk+sIJlay+JtQC8m4=";
1588 in old.nearfar.overrideAttrs (attrs: {
1590 substituteInPlace "R/nearfar.R" --replace-fail \
1591 'url("https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv")' '"${angrist}"'
1595 rstan = old.rstan.overrideAttrs (attrs: {
1596 env = (attrs.env or { }) // {
1597 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
1601 mongolite = old.mongolite.overrideAttrs (attrs: {
1603 patchShebangs configure
1605 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
1606 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";
1609 ChemmineOB = old.ChemmineOB.overrideAttrs (attrs: {
1610 # pkg-config knows openbabel-3 without the .0
1611 # Eigen3 is also looked for in the wrong location
1612 # pointer was changed in newer version of openbabel:
1613 # https://github.com/openbabel/openbabel/commit/305a6fd3183540e4a8ae1d79d10bf1860e6aa373
1615 substituteInPlace configure \
1616 --replace-fail openbabel-3.0 openbabel-3
1617 substituteInPlace src/Makevars.in \
1618 --replace-fail "-I/usr/include/eigen3" "-I${pkgs.eigen}/include/eigen3"
1619 substituteInPlace src/ChemmineOB.cpp \
1620 --replace-fail "obsharedptr<" "std::shared_ptr<"
1623 # copied from fastnlo-toolkit:
1624 # None of our currently packaged versions of swig are C++17-friendly
1625 # Use a workaround from https://github.com/swig/swig/issues/1538
1626 env = (attrs.env or { }) // {
1627 NIX_CFLAGS_COMPILE = (attrs.env.NIX_CFLAGS_COMPILE or "") + lib.optionalString stdenv.hostPlatform.isDarwin " -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES";
1631 ps = old.ps.overrideAttrs (attrs: {
1632 preConfigure = "patchShebangs configure";
1635 rlang = old.rlang.overrideAttrs (attrs: {
1636 preConfigure = "patchShebangs configure";
1639 systemfonts = old.systemfonts.overrideAttrs (attrs: {
1640 preConfigure = "patchShebangs configure";
1643 littler = old.littler.overrideAttrs (attrs: with pkgs; {
1644 buildInputs = [ pcre xz zlib bzip2 icu which ] ++ attrs.buildInputs;
1646 install -d $out/bin $out/share/man/man1
1647 ln -s ../library/littler/bin/r $out/bin/r
1648 ln -s ../library/littler/bin/r $out/bin/lr
1649 ln -s ../../../library/littler/man-page/r.1 $out/share/man/man1
1650 # these won't run without special provisions, so better remove them
1651 rm -r $out/library/littler/script-tests
1655 lpsymphony = old.lpsymphony.overrideAttrs (attrs: {
1657 patchShebangs configure
1661 sodium = old.sodium.overrideAttrs (attrs: with pkgs; {
1663 patchShebangs configure
1665 nativeBuildInputs = [ pkg-config ] ++ attrs.nativeBuildInputs;
1666 buildInputs = [ libsodium.dev ] ++ attrs.buildInputs;
1669 keyring = old.keyring.overrideAttrs (attrs: {
1671 patchShebangs configure
1675 Rhtslib = old.Rhtslib.overrideAttrs (attrs: {
1677 substituteInPlace R/zzz.R --replace "-lcurl" "-L${pkgs.curl.out}/lib -lcurl"
1681 h2o = old.h2o.overrideAttrs (attrs: {
1683 # prevent download of jar file during install and postpone to first use
1684 sed -i '/downloadJar()/d' R/zzz.R
1686 # during runtime the package directory is not writable as it's in the
1687 # nix store, so store the jar in the user's cache directory instead
1688 substituteInPlace R/connection.R --replace \
1689 'dest_file <- file.path(dest_folder, "h2o.jar")' \
1690 'dest_file <- file.path("~/.cache/", "h2o.jar")'
1694 SICtools = old.SICtools.overrideAttrs (attrs: {
1696 substituteInPlace src/Makefile --replace-fail "-lcurses" "-lncurses"
1698 hardeningDisable = [ "format" ];
1701 Rbwa = old.Rbwa.overrideAttrs (attrs: {
1702 # Parallel build cleans up *.o before they can be packed in a library
1704 substituteInPlace src/Makefile --replace-fail \
1705 "all:\$(PROG) ../inst/bwa clean" \
1706 "all:\$(PROG) ../inst/bwa" \
1710 ROracle = old.ROracle.overrideAttrs (attrs: {
1712 "--with-oci-lib=${pkgs.oracle-instantclient.lib}/lib"
1713 "--with-oci-inc=${pkgs.oracle-instantclient.dev}/include"
1717 xslt = old.xslt.overrideAttrs (attrs: {
1718 env = (attrs.env or { }) // {
1719 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fpermissive";
1723 sparklyr = old.sparklyr.overrideAttrs (attrs: {
1724 # Pyspark's spark is full featured and better maintained than pkgs.spark
1726 substituteInPlace R/zzz.R \
1727 --replace ".onLoad <- function(...) {" \
1728 ".onLoad <- function(...) {
1729 Sys.setenv(\"SPARK_HOME\" = Sys.getenv(\"SPARK_HOME\", unset = \"${pkgs.python3Packages.pyspark}/${pkgs.python3Packages.python.sitePackages}/pyspark\"))
1730 Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.jdk}\"))"
1734 proj4 = old.proj4.overrideAttrs (attrs: {
1736 substituteInPlace configure \
1737 --replace "-lsqlite3" "-L${lib.makeLibraryPath [ pkgs.sqlite ]} -lsqlite3"
1741 rrd = old.rrd.overrideAttrs (attrs: {
1743 patchShebangs configure
1747 ChIPXpress = old.ChIPXpress.override { hydraPlatforms = []; };
1749 rgl = old.rgl.overrideAttrs (attrs: {
1750 RGL_USE_NULL = "true";
1753 Rrdrand = old.Rrdrand.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1755 symengine = old.symengine.overrideAttrs (_: {
1758 cat > src/Makevars << EOF
1759 PKG_LIBS=-lsymengine
1765 RandomFieldsUtils = old.RandomFieldsUtils.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1767 flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1769 RcppCGAL = old.RcppCGAL.overrideAttrs (_: {
1770 postPatch = "patchShebangs configure";
1773 SharedObject = old.SharedObject.overrideAttrs (attrs: {
1774 # backport PR resolving build issues: https://github.com/Jiefei-Wang/SharedObject/pull/17
1775 patches = let inherit (pkgs) fetchpatch; in [
1777 url = "https://github.com/Jiefei-Wang/SharedObject/pull/17/commits/50c4b2964649d7f5a14d843bd7089ab62650fcd3.patch";
1778 sha256 = "sha256-zn535IeOYRvyQ2yxgoGEq2wccrl9xdu9nREmy7sV+PQ=";
1781 url = "https://github.com/Jiefei-Wang/SharedObject/pull/17/commits/bf096a39858e9210cbe246d4b136905d4cfbfaf4.patch";
1782 sha256 = "sha256-Z+BZOkFnLgIBiVuPsAHp7bMXzADcvuHV4hILdmLvd+k=";
1787 httr2 = old.httr2.overrideAttrs (attrs: {
1788 preConfigure = "patchShebangs configure";
1791 dbarts = old.dbarts.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
1793 geomorph = old.geomorph.overrideAttrs (attrs: {
1794 RGL_USE_NULL = "true";
1797 gpuMagic = old.gpuMagic.overrideAttrs (_: {
1798 hardeningDisable = ["format"];
1801 Rdisop = old.Rdisop.overrideAttrs (_: {
1802 hardeningDisable = ["format"];
1806 opencvGtk = pkgs.opencv.override (old : { enableGtk2 = true; });
1807 in old.opencv.overrideAttrs (attrs: {
1808 buildInputs = attrs.buildInputs ++ [ opencvGtk ];
1812 hdf5 = pkgs.hdf5_1_10.overrideAttrs (attrs: {configureFlags = attrs.configureFlags ++ [ "--enable-cxx" ];});
1813 in old.Rhdf5lib.overrideAttrs (attrs: {
1814 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ hdf5.dev pkgs.libaec ];
1815 patches = [ ./patches/Rhdf5lib.patch ];
1816 passthru.hdf5 = hdf5;
1819 rhdf5filters = old.rhdf5filters.overrideAttrs (attrs: {
1820 patches = [ ./patches/rhdf5filters.patch ];
1823 rhdf5= old.rhdf5.overrideAttrs (attrs: {
1824 patches = [ ./patches/rhdf5.patch ];
1827 rmarkdown = old.rmarkdown.overrideAttrs (_: {
1829 substituteInPlace R/pandoc.R \
1830 --replace '"~/opt/pandoc"' '"~/opt/pandoc", "${pkgs.pandoc}/bin"'
1834 redland = old.redland.overrideAttrs (_: {
1835 PKGCONFIG_CFLAGS="-I${pkgs.redland}/include -I${pkgs.librdf_raptor2}/include/raptor2 -I${pkgs.librdf_rasqal}/include/rasqal";
1836 PKGCONFIG_LIBS="-L${pkgs.redland}/lib -L${pkgs.librdf_raptor2}/lib -L${pkgs.librdf_rasqal}/lib -lrdf -lraptor2 -lrasqal";
1839 textshaping = old.textshaping.overrideAttrs (attrs: {
1840 env.NIX_LDFLAGS = "-lfribidi -lharfbuzz";
1843 httpuv = old.httpuv.overrideAttrs (_: {
1845 patchShebangs configure
1849 oligo = old.oligo.overrideAttrs (_: {
1850 hardeningDisable = ["format"];
1853 tesseract = old.tesseract.overrideAttrs (_: {
1855 substituteInPlace configure \
1856 --replace 'PKG_CONFIG_NAME="tesseract"' 'PKG_CONFIG_NAME="tesseract lept"'
1860 ijtiff = old.ijtiff.overrideAttrs (_: {
1862 patchShebangs configure
1866 torch = old.torch.overrideAttrs (attrs: {
1868 patchShebangs configure
1872 pak = old.pak.overrideAttrs (attrs: {
1874 patchShebangs configure
1875 patchShebangs src/library/curl/configure
1876 patchShebangs src/library/pkgdepends/configure
1877 patchShebangs src/library/ps/configure
1881 pkgdepends = old.pkgdepends.overrideAttrs (attrs: {
1883 patchShebangs configure