nixpkgs/pkgs/development/r-modules/default.nix
Christian Kauhaus 3b445042ac rPackages.littler: fix build (#51282)
littler gives a wrapped called `r` (or `lr` for non-case-preserving
systems like Darwin) which works as shebang or pipe target.

The build was completely broken before (missing deps).

Symlink executables and manpage into standard locations so that this
packages also works in `environment.systemPackages`.
2018-12-06 17:22:31 +01:00

968 lines
26 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 = 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 ];
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 ];
libamtrack = [ pkgs.gsl_1 ];
magick = [ pkgs.imagemagick.dev ];
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 ];
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 ];
rbamtools = [ pkgs.zlib.dev ];
rcdd = [ pkgs.gmp.dev ];
RcppCNPy = [ pkgs.zlib.dev ];
RcppGSL = [ pkgs.gsl_1 ];
RcppZiggurat = [ pkgs.gsl_1 ];
reprex = [ pkgs.which ];
rgdal = [ pkgs.proj pkgs.gdal ];
rgeos = [ pkgs.geos ];
rggobi = [ pkgs.ggobi pkgs.gtk2.dev pkgs.libxml2.dev ];
rgl = [ pkgs.libGLU_combined pkgs.xlibsWrapper ];
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.mysql.connector-c 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 ];
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 ];
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 ];
showtext = [ pkgs.pkgconfig ];
spate = [ pkgs.pkgconfig ];
stringi = [ pkgs.pkgconfig ];
sys = [ pkgs.libapparmor ];
sysfonts = [ 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 ];
igraph = [ pkgs.libiconv ];
};
packagesRequireingX = [
"accrual"
"ade4TkGUI"
"analogue"
"analogueExtra"
"AnalyzeFMRI"
"AnnotLists"
"AnthropMMD"
"aplpack"
"aqfig"
"arf3DS4"
"asbio"
"AtelieR"
"BAT"
"bayesDem"
"BCA"
"BEQI2"
"betapart"
"betaper"
"BiodiversityR"
"BioGeoBEARS"
"bio_infer"
"bipartite"
"biplotbootGUI"
"blender"
"cairoDevice"
"CCTpack"
"cncaGUI"
"cocorresp"
"CommunityCorrelogram"
"confidence"
"constrainedKriging"
"ConvergenceConcepts"
"cpa"
"DALY"
"dave"
"Deducer"
"DeducerExtras"
"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"
"HomoPolymer"
"ic50"
"iDynoR"
"in2extRemes"
"iplots"
"isopam"
"IsotopeR"
"JGR"
"KappaGUI"
"likeLTD"
"logmult"
"LS2Wstat"
"MAR1"
"MareyMap"
"memgene"
"MergeGUI"
"metacom"
"Meth27QC"
"MetSizeR"
"MicroStrategyR"
"migui"
"miniGUI"
"MissingDataGUI"
"mixsep"
"mlDNA"
"MplusAutomation"
"mpmcorrelogram"
"mritc"
"MTurkR"
"multgee"
"multibiplotGUI"
"nodiv"
"OligoSpecificitySystem"
"onemap"
"OpenRepGrid"
"palaeoSig"
"paleoMAS"
"pbatR"
"PBSadmb"
"PBSmodelling"
"PCPS"
"pez"
"phylotools"
"picante"
"PKgraph"
"playwith"
"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"
"rioja"
"ripa"
"RNCEP"
"RQDA"
"RSDA"
"rsgcc"
"RSurvey"
"RunuranGUI"
"sharpshootR"
"simba"
"Simile"
"SimpleTable"
"SOLOMON"
"soundecology"
"SPACECAP"
"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";
});
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.mysql.connector-c}";
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";
});
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";
});
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