nixpkgs/pkgs/development/r-modules/default.nix
Linus Heckemann 1e840fc421 rgl: fix build
It seems that the dev output of libGLU needs to be included explicitly
for this to work. I've also moved the libraries from nativeBuildInputs
to buildInputs to be more semantically correct (and maybe support
cross compilation, not tested though).
2020-01-01 20:37:38 +01:00

982 lines
27 KiB
Nix

/* This file defines the composition for CRAN (R) packages. */
{ R, pkgs, overrides }:
let
inherit (pkgs) cacert fetchurl stdenv lib;
buildRPackage = pkgs.callPackage ./generic-builder.nix {
inherit R;
inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa Foundation;
inherit (pkgs) gettext gfortran;
};
# Generates package templates given per-repository settings
#
# some packages, e.g. cncaGUI, require X running while installation,
# so that we use xvfb-run if requireX is true.
mkDerive = {mkHomepage, mkUrls}: args:
lib.makeOverridable ({
name, version, sha256,
depends ? [],
doCheck ? true,
requireX ? false,
broken ? false,
hydraPlatforms ? R.meta.hydraPlatforms
}: buildRPackage {
name = "${name}-${version}";
src = fetchurl {
inherit sha256;
urls = mkUrls (args // { inherit name version; });
};
inherit doCheck requireX;
propagatedBuildInputs = depends;
nativeBuildInputs = depends;
meta.homepage = mkHomepage (args // { inherit name; });
meta.platforms = R.meta.platforms;
meta.hydraPlatforms = hydraPlatforms;
meta.broken = broken;
});
# Templates for generating Bioconductor and CRAN packages
# from the name, version, sha256, and optional per-package arguments above
#
deriveBioc = mkDerive {
mkHomepage = {name, biocVersion, ...}: "https://bioconductor.org/packages/${biocVersion}/bioc/html/${name}.html";
mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/bioc/src/contrib/${name}_${version}.tar.gz"
"mirror://bioc/${biocVersion}/bioc/src/contrib/Archive/${name}_${version}.tar.gz" ];
};
deriveBiocAnn = mkDerive {
mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz" ];
};
deriveBiocExp = mkDerive {
mkHomepage = {name, ...}: "http://www.bioconductor.org/packages/${name}.html";
mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/data/experiment/src/contrib/${name}_${version}.tar.gz" ];
};
deriveCran = mkDerive {
mkHomepage = {name, snapshot, ...}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/";
mkUrls = {name, version, snapshot}: [ "http://mran.revolutionanalytics.com/snapshot/${snapshot}/src/contrib/${name}_${version}.tar.gz" ];
};
# Overrides package definitions with nativeBuildInputs.
# For example,
#
# overrideNativeBuildInputs {
# foo = [ pkgs.bar ]
# } old
#
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# nativeBuildInputs = attrs.nativeBuildInputs ++ [ pkgs.bar ];
# });
# }
overrideNativeBuildInputs = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
nativeBuildInputs = attrs.nativeBuildInputs ++ value;
})
) overrides;
# Overrides package definitions with buildInputs.
# For example,
#
# overrideBuildInputs {
# foo = [ pkgs.bar ]
# } old
#
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# buildInputs = attrs.buildInputs ++ [ pkgs.bar ];
# });
# }
overrideBuildInputs = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
buildInputs = attrs.buildInputs ++ value;
})
) overrides;
# Overrides package definitions with new R dependencies.
# For example,
#
# overrideRDepends {
# foo = [ self.bar ]
# } old
#
# results in
#
# {
# foo = old.foo.overrideDerivation (attrs: {
# nativeBuildInputs = attrs.nativeBuildInputs ++ [ self.bar ];
# propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ [ self.bar ];
# });
# }
overrideRDepends = overrides: old:
lib.mapAttrs (name: value:
(builtins.getAttr name old).overrideDerivation (attrs: {
nativeBuildInputs = attrs.nativeBuildInputs ++ value;
propagatedNativeBuildInputs = attrs.propagatedNativeBuildInputs ++ value;
})
) overrides;
# Overrides package definition requiring X running to install.
# For example,
#
# overrideRequireX [
# "foo"
# ] old
#
# results in
#
# {
# foo = old.foo.override {
# requireX = true;
# };
# }
overrideRequireX = packageNames: old:
let
nameValuePairs = map (name: {
inherit name;
value = (builtins.getAttr name old).override {
requireX = true;
};
}) packageNames;
in
builtins.listToAttrs nameValuePairs;
# Overrides package definition to skip check.
# For example,
#
# overrideSkipCheck [
# "foo"
# ] old
#
# results in
#
# {
# foo = old.foo.override {
# doCheck = false;
# };
# }
overrideSkipCheck = packageNames: old:
let
nameValuePairs = map (name: {
inherit name;
value = (builtins.getAttr name old).override {
doCheck = false;
};
}) packageNames;
in
builtins.listToAttrs nameValuePairs;
# Overrides package definition to mark it broken.
# For example,
#
# overrideBroken [
# "foo"
# ] old
#
# results in
#
# {
# foo = old.foo.override {
# broken = true;
# };
# }
overrideBroken = packageNames: old:
let
nameValuePairs = map (name: {
inherit name;
value = (builtins.getAttr name old).override {
broken = true;
};
}) packageNames;
in
builtins.listToAttrs nameValuePairs;
defaultOverrides = old: new:
let old0 = old; in
let
old1 = old0 // (overrideRequireX packagesRequireingX old0);
old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1);
old3 = old2 // (overrideRDepends packagesWithRDepends old2);
old4 = old3 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old3);
old5 = old4 // (overrideBuildInputs packagesWithBuildInputs old4);
old6 = old5 // (overrideBroken brokenPackages old5);
old = old6;
in old // (otherOverrides old new);
# Recursive override pattern.
# `_self` is a collection of packages;
# `self` is `_self` with overridden packages;
# packages in `_self` may depends on overridden packages.
self = (defaultOverrides _self self) // overrides;
_self = { inherit buildRPackage; } //
import ./bioc-packages.nix { inherit self; derive = deriveBioc; } //
import ./bioc-annotation-packages.nix { inherit self; derive = deriveBiocAnn; } //
import ./bioc-experiment-packages.nix { inherit self; derive = deriveBiocExp; } //
import ./cran-packages.nix { inherit self; derive = deriveCran; };
# tweaks for the individual packages and "in self" follow
packagesWithRDepends = {
FactoMineR = [ self.car ];
pander = [ self.codetools ];
};
packagesWithNativeBuildInputs = {
abn = [ pkgs.gsl_1 ];
adimpro = [ pkgs.imagemagick ];
animation = [ pkgs.which ];
audio = [ pkgs.portaudio ];
BayesSAE = [ pkgs.gsl_1 ];
BayesVarSel = [ pkgs.gsl_1 ];
BayesXsrc = [ pkgs.readline.dev pkgs.ncurses ];
bigGP = [ pkgs.openmpi ];
bio3d = [ pkgs.zlib ];
BiocCheck = [ pkgs.which ];
Biostrings = [ pkgs.zlib ];
bnpmr = [ pkgs.gsl_1 ];
cairoDevice = [ pkgs.gtk2.dev ];
Cairo = [ pkgs.libtiff pkgs.libjpeg pkgs.cairo.dev pkgs.x11 pkgs.fontconfig.lib ];
Cardinal = [ pkgs.which ];
chebpol = [ pkgs.fftw ];
ChemmineOB = [ pkgs.openbabel pkgs.pkgconfig ];
cit = [ pkgs.gsl_1 ];
curl = [ pkgs.curl.dev ];
data_table = [pkgs.zlib.dev] ++ lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
devEMF = [ pkgs.xorg.libXft.dev pkgs.x11 ];
diversitree = [ pkgs.gsl_1 pkgs.fftw ];
EMCluster = [ pkgs.liblapack ];
fftw = [ pkgs.fftw.dev ];
fftwtools = [ pkgs.fftw.dev ];
Formula = [ pkgs.gmp ];
geoCount = [ pkgs.gsl_1 ];
gdtools = [ pkgs.cairo.dev pkgs.fontconfig.lib pkgs.freetype.dev ];
git2r = [ pkgs.zlib.dev pkgs.openssl.dev pkgs.libssh2.dev pkgs.libgit2 pkgs.pkgconfig ];
GLAD = [ pkgs.gsl_1 ];
glpkAPI = [ pkgs.gmp pkgs.glpk ];
gmp = [ pkgs.gmp.dev ];
graphscan = [ pkgs.gsl_1 ];
gsl = [ pkgs.gsl_1 ];
h5 = [ pkgs.hdf5-cpp pkgs.which ];
haven = [ pkgs.libiconv pkgs.zlib.dev ];
h5vc = [ pkgs.zlib.dev ];
HiCseg = [ pkgs.gsl_1 ];
imager = [ pkgs.x11 ];
iBMQ = [ pkgs.gsl_1 ];
igraph = [ pkgs.gmp pkgs.libxml2.dev ];
JavaGD = [ pkgs.jdk ];
jpeg = [ pkgs.libjpeg.dev ];
jqr = [ pkgs.jq.dev ];
KFKSDS = [ pkgs.gsl_1 ];
kza = [ pkgs.fftw.dev ];
magick = [ pkgs.imagemagick.dev ];
ModelMetrics = lib.optional stdenv.isDarwin pkgs.llvmPackages.openmp;
mvabund = [ pkgs.gsl_1 ];
mwaved = [ pkgs.fftw.dev ];
ncdf4 = [ pkgs.netcdf ];
nloptr = [ pkgs.nlopt pkgs.pkgconfig ];
odbc = [ pkgs.unixODBC ];
outbreaker = [ pkgs.gsl_1 ];
pander = [ pkgs.pandoc pkgs.which ];
pbdMPI = [ pkgs.openmpi ];
pbdNCDF4 = [ pkgs.netcdf ];
pbdPROF = [ pkgs.openmpi ];
pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.which ];
pdftools = [ pkgs.poppler.dev ];
phytools = [ pkgs.which ];
PKI = [ pkgs.openssl.dev ];
png = [ pkgs.libpng.dev ];
PopGenome = [ pkgs.zlib.dev ];
proj4 = [ pkgs.proj ];
protolite = [ pkgs.protobuf ];
qtbase = [ pkgs.qt4 ];
qtpaint = [ pkgs.qt4 ];
R2SWF = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
RAppArmor = [ pkgs.libapparmor ];
rapportools = [ pkgs.which ];
rapport = [ pkgs.which ];
readxl = [ pkgs.libiconv ];
rcdd = [ pkgs.gmp.dev ];
RcppCNPy = [ pkgs.zlib.dev ];
RcppGSL = [ pkgs.gsl_1 ];
RcppZiggurat = [ pkgs.gsl_1 ];
reprex = [ pkgs.which ];
rgdal = [ pkgs.proj.dev pkgs.gdal ];
rgeos = [ pkgs.geos ];
rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
Rglpk = [ pkgs.glpk ];
RGtk2 = [ pkgs.gtk2.dev ];
rhdf5 = [ pkgs.zlib ];
Rhdf5lib = [ pkgs.zlib ];
Rhpc = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.openmpi pkgs.pcre.dev ];
Rhtslib = [ pkgs.zlib.dev pkgs.automake pkgs.autoconf ];
RJaCGH = [ pkgs.zlib.dev ];
rjags = [ pkgs.jags ];
rJava = [ pkgs.zlib pkgs.bzip2.dev pkgs.icu pkgs.lzma.dev pkgs.pcre.dev pkgs.jdk pkgs.libzip ];
Rlibeemd = [ pkgs.gsl_1 ];
rmatio = [ pkgs.zlib.dev ];
Rmpfr = [ pkgs.gmp pkgs.mpfr.dev ];
Rmpi = [ pkgs.openmpi ];
RMySQL = [ pkgs.zlib pkgs.libmysqlclient pkgs.openssl.dev ];
RNetCDF = [ pkgs.netcdf pkgs.udunits ];
RODBCext = [ pkgs.libiodbc ];
RODBC = [ pkgs.libiodbc ];
rpanel = [ pkgs.bwidget ];
rpg = [ pkgs.postgresql ];
rphast = [ pkgs.pcre.dev pkgs.zlib pkgs.bzip2 pkgs.gzip pkgs.readline ];
Rpoppler = [ pkgs.poppler ];
RPostgreSQL = [ pkgs.postgresql pkgs.postgresql ];
RProtoBuf = [ pkgs.protobuf ];
rPython = [ pkgs.python ];
RSclient = [ pkgs.openssl.dev ];
Rserve = [ pkgs.openssl ];
Rssa = [ pkgs.fftw.dev ];
rtfbs = [ pkgs.zlib pkgs.pcre.dev pkgs.bzip2 pkgs.gzip pkgs.readline ];
rtiff = [ pkgs.libtiff.dev ];
runjags = [ pkgs.jags ];
RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
rzmq = [ pkgs.zeromq3 ];
SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.lzma pkgs.pcre ];
sdcTable = [ pkgs.gmp pkgs.glpk ];
seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
seqinr = [ pkgs.zlib.dev ];
seqminer = [ pkgs.zlib.dev pkgs.bzip2 ];
sf = [ pkgs.gdal pkgs.proj pkgs.geos ];
showtext = [ pkgs.zlib pkgs.libpng pkgs.icu pkgs.freetype.dev ];
simplexreg = [ pkgs.gsl_1 ];
spate = [ pkgs.fftw.dev ];
ssanv = [ pkgs.proj ];
stsm = [ pkgs.gsl_1 ];
stringi = [ pkgs.icu.dev ];
survSNP = [ pkgs.gsl_1 ];
sysfonts = [ pkgs.zlib pkgs.libpng pkgs.freetype.dev ];
systemfonts = [ pkgs.fontconfig.dev pkgs.freetype.dev ];
TAQMNGR = [ pkgs.zlib.dev ];
tesseract = [ pkgs.tesseract pkgs.leptonica ];
tiff = [ pkgs.libtiff.dev ];
TKF = [ pkgs.gsl_1 ];
tkrplot = [ pkgs.xorg.libX11 pkgs.tk.dev ];
topicmodels = [ pkgs.gsl_1 ];
udunits2 = [ pkgs.udunits pkgs.expat ];
units = [ pkgs.udunits ];
V8 = [ pkgs.v8_3_14 ];
VBLPCM = [ pkgs.gsl_1 ];
WhopGenome = [ pkgs.zlib.dev ];
XBRL = [ pkgs.zlib pkgs.libxml2.dev ];
xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
XML = [ pkgs.libtool pkgs.libxml2.dev pkgs.xmlsec pkgs.libxslt ];
affyPLM = [ pkgs.zlib.dev ];
bamsignals = [ pkgs.zlib.dev ];
BitSeq = [ pkgs.zlib.dev ];
DiffBind = [ pkgs.zlib ];
ShortRead = [ pkgs.zlib.dev ];
oligo = [ pkgs.zlib.dev ];
gmapR = [ pkgs.zlib.dev ];
Rsubread = [ pkgs.zlib.dev ];
XVector = [ pkgs.zlib.dev ];
Rsamtools = [ pkgs.zlib.dev ];
rtracklayer = [ pkgs.zlib.dev ];
affyio = [ pkgs.zlib.dev ];
VariantAnnotation = [ pkgs.zlib.dev ];
snpStats = [ pkgs.zlib.dev ];
};
packagesWithBuildInputs = {
# sort -t '=' -k 2
svKomodo = [ pkgs.which ];
nat = [ pkgs.which ];
nat_nblast = [ pkgs.which ];
nat_templatebrains = [ pkgs.which ];
pbdZMQ = lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
RMark = [ pkgs.which ];
RPushbullet = [ pkgs.which ];
qtpaint = [ pkgs.cmake ];
qtbase = [ pkgs.cmake pkgs.perl ];
RcppEigen = [ pkgs.libiconv ];
RCurl = [ pkgs.curl.dev ];
R2SWF = [ pkgs.pkgconfig ];
rggobi = [ pkgs.pkgconfig ];
rgl = [ pkgs.libGLU pkgs.libGLU.dev pkgs.libGL pkgs.xlibsWrapper ];
RGtk2 = [ pkgs.pkgconfig ];
RProtoBuf = [ pkgs.pkgconfig ];
Rpoppler = [ pkgs.pkgconfig ];
XML = [ pkgs.pkgconfig ];
cairoDevice = [ pkgs.pkgconfig ];
chebpol = [ pkgs.pkgconfig ];
fftw = [ pkgs.pkgconfig ];
geoCount = [ pkgs.pkgconfig ];
gdtools = [ pkgs.pkgconfig ];
JuniperKernel = lib.optionals stdenv.isDarwin [ pkgs.darwin.binutils ];
jqr = [ pkgs.jq.lib ];
kza = [ pkgs.pkgconfig ];
magick = [ pkgs.pkgconfig ];
mwaved = [ pkgs.pkgconfig ];
odbc = [ pkgs.pkgconfig ];
openssl = [ pkgs.pkgconfig ];
pdftools = [ pkgs.pkgconfig ];
sf = [ pkgs.pkgconfig pkgs.sqlite.dev pkgs.proj.dev ];
showtext = [ pkgs.pkgconfig ];
spate = [ pkgs.pkgconfig ];
stringi = [ pkgs.pkgconfig ];
sysfonts = [ pkgs.pkgconfig ];
systemfonts = [ pkgs.pkgconfig ];
tesseract = [ pkgs.pkgconfig ];
Cairo = [ pkgs.pkgconfig ];
Rsymphony = [ pkgs.pkgconfig pkgs.doxygen pkgs.graphviz pkgs.subversion ];
tcltk2 = [ pkgs.tcl pkgs.tk ];
tikzDevice = [ pkgs.which pkgs.texlive.combined.scheme-medium ];
rPython = [ pkgs.which ];
gridGraphics = [ pkgs.which ];
adimpro = [ pkgs.which pkgs.xorg.xdpyinfo ];
PET = [ pkgs.which pkgs.xorg.xdpyinfo pkgs.imagemagick ];
dti = [ pkgs.which pkgs.xorg.xdpyinfo pkgs.imagemagick ];
mzR = [ pkgs.netcdf ];
cluster = [ pkgs.libiconv ];
KernSmooth = [ pkgs.libiconv ];
nlme = [ pkgs.libiconv ];
Matrix = [ pkgs.libiconv ];
mgcv = [ pkgs.libiconv ];
minqa = [ pkgs.libiconv ];
igraph = [ pkgs.libiconv ];
ape = [ pkgs.libiconv ];
expm = [ pkgs.libiconv ];
mnormt = [ pkgs.libiconv ];
pan = [ pkgs.libiconv ];
phangorn = [ pkgs.libiconv ];
quadprog = [ pkgs.libiconv ];
randomForest = [ pkgs.libiconv ];
sundialr = [ pkgs.libiconv ];
ucminf = [ pkgs.libiconv ];
glmnet = [ pkgs.libiconv ];
};
packagesRequireingX = [
"accrual"
"ade4TkGUI"
"analogue"
"analogueExtra"
"AnalyzeFMRI"
"AnnotLists"
"AnthropMMD"
"aplpack"
"aqfig"
"arf3DS4"
"asbio"
"AtelieR"
"BAT"
"bayesDem"
"BCA"
"BEQI2"
"betapart"
"BiodiversityR"
"bio_infer"
"bipartite"
"biplotbootGUI"
"blender"
"cairoDevice"
"CCTpack"
"cncaGUI"
"cocorresp"
"CommunityCorrelogram"
"confidence"
"constrainedKriging"
"ConvergenceConcepts"
"cpa"
"DALY"
"dave"
"Deducer"
"DeducerPlugInExample"
"DeducerPlugInScaling"
"DeducerSpatial"
"DeducerSurvival"
"DeducerText"
"Demerelate"
"detrendeR"
"dgmb"
"DivMelt"
"dpa"
"DSpat"
"dynamicGraph"
"dynBiplotGUI"
"EasyqpcR"
"EcoVirtual"
"ENiRG"
"exactLoglinTest"
"fat2Lpoly"
"fbati"
"FD"
"feature"
"FeedbackTS"
"FFD"
"fgui"
"fisheyeR"
"fit4NM"
"forams"
"forensim"
"FreeSortR"
"fscaret"
"fSRM"
"gcmr"
"GeoGenetix"
"geomorph"
"geoR"
"geoRglm"
"georob"
"GGEBiplotGUI"
"gnm"
"GPCSIV"
"GrammR"
"GrapheR"
"GroupSeq"
"gsubfn"
"GUniFrac"
"gWidgets2RGtk2"
"gWidgets2tcltk"
"gWidgetsRGtk2"
"gWidgetstcltk"
"HH"
"HiveR"
"ic50"
"iDynoR"
"in2extRemes"
"iplots"
"isopam"
"IsotopeR"
"JGR"
"KappaGUI"
"likeLTD"
"logmult"
"LS2Wstat"
"MareyMap"
"memgene"
"MergeGUI"
"metacom"
"Meth27QC"
"MetSizeR"
"MicroStrategyR"
"migui"
"miniGUI"
"MissingDataGUI"
"mixsep"
"mlDNA"
"MplusAutomation"
"mpmcorrelogram"
"mritc"
"multgee"
"multibiplotGUI"
"nodiv"
"OligoSpecificitySystem"
"onemap"
"OpenRepGrid"
"paleoMAS"
"pbatR"
"PBSadmb"
"PBSmodelling"
"PCPS"
"pez"
"phylotools"
"picante"
"PKgraph"
"plotSEMM"
"plsRbeta"
"plsRglm"
"PopGenReport"
"poppr"
"powerpkg"
"PredictABEL"
"prefmod"
"PrevMap"
"ProbForecastGOP"
"qtbase"
"qtpaint"
"r4ss"
"RandomFields"
"rareNMtests"
"rAverage"
"Rcmdr"
"RcmdrPlugin_coin"
"RcmdrPlugin_depthTools"
"RcmdrPlugin_DoE"
"RcmdrPlugin_EACSPIR"
"RcmdrPlugin_EBM"
"RcmdrPlugin_EcoVirtual"
"RcmdrPlugin_EZR"
"RcmdrPlugin_FactoMineR"
"RcmdrPlugin_HH"
"RcmdrPlugin_IPSUR"
"RcmdrPlugin_KMggplot2"
"RcmdrPlugin_lfstat"
"RcmdrPlugin_MA"
"RcmdrPlugin_mosaic"
"RcmdrPlugin_MPAStats"
"RcmdrPlugin_orloca"
"RcmdrPlugin_plotByGroup"
"RcmdrPlugin_pointG"
"RcmdrPlugin_qual"
"RcmdrPlugin_ROC"
"RcmdrPlugin_sampling"
"RcmdrPlugin_SCDA"
"RcmdrPlugin_SLC"
"RcmdrPlugin_sos"
"RcmdrPlugin_steepness"
"RcmdrPlugin_survival"
"RcmdrPlugin_TeachingDemos"
"RcmdrPlugin_temis"
"RcmdrPlugin_UCA"
"recluster"
"relimp"
"RenextGUI"
"reportRx"
"reshapeGUI"
"rgl"
"RHRV"
"rich"
"RNCEP"
"RQDA"
"RSDA"
"rsgcc"
"RSurvey"
"RunuranGUI"
"sharpshootR"
"simba"
"Simile"
"SimpleTable"
"SOLOMON"
"soundecology"
"spacodiR"
"spatsurv"
"sqldf"
"SRRS"
"SSDforR"
"statcheck"
"StatDA"
"STEPCAM"
"stosim"
"strvalidator"
"stylo"
"svDialogstcltk"
"svIDE"
"svSocket"
"svWidgets"
"SYNCSA"
"SyNet"
"tcltk2"
"TED"
"TestScorer"
"TIMP"
"titan"
"tkrgl"
"tkrplot"
"tmap"
"tspmeta"
"TTAinterfaceTrendAnalysis"
"twiddler"
"vcdExtra"
"VecStatGraphs3D"
"vegan"
"vegan3d"
"vegclust"
"VIMGUI"
"WMCapacity"
"x12GUI"
"xergm"
];
packagesToSkipCheck = [
"Rmpi" # tries to run MPI processes
"pbdMPI" # tries to run MPI processes
];
# Packages which cannot be installed due to lack of dependencies or other reasons.
brokenPackages = [
];
otherOverrides = old: new: {
stringi = old.stringi.overrideDerivation (attrs: {
postInstall = let
icuName = "icudt52l";
icuSrc = pkgs.fetchzip {
url = "http://static.rexamine.com/packages/${icuName}.zip";
sha256 = "0hvazpizziq5ibc9017i1bb45yryfl26wzfsv05vk9mc1575r6xj";
stripRoot = false;
};
in ''
${attrs.postInstall or ""}
cp ${icuSrc}/${icuName}.dat $out/library/stringi/libs
'';
});
xml2 = old.xml2.overrideDerivation (attrs: {
preConfigure = ''
export LIBXML_INCDIR=${pkgs.libxml2.dev}/include/libxml2
patchShebangs configure
'';
});
Cairo = old.Cairo.overrideDerivation (attrs: {
NIX_LDFLAGS = "-lfontconfig";
});
curl = old.curl.overrideDerivation (attrs: {
preConfigure = "patchShebangs configure";
});
RcppArmadillo = old.RcppArmadillo.overrideDerivation (attrs: {
patchPhase = "patchShebangs configure";
});
data_table = old.data_table.overrideDerivation (attrs: {
NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE
+ lib.optionalString stdenv.isDarwin " -fopenmp";
});
ModelMetrics = old.ModelMetrics.overrideDerivation (attrs: {
NIX_CFLAGS_COMPILE = attrs.NIX_CFLAGS_COMPILE
+ lib.optionalString stdenv.isDarwin " -fopenmp";
});
rpf = old.rpf.overrideDerivation (attrs: {
patchPhase = "patchShebangs configure";
});
BayesXsrc = old.BayesXsrc.overrideDerivation (attrs: {
patches = [ ./patches/BayesXsrc.patch ];
});
Rhdf5lib = old.Rhdf5lib.overrideDerivation (attrs: {
patches = [ ./patches/Rhdf5lib.patch ];
});
rJava = old.rJava.overrideDerivation (attrs: {
preConfigure = ''
export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
export JAVA_HOME=${pkgs.jdk}
'';
});
JavaGD = old.JavaGD.overrideDerivation (attrs: {
preConfigure = ''
export JAVA_CPPFLAGS=-I${pkgs.jdk}/include/
export JAVA_HOME=${pkgs.jdk}
'';
});
JuniperKernel = old.JuniperKernel.overrideDerivation (attrs: {
postPatch = lib.optionalString stdenv.isDarwin ''
for file in {R,src}/*.R; do
sed -i 's#system("which \(otool\|install_name_tool\)"[^)]*)#"${pkgs.darwin.cctools}/bin/\1"#g' $file
done
'';
preConfigure = ''
patchShebangs configure
'';
});
jqr = old.jqr.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
pbdZMQ = old.pbdZMQ.overrideDerivation (attrs: {
postPatch = lib.optionalString stdenv.isDarwin ''
for file in R/*.{r,r.in}; do
sed -i 's#system("which \(\w\+\)"[^)]*)#"${pkgs.darwin.cctools}/bin/\1"#g' $file
done
'';
});
qtbase = old.qtbase.overrideDerivation (attrs: {
patches = [ ./patches/qtbase.patch ];
});
Rmpi = old.Rmpi.overrideDerivation (attrs: {
configureFlags = [
"--with-Rmpi-type=OPENMPI"
];
});
Rmpfr = old.Rmpfr.overrideDerivation (attrs: {
configureFlags = [
"--with-mpfr-include=${pkgs.mpfr.dev}/include"
];
});
RVowpalWabbit = old.RVowpalWabbit.overrideDerivation (attrs: {
configureFlags = [
"--with-boost=${pkgs.boost.dev}" "--with-boost-libdir=${pkgs.boost.out}/lib"
];
});
RAppArmor = old.RAppArmor.overrideDerivation (attrs: {
patches = [ ./patches/RAppArmor.patch ];
LIBAPPARMOR_HOME = pkgs.libapparmor;
});
RMySQL = old.RMySQL.overrideDerivation (attrs: {
MYSQL_DIR="${pkgs.libmysqlclient}";
preConfigure = ''
patchShebangs configure
'';
});
devEMF = old.devEMF.overrideDerivation (attrs: {
NIX_CFLAGS_LINK = "-L${pkgs.xorg.libXft.out}/lib -lXft";
NIX_LDFLAGS = "-lX11";
});
slfm = old.slfm.overrideDerivation (attrs: {
PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
});
SamplerCompare = old.SamplerCompare.overrideDerivation (attrs: {
PKG_LIBS = "-L${pkgs.openblasCompat}/lib -lopenblas";
});
EMCluster = old.EMCluster.overrideDerivation (attrs: {
patches = [ ./patches/EMCluster.patch ];
});
spMC = old.spMC.overrideDerivation (attrs: {
patches = [ ./patches/spMC.patch ];
});
openssl = old.openssl.overrideDerivation (attrs: {
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -lssl -lcrypto";
});
websocket = old.websocket.overrideDerivation (attrs: {
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -lssl -lcrypto";
});
Rserve = old.Rserve.overrideDerivation (attrs: {
patches = [ ./patches/Rserve.patch ];
configureFlags = [
"--with-server" "--with-client"
];
});
nloptr = old.nloptr.overrideDerivation (attrs: {
# Drop bundled nlopt source code. Probably unnecessary, but I want to be
# sure we're using the system library, not this one.
preConfigure = "rm -r src/nlopt_src";
});
V8 = old.V8.overrideDerivation (attrs: {
preConfigure = ''
export INCLUDE_DIR=${pkgs.v8_3_14}/include
export LIB_DIR=${pkgs.v8_3_14}/lib
patchShebangs configure
'';
});
acs = old.acs.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
gdtools = old.gdtools.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
NIX_LDFLAGS = "-lfontconfig -lfreetype";
});
magick = old.magick.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
protolite = old.protolite.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
rpanel = old.rpanel.overrideDerivation (attrs: {
preConfigure = ''
export TCLLIBPATH="${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}"
'';
TCLLIBPATH = "${pkgs.bwidget}/lib/bwidget${pkgs.bwidget.version}";
});
RPostgres = old.RPostgres.overrideDerivation (attrs: {
preConfigure = ''
export INCLUDE_DIR=${pkgs.postgresql}/include
export LIB_DIR=${pkgs.postgresql.lib}/lib
patchShebangs configure
'';
});
OpenMx = old.OpenMx.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
odbc = old.odbc.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
x13binary = old.x13binary.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
});
geojsonio = old.geojsonio.overrideDerivation (attrs: {
buildInputs = [ cacert ] ++ attrs.buildInputs;
});
rstan = old.rstan.overrideDerivation (attrs: {
NIX_CFLAGS_COMPILE = "${attrs.NIX_CFLAGS_COMPILE} -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION";
});
mongolite = old.mongolite.overrideDerivation (attrs: {
preConfigure = ''
patchShebangs configure
'';
PKGCONFIG_CFLAGS = "-I${pkgs.openssl.dev}/include -I${pkgs.cyrus_sasl.dev}/include -I${pkgs.zlib.dev}/include";
PKGCONFIG_LIBS = "-Wl,-rpath,${pkgs.openssl.out}/lib -L${pkgs.openssl.out}/lib -L${pkgs.cyrus_sasl.out}/lib -L${pkgs.zlib.out}/lib -lssl -lcrypto -lsasl2 -lz";
});
ps = old.ps.overrideDerivation (attrs: {
preConfigure = "patchShebangs configure";
});
rlang = old.rlang.overrideDerivation (attrs: {
preConfigure = "patchShebangs configure";
});
systemfonts = old.systemfonts.overrideDerivation (attrs: {
preConfigure = "patchShebangs configure";
});
littler = old.littler.overrideAttrs (attrs: with pkgs; {
buildInputs = [ pcre lzma zlib bzip2 icu which ] ++ attrs.buildInputs;
postInstall = ''
install -d $out/bin $out/share/man/man1
ln -s ../library/littler/bin/r $out/bin/r
ln -s ../library/littler/bin/r $out/bin/lr
ln -s ../../../library/littler/man-page/r.1 $out/share/man/man1
# these won't run without special provisions, so better remove them
rm -r $out/library/littler/script-tests
'';
});
};
in
self