nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1# This file defines the composition for R packages.
2
3let
4 importJSON = f: builtins.fromJSON (builtins.readFile f);
5
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;
10in
11
12{
13 R,
14 pkgs,
15 overrides,
16}:
17
18let
19 inherit (pkgs)
20 cacert
21 fetchurl
22 stdenv
23 lib
24 ;
25
26 buildRPackage = pkgs.callPackage ./generic-builder.nix {
27 inherit R;
28 inherit (pkgs) gettext gfortran;
29 };
30
31 # Generates package templates given per-repository settings
32 #
33 # some packages, e.g. cncaGUI, require X running while installation,
34 # so that we use xvfb-run if requireX is true.
35 mkDerive =
36 {
37 mkHomepage,
38 mkUrls,
39 hydraPlatforms ? null,
40 }:
41 args:
42 let
43 hydraPlatforms' = hydraPlatforms;
44 in
45 lib.makeOverridable (
46 {
47 name,
48 version,
49 sha256,
50 depends ? [ ],
51 doCheck ? true,
52 requireX ? false,
53 broken ? false,
54 platforms ? R.meta.platforms,
55 hydraPlatforms ? if hydraPlatforms' != null then hydraPlatforms' else platforms,
56 maintainers ? [ ],
57 }:
58 buildRPackage {
59 pname = name;
60 inherit version;
61 src = fetchurl {
62 inherit sha256;
63 urls = mkUrls (args // { inherit name version; });
64 };
65 inherit doCheck requireX;
66 propagatedBuildInputs = depends;
67 nativeBuildInputs = depends;
68 meta.homepage = mkHomepage (args // { inherit name; });
69 meta.platforms = platforms;
70 meta.hydraPlatforms = hydraPlatforms;
71 meta.broken = broken;
72 meta.maintainers = maintainers;
73 }
74 );
75
76 # Templates for generating Bioconductor and CRAN packages
77 # from the name, version, sha256, and optional per-package arguments above
78 #
79 deriveBioc = mkDerive {
80 mkHomepage =
81 { name, biocVersion }: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
82 mkUrls =
83 {
84 name,
85 version,
86 biocVersion,
87 }:
88 [
89 "mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
90 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}/${name}_${version}.tar.gz"
91 "mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}_${version}.tar.gz"
92 ];
93 };
94 deriveBiocAnn = mkDerive {
95 mkHomepage =
96 { name, biocVersion }:
97 "https://www.bioconductor.org/packages/${biocVersion}/data/annotation/html/${name}.html";
98 mkUrls =
99 {
100 name,
101 version,
102 biocVersion,
103 }:
104 [
105 "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz"
106 ];
107 hydraPlatforms = [ ];
108 };
109 deriveBiocExp = mkDerive {
110 mkHomepage =
111 { name, biocVersion }:
112 "https://www.bioconductor.org/packages/${biocVersion}/data/experiment/html/${name}.html";
113 mkUrls =
114 {
115 name,
116 version,
117 biocVersion,
118 }:
119 [
120 "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz"
121 ];
122 hydraPlatforms = [ ];
123 };
124 deriveCran = mkDerive {
125 mkHomepage = { name }: "https://cran.r-project.org/web/packages/${name}/";
126 mkUrls =
127 { name, version }:
128 [
129 "mirror://cran/${name}_${version}.tar.gz"
130 "mirror://cran/Archive/${name}/${name}_${version}.tar.gz"
131 ];
132 };
133
134 # Overrides package definitions with nativeBuildInputs.
135 # For example,
136 #
137 # overrideNativeBuildInputs {
138 # foo = [ pkgs.bar ]
139 # } old
140 #
141 # results in
142 #
143 # {
144 # foo = old.foo.overrideAttrs (attrs: {
145 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
146 # });
147 # }
148 overrideNativeBuildInputs =
149 overrides: old:
150 lib.mapAttrs (
151 name: value:
152 (builtins.getAttr name old).overrideAttrs (attrs: {
153 nativeBuildInputs = attrs.nativeBuildInputs ++ value;
154 })
155 ) overrides;
156
157 # Overrides package definitions with buildInputs.
158 # For example,
159 #
160 # overrideBuildInputs {
161 # foo = [ pkgs.bar ]
162 # } old
163 #
164 # results in
165 #
166 # {
167 # foo = old.foo.overrideAttrs (attrs: {
168 # buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
169 # });
170 # }
171 overrideBuildInputs =
172 overrides: old:
173 lib.mapAttrs (
174 name: value:
175 (builtins.getAttr name old).overrideAttrs (attrs: {
176 buildInputs = attrs.buildInputs ++ value;
177 })
178 ) overrides;
179
180 # Overrides package definitions with maintainers.
181 # For example,
182 #
183 # overrideMaintainers {
184 # foo = [ lib.maintainers.jsmith ]
185 # } old
186 #
187 # results in
188 #
189 # {
190 # foo = old.foo.override {
191 # maintainers = [ lib.maintainers.jsmith ];
192 # };
193 # }
194 overrideMaintainers =
195 overrides: old:
196 lib.mapAttrs (
197 name: value:
198 (builtins.getAttr name old).override {
199 maintainers = value;
200 }
201 ) overrides;
202
203 # Overrides package definitions with new R dependencies.
204 # For example,
205 #
206 # overrideRDepends {
207 # foo = [ self.bar ]
208 # } old
209 #
210 # results in
211 #
212 # {
213 # foo = old.foo.overrideAttrs (attrs: {
214 # nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
215 # propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
216 # });
217 # }
218 overrideRDepends =
219 overrides: old:
220 lib.mapAttrs (
221 name: value:
222 (builtins.getAttr name old).overrideAttrs (attrs: {
223 nativeBuildInputs = (attrs.nativeBuildInputs or [ ]) ++ value;
224 propagatedNativeBuildInputs = (attrs.propagatedNativeBuildInputs or [ ]) ++ value;
225 })
226 ) overrides;
227
228 # Overrides package definition requiring X running to install.
229 # For example,
230 #
231 # overrideRequireX [
232 # "foo"
233 # ] old
234 #
235 # results in
236 #
237 # {
238 # foo = old.foo.override {
239 # requireX = true;
240 # };
241 # }
242 overrideRequireX =
243 packageNames: old:
244 let
245 nameValuePairs = map (name: {
246 inherit name;
247 value = (builtins.getAttr name old).override {
248 requireX = true;
249 };
250 }) packageNames;
251 in
252 builtins.listToAttrs nameValuePairs;
253
254 # Overrides package definition requiring a home directory to install or to
255 # run tests.
256 # For example,
257 #
258 # overrideRequireHome [
259 # "foo"
260 # ] old
261 #
262 # results in
263 #
264 # {
265 # foo = old.foo.overrideAttrs (oldAttrs: {
266 # preInstall = ''
267 # ${oldAttrs.preInstall or ""}
268 # export HOME=$(mktemp -d)
269 # '';
270 # });
271 # }
272 overrideRequireHome =
273 packageNames: old:
274 let
275 nameValuePairs = map (name: {
276 inherit name;
277 value = (builtins.getAttr name old).overrideAttrs (oldAttrs: {
278 preInstall = ''
279 ${oldAttrs.preInstall or ""}
280 export HOME=$(mktemp -d)
281 '';
282 });
283 }) packageNames;
284 in
285 builtins.listToAttrs nameValuePairs;
286
287 # Overrides package definition to skip check.
288 # For example,
289 #
290 # overrideSkipCheck [
291 # "foo"
292 # ] old
293 #
294 # results in
295 #
296 # {
297 # foo = old.foo.override {
298 # doCheck = false;
299 # };
300 # }
301 overrideSkipCheck =
302 packageNames: old:
303 let
304 nameValuePairs = map (name: {
305 inherit name;
306 value = (builtins.getAttr name old).override {
307 doCheck = false;
308 };
309 }) packageNames;
310 in
311 builtins.listToAttrs nameValuePairs;
312
313 # Overrides package definition to mark it broken.
314 # For example,
315 #
316 # overrideBroken [
317 # "foo"
318 # ] old
319 #
320 # results in
321 #
322 # {
323 # foo = old.foo.override {
324 # broken = true;
325 # };
326 # }
327 overrideBroken =
328 packageNames: old:
329 let
330 nameValuePairs = map (name: {
331 inherit name;
332 value = (builtins.getAttr name old).override {
333 broken = true;
334 };
335 }) packageNames;
336 in
337 builtins.listToAttrs nameValuePairs;
338
339 defaultOverrides =
340 old: new:
341 let
342 old0 = old;
343 in
344 let
345 old1 = old0 // (overrideRequireX packagesRequiringX old0);
346 old2 = old1 // (overrideRequireHome packagesRequiringHome old1);
347 old3 = old2 // (overrideSkipCheck packagesToSkipCheck old2);
348 old4 = old3 // (overrideRDepends packagesWithRDepends old3);
349 old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4);
350 old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5);
351 old7 = old6 // (overrideBroken brokenPackages old6);
352 old8 = old7 // (overrideMaintainers packagesWithMaintainers old7);
353 old = old8;
354 in
355 old // (otherOverrides old new);
356
357 # Recursive override pattern.
358 # `_self` is a collection of packages;
359 # `self` is `_self` with overridden packages;
360 # packages in `_self` may depends on overridden packages.
361 self = (defaultOverrides _self self) // overrides;
362 _self = {
363 inherit buildRPackage;
364 }
365 // mkPackageSet deriveBioc biocPackagesGenerated
366 // mkPackageSet deriveBiocAnn biocAnnotationPackagesGenerated
367 // mkPackageSet deriveBiocExp biocExperimentPackagesGenerated
368 // mkPackageSet deriveCran cranPackagesGenerated;
369
370 # Takes in a generated JSON file's imported contents
371 # and transforms it by swapping each element of the depends array with the dependency's derivation
372 # and passing this new object to the provided derive function
373 mkPackageSet =
374 derive: packagesJSON:
375 lib.mapAttrs (
376 k: v:
377 derive packagesJSON.extraArgs (
378 v // { depends = lib.map (name: builtins.getAttr name self) v.depends; }
379 )
380 ) packagesJSON.packages;
381
382 # tweaks for the individual packages and "in self" follow
383
384 packagesWithMaintainers = with lib.maintainers; {
385 data_table = [ jbedo ];
386 BiocManager = [ jbedo ];
387 ggplot2 = [ jbedo ];
388 svaNUMT = [ jbedo ];
389 svaRetro = [ jbedo ];
390 StructuralVariantAnnotation = [ jbedo ];
391 RQuantLib = [ kupac ];
392 XLConnect = [ b-rodrigues ];
393 };
394
395 packagesWithRDepends = {
396 bayesdfa = [ self.rstantools ];
397 spectralGraphTopology = [ self.CVXR ];
398 FactoMineR = [ self.car ];
399 pander = [ self.codetools ];
400 pliman = [ self.EBImage ];
401 rmsb = [ self.rstantools ];
402 gastempt = [ self.rstantools ];
403 interactiveDisplay = [ self.BiocManager ];
404 disbayes = [ self.rstantools ];
405 survextrap = [ self.rstantools ];
406 tipsae = [ self.rstantools ];
407 TriDimRegression = [ self.rstantools ];
408 bbmix = [ self.rstantools ];
409 };
410
411 packagesWithNativeBuildInputs = {
412 adimpro = [ pkgs.imagemagick ];
413 animation = [ pkgs.which ];
414 Apollonius = with pkgs; [
415 pkg-config
416 gmp.dev
417 mpfr.dev
418 ];
419 arrow =
420 with pkgs;
421 [
422 pkg-config
423 cmake
424 ]
425 ++ lib.optionals stdenv.hostPlatform.isDarwin [ intltool ];
426 alcyon = with pkgs; [
427 cmake
428 which
429 ];
430 astgrepr = with pkgs; [
431 cargo
432 rustc
433 ];
434 audio = [ pkgs.portaudio ];
435 BayesChange = [ pkgs.gsl ];
436 BayesSAE = [ pkgs.gsl ];
437 BayesVarSel = [ pkgs.gsl ];
438 BayesXsrc = with pkgs; [
439 readline.dev
440 ncurses
441 gsl
442 ];
443 bioacoustics = [
444 pkgs.fftw.dev
445 pkgs.cmake
446 ];
447 bigGP = [ pkgs.mpi ];
448 bigrquerystorage = with pkgs; [
449 grpc
450 protobuf
451 which
452 ];
453 bio3d = [ pkgs.zlib ];
454 BiocCheck = [ pkgs.which ];
455 Biostrings = [ pkgs.zlib ];
456 blosc = [ pkgs.pkg-config ];
457 CellBarcode = [ pkgs.zlib ];
458 cld3 = [ pkgs.protobuf ];
459 cpp11qpdf = with pkgs; [
460 zlib.dev
461 libjpeg
462 ];
463 bnpmr = [ pkgs.gsl ];
464 caviarpd = with pkgs; [
465 cargo
466 rustc
467 ];
468 cairoDevice = [ pkgs.gtk2.dev ];
469 Cairo = with pkgs; [
470 libtiff
471 libjpeg
472 cairo.dev
473 libxt.dev
474 fontconfig.lib
475 ];
476 Cardinal = [ pkgs.which ];
477 chebpol = [ pkgs.fftw.dev ];
478 ChemmineOB = [ pkgs.pkg-config ];
479 ciflyr = with pkgs; [
480 cargo
481 rustc
482 ];
483 interpolation = [ pkgs.pkg-config ];
484 clarabel = [ pkgs.cargo ];
485 curl = [ pkgs.curl.dev ];
486 CytoML = [ pkgs.libxml2.dev ];
487 data_table =
488 with pkgs;
489 [
490 pkg-config
491 zlib.dev
492 ]
493 ++ lib.optional stdenv.hostPlatform.isDarwin pkgs.llvmPackages.openmp;
494 datefixR = with pkgs; [
495 cargo
496 rustc
497 ];
498 devEMF = with pkgs; [ libxft.dev ];
499 DEploid = [ pkgs.zlib.dev ];
500 DEploid_utils = [ pkgs.zlib.dev ];
501 diversitree = with pkgs; [
502 gsl
503 fftw
504 ];
505 exactextractr = [ pkgs.geos ];
506 EMCluster = [ pkgs.lapack ];
507 fangs = with pkgs; [
508 cargo
509 rustc
510 ];
511 fastpng = [ pkgs.zlib.dev ];
512 fcl = with pkgs; [
513 cargo
514 rustc
515 ];
516 fftw = [ pkgs.fftw.dev ];
517 fftwtools = with pkgs; [
518 fftw.dev
519 pkg-config
520 ];
521 flint = with pkgs; [
522 pkg-config
523 gmp.dev
524 mpfr.dev
525 flint
526 ];
527 fingerPro = [ pkgs.gsl ];
528 Formula = [ pkgs.gmp ];
529 frailtyMMpen = [ pkgs.gsl ];
530 gadjid = with pkgs; [
531 cargo
532 rustc
533 ];
534 gamstransfer = [ pkgs.zlib ];
535 gdalraster = [ pkgs.pkg-config ];
536 gdtools =
537 with pkgs;
538 [
539 cairo.dev
540 fontconfig.lib
541 freetype.dev
542 ]
543 ++ lib.optionals stdenv.hostPlatform.isDarwin [
544 expat
545 libxdmcp
546 ];
547 GeneralizedWendland = [ pkgs.gsl ];
548 ggiraph = [ pkgs.libpng.dev ];
549 git2r = with pkgs; [
550 zlib.dev
551 openssl.dev
552 libssh2.dev
553 libgit2
554 pkg-config
555 ];
556 GLAD = [ pkgs.gsl ];
557 glpkAPI = with pkgs; [
558 gmp
559 glpk
560 ];
561 gmp = [ pkgs.gmp.dev ];
562 GPBayes = [ pkgs.gsl ];
563 graphscan = [ pkgs.gsl ];
564 gsl = [ pkgs.gsl ];
565 gslnls = [ pkgs.gsl ];
566 gert = [ pkgs.libgit2 ];
567 h3o = with pkgs; [
568 cargo
569 rustc
570 ];
571 haven = with pkgs; [ zlib.dev ];
572 hellorust = [ pkgs.cargo ];
573 hgwrr = [ pkgs.gsl ];
574 h5vc = with pkgs; [
575 zlib.dev
576 bzip2.dev
577 xz.dev
578 ];
579 HiCParser = [ pkgs.zlib ];
580 yyjsonr = with pkgs; [ zlib.dev ];
581 RNifti = with pkgs; [ zlib.dev ];
582 RNiftyReg = with pkgs; [ zlib.dev ];
583 highs = [
584 pkgs.which
585 pkgs.cmake
586 ];
587 crc32c = [
588 pkgs.which
589 pkgs.cmake
590 ];
591 cpp11bigwig = with pkgs; [
592 zlib.dev
593 curl.dev
594 ];
595 rbedrock = [
596 pkgs.zlib.dev
597 pkgs.which
598 pkgs.cmake
599 ];
600 Rigraphlib = [ pkgs.cmake ];
601 HiCseg = [ pkgs.gsl ];
602 hypergeo2 = with pkgs; [
603 gmp.dev
604 mpfr.dev
605 pkg-config
606 ];
607 imager = [ pkgs.libx11.dev ];
608 imbibe = [ pkgs.zlib.dev ];
609 image_CannyEdges = with pkgs; [
610 fftw.dev
611 libpng.dev
612 ];
613 iBMQ = [ pkgs.gsl ];
614 iscream = with pkgs; [
615 pkg-config
616 which
617 ];
618 jack = [ pkgs.pkg-config ];
619 JavaGD = [ pkgs.jdk ];
620 jpeg = [ pkgs.libjpeg.dev ];
621 jqr = [ pkgs.jq.dev ];
622 KFKSDS = [ pkgs.gsl ];
623 KSgeneral = with pkgs; [ pkg-config ];
624 kza = [ pkgs.fftw.dev ];
625 leidenAlg = [ pkgs.gmp.dev ];
626 Libra = [ pkgs.gsl ];
627 libstable4u = [ pkgs.gsl ];
628 heck = with pkgs; [
629 cargo
630 rustc
631 ];
632 libdeflate = [ pkgs.cmake ];
633 LOMAR = [ pkgs.gmp.dev ];
634 littler = [ pkgs.libdeflate ];
635 lpsymphony = with pkgs; [
636 pkg-config
637 gfortran
638 gettext
639 ];
640 lwgeom = with pkgs; [
641 proj
642 geos
643 gdal
644 ];
645 otelsdk = with pkgs; [
646 cmake
647 which
648 curl.dev
649 ];
650 rsbml = [ pkgs.pkg-config ];
651 rvg = [ pkgs.libpng.dev ];
652 MAGEE = [
653 pkgs.zlib.dev
654 pkgs.bzip2.dev
655 ];
656 magick = [ pkgs.imagemagick.dev ];
657 ModelMetrics = lib.optional stdenv.hostPlatform.isDarwin pkgs.llvmPackages.openmp;
658 mvabund = [ pkgs.gsl ];
659 mcrPioda = [ pkgs.gsl ];
660 mwaved = [ pkgs.fftw.dev ];
661 mzR = with pkgs; [
662 zlib
663 netcdf
664 ];
665 nanonext = with pkgs; [
666 mbedtls
667 nng
668 ];
669 ncdf4 = [ pkgs.netcdf ];
670 neojags = [ pkgs.jags ];
671 nloptr = with pkgs; [
672 nlopt
673 pkg-config
674 ];
675 n1qn1 = [ pkgs.gfortran ];
676 odbc = [ pkgs.unixODBC ];
677 opencv = [ pkgs.pkg-config ];
678 pak = [ pkgs.curl.dev ];
679 pander = with pkgs; [
680 pandoc
681 which
682 ];
683 pbdMPI = [ pkgs.mpi ];
684 pbdPROF = [ pkgs.mpi ];
685 pbdZMQ = [ pkgs.pkg-config ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.which ];
686 pcaL1 = [
687 pkgs.pkg-config
688 pkgs.clp
689 ];
690 pdftools = [ pkgs.poppler.dev ];
691 PEPBVS = [ pkgs.gsl ];
692 phytools = [ pkgs.which ];
693 PKI = [ pkgs.openssl.dev ];
694 png = [ pkgs.libpng.dev ];
695 protolite = [ pkgs.protobuf ];
696 prqlr = with pkgs; [
697 cargo
698 rustc
699 ];
700 R2SWF = with pkgs; [
701 zlib
702 libpng
703 freetype.dev
704 ];
705 RAppArmor = [ pkgs.libapparmor ];
706 rapportools = [ pkgs.which ];
707 rapport = [ pkgs.which ];
708 rbm25 = with pkgs; [
709 cargo
710 rustc
711 ];
712 rcdd = [ pkgs.gmp.dev ];
713 RcppCNPy = [ pkgs.zlib.dev ];
714 RcppDPR = [ pkgs.gsl ];
715 RcppGSL = [ pkgs.gsl ];
716 RcppZiggurat = [ pkgs.gsl ];
717 reprex = [ pkgs.which ];
718 resultant = with pkgs; [
719 gmp.dev
720 mpfr.dev
721 pkg-config
722 ];
723 rgdal = with pkgs; [
724 proj.dev
725 gdal
726 ];
727 Rhisat2 = [
728 pkgs.which
729 pkgs.hostname
730 ];
731 gdalcubes = [ pkgs.pkg-config ];
732 rgeos = [ pkgs.geos ];
733 Rglpk = [ pkgs.glpk ];
734 RcppPlanc = with pkgs; [
735 which
736 cmake
737 pkg-config
738 ];
739 RGtk2 = [ pkgs.gtk2.dev ];
740 rhdf5 = [ pkgs.zlib ];
741 Rhdf5lib = with pkgs; [ zlib.dev ];
742 Rhpc = with pkgs; [
743 zlib
744 bzip2.dev
745 icu
746 xz.dev
747 mpi
748 pcre.dev
749 ];
750 Rhtslib = with pkgs; [
751 zlib.dev
752 automake
753 autoconf
754 bzip2.dev
755 xz.dev
756 curl.dev
757 ];
758 rjags = [ pkgs.jags ];
759 rJava = with pkgs; [
760 stripJavaArchivesHook
761 zlib
762 bzip2.dev
763 icu
764 xz.dev
765 zstd.dev
766 pcre.dev
767 jdk
768 libzip
769 libdeflate
770 ];
771 Rlibeemd = [ pkgs.gsl ];
772 rmatio = [
773 pkgs.zlib.dev
774 pkgs.pkg-config
775 ];
776 Rmpfr = with pkgs; [
777 gmp
778 mpfr.dev
779 ];
780 Rmpi = with pkgs; [
781 mpi.dev
782 prrte.dev
783 ];
784 RMySQL = with pkgs; [
785 zlib
786 libmysqlclient
787 openssl.dev
788 ];
789 RNetCDF = with pkgs; [
790 netcdf
791 udunits
792 ];
793 RODBC = [ pkgs.libiodbc ];
794 rpanel = [ pkgs.tclPackages.bwidget ];
795 Rpoppler = [ pkgs.poppler ];
796 RPostgreSQL = with pkgs; [ libpq.pg_config ];
797 RProtoBuf = [ pkgs.protobuf ];
798 rsamplr = with pkgs; [
799 cargo
800 rustc
801 ];
802 RSclient = [ pkgs.openssl.dev ];
803 Rserve = [ pkgs.openssl ];
804 Rssa = [ pkgs.fftw.dev ];
805 rsvg = [ pkgs.pkg-config ];
806 runjags = [ pkgs.jags ];
807 tomledit = with pkgs; [
808 cargo
809 rustc
810 ];
811 xslt = [ pkgs.pkg-config ];
812 RVowpalWabbit = with pkgs; [
813 zlib.dev
814 boost
815 ];
816 rzmq = with pkgs; [
817 zeromq
818 pkg-config
819 ];
820 httpuv = [ pkgs.zlib.dev ];
821 clustermq = [ pkgs.zeromq ];
822 SAVE = with pkgs; [
823 zlib
824 bzip2
825 icu
826 xz
827 pcre
828 ];
829 salso = with pkgs; [
830 cargo
831 rustc
832 ];
833 ymd = with pkgs; [
834 cargo
835 rustc
836 ];
837 arcpbf = with pkgs; [
838 cargo
839 rustc
840 ];
841 sdcTable = with pkgs; [
842 gmp
843 glpk
844 ];
845 seewave = with pkgs; [
846 fftw.dev
847 libsndfile.dev
848 ];
849 seqinr = [ pkgs.zlib.dev ];
850 smcryptoR = with pkgs; [
851 cargo
852 rustc
853 which
854 ];
855 webp = [ pkgs.pkg-config ];
856 seqminer = with pkgs; [
857 zlib.dev
858 bzip2
859 ];
860 sf = with pkgs; [
861 gdal
862 proj
863 geos
864 libtiff
865 curl
866 ];
867 fio = with pkgs; [
868 cargo
869 rustc
870 ];
871 socratadata = with pkgs; [
872 cargo
873 rustc
874 ];
875 SQLFormatteR = with pkgs; [
876 cargo
877 rustc
878 ];
879 strawr = with pkgs; [ curl.dev ];
880 string2path = [ pkgs.cargo ];
881 terra = with pkgs; [
882 gdal
883 proj
884 geos
885 netcdf
886 ];
887 tok = with pkgs; [
888 cargo
889 rustc
890 ];
891 rshift = with pkgs; [
892 cargo
893 rustc
894 ];
895 arcgisutils = with pkgs; [
896 cargo
897 rustc
898 ];
899 arcgisgeocode = with pkgs; [
900 cargo
901 rustc
902 ];
903 arcgisplaces = with pkgs; [
904 pkg-config
905 openssl.dev
906 cargo
907 rustc
908 ];
909 awdb = with pkgs; [
910 cargo
911 rustc
912 ];
913 apcf = with pkgs; [ geos ];
914 SemiCompRisks = [ pkgs.gsl ];
915 showtext = with pkgs; [
916 zlib
917 libpng
918 icu
919 freetype.dev
920 ];
921 simplexreg = [ pkgs.gsl ];
922 spate = [ pkgs.fftw.dev ];
923 ssanv = [ pkgs.proj ];
924 stsm = [ pkgs.gsl ];
925 stringi = [ pkgs.icu.dev ];
926 parseLatex = [ pkgs.icu.dev ];
927 survSNP = [ pkgs.gsl ];
928 svglite = [ pkgs.libpng.dev ];
929 sysfonts = with pkgs; [
930 zlib
931 libpng
932 freetype.dev
933 ];
934 systemfonts = with pkgs; [
935 fontconfig.dev
936 freetype.dev
937 ];
938 TAQMNGR = [ pkgs.zlib.dev ];
939 TDA = [ pkgs.gmp ];
940 tesseract = with pkgs; [
941 tesseract
942 leptonica
943 ];
944 tiff = [ pkgs.libtiff.dev ];
945 tkrplot = with pkgs; [
946 libx11
947 tk.dev
948 ];
949 topicmodels = [ pkgs.gsl ];
950 udunits2 = with pkgs; [
951 udunits
952 expat
953 ];
954 units = [ pkgs.udunits ];
955 unigd = [ pkgs.pkg-config ];
956 unsum = with pkgs; [
957 cargo
958 rustc
959 ];
960 vdiffr = [ pkgs.libpng.dev ];
961 V8 = [ pkgs.nodejs_22.libv8 ]; # when unpinning the version, don't forget about the other usages later
962 xactonomial = with pkgs; [
963 cargo
964 rustc
965 ];
966 XBRL = with pkgs; [
967 zlib
968 libxml2.dev
969 ];
970 xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.perl ];
971 XML = with pkgs; [
972 libtool
973 libxml2.dev
974 xmlsec
975 libxslt
976 ];
977 affyPLM = [ pkgs.zlib.dev ];
978 BitSeq = [ pkgs.zlib.dev ];
979 DiffBind = with pkgs; [
980 zlib.dev
981 xz.dev
982 bzip2.dev
983 ];
984 ShortRead = [ pkgs.zlib.dev ];
985 oligo = [ pkgs.zlib.dev ];
986 gmapR = [ pkgs.zlib.dev ];
987 Rsubread = [ pkgs.zlib.dev ];
988 Rsubbotools = [ pkgs.gsl ];
989 XVector = [ pkgs.zlib.dev ];
990 Rsamtools = with pkgs; [
991 zlib.dev
992 curl.dev
993 bzip2
994 xz
995 ];
996 rtracklayer = with pkgs; [
997 zlib.dev
998 curl.dev
999 ];
1000 affyio = [ pkgs.zlib.dev ];
1001 snpStats = [ pkgs.zlib.dev ];
1002 vcfppR = [
1003 pkgs.curl.dev
1004 pkgs.bzip2
1005 pkgs.zlib.dev
1006 pkgs.xz
1007 ];
1008 httpgd = with pkgs; [ cairo.dev ];
1009 SymTS = [ pkgs.gsl ];
1010 VBLPCM = [ pkgs.gsl ];
1011 dynr = [ pkgs.gsl ];
1012 mixlink = [ pkgs.gsl ];
1013 ridge = [ pkgs.gsl ];
1014 smam = [ pkgs.gsl ];
1015 rnetcarto = [ pkgs.gsl ];
1016 rGEDI = [ pkgs.gsl ];
1017 mmpca = [ pkgs.gsl ];
1018 monoreg = [ pkgs.gsl ];
1019 mvst = [ pkgs.gsl ];
1020 mixture = [ pkgs.gsl ];
1021 jSDM = [ pkgs.gsl ];
1022 immunoClust = [ pkgs.gsl ];
1023 hSDM = [ pkgs.gsl ];
1024 flowPeaks = [ pkgs.gsl ];
1025 fRLR = [ pkgs.gsl ];
1026 eaf = [ pkgs.gsl ];
1027 diseq = [ pkgs.gsl ];
1028 cit = [ pkgs.gsl ];
1029 abn = [ pkgs.gsl ];
1030 SimInf = [ pkgs.gsl ];
1031 RJMCMCNucleosomes = [ pkgs.gsl ];
1032 RDieHarder = [ pkgs.gsl ];
1033 QF = [ pkgs.gsl ];
1034 PICS = [ pkgs.gsl ];
1035 RationalMatrix = [
1036 pkgs.pkg-config
1037 pkgs.gmp.dev
1038 ];
1039 RcppCWB = [
1040 pkgs.pkg-config
1041 pkgs.pcre2
1042 ];
1043 redux = [ pkgs.pkg-config ];
1044 s2 = [ pkgs.pkg-config ];
1045 rswipl = with pkgs; [
1046 cmake
1047 pkg-config
1048 ];
1049 scorematchingad = [ pkgs.cmake ];
1050 rrd = [ pkgs.pkg-config ];
1051 surveyvoi = [ pkgs.pkg-config ];
1052 Rbwa = [ pkgs.zlib.dev ];
1053 tergo = with pkgs; [
1054 cargo
1055 rustc
1056 ];
1057 gglinedensity = [ pkgs.cargo ];
1058 trackViewer = [ pkgs.zlib.dev ];
1059 themetagenomics = [ pkgs.zlib.dev ];
1060 Rsymphony = [ pkgs.pkg-config ];
1061 NanoMethViz = [ pkgs.zlib.dev ];
1062 RcppMeCab = [ pkgs.pkg-config ];
1063 HilbertVisGUI = with pkgs; [
1064 pkg-config
1065 which
1066 ];
1067 textshaping = [ pkgs.pkg-config ];
1068 ragg = [ pkgs.pkg-config ];
1069 qqconf = [ pkgs.pkg-config ];
1070 qspray = [ pkgs.pkg-config ];
1071 ratioOfQsprays = [ pkgs.pkg-config ];
1072 watcher = with pkgs; [
1073 cmake
1074 which
1075 ];
1076 symbolicQspray = [ pkgs.pkg-config ];
1077 sphereTessellation = [ pkgs.pkg-config ];
1078 vapour = [ pkgs.pkg-config ];
1079 xdvir = [ pkgs.freetype.dev ];
1080 };
1081
1082 packagesWithBuildInputs = {
1083 # sort -t '=' -k 2
1084 abn = [ pkgs.jags ];
1085 adbcpostgresql = with pkgs; [
1086 readline.dev
1087 zlib.dev
1088 openssl.dev
1089 libkrb5.dev
1090 openpam
1091 libpq
1092 ];
1093 asciicast = with pkgs; [
1094 bzip2.dev
1095 icu.dev
1096 libdeflate
1097 xz.dev
1098 zlib.dev
1099 zstd.dev
1100 ];
1101 blosc = [ pkgs.c-blosc ];
1102 EHRmuse = [ pkgs.gsl.dev ];
1103 island = [ pkgs.gsl.dev ];
1104 knowYourCG = with pkgs; [
1105 zlib.dev
1106 ncurses.dev
1107 ];
1108 lnmixsurv = [ pkgs.gsl.dev ];
1109 svKomodo = [ pkgs.which ];
1110 transmogR = [ pkgs.zlib.dev ];
1111 ulid = [ pkgs.zlib.dev ];
1112 unrtf = with pkgs; [
1113 bzip2.dev
1114 icu.dev
1115 libdeflate
1116 xz.dev
1117 zlib.dev
1118 zstd.dev
1119 ];
1120 nat = [ pkgs.which ];
1121 nat_templatebrains = [ pkgs.which ];
1122 pbdZMQ = [ pkgs.zeromq ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.darwin.binutils ];
1123 bigmemory = lib.optionals stdenv.hostPlatform.isLinux [ pkgs.libuuid.dev ];
1124 bayesWatch = [ pkgs.boost.dev ];
1125 clustermq = [ pkgs.pkg-config ];
1126 coga = [ pkgs.gsl.dev ];
1127 mBvs = [ pkgs.gsl.dev ];
1128 milorGWAS = [ pkgs.zlib.dev ];
1129 pliman = with pkgs; [
1130 fftw.dev
1131 libpng.dev
1132 ];
1133 rcontroll = [ pkgs.gsl.dev ];
1134 deepSNV = with pkgs; [
1135 xz.dev
1136 bzip2.dev
1137 zlib.dev
1138 ];
1139 epialleleR = with pkgs; [
1140 xz.dev
1141 bzip2.dev
1142 zlib.dev
1143 ];
1144 gdalraster = with pkgs; [
1145 gdal
1146 proj.dev
1147 sqlite.dev
1148 ];
1149 GeoFIS = with pkgs; [
1150 mpfr.dev
1151 gmp.dev
1152 ];
1153 mitoClone2 = with pkgs; [
1154 xz.dev
1155 bzip2.dev
1156 zlib.dev
1157 ];
1158 gpg = [ pkgs.gpgme ];
1159 mutscan = [ pkgs.zlib.dev ];
1160 webp = [ pkgs.libwebp ];
1161 RMark = [ pkgs.which ];
1162 RPushbullet = [ pkgs.which ];
1163 stpphawkes = [ pkgs.gsl ];
1164 registr = with pkgs; [
1165 icu.dev
1166 zlib.dev
1167 bzip2.dev
1168 xz.dev
1169 libdeflate
1170 zstd.dev
1171 ];
1172 RCurl = [ pkgs.curl.dev ];
1173 R2SWF = [ pkgs.pkg-config ];
1174 rDEA = [ pkgs.glpk ];
1175 rgl = with pkgs; [
1176 libGLU
1177 libGL
1178 libx11.dev
1179 freetype.dev
1180 libpng.dev
1181 ];
1182 RGtk2 = [ pkgs.pkg-config ];
1183 RProtoBuf = [ pkgs.pkg-config ];
1184 Rpoppler = [ pkgs.pkg-config ];
1185 RPostgres = with pkgs; [ libpq ];
1186 XML = [ pkgs.pkg-config ];
1187 apsimx = [ pkgs.which ];
1188 cairoDevice = [ pkgs.pkg-config ];
1189 CBN2Path = [ pkgs.gsl ];
1190 chebpol = [ pkgs.pkg-config ];
1191 baseline = [ pkgs.lapack ];
1192 eds = [ pkgs.zlib.dev ];
1193 iscream = with pkgs; [
1194 bzip2.dev
1195 xz.dev
1196 zlib.dev
1197 ];
1198 pgenlibr = [ pkgs.zlib.dev ];
1199 fftw = [ pkgs.pkg-config ];
1200 gdtools = [ pkgs.pkg-config ];
1201 archive = [ pkgs.libarchive ];
1202 gdalcubes = with pkgs; [
1203 proj.dev
1204 gdal
1205 sqlite.dev
1206 netcdf
1207 ];
1208 rsbml = [ pkgs.libsbml ];
1209 SuperGauss = [
1210 pkgs.pkg-config
1211 pkgs.fftw.dev
1212 ];
1213 ravetools = with pkgs; [
1214 pkg-config
1215 fftw.dev
1216 ];
1217 specklestar = [ pkgs.fftw.dev ];
1218 cartogramR = with pkgs; [
1219 fftw.dev
1220 pkg-config
1221 ];
1222 GRAB = [ pkgs.zlib.dev ];
1223 jqr = [ pkgs.jq.out ];
1224 kza = [ pkgs.pkg-config ];
1225 igraph = with pkgs; [
1226 gmp
1227 libxml2.dev
1228 glpk
1229 ];
1230 interpolation = with pkgs; [
1231 gmp
1232 mpfr
1233 ];
1234 image_textlinedetector = with pkgs; [
1235 pkg-config
1236 opencv
1237 ];
1238 lwgeom = with pkgs; [
1239 pkg-config
1240 proj.dev
1241 sqlite.dev
1242 ];
1243 magick = [ pkgs.pkg-config ];
1244 mwaved = [ pkgs.pkg-config ];
1245 odbc = [ pkgs.pkg-config ];
1246 openssl = [ pkgs.pkg-config ];
1247 otelsdk = with pkgs; [
1248 protobuf
1249 zlib.dev
1250 ];
1251 pdftools = [ pkgs.pkg-config ];
1252 qckitfastq = [ pkgs.zlib.dev ];
1253 raer = with pkgs; [
1254 zlib.dev
1255 xz.dev
1256 bzip2.dev
1257 ];
1258 RQuantLib = with pkgs; [
1259 quantlib.dev
1260 boost.dev
1261 ];
1262 saeMSPE = [ pkgs.gsl.dev ];
1263 sf = with pkgs; [
1264 pkg-config
1265 sqlite.dev
1266 proj.dev
1267 ];
1268 terra = with pkgs; [
1269 pkg-config
1270 sqlite.dev
1271 proj.dev
1272 ];
1273 showtext = [ pkgs.pkg-config ];
1274 spate = [ pkgs.pkg-config ];
1275 stringi = [ pkgs.pkg-config ];
1276 SynExtend = [ pkgs.zlib.dev ];
1277 sysfonts = [ pkgs.pkg-config ];
1278 systemfonts = [ pkgs.pkg-config ];
1279 tesseract = [ pkgs.pkg-config ];
1280 Cairo = [ pkgs.pkg-config ];
1281 CLVTools = [ pkgs.gsl ];
1282 excursions = [ pkgs.gsl ];
1283 OpenCL = with pkgs; [
1284 opencl-clhpp
1285 ocl-icd
1286 ];
1287 gpuMagic = [ pkgs.ocl-icd ];
1288 JMcmprsk = [ pkgs.gsl ];
1289 KSgeneral = [ pkgs.fftw.dev ];
1290 mashr = [ pkgs.gsl ];
1291 hadron = [ pkgs.gsl ];
1292 AMOUNTAIN = [ pkgs.gsl ];
1293 Rsymphony = with pkgs; [
1294 symphony
1295 doxygen
1296 graphviz
1297 subversion
1298 cgl
1299 clp
1300 ];
1301 tcltk2 = with pkgs; [
1302 tcl
1303 tk
1304 ];
1305 rswipl = with pkgs; [
1306 ncurses.dev
1307 libxcrypt
1308 zlib.dev
1309 ];
1310 GrafGen = [ pkgs.zlib ];
1311 SLmetrics = [ pkgs.zlib.dev ];
1312 tidypopgen = [ pkgs.zlib.dev ];
1313 tikzDevice = with pkgs; [
1314 which
1315 texliveMedium
1316 ];
1317 gridGraphics = [ pkgs.which ];
1318 adimpro = with pkgs; [
1319 which
1320 xdpyinfo
1321 ];
1322 tfevents = [ pkgs.protobuf ];
1323 rsvg = [ pkgs.librsvg.dev ];
1324 ssh = with pkgs; [ libssh ];
1325 s2 = with pkgs; [
1326 abseil-cpp
1327 openssl.dev
1328 ];
1329 ArrayExpressHTS = with pkgs; [
1330 zlib.dev
1331 curl.dev
1332 which
1333 ];
1334 bbl = with pkgs; [ gsl ];
1335 diffHic = with pkgs; [
1336 xz.dev
1337 bzip2.dev
1338 ];
1339 writexl = with pkgs; [ zlib.dev ];
1340 xslt =
1341 with pkgs;
1342 [
1343 libxslt
1344 libxml2
1345 ]
1346 ++ lib.optionals stdenv.hostPlatform.isDarwin [ xz ];
1347 qpdf = with pkgs; [
1348 libjpeg.dev
1349 zlib.dev
1350 ];
1351 vcfR = with pkgs; [ zlib.dev ];
1352 bio3d = with pkgs; [ zlib.dev ];
1353 arrangements = with pkgs; [ gmp.dev ];
1354 gfilogisreg = [ pkgs.gmp.dev ];
1355 spp = with pkgs; [ zlib.dev ];
1356 bamsignals = with pkgs; [
1357 zlib.dev
1358 xz.dev
1359 bzip2
1360 ];
1361 Rbowtie = with pkgs; [ zlib.dev ];
1362 gaston = with pkgs; [ zlib.dev ];
1363 csaw = with pkgs; [
1364 zlib.dev
1365 xz.dev
1366 bzip2.dev
1367 curl
1368 ];
1369 DirichletMultinomial = with pkgs; [ gsl ];
1370 DiffBind = with pkgs; [ zlib.dev ];
1371 CNEr = with pkgs; [ zlib ];
1372 GMMAT = with pkgs; [
1373 zlib.dev
1374 bzip2.dev
1375 ];
1376 rmumps = with pkgs; [ zlib.dev ];
1377 HiCDCPlus = [ pkgs.zlib.dev ];
1378 PopGenome = [ pkgs.zlib.dev ];
1379 QuasR = with pkgs; [
1380 zlib.dev
1381 xz.dev
1382 bzip2.dev
1383 ];
1384 Rarr = [ pkgs.zlib.dev ];
1385 Rbowtie2 = [ pkgs.zlib.dev ];
1386 Rfastp = with pkgs; [
1387 xz.dev
1388 bzip2.dev
1389 zlib.dev
1390 ];
1391 maftools = with pkgs; [
1392 zlib.dev
1393 bzip2
1394 xz.dev
1395 ];
1396 Rmmquant = [ pkgs.zlib.dev ];
1397 SICtools = with pkgs; [
1398 zlib.dev
1399 ncurses.dev
1400 ];
1401 Signac = [ pkgs.zlib.dev ];
1402 TransView = with pkgs; [
1403 xz.dev
1404 bzip2.dev
1405 zlib.dev
1406 ];
1407 bigsnpr = [ pkgs.zlib.dev ];
1408 zlib = [ pkgs.zlib.dev ];
1409 divest = [ pkgs.zlib.dev ];
1410 hipread = [ pkgs.zlib.dev ];
1411 jack = with pkgs; [
1412 gmp.dev
1413 mpfr.dev
1414 ];
1415 jackalope = with pkgs; [
1416 zlib.dev
1417 xz.dev
1418 bzip2.dev
1419 ];
1420 largeList = [ pkgs.zlib.dev ];
1421 mappoly = [ pkgs.zlib.dev ];
1422 VariantAnnotation = with pkgs; [
1423 zlib.dev
1424 curl.dev
1425 bzip2.dev
1426 xz.dev
1427 ];
1428 matchingMarkets = [ pkgs.zlib.dev ];
1429 methylKit = with pkgs; [
1430 zlib.dev
1431 bzip2.dev
1432 xz.dev
1433 ];
1434 ndjson = [ pkgs.zlib.dev ];
1435 podkat = with pkgs; [
1436 zlib.dev
1437 xz.dev
1438 bzip2.dev
1439 ];
1440 qrqc = [ pkgs.zlib.dev ];
1441 rJPSGCS = [ pkgs.zlib.dev ];
1442 rhdf5filters = with pkgs; [
1443 zlib.dev
1444 bzip2.dev
1445 ];
1446 symengine = with pkgs; [
1447 mpfr
1448 symengine
1449 flint
1450 ];
1451 rtk = [ pkgs.zlib.dev ];
1452 scPipe = with pkgs; [
1453 bzip2.dev
1454 xz.dev
1455 zlib.dev
1456 ];
1457 seqTools = [ pkgs.zlib.dev ];
1458 seqbias = with pkgs; [
1459 zlib.dev
1460 bzip2.dev
1461 xz.dev
1462 ];
1463 sparkwarc = [ pkgs.zlib.dev ];
1464 RoBMA = [ pkgs.jags ];
1465 RoBSA = [ pkgs.jags ];
1466 pexm = [ pkgs.jags ];
1467 rGEDI = with pkgs; [
1468 libgeotiff.dev
1469 libaec
1470 zlib.dev
1471 hdf5.dev
1472 ];
1473 rawrr = [ pkgs.mono ];
1474 HDF5Array = [ pkgs.zlib.dev ];
1475 FLAMES = with pkgs; [
1476 zlib.dev
1477 bzip2.dev
1478 xz.dev
1479 ];
1480 ncdfFlow = [ pkgs.zlib.dev ];
1481 proj4 = [ pkgs.proj.dev ];
1482 rtmpt = [ pkgs.gsl ];
1483 mixcat = [ pkgs.gsl ];
1484 libstableR = [ pkgs.gsl ];
1485 landsepi = [ pkgs.gsl ];
1486 flan = [ pkgs.gsl ];
1487 econetwork = [ pkgs.gsl ];
1488 crandep = [ pkgs.gsl ];
1489 catSurv = [ pkgs.gsl ];
1490 ccfindR = [ pkgs.gsl ];
1491 RcppPlanc = with pkgs; [
1492 hwloc
1493 hdf5.dev
1494 ];
1495 screenCounter = [ pkgs.zlib.dev ];
1496 SPARSEMODr = [ pkgs.gsl ];
1497 RKHSMetaMod = [ pkgs.gsl ];
1498 LCMCR = [ pkgs.gsl ];
1499 BNSP = [ pkgs.gsl ];
1500 scModels = [ pkgs.mpfr.dev ];
1501 multibridge = with pkgs; [
1502 pkg-config
1503 mpfr.dev
1504 ];
1505 RcppCWB = with pkgs; [
1506 pcre.dev
1507 glib.dev
1508 ];
1509 redux = [ pkgs.hiredis ];
1510 RmecabKo = [ pkgs.mecab ];
1511 markets = [ pkgs.gsl ];
1512 rlas = [ pkgs.boost ];
1513 bgx = [ pkgs.boost ];
1514 PoissonBinomial = [ pkgs.fftw.dev ];
1515 poisbinom = [ pkgs.fftw.dev ];
1516 PoissonMultinomial = [ pkgs.fftw.dev ];
1517 psbcGroup = [ pkgs.gsl.dev ];
1518 rrd = [ pkgs.rrdtool ];
1519 flowWorkspace = [ pkgs.zlib.dev ];
1520 RITCH = [ pkgs.zlib.dev ];
1521 RcppMeCab = [ pkgs.mecab ];
1522 PING = [ pkgs.gsl ];
1523 PROJ = [ pkgs.proj.dev ];
1524 RcppAlgos = [ pkgs.gmp.dev ];
1525 RcppBigIntAlgos = [ pkgs.gmp.dev ];
1526 spaMM = [ pkgs.gsl ];
1527 shrinkTVP = [ pkgs.gsl ];
1528 sbrl = with pkgs; [
1529 gsl
1530 gmp.dev
1531 ];
1532 surveyvoi = with pkgs; [
1533 gmp.dev
1534 mpfr.dev
1535 ];
1536 unigd =
1537 with pkgs;
1538 [
1539 cairo.dev
1540 libpng.dev
1541 ]
1542 ++ lib.optionals stdenv.hostPlatform.isDarwin [
1543 expat
1544 libxdmcp
1545 ];
1546 HilbertVisGUI = [ pkgs.gtkmm2.dev ];
1547 textshaping = with pkgs; [
1548 harfbuzz.dev
1549 freetype.dev
1550 fribidi
1551 libpng
1552 ];
1553 DropletUtils = [ pkgs.zlib.dev ];
1554 RMariaDB = [ pkgs.libmysqlclient.dev ];
1555 ijtiff = with pkgs; [
1556 libtiff
1557 libjpeg
1558 zlib
1559 ];
1560 ragg =
1561 with pkgs;
1562 [
1563 freetype.dev
1564 libpng.dev
1565 libtiff.dev
1566 zlib.dev
1567 libjpeg.dev
1568 bzip2.dev
1569 libwebp
1570 ]
1571 ++ lib.optional stdenv.hostPlatform.isDarwin lerc.dev;
1572 qqconf = [ pkgs.fftw.dev ];
1573 spFW = [ pkgs.fftw.dev ];
1574 qspray = with pkgs; [
1575 gmp.dev
1576 mpfr.dev
1577 ];
1578 ratioOfQsprays = with pkgs; [
1579 gmp.dev
1580 mpfr.dev
1581 ];
1582 symbolicQspray = with pkgs; [
1583 gmp.dev
1584 mpfr.dev
1585 ];
1586 sphereTessellation = with pkgs; [
1587 gmp.dev
1588 mpfr.dev
1589 ];
1590 vapour = with pkgs; [
1591 proj.dev
1592 gdal
1593 ];
1594 MedianaDesigner = [ pkgs.zlib.dev ];
1595 ChemmineOB = with pkgs; [
1596 eigen
1597 openbabel
1598 zlib.dev
1599 ];
1600 DGP4LCF = [
1601 pkgs.lapack
1602 pkgs.blas
1603 ];
1604 };
1605
1606 packagesRequiringX = [
1607 "analogueExtra"
1608 "AnalyzeFMRI"
1609 "AnnotLists"
1610 "asbio"
1611 "BCA"
1612 "biplotbootGUI"
1613 "cairoDevice"
1614 "cncaGUI"
1615 "CommunityCorrelogram"
1616 "dave"
1617 "DeducerPlugInExample"
1618 "DeducerPlugInScaling"
1619 "DeducerSpatial"
1620 "DeducerSurvival"
1621 "DeducerText"
1622 "Demerelate"
1623 "diveR"
1624 "dpa"
1625 "dynamicGraph"
1626 "EasyqpcR"
1627 "exactLoglinTest"
1628 "fisheyeR"
1629 "forams"
1630 "forensim"
1631 "GGEBiplotGUI"
1632 "gsubfn"
1633 "gWidgets2RGtk2"
1634 "gWidgets2tcltk"
1635 "HiveR"
1636 "ic50"
1637 "iClick"
1638 "iDynoR"
1639 "iplots"
1640 "likeLTD"
1641 "loon"
1642 "loon_ggplot"
1643 "loon_shiny"
1644 "loon_tourr"
1645 "Meth27QC"
1646 "mixsep"
1647 "multibiplotGUI"
1648 "OligoSpecificitySystem"
1649 "optbdmaeAT"
1650 "optrcdmaeAT"
1651 "paleoMAS"
1652 "RandomFields"
1653 "rfviz"
1654 "RclusTool"
1655 "RcmdrPlugin_coin"
1656 "RcmdrPlugin_FuzzyClust"
1657 "RcmdrPlugin_IPSUR"
1658 "RcmdrPlugin_lfstat"
1659 "RcmdrPlugin_PcaRobust"
1660 "RcmdrPlugin_plotByGroup"
1661 "RcmdrPlugin_pointG"
1662 "RcmdrPlugin_sampling"
1663 "RcmdrPlugin_SCDA"
1664 "RcmdrPlugin_SLC"
1665 "RcmdrPlugin_steepness"
1666 "rich"
1667 "RSurvey"
1668 "simba"
1669 "SimpleTable"
1670 "SOLOMON"
1671 "soptdmaeA"
1672 "strvalidator"
1673 "stylo"
1674 "SyNet"
1675 "switchboard"
1676 "tkImgR"
1677 "TTAinterfaceTrendAnalysis"
1678 "twiddler"
1679 "uHMM"
1680 "VecStatGraphs3D"
1681 ];
1682
1683 packagesRequiringHome = [
1684 "aroma_affymetrix"
1685 "aroma_cn"
1686 "aroma_core"
1687 "avotrex"
1688 "beer"
1689 "ceramic"
1690 "connections"
1691 "covidmx"
1692 "csodata"
1693 "DiceView"
1694 "facmodTS"
1695 "gasanalyzer"
1696 "margaret"
1697 "MSnID"
1698 "OmnipathR"
1699 "orthGS"
1700 "pannotator"
1701 "precommit"
1702 "protGear"
1703 "PCRA"
1704 "PSCBS"
1705 "iemisc"
1706 "red"
1707 "repmis"
1708 "R_cache"
1709 "R_filesets"
1710 "RKorAPClient"
1711 "R_rsp"
1712 "salso"
1713 "scholar"
1714 "SpatialDecon"
1715 "stepR"
1716 "styler"
1717 "tabs"
1718 "teal_code"
1719 "TreeTools"
1720 "TreeSearch"
1721 "ACNE"
1722 "APAlyzer"
1723 "BAT"
1724 "EstMix"
1725 "Patterns"
1726 "PECA"
1727 "Quartet"
1728 "ShinyQuickStarter"
1729 "TIN"
1730 "cfdnakit"
1731 "CaDrA"
1732 "GNOSIS"
1733 "TotalCopheneticIndex"
1734 "TreeDist"
1735 "biocthis"
1736 "calmate"
1737 "fgga"
1738 "fulltext"
1739 "dataverse"
1740 "immuneSIM"
1741 "mastif"
1742 "rdss"
1743 "shinymeta"
1744 "shinyobjects"
1745 "wppi"
1746 "pins"
1747 "CoTiMA"
1748 "TBRDist"
1749 "Rogue"
1750 "fixest"
1751 "paxtoolsr"
1752 "systemPipeShiny"
1753 "matlab2r"
1754 "GNOSIS"
1755 ];
1756
1757 packagesToSkipCheck = [
1758 "MsDataHub" # tries to connect to ExperimentHub
1759 "Rmpi" # tries to run MPI processes
1760 "ReactomeContentService4R" # tries to connect to Reactome
1761 "PhIPData" # tries to download something from a DB
1762 "pbdMPI" # tries to run MPI processes
1763 "CTdata" # tries to connect to ExperimentHub
1764 "rfaRm" # tries to connect to Ebi
1765 "data_table" # fails to rename shared library before check
1766 "coMethDMR" # tries to connect to ExperimentHub
1767 "multiMiR" # tries to connect to DB
1768 "snapcount" # tries to connect to snaptron.cs.jhu.edu
1769 ];
1770
1771 # Packages which cannot be installed due to lack of dependencies or other reasons.
1772 brokenPackages = [
1773 "av"
1774 "NetLogoR"
1775 "valse"
1776 "HierO"
1777 "HIBAG"
1778 "HiveR"
1779 "minired" # deprecated on CRAN
1780
1781 # Impure network access during build
1782 "BulkSignalR"
1783 "waddR"
1784 "tiledb"
1785 "switchr"
1786
1787 # ExperimentHub dependents, require net access during build
1788 "DuoClustering2018"
1789 "FieldEffectCrc"
1790 "GenomicDistributionsData"
1791 "hpar"
1792 "HDCytoData"
1793 "HMP16SData"
1794 "PANTHER_db"
1795 "RNAmodR_Data"
1796 "SCATEData"
1797 "SingleMoleculeFootprintingData"
1798 "TabulaMurisData"
1799 "benchmarkfdrData2019"
1800 "bodymapRat"
1801 "clustifyrdatahub"
1802 "CTexploreR"
1803 "depmap"
1804 "emtdata"
1805 "metaboliteIDmapping"
1806 "msigdb"
1807 "muscData"
1808 "org_Mxanthus_db"
1809 "scpdata"
1810 "signatureSearch"
1811 "nullrangesData"
1812 ];
1813
1814 otherOverrides = old: new: {
1815 ACME = old.ACME.overrideAttrs (attrs: {
1816 env = (attrs.env or { }) // {
1817 # Avoid incompatible pointer type error
1818 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-incompatible-pointer-types";
1819 };
1820 });
1821
1822 vegan3d = old.vegan3d.overrideAttrs (attrs: {
1823 RGL_USE_NULL = "true";
1824 });
1825
1826 # it can happen that the major version of arrow-cpp is ahead of the
1827 # rPackages.arrow that would be built from CRAN sources; therefore, to avoid
1828 # build failures and manual updates of the hash, we use the R source at
1829 # the GitHub release state of libarrow (arrow-cpp) in Nixpkgs. This may
1830 # not exactly represent the CRAN sources, but because patching of the
1831 # CRAN R package is mostly done to meet special CRAN build requirements,
1832 # this is a straightforward approach. Example where patching was necessary
1833 # -> arrow 14.0.0.2 on CRAN; was lagging behind libarrow release:
1834 # https://github.com/apache/arrow/issues/39698 )
1835 arrow = old.arrow.overrideAttrs (attrs: {
1836 src = pkgs.arrow-cpp.src;
1837 name = "r-arrow-${pkgs.arrow-cpp.version}";
1838 prePatch = "cd r";
1839 postPatch = ''
1840 patchShebangs configure
1841 '';
1842 buildInputs = attrs.buildInputs ++ [
1843 pkgs.arrow-cpp
1844 ];
1845 });
1846
1847 gifski = old.gifski.overrideAttrs (attrs: {
1848 cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
1849 src = attrs.src;
1850 sourceRoot = "gifski/src/myrustlib";
1851 hash = "sha256-yz6M3qDQPfT0HJHyK2wgzgl5sBh7EmdJ5zW8SJkk+wY=";
1852 };
1853
1854 cargoRoot = "src/myrustlib";
1855
1856 nativeBuildInputs = attrs.nativeBuildInputs ++ [
1857 pkgs.rustPlatform.cargoSetupHook
1858 pkgs.cargo
1859 pkgs.rustc
1860 ];
1861 });
1862
1863 gmapR = old.gmapR.overrideAttrs (attrs: {
1864 env = (attrs.env or { }) // {
1865 # Avoid incompatible pointer type error
1866 NIX_CFLAGS_COMPILE =
1867 attrs.env.NIX_CFLAGS_COMPILE
1868 + " -Wno-implicit-function-declaration -Wno-incompatible-pointer-types";
1869 };
1870 });
1871
1872 rvisidata = old.rvisidata.overrideAttrs (attrs: {
1873 postPatch = ''
1874 substituteInPlace R/main.r --replace-fail \
1875 "system(\"vd" "system(\"${lib.getBin pkgs.visidata}/bin/vd"
1876 substituteInPlace R/tmux.r --replace-fail \
1877 "return(\"vd\")" "return(\"${lib.getBin pkgs.visidata}/bin/vd\")"
1878 '';
1879 });
1880
1881 timeless = old.timeless.overrideAttrs (attrs: {
1882 preConfigure = "patchShebangs configure";
1883 cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
1884 src = attrs.src;
1885 sourceRoot = "timeless/src/rust";
1886 hash = "sha256-5TV7iCzaaFwROfJNO6pvSUbJBzV+wZlU5+ZK4AMT6X0=";
1887 };
1888
1889 cargoRoot = "src/rust";
1890
1891 nativeBuildInputs = attrs.nativeBuildInputs ++ [
1892 pkgs.rustPlatform.cargoSetupHook
1893 pkgs.cargo
1894 ];
1895 });
1896
1897 arcpbf = old.arcpbf.overrideAttrs (attrs: {
1898 postPatch = "patchShebangs configure";
1899 });
1900
1901 arcgisplaces = old.arcgisplaces.overrideAttrs (attrs: {
1902 postPatch = "patchShebangs configure";
1903 });
1904
1905 astgrepr = old.astgrepr.overrideAttrs (attrs: {
1906 postPatch = "patchShebangs configure";
1907 });
1908
1909 cartogramR = old.cartogramR.overrideAttrs (attrs: {
1910 postPatch = "patchShebangs configure";
1911 });
1912
1913 h3o = old.h3o.overrideAttrs (attrs: {
1914 postPatch = "patchShebangs configure";
1915 });
1916
1917 ironseed = old.ironseed.overrideAttrs (attrs: {
1918 postPatch = "patchShebangs configure";
1919 });
1920
1921 rshift = old.rshift.overrideAttrs (attrs: {
1922 postPatch = "patchShebangs configure";
1923 });
1924
1925 tomledit = old.tomledit.overrideAttrs (attrs: {
1926 postPatch = "patchShebangs configure";
1927 });
1928
1929 ymd = old.ymd.overrideAttrs (attrs: {
1930 postPatch = "patchShebangs configure";
1931 });
1932
1933 SynExtend = old.SynExtend.overrideAttrs (attrs: {
1934 # build might fail due to race condition
1935 enableParallelBuilding = false;
1936 });
1937
1938 orbweaver = old.orbweaver.overrideAttrs (attrs: {
1939 postPatch = "patchShebangs configure";
1940 nativeBuildInputs = attrs.nativeBuildInputs ++ [
1941 pkgs.cargo
1942 pkgs.rustc
1943 ];
1944 });
1945
1946 xml2 = old.xml2.overrideAttrs (attrs: {
1947 preConfigure = ''
1948 export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
1949 patchShebangs configure
1950 '';
1951 });
1952
1953 findpython = old.findpython.overrideAttrs (attrs: {
1954 postPatch = ''
1955 substituteInPlace "R/find_python_cmd.r" \
1956 --replace-fail 'python_cmds[which(python_cmds != "")]' \
1957 'python_cmds <- c(python_cmds, file.path("${lib.getBin pkgs.python3}", "bin", "python3"))
1958 python_cmds[which(python_cmds != "")]'
1959 '';
1960 });
1961
1962 fcl = old.fcl.overrideAttrs (attrs: {
1963 postPatch = "patchShebangs configure";
1964 });
1965
1966 fio = old.fio.overrideAttrs (attrs: {
1967 postPatch = "patchShebangs configure";
1968 });
1969
1970 hypeR = old.hypeR.overrideAttrs (attrs: {
1971 postPatch = ''
1972 substituteInPlace NAMESPACE R/db_msig.R --replace-fail \
1973 "msigdbr_show_species" "msigdbr_species"
1974 '';
1975 });
1976
1977 alcyon = old.alcyon.overrideAttrs (attrs: {
1978 configureFlags = [
1979 "--enable-force-openmp"
1980 ];
1981 });
1982
1983 awdb = old.awdb.overrideAttrs (attrs: {
1984 postPatch = ''
1985 patchShebangs configure
1986 '';
1987 });
1988
1989 ciflyr = old.ciflyr.overrideAttrs (attrs: {
1990 postPatch = "patchShebangs configure";
1991 });
1992
1993 clarabel = old.clarabel.overrideAttrs (attrs: {
1994 postPatch = ''
1995 patchShebangs configure
1996 '';
1997 });
1998
1999 cn_farms = old.cn_farms.overrideAttrs (attrs: {
2000 postPatch = ''
2001 # https://developer.r-project.org/blosxom.cgi/R-devel/NEWS/2025/01/08#n2025-01-08
2002 substituteInPlace "src/sparse_farms.c" \
2003 --replace-fail "Calloc" "R_Calloc" \
2004 --replace-fail "Free" "R_Free"
2005 '';
2006 });
2007
2008 datefixR = old.datefixR.overrideAttrs (attrs: {
2009 postPatch = "patchShebangs configure";
2010 });
2011
2012 PICS = old.PICS.overrideAttrs (attrs: {
2013 postPatch = ''
2014 # https://developer.r-project.org/blosxom.cgi/R-devel/NEWS/2025/01/08#n2025-01-08
2015 substituteInPlace "src/segment.c" \
2016 --replace-fail "Calloc" "R_Calloc"
2017 '';
2018 });
2019
2020 gadjid = old.gadjid.overrideAttrs (attrs: {
2021 postPatch = "patchShebangs configure";
2022 });
2023
2024 genoCN = old.genoCN.overrideAttrs (attrs: {
2025 postPatch = ''
2026 # https://developer.r-project.org/blosxom.cgi/R-devel/NEWS/2025/01/08#n2025-01-08
2027 substituteInPlace "src/xCNV.c" \
2028 --replace-fail "Calloc" "R_Calloc" \
2029 --replace-fail "Free" "R_Free"
2030 '';
2031 });
2032
2033 RBioFormats = old.RBioFormats.overrideAttrs (attrs: {
2034 # 1. Never download the jar file
2035 # 2. Use jar from pkgs.bftools instead
2036 # 3. Break the build if versions don't match
2037 propagatedBuildInputs = (attrs.propagatedBuildInputs or [ ]) ++ [ pkgs.bftools ];
2038
2039 postPatch = ''
2040 substituteInPlace "R/zzz.R" \
2041 --replace-fail '!file.exists(bf_jar)' 'FALSE' \
2042 --replace-fail \
2043 '.jpackage(pkg, lib.loc = lib, morePaths = c(jars, bf_jar))' \
2044 '.jpackage(pkg, lib.loc = lib, morePaths = union(jars, "${lib.getBin pkgs.bftools}/share/java/bioformats_package.jar"))' \
2045 --replace-fail 'bf_jar <-' 'stopifnot(bf_ver == "${pkgs.bftools.version}");bf_jar <-'
2046 '';
2047
2048 # Ensure that bftools version matches that in the package DESCRIPTION
2049 preInstall = ''
2050 rbf_version="$(sed -n 's/^BioFormats: //p' DESCRIPTION)"
2051 bf_version="${pkgs.bftools.version}"
2052 if [ "$rbf_version" != "$bf_version" ]; then
2053 echo "BioFormats version mismatch detected!"
2054 echo "RBioformats needs: $rbf_version"
2055 echo "bftools provides: $bf_version"
2056 exit 1
2057 fi
2058 '';
2059 });
2060
2061 rbm25 = old.rbm25.overrideAttrs (attrs: {
2062 postPatch = "patchShebangs configure";
2063 });
2064
2065 socratadata = old.socratadata.overrideAttrs (attrs: {
2066 postPatch = "patchShebangs configure";
2067 });
2068
2069 SQLFormatteR = old.SQLFormatteR.overrideAttrs (attrs: {
2070 postPatch = "patchShebangs configure";
2071 });
2072
2073 tok = old.tok.overrideAttrs (attrs: {
2074 postPatch = "patchShebangs configure";
2075 });
2076
2077 trigger = old.trigger.overrideAttrs (attrs: {
2078 postPatch = ''
2079 # https://developer.r-project.org/blosxom.cgi/R-devel/NEWS/2025/01/08#n2025-01-08
2080 substituteInPlace "src/trigger.c" \
2081 --replace-fail "Calloc" "R_Calloc" \
2082 --replace-fail "Free" "R_Free"
2083 '';
2084 });
2085
2086 lwgeom = old.lwgeom.overrideAttrs (attrs: {
2087 configureFlags = [
2088 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
2089 ];
2090 });
2091
2092 sf = old.sf.overrideAttrs (attrs: {
2093 configureFlags = [
2094 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
2095 ];
2096 });
2097
2098 terra = old.terra.overrideAttrs (attrs: {
2099 configureFlags = [
2100 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
2101 ];
2102 });
2103
2104 unsum = old.unsum.overrideAttrs (attrs: {
2105 postPatch = "patchShebangs configure";
2106 });
2107
2108 vapour = old.vapour.overrideAttrs (attrs: {
2109 configureFlags = [
2110 "--with-proj-lib=${pkgs.lib.getLib pkgs.proj}/lib"
2111 ];
2112 });
2113
2114 rzmq = old.rzmq.overrideAttrs (attrs: {
2115 preConfigure = "patchShebangs configure";
2116 });
2117
2118 nanoparquet = old.nanoparquet.overrideAttrs (attrs: {
2119 postPatch = "patchShebangs configure";
2120 });
2121
2122 nanonext = old.nanonext.overrideAttrs (attrs: {
2123 NIX_LDFLAGS = "-lnng -lmbedtls -lmbedx509 -lmbedcrypto";
2124 });
2125
2126 clustermq = old.clustermq.overrideAttrs (attrs: {
2127 preConfigure = "patchShebangs configure";
2128 });
2129
2130 Cairo = old.Cairo.overrideAttrs (attrs: {
2131 NIX_LDFLAGS = "-lfontconfig";
2132 });
2133
2134 curl = old.curl.overrideAttrs (attrs: {
2135 preConfigure = "patchShebangs configure";
2136 });
2137
2138 Cyclops = old.Cyclops.overrideAttrs (attrs: {
2139 preConfigure = "patchShebangs configure";
2140 });
2141
2142 RcppParallel = old.RcppParallel.overrideAttrs (attrs: {
2143 preConfigure = "patchShebangs configure";
2144 });
2145
2146 Colossus = old.Colossus.overrideAttrs (_: {
2147 postPatch = "patchShebangs configure";
2148 });
2149
2150 arcgisutils = old.arcgisutils.overrideAttrs (_: {
2151 postPatch = "patchShebangs configure";
2152 });
2153
2154 arcgisgeocode = old.arcgisgeocode.overrideAttrs (_: {
2155 postPatch = "patchShebangs configure";
2156 });
2157
2158 gmailr = old.gmailr.overrideAttrs (attrs: {
2159 postPatch = "patchShebangs configure";
2160 });
2161
2162 prqlr = old.prqlr.overrideAttrs (attrs: {
2163 postPatch = "patchShebangs configure";
2164 });
2165
2166 pingr = old.pingr.overrideAttrs (_: {
2167 postPatch = "patchShebangs configure";
2168 });
2169
2170 heck = old.heck.overrideAttrs (attrs: {
2171 postPatch = "patchShebangs configure";
2172 });
2173
2174 surtvep = old.surtvep.overrideAttrs (attrs: {
2175 postPatch = "patchShebangs configure";
2176 });
2177
2178 rtiktoken = old.rtiktoken.overrideAttrs (attrs: {
2179 postPatch = "patchShebangs configure";
2180 nativeBuildInputs = attrs.nativeBuildInputs ++ [
2181 pkgs.cargo
2182 pkgs.rustc
2183 ];
2184 });
2185
2186 purrr = old.purrr.overrideAttrs (attrs: {
2187 patchPhase = "patchShebangs configure";
2188 });
2189
2190 tergo = old.tergo.overrideAttrs (attrs: {
2191 patchPhase = "patchShebangs configure";
2192 });
2193
2194 luajr = old.luajr.overrideAttrs (attrs: {
2195 hardeningDisable = [ "format" ];
2196 postPatch = "patchShebangs configure";
2197 });
2198
2199 otelsdk = old.otelsdk.overrideAttrs (attrs: {
2200 postPatch = "patchShebangs configure";
2201 });
2202
2203 RcppArmadillo = old.RcppArmadillo.overrideAttrs (attrs: {
2204 patchPhase = "patchShebangs configure";
2205 });
2206
2207 RcppGetconf = old.RcppGetconf.overrideAttrs (attrs: {
2208 postPatch = "patchShebangs configure";
2209 });
2210
2211 SpliceWiz = old.SpliceWiz.overrideAttrs (attrs: {
2212 postPatch = "patchShebangs configure";
2213 });
2214
2215 xactonomial = old.xactonomial.overrideAttrs (attrs: {
2216 postPatch = "patchShebangs configure";
2217 });
2218
2219 zoomerjoin = old.zoomerjoin.overrideAttrs (attrs: {
2220 nativeBuildInputs = [
2221 pkgs.cargo
2222 pkgs.rustc
2223 ]
2224 ++ attrs.nativeBuildInputs;
2225 postPatch = "patchShebangs configure";
2226 });
2227
2228 AneuFinder = old.AneuFinder.overrideAttrs (attrs: {
2229 postPatch = ''
2230 substituteInPlace src/utility.cpp src/densities.cpp src/loghmm.cpp src/scalehmm.cpp \
2231 --replace-fail "Calloc(" "R_Calloc(" \
2232 --replace-fail "Free(" "R_Free("
2233 '';
2234 });
2235
2236 b64 = old.b64.overrideAttrs (attrs: {
2237 nativeBuildInputs =
2238 with pkgs;
2239 [
2240 cargo
2241 rustc
2242 ]
2243 ++ attrs.nativeBuildInputs;
2244 postPatch = "patchShebangs configure";
2245 });
2246
2247 ocf = old.ocf.overrideAttrs (attrs: {
2248 postPatch = "patchShebangs configure";
2249 });
2250
2251 data_table = old.data_table.overrideAttrs (attrs: {
2252 env = (attrs.env or { }) // {
2253 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fopenmp";
2254 };
2255 patchPhase = "patchShebangs configure";
2256 });
2257
2258 cisPath = old.cisPath.overrideAttrs (attrs: {
2259 hardeningDisable = [ "format" ];
2260 });
2261
2262 HilbertVis = old.HilbertVis.overrideAttrs (attrs: {
2263 hardeningDisable = [ "format" ];
2264 });
2265
2266 HilbertVisGUI = old.HilbertVisGUI.overrideAttrs (attrs: {
2267 hardeningDisable = [ "format" ];
2268 });
2269
2270 libdeflate = old.libdeflate.overrideAttrs (attrs: {
2271 postPatch = "patchShebangs configure";
2272 });
2273
2274 MANOR = old.MANOR.overrideAttrs (attrs: {
2275 hardeningDisable = [ "format" ];
2276 });
2277
2278 rGADEM = old.rGADEM.overrideAttrs (attrs: {
2279 hardeningDisable = [ "format" ];
2280 });
2281
2282 rsgeo = old.rsgeo.overrideAttrs (attrs: {
2283 nativeBuildInputs = [ pkgs.cargo ] ++ attrs.nativeBuildInputs;
2284 postPatch = "patchShebangs configure";
2285 });
2286
2287 instantiate = old.instantiate.overrideAttrs (attrs: {
2288 postPatch = "patchShebangs configure";
2289 });
2290
2291 exifr = old.exifr.overrideAttrs (attrs: {
2292 postPatch = ''
2293 for f in .onLoad .onAttach ; do
2294 substituteInPlace R/load_hook.R \
2295 --replace-fail \
2296 "$f <- function(libname, pkgname) {" \
2297 "$f <- function(libname, pkgname) {
2298 options(
2299 exifr.perlpath = \"${lib.getBin pkgs.perl}/bin/perl\",
2300 exifr.exiftoolcommand = \"${lib.getBin pkgs.exiftool}/bin/exiftool\"
2301 )"
2302 done
2303 '';
2304 });
2305
2306 NGCHM = old.NGCHM.overrideAttrs (attrs: {
2307 postPatch = ''
2308 substituteInPlace "inst/base.config/conf.d/01-server-protocol-scl.R" \
2309 --replace-fail \
2310 "/bin/hostname" "${lib.getBin pkgs.hostname}/bin/hostname"
2311 '';
2312 });
2313
2314 metahdep = old.metahdep.overrideAttrs (attrs: {
2315 env = (attrs.env or { }) // {
2316 # Avoid incompatible pointer type error
2317 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-int-conversion";
2318 };
2319 });
2320
2321 ModelMetrics = old.ModelMetrics.overrideAttrs (attrs: {
2322 env = (attrs.env or { }) // {
2323 NIX_CFLAGS_COMPILE =
2324 attrs.env.NIX_CFLAGS_COMPILE + lib.optionalString stdenv.hostPlatform.isDarwin " -fopenmp";
2325 };
2326 });
2327
2328 rawrr = old.rawrr.overrideAttrs (attrs: {
2329 postPatch = ''
2330 substituteInPlace "R/zzz.R" "R/dotNetAssembly.R" --replace-warn \
2331 "Sys.which('mono')" "'${lib.getBin pkgs.mono}/bin/mono'"
2332
2333 substituteInPlace "R/dotNetAssembly.R" --replace-warn \
2334 "Sys.which(\"xbuild\")" "\"${lib.getBin pkgs.mono}/bin/xbuild\""
2335
2336 substituteInPlace "R/dotNetAssembly.R" --replace-warn \
2337 "cmd <- ifelse(Sys.which(\"msbuild\") != \"\", \"msbuild\", \"xbuild\")" \
2338 "cmd <- \"${lib.getBin pkgs.mono}/bin/xbuild\""
2339
2340 substituteInPlace "R/rawrr.R" --replace-warn \
2341 "Sys.which(\"mono\")" "\"${lib.getBin pkgs.mono}/bin/mono\""
2342 '';
2343 });
2344
2345 rpf = old.rpf.overrideAttrs (attrs: {
2346 patchPhase = "patchShebangs configure";
2347 });
2348
2349 rJava = old.rJava.overrideAttrs (attrs: {
2350 preConfigure = ''
2351 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
2352 export JAVA_HOME=${pkgs.jdk}
2353 substituteInPlace R/zzz.R.in \
2354 --replace-fail ".onLoad <- function(libname, pkgname) {" \
2355 ".onLoad <- function(libname, pkgname) {
2356 Sys.setenv(\"JAVA_HOME\" = Sys.getenv(\"JAVA_HOME\", unset = \"${pkgs.jdk}\"))"
2357 '';
2358 });
2359
2360 JavaGD = old.JavaGD.overrideAttrs (attrs: {
2361 preConfigure = ''
2362 export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
2363 export JAVA_HOME=${pkgs.jdk}
2364 '';
2365 });
2366
2367 jqr = old.jqr.overrideAttrs (attrs: {
2368 preConfigure = ''
2369 patchShebangs configure
2370 '';
2371 });
2372
2373 pathfindR = old.pathfindR.overrideAttrs (attrs: {
2374 postPatch = ''
2375 substituteInPlace "R/zzz.R" \
2376 --replace-fail " check_java_version()" " Sys.setenv(JAVA_HOME = \"${lib.getBin pkgs.jre_minimal}\"); check_java_version()"
2377 substituteInPlace "R/active_snw_search.R" \
2378 --replace-fail "system(paste0(\"java" "system(paste0(\"${lib.getBin pkgs.jre_minimal}/bin/java"
2379 '';
2380 });
2381
2382 pbdZMQ = old.pbdZMQ.overrideAttrs (attrs: {
2383 postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
2384 for file in R/*.{r,r.in}; do
2385 sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.cctools}/bin/\1"#g' $file
2386 done
2387 '';
2388 });
2389
2390 quarto = old.quarto.overrideAttrs (attrs: {
2391 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [ pkgs.quarto ];
2392 postPatch = ''
2393 substituteInPlace "R/quarto.R" \
2394 --replace-fail "Sys.getenv(\"QUARTO_PATH\", unset = NA_character_)" "Sys.getenv(\"QUARTO_PATH\", unset = '${lib.getBin pkgs.quarto}/bin/quarto')"
2395 '';
2396 });
2397
2398 Rhisat2 = old.Rhisat2.overrideAttrs (attrs: {
2399 enableParallelBuilding = false;
2400 });
2401
2402 s2 = old.s2.overrideAttrs (attrs: {
2403 preConfigure = ''
2404 substituteInPlace "configure" \
2405 --replace-fail "absl_s2" "absl_flags absl_check"
2406 '';
2407 });
2408
2409 Rmpi = old.Rmpi.overrideAttrs (attrs: {
2410 configureFlags = [
2411 "--with-Rmpi-type=OPENMPI"
2412 ];
2413 });
2414
2415 Rmpfr = old.Rmpfr.overrideAttrs (attrs: {
2416 configureFlags = [
2417 "--with-mpfr-include=${pkgs.mpfr.dev}/include"
2418 ];
2419 });
2420
2421 covidsymptom = old.covidsymptom.overrideAttrs (attrs: {
2422 preConfigure = "rm R/covidsymptomdata.R";
2423 });
2424
2425 cubature = old.cubature.overrideAttrs (attrs: {
2426 enableParallelBuilding = false;
2427 });
2428
2429 RVowpalWabbit = old.RVowpalWabbit.overrideAttrs (attrs: {
2430 configureFlags = [
2431 "--with-boost=${pkgs.boost.dev}"
2432 "--with-boost-libdir=${pkgs.boost.out}/lib"
2433 ];
2434 });
2435
2436 RAppArmor = old.RAppArmor.overrideAttrs (attrs: {
2437 patches = [ ./patches/RAppArmor.patch ];
2438 LIBAPPARMOR_HOME = pkgs.libapparmor;
2439 });
2440
2441 # Append cargo path to path variable
2442 # This will provide cargo in case it's not set by the user
2443 rextendr = old.rextendr.overrideAttrs (attrs: {
2444 postPatch = ''
2445 substituteInPlace R/zzz.R --replace-fail \
2446 ".onLoad <- function(...) {" \
2447 '.onLoad <- function(...) {
2448 Sys.setenv(PATH = paste0(Sys.getenv("PATH"), ":${lib.getBin pkgs.cargo}/bin"))'
2449 '';
2450 });
2451
2452 RMySQL = old.RMySQL.overrideAttrs (attrs: {
2453 MYSQL_DIR = "${pkgs.libmysqlclient}";
2454 PKGCONFIG_CFLAGS = "-I${pkgs.libmysqlclient.dev}/include/mysql";
2455 NIX_CFLAGS_LINK = "-L${pkgs.libmysqlclient}/lib/mysql -lmysqlclient";
2456 preConfigure = ''
2457 patchShebangs configure
2458 '';
2459 });
2460
2461 devEMF = old.devEMF.overrideAttrs (attrs: {
2462 NIX_CFLAGS_LINK = "-L${pkgs.libxft.out}/lib -lXft";
2463 NIX_LDFLAGS = "-lX11";
2464 });
2465
2466 hdf5r = old.hdf5r.overrideAttrs (attrs: {
2467 buildInputs = attrs.buildInputs ++ [ new.Rhdf5lib.hdf5 ];
2468 });
2469
2470 slfm = old.slfm.overrideAttrs (attrs: {
2471 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
2472 });
2473
2474 SamplerCompare = old.SamplerCompare.overrideAttrs (attrs: {
2475 PKG_LIBS = "-L${pkgs.blas}/lib -lblas -L${pkgs.lapack}/lib -llapack";
2476 });
2477
2478 FLAMES = old.FLAMES.overrideAttrs (attrs: {
2479 patches = [ ./patches/FLAMES.patch ];
2480 });
2481
2482 openssl = old.openssl.overrideAttrs (attrs: {
2483 preConfigure = ''
2484 patchShebangs configure
2485 '';
2486 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
2487 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
2488 });
2489
2490 websocket = old.websocket.overrideAttrs (attrs: {
2491 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
2492 PKGCONFIG_LIBS = "-Wl,-rpath,${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.openssl}/lib -lssl -lcrypto";
2493 });
2494
2495 Rserve = old.Rserve.overrideAttrs (attrs: {
2496 patches = [ ./patches/Rserve.patch ];
2497 configureFlags = [
2498 "--with-server"
2499 "--with-client"
2500 ];
2501 });
2502
2503 universalmotif = old.universalmotif.overrideAttrs (attrs: {
2504 patches = [ ./patches/universalmotif.patch ];
2505 });
2506
2507 V8 = old.V8.overrideAttrs (attrs: {
2508 postPatch = ''
2509 substituteInPlace configure \
2510 --replace-fail " -lv8_libplatform" ""
2511 # Bypass the test checking if pointer compression is needed
2512 substituteInPlace configure \
2513 --replace-fail "./pctest1" "true"
2514 '';
2515
2516 preConfigure = ''
2517 # when unpinning the version, don't forget about the other usage earlier
2518 export INCLUDE_DIR=${pkgs.nodejs_22.libv8}/include
2519 export LIB_DIR=${pkgs.nodejs_22.libv8}/lib
2520 patchShebangs configure
2521 '';
2522
2523 R_MAKEVARS_SITE = lib.optionalString (pkgs.stdenv.system == "aarch64-linux") (
2524 pkgs.writeText "Makevars" ''
2525 CXX14PICFLAGS = -fPIC
2526 ''
2527 );
2528 });
2529
2530 acs = old.acs.overrideAttrs (attrs: {
2531 preConfigure = ''
2532 patchShebangs configure
2533 '';
2534 });
2535
2536 gdtools = old.gdtools.overrideAttrs (attrs: {
2537 preConfigure = ''
2538 patchShebangs configure
2539 '';
2540 NIX_LDFLAGS = "-lfontconfig -lfreetype";
2541 });
2542
2543 magick = old.magick.overrideAttrs (attrs: {
2544 preConfigure = ''
2545 patchShebangs configure
2546 '';
2547 });
2548
2549 libgeos = old.libgeos.overrideAttrs (attrs: {
2550 preConfigure = ''
2551 patchShebangs configure
2552 '';
2553 });
2554
2555 protolite = old.protolite.overrideAttrs (attrs: {
2556 preConfigure = ''
2557 patchShebangs configure
2558 '';
2559 });
2560
2561 rgoslin = old.rgoslin.overrideAttrs (attrs: {
2562 enableParallelBuilding = false;
2563 });
2564
2565 rpanel = old.rpanel.overrideAttrs (attrs: {
2566 preConfigure = ''
2567 export TCLLIBPATH="${pkgs.tclPackages.bwidget}/lib/bwidget${pkgs.tclPackages.bwidget.version}"
2568 '';
2569 TCLLIBPATH = "${pkgs.tclPackages.bwidget}/lib/bwidget${pkgs.tclPackages.bwidget.version}";
2570 });
2571
2572 networkscaleup = old.networkscaleup.overrideAttrs (attrs: {
2573 env = (attrs.env or { }) // {
2574 # needed to avoid "log limit exceeded" on Hydra
2575 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
2576 };
2577
2578 # consumes a lot of resources in parallel
2579 enableParallelBuilding = false;
2580 });
2581
2582 OpenMx = old.OpenMx.overrideAttrs (attrs: {
2583 env = (attrs.env or { }) // {
2584 # needed to avoid "log limit exceeded" on Hydra
2585 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
2586 };
2587 preConfigure = ''
2588 patchShebangs configure
2589 '';
2590 });
2591
2592 odbc = old.odbc.overrideAttrs (attrs: {
2593 preConfigure = ''
2594 patchShebangs configure
2595 '';
2596 });
2597
2598 x13binary = old.x13binary.overrideAttrs (attrs: {
2599 preConfigure = ''
2600 patchShebangs configure
2601 '';
2602 });
2603
2604 FlexReg = old.FlexReg.overrideAttrs (attrs: {
2605 env = (attrs.env or { }) // {
2606 # needed to avoid "log limit exceeded" on Hydra
2607 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -Wno-ignored-attributes";
2608 };
2609
2610 # consumes a lot of resources in parallel
2611 enableParallelBuilding = false;
2612 });
2613
2614 geojsonio = old.geojsonio.overrideAttrs (attrs: {
2615 buildInputs = [ cacert ] ++ attrs.buildInputs;
2616 });
2617
2618 float = old.float.overrideAttrs (attrs: {
2619 enableParallelBuilding = false;
2620 });
2621
2622 redatamx = old.redatamx.overrideAttrs (attrs: {
2623 preConfigure =
2624 let
2625 redatam-core = pkgs.fetchzip {
2626 url = "https://redatam-core.s3.us-west-2.amazonaws.com/core-dev/linux/redatamx-core-linux-20241222.zip";
2627 hash = "sha256-CagDpv7v5fj/NgaC5fmYc5UuKuBVlT3gauH2ItVnIIY=";
2628 };
2629 in
2630 ''
2631 mkdir -p ./inst/redengine/
2632 cp ${redatam-core}/lib/libredengine-1.0.0-rc2.so ./inst/redengine/libredengine-1.0.0-rc2.so
2633 '';
2634 });
2635
2636 XLConnect =
2637 let
2638 poi-ooxml-full = fetchurl {
2639 url = "https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml-full/5.4.1/poi-ooxml-full-5.4.1.jar";
2640 hash = "sha256-xRsFFlXVjXTV64nn03NscFLCV09Dx52wyKg60hb23Tc=";
2641 };
2642 poi-ooxml = fetchurl {
2643 url = "https://repo1.maven.org/maven2/org/apache/poi/poi-ooxml/5.4.1/poi-ooxml-5.4.1.jar";
2644 hash = "sha256-/SAMnm901wQWCpfp1SBBmV7YdDlFRTAAHt2SBojxn1M=";
2645 };
2646 poi = fetchurl {
2647 url = "https://repo1.maven.org/maven2/org/apache/poi/poi/5.4.1/poi-5.4.1.jar";
2648 hash = "sha256-2lq/QtpGBMWnvKOJVq9unW8ZbZttTLfqvuT0gLWA1QU=";
2649 };
2650 commons-compress = fetchurl {
2651 url = "https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.27.1/commons-compress-1.27.1.jar";
2652 hash = "sha256-KT2A9UtTa3QJXc1+o88KKbv8NAJRkoEzJJX0Qg03DRY=";
2653 };
2654 commons-lang3 = fetchurl {
2655 url = "https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.16.0/commons-lang3-3.16.0.jar";
2656 hash = "sha256-CHCd101gK3Bc5AF9JlRCEAVqS6WD1bIMCTc0Bv56APg=";
2657 };
2658 xmlbeans = fetchurl {
2659 url = "https://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/5.3.0/xmlbeans-5.3.0.jar";
2660 hash = "sha256-bMado7TTW4PF5HfNTauiBORBCYM+NK8rmoosh4gomRc=";
2661 };
2662 commons-collections4 = fetchurl {
2663 url = "https://repo1.maven.org/maven2/org/apache/commons/commons-collections4/4.4/commons-collections4-4.4.jar";
2664 hash = "sha256-Hfi5QwtcjtFD14FeQD4z71NxskAKrb6b2giDdi4IRtE=";
2665 };
2666 commons-math3 = fetchurl {
2667 url = "https://repo1.maven.org/maven2/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.jar";
2668 hash = "sha256-HlbXsFjSi2Wr0la4RY44hbZ0wdWI+kPNfRy7nH7yswg=";
2669 };
2670 log4j-api = fetchurl {
2671 url = "https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api/2.24.3/log4j-api-2.24.3.jar";
2672 hash = "sha256-W0oKDNDnUd7UMcFiRCvb3VMyjR+Lsrrl/Bu+7g9m2A8=";
2673 };
2674 commons-codec = fetchurl {
2675 url = "https://repo1.maven.org/maven2/commons-codec/commons-codec/1.18.0/commons-codec-1.18.0.jar";
2676 hash = "sha256-ugBfMEzvkqPe3iSjitWsm4r8zw2PdYOdbBM4Y0z39uQ=";
2677 };
2678 commons-io = fetchurl {
2679 url = "https://repo1.maven.org/maven2/commons-io/commons-io/2.18.0/commons-io-2.18.0.jar";
2680 hash = "sha256-88oPjWPEDiOlbVQQHGDV7e4Ta0LYS/uFvHljCTEJz4s=";
2681 };
2682 SparseBitSet = fetchurl {
2683 url = "https://repo1.maven.org/maven2/com/zaxxer/SparseBitSet/1.3/SparseBitSet-1.3.jar";
2684 hash = "sha256-92uFrbDAByGuJnt8/eTaf3HTEhzCFgyfwAwMifjFPIo=";
2685 };
2686 in
2687 old.XLConnect.overrideAttrs (attrs: {
2688 preConfigure = ''
2689 cp ${poi-ooxml-full} inst/java/poi-ooxml-full-5.4.1.jar
2690 cp ${poi-ooxml} inst/java/poi-ooxml-5.4.1.jar
2691 cp ${poi} inst/java/poi-5.4.1.jar
2692 cp ${commons-compress} inst/java/commons-compress-1.27.1.jar
2693 cp ${commons-lang3} inst/java/commons-lang3-3.16.0.jar
2694 cp ${xmlbeans} inst/java/xmlbeans-5.3.0.jar
2695 cp ${commons-collections4} inst/java/commons-collections4-4.4.jar
2696 cp ${commons-math3} inst/java/commons-math3-3.6.1.jar
2697 cp ${log4j-api} inst/java/log4j-api-2.24.3.jar
2698 cp ${commons-codec} inst/java/commons-codec-1.18.0.jar
2699 cp ${commons-io} inst/java/commons-io-2.18.0.jar
2700 cp ${SparseBitSet} inst/java/SparseBitSet-1.3.jar
2701 '';
2702
2703 postPatch = ''
2704 substituteInPlace R/onLoad.R \
2705 --replace-fail 'system2("java",' 'system2("${lib.getExe pkgs.jre_headless}",'
2706
2707 # Misleading startup message, JARs are downloaded at build-time
2708 substituteInPlace R/onAttach.R \
2709 --replace-fail 'if(file.exists(file.path(libname, pkgname, ".fail"))){' 'if(FALSE){'
2710 '';
2711 });
2712
2713 immunotation =
2714 let
2715 MHC41alleleList = fetchurl {
2716 url = "https://services.healthtech.dtu.dk/services/NetMHCpan-4.1/allele.list";
2717 hash = "sha256-CRZ+0uHzcq5zK5eONucAChXIXO8tnq5sSEAS80Z7jhg=";
2718 };
2719
2720 MHCII40alleleList = fetchurl {
2721 url = "https://services.healthtech.dtu.dk/services/NetMHCIIpan-4.0/alleles_name.list";
2722 hash = "sha256-K4Ic2NUs3P4IkvOODwZ0c4Yh8caex5Ih0uO5jXRHp40=";
2723 };
2724
2725 # List of valid countries, regions and ethnic groups
2726 # The original page is changing a bit every day, but the relevant
2727 # content does not. Use archive.org to get a stable snapshot.
2728 # It can be updated from time to time, or when the package becomes
2729 # deficient. This may be difficult to know.
2730 # Update the snapshot date, and add id_ after it, as described here:
2731 # https://web.archive.org/web/20130806040521/http://faq.web.archive.org/page-without-wayback-code/
2732 validGeographics = fetchurl {
2733 url = "https://web.archive.org/web/20240418194005id_/http://www.allelefrequencies.net/hla6006a.asp";
2734 hash = "sha256-m7Wkmh/cPxeqn94LwoznIh+fcFXskmSGErUYj6kTqak=";
2735 };
2736 in
2737 old.immunotation.overrideAttrs (attrs: {
2738 patches = [ ./patches/immunotation.patch ];
2739 postPatch = ''
2740 substituteInPlace "R/external_resources_input.R" --replace-fail \
2741 "nix-NetMHCpan-4.1-allele-list" ${MHC41alleleList}
2742
2743 substituteInPlace "R/external_resources_input.R" --replace-fail \
2744 "nix-NETMHCIIpan-4.0-alleles-name-list" ${MHCII40alleleList}
2745
2746 substituteInPlace "R/AFND_interface.R" --replace-fail \
2747 "nix-valid-geographics" ${validGeographics}
2748 '';
2749 });
2750
2751 nearfar =
2752 let
2753 angrist = fetchurl {
2754 url = "https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv";
2755 hash = "sha256-lb+HMHnRGonc26merFGB0B7Vk1Lk+sIJlay+JtQC8m4=";
2756 };
2757 in
2758 old.nearfar.overrideAttrs (attrs: {
2759 postPatch = ''
2760 substituteInPlace "R/nearfar.R" --replace-fail \
2761 'url("https://raw.githubusercontent.com/joerigdon/nearfar/master/angrist.csv")' '"${angrist}"'
2762 '';
2763 });
2764
2765 BiocParallel = old.BiocParallel.overrideAttrs (attrs: {
2766 env = (attrs.env or { }) // {
2767 NIX_CFLAGS_COMPILE =
2768 attrs.env.NIX_CFLAGS_COMPILE
2769 + lib.optionalString stdenv.hostPlatform.isDarwin " -Wno-error=missing-template-arg-list-after-template-kw";
2770 };
2771 });
2772
2773 rstan = old.rstan.overrideAttrs (attrs: {
2774 env = (attrs.env or { }) // {
2775 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
2776 };
2777 });
2778
2779 mongolite = old.mongolite.overrideAttrs (attrs: {
2780 preConfigure = ''
2781 patchShebangs configure
2782 '';
2783 PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
2784 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";
2785 });
2786
2787 ChemmineOB = old.ChemmineOB.overrideAttrs (attrs: {
2788 # pkg-config knows openbabel-3 without the .0
2789 # Eigen3 is also looked for in the wrong location
2790 # pointer was changed in newer version of openbabel:
2791 # https://github.com/openbabel/openbabel/commit/305a6fd3183540e4a8ae1d79d10bf1860e6aa373
2792 postPatch = ''
2793 substituteInPlace configure \
2794 --replace-fail openbabel-3.0 openbabel-3
2795 substituteInPlace src/Makevars.in \
2796 --replace-fail "-I/usr/include/eigen3" "-I${pkgs.eigen}/include/eigen3"
2797 substituteInPlace src/ChemmineOB.cpp \
2798 --replace-fail "obsharedptr<" "std::shared_ptr<"
2799 '';
2800
2801 # copied from fastnlo-toolkit:
2802 # None of our currently packaged versions of swig are C++17-friendly
2803 # Use a workaround from https://github.com/swig/swig/issues/1538
2804 env = (attrs.env or { }) // {
2805 NIX_CFLAGS_COMPILE =
2806 (attrs.env.NIX_CFLAGS_COMPILE or "")
2807 + lib.optionalString stdenv.hostPlatform.isDarwin " -D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES";
2808 };
2809 });
2810
2811 ps = old.ps.overrideAttrs (attrs: {
2812 preConfigure = "patchShebangs configure";
2813 });
2814
2815 rlang = old.rlang.overrideAttrs (attrs: {
2816 preConfigure = "patchShebangs configure";
2817 });
2818
2819 systemfonts = old.systemfonts.overrideAttrs (attrs: {
2820 preConfigure = "patchShebangs configure";
2821 });
2822
2823 littler = old.littler.overrideAttrs (
2824 attrs: with pkgs; {
2825 buildInputs = [
2826 pcre
2827 xz
2828 zlib
2829 bzip2
2830 icu
2831 which
2832 zstd.dev
2833 ]
2834 ++ attrs.buildInputs;
2835 postInstall = ''
2836 install -d $out/bin $out/share/man/man1
2837 ln -s ../library/littler/bin/r $out/bin/r
2838 ln -s ../library/littler/bin/r $out/bin/lr
2839 ln -s ../../../library/littler/man-page/r.1 $out/share/man/man1
2840 # these won't run without special provisions, so better remove them
2841 rm -r $out/library/littler/script-tests
2842 '';
2843 }
2844 );
2845
2846 lpsymphony = old.lpsymphony.overrideAttrs (attrs: {
2847 preConfigure = ''
2848 patchShebangs configure
2849 '';
2850 });
2851
2852 sodium = old.sodium.overrideAttrs (
2853 attrs: with pkgs; {
2854 preConfigure = ''
2855 patchShebangs configure
2856 '';
2857 nativeBuildInputs = [ pkg-config ] ++ attrs.nativeBuildInputs;
2858 buildInputs = [ libsodium.dev ] ++ attrs.buildInputs;
2859 }
2860 );
2861
2862 keyring = old.keyring.overrideAttrs (attrs: {
2863 preConfigure = ''
2864 patchShebangs configure
2865 '';
2866 });
2867
2868 Rhtslib = old.Rhtslib.overrideAttrs (attrs: {
2869 preConfigure = ''
2870 substituteInPlace R/zzz.R --replace-fail "-lcurl" "-L${pkgs.curl.out}/lib -lcurl"
2871 '';
2872 });
2873
2874 h2o = old.h2o.overrideAttrs (attrs: {
2875 preConfigure = ''
2876 # prevent download of jar file during install and postpone to first use
2877 sed -i '/downloadJar()/d' R/zzz.R
2878
2879 # during runtime the package directory is not writable as it's in the
2880 # nix store, so store the jar in the user's cache directory instead
2881 substituteInPlace R/connection.R --replace-fail \
2882 'dest_file <- file.path(dest_folder, "h2o.jar")' \
2883 'dest_file <- file.path("~/.cache/", "h2o.jar")'
2884 '';
2885 });
2886
2887 SICtools = old.SICtools.overrideAttrs (attrs: {
2888 postPatch = ''
2889 substituteInPlace src/Makefile --replace-fail "-lcurses" "-lncurses"
2890 '';
2891 hardeningDisable = [ "format" ];
2892 });
2893
2894 Rbwa = old.Rbwa.overrideAttrs (attrs: {
2895 # Parallel build cleans up *.o before they can be packed in a library
2896 postPatch = ''
2897 substituteInPlace src/Makefile --replace-fail \
2898 "all:\$(PROG) ../inst/bwa clean" \
2899 "all:\$(PROG) ../inst/bwa" \
2900 '';
2901 });
2902
2903 ROracle = old.ROracle.overrideAttrs (attrs: {
2904 configureFlags = [
2905 "--with-oci-lib=${pkgs.oracle-instantclient.lib}/lib"
2906 "--with-oci-inc=${pkgs.oracle-instantclient.dev}/include"
2907 ];
2908 });
2909
2910 xslt = old.xslt.overrideAttrs (attrs: {
2911 env = (attrs.env or { }) // {
2912 NIX_CFLAGS_COMPILE = attrs.env.NIX_CFLAGS_COMPILE + " -fpermissive";
2913 };
2914 });
2915
2916 sparklyr = old.sparklyr.overrideAttrs (attrs: {
2917 # Pyspark's spark is full featured and better maintained than pkgs.spark
2918 preConfigure = ''
2919 if grep "onLoad" R/zzz.R; then
2920 echo "onLoad is already present, patch needs to be updated!"
2921 exit 1
2922 fi
2923
2924 cat >> R/zzz.R <<EOF
2925 .onLoad <- function(...) {
2926 Sys.setenv("SPARK_HOME" = Sys.getenv("SPARK_HOME", unset = "${pkgs.python3Packages.pyspark}/${pkgs.python3Packages.python.sitePackages}/pyspark"))
2927 Sys.setenv("JAVA_HOME" = Sys.getenv("JAVA_HOME", unset = "${pkgs.jdk}"))
2928 }
2929 EOF
2930 '';
2931 });
2932
2933 rrd = old.rrd.overrideAttrs (attrs: {
2934 preConfigure = ''
2935 patchShebangs configure
2936 '';
2937 });
2938
2939 ChIPXpress = old.ChIPXpress.override { hydraPlatforms = [ ]; };
2940
2941 rgl = old.rgl.overrideAttrs (attrs: {
2942 RGL_USE_NULL = "true";
2943 });
2944
2945 Rrdrand = old.Rrdrand.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
2946
2947 symengine = old.symengine.overrideAttrs (_: {
2948 preConfigure = ''
2949 rm configure
2950 cat > src/Makevars << EOF
2951 PKG_LIBS=-lsymengine
2952 all: $(SHLIB)
2953 EOF
2954 '';
2955 });
2956
2957 RandomFieldsUtils = old.RandomFieldsUtils.override {
2958 platforms = lib.platforms.x86_64 ++ lib.platforms.x86;
2959 };
2960
2961 flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
2962
2963 RcppCGAL = old.RcppCGAL.overrideAttrs (_: {
2964 postPatch = "patchShebangs configure";
2965 });
2966
2967 httr2 = old.httr2.overrideAttrs (attrs: {
2968 preConfigure = "patchShebangs configure";
2969 });
2970
2971 dbarts = old.dbarts.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; };
2972
2973 geomorph = old.geomorph.overrideAttrs (attrs: {
2974 RGL_USE_NULL = "true";
2975 });
2976
2977 gpuMagic = old.gpuMagic.overrideAttrs (_: {
2978 hardeningDisable = [ "format" ];
2979 });
2980
2981 Rdisop = old.Rdisop.overrideAttrs (_: {
2982 hardeningDisable = [ "format" ];
2983 });
2984
2985 opencv =
2986 let
2987 opencvGtk = pkgs.opencv.override (old: {
2988 enableGtk2 = true;
2989 });
2990 in
2991 old.opencv.overrideAttrs (attrs: {
2992 buildInputs = attrs.buildInputs ++ [ opencvGtk ];
2993 });
2994
2995 Rhdf5lib =
2996 let
2997 hdf5 = pkgs.hdf5_1_10;
2998 in
2999 old.Rhdf5lib.overrideAttrs (attrs: {
3000 propagatedBuildInputs = attrs.propagatedBuildInputs ++ [
3001 hdf5.dev
3002 pkgs.libaec
3003 ];
3004 patches = [ ./patches/Rhdf5lib.patch ];
3005 passthru.hdf5 = hdf5;
3006 });
3007
3008 rhdf5filters = old.rhdf5filters.overrideAttrs (attrs: {
3009 patches = [ ./patches/rhdf5filters.patch ];
3010 });
3011
3012 rhdf5 = old.rhdf5.overrideAttrs (attrs: {
3013 patches = [ ./patches/rhdf5.patch ];
3014 env.NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
3015 });
3016
3017 rmarkdown = old.rmarkdown.overrideAttrs (_: {
3018 preConfigure = ''
3019 substituteInPlace R/pandoc.R \
3020 --replace-fail '"~/opt/pandoc"' '"~/opt/pandoc", "${pkgs.pandoc}/bin"'
3021 '';
3022 });
3023
3024 webfakes = old.webfakes.overrideAttrs (_: {
3025 postPatch = "patchShebangs configure";
3026 });
3027
3028 redland = old.redland.overrideAttrs (_: {
3029 PKGCONFIG_CFLAGS = "-I${pkgs.redland}/include -I${pkgs.librdf_raptor2}/include/raptor2 -I${pkgs.librdf_rasqal}/include/rasqal";
3030 PKGCONFIG_LIBS = "-L${pkgs.redland}/lib -L${pkgs.librdf_raptor2}/lib -L${pkgs.librdf_rasqal}/lib -lrdf -lraptor2 -lrasqal";
3031 });
3032
3033 textshaping = old.textshaping.overrideAttrs (attrs: {
3034 env.NIX_LDFLAGS = "-lfribidi -lharfbuzz";
3035 });
3036
3037 httpuv = old.httpuv.overrideAttrs (_: {
3038 preConfigure = ''
3039 patchShebangs configure
3040 '';
3041 });
3042
3043 oligo = old.oligo.overrideAttrs (_: {
3044 hardeningDisable = [ "format" ];
3045 });
3046
3047 tesseract = old.tesseract.overrideAttrs (_: {
3048 preConfigure = ''
3049 substituteInPlace configure \
3050 --replace-fail 'PKG_CONFIG_NAME="tesseract"' 'PKG_CONFIG_NAME="tesseract lept"'
3051 '';
3052 });
3053
3054 ijtiff = old.ijtiff.overrideAttrs (_: {
3055 preConfigure = ''
3056 patchShebangs configure
3057 '';
3058 });
3059
3060 iscream =
3061 let
3062 # https://huishenlab.github.io/iscream/articles/htslib.html
3063 htslib-deflate = pkgs.htslib.overrideAttrs (attrs: {
3064 buildInputs = attrs.buildInputs ++ [ pkgs.libdeflate ];
3065 });
3066 in
3067 old.iscream.overrideAttrs (attrs: {
3068 # Rhtslib (in LinkingTo) is not needed if we provide a proper htslib
3069 propagatedBuildInputs =
3070 builtins.filter (el: el != pkgs.rPackages.Rhtslib) attrs.propagatedBuildInputs
3071 ++ [ htslib-deflate ];
3072 });
3073
3074 torch = old.torch.overrideAttrs (attrs: {
3075 preConfigure = ''
3076 patchShebangs configure
3077 '';
3078 });
3079
3080 pak = old.pak.overrideAttrs (attrs: {
3081 preConfigure = ''
3082 patchShebangs configure
3083 patchShebangs src/library/curl/configure
3084 patchShebangs src/library/keyring/configure
3085 patchShebangs src/library/pkgdepends/configure
3086 patchShebangs src/library/ps/configure
3087 '';
3088 });
3089
3090 pkgdepends = old.pkgdepends.overrideAttrs (attrs: {
3091 postPatch = ''
3092 patchShebangs configure
3093 '';
3094 });
3095 };
3096in
3097self