diff options
Diffstat (limited to 'pkgs/development/r-modules/default.nix')
-rw-r--r-- | pkgs/development/r-modules/default.nix | 89 |
1 files changed, 74 insertions, 15 deletions
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix index f48d41e25f2bb..1c9c479edd474 100644 --- a/pkgs/development/r-modules/default.nix +++ b/pkgs/development/r-modules/default.nix @@ -15,14 +15,17 @@ let # # some packages, e.g. cncaGUI, require X running while installation, # so that we use xvfb-run if requireX is true. - mkDerive = {mkHomepage, mkUrls}: args: + mkDerive = {mkHomepage, mkUrls, hydraPlatforms ? null}: args: + let hydraPlatforms' = hydraPlatforms; in lib.makeOverridable ({ name, version, sha256, depends ? [], doCheck ? true, requireX ? false, broken ? false, - hydraPlatforms ? R.meta.platforms + platforms ? R.meta.platforms, + hydraPlatforms ? if hydraPlatforms' != null then hydraPlatforms' else platforms, + maintainers ? [] }: buildRPackage { name = "${name}-${version}"; src = fetchurl { @@ -33,9 +36,10 @@ let propagatedBuildInputs = depends; nativeBuildInputs = depends; meta.homepage = mkHomepage (args // { inherit name; }); - meta.platforms = R.meta.platforms; + meta.platforms = platforms; meta.hydraPlatforms = hydraPlatforms; meta.broken = broken; + meta.maintainers = maintainers; }); # Templates for generating Bioconductor and CRAN packages @@ -54,12 +58,14 @@ let mkUrls = {name, version, biocVersion}: [ "mirror://bioc/${biocVersion}/data/annotation/src/contrib/${name}_${version}.tar.gz" ]; + hydraPlatforms = []; }; 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" ]; + hydraPlatforms = []; }; deriveCran = mkDerive { mkHomepage = {name, snapshot, ...}: "http://mran.revolutionanalytics.com/snapshot/${snapshot}/web/packages/${name}/"; @@ -110,6 +116,26 @@ let }) ) overrides; + # Overrides package definitions with maintainers. + # For example, + # + # overrideMaintainers { + # foo = [ lib.maintainers.jsmith ] + # } old + # + # results in + # + # { + # foo = old.foo.override { + # maintainers = [ lib.maintainers.jsmith ]; + # }; + # } + overrideMaintainers = overrides: old: + lib.mapAttrs (name: value: + (builtins.getAttr name old).override { + maintainers = value; + }) overrides; + # Overrides package definitions with new R dependencies. # For example, # @@ -250,7 +276,8 @@ let old5 = old4 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old4); old6 = old5 // (overrideBuildInputs packagesWithBuildInputs old5); old7 = old6 // (overrideBroken brokenPackages old6); - old = old7; + old8 = old7 // (overrideMaintainers packagesWithMaintainers old7); + old = old8; in old // (otherOverrides old new); # Recursive override pattern. @@ -266,6 +293,15 @@ let # tweaks for the individual packages and "in self" follow + packagesWithMaintainers = with lib.maintainers; { + data_table = [ jbedo ]; + BiocManager = [ jbedo ]; + ggplot2 = [ jbedo ]; + svaNUMT = [ jbedo ]; + svaRetro = [ jbedo ]; + StructuralVariantAnnotation = [ jbedo ]; + }; + packagesWithRDepends = { FactoMineR = [ self.car ]; pander = [ self.codetools ]; @@ -309,7 +345,6 @@ let gert = [ pkgs.libgit2 ]; haven = with pkgs; [ libiconv zlib.dev ]; h5vc = [ pkgs.zlib.dev ]; - HDF5Array = [ pkgs.zlib.dev ]; HiCseg = [ pkgs.gsl ]; imager = [ pkgs.x11 ]; iBMQ = [ pkgs.gsl ]; @@ -454,6 +489,9 @@ let trackViewer = [ pkgs.zlib.dev ]; themetagenomics = [ pkgs.zlib.dev ]; NanoMethViz = [ pkgs.zlib.dev ]; + RcppMeCab = [ pkgs.pkg-config ]; + HilbertVisGUI = with pkgs; [ pkg-config which ]; + textshaping = [ pkgs.pkg-config ]; }; packagesWithBuildInputs = { @@ -601,6 +639,14 @@ let PoissonBinomial = [ pkgs.fftw.dev ]; rrd = [ pkgs.rrdtool ]; flowWorkspace = [ pkgs.zlib.dev ]; + RcppMeCab = [ pkgs.mecab ]; + PING = [ pkgs.gsl ]; + RcppAlgos = [ pkgs.gmp.dev ]; + RcppBigIntAlgos = [ pkgs.gmp.dev ]; + HilbertVisGUI = [ pkgs.gnome2.gtkmm.dev ]; + textshaping = with pkgs; [ harfbuzz.dev freetype.dev fribidi libpng ]; + DropletUtils = [ pkgs.zlib.dev ]; + RMariaDB = [ pkgs.libmysqlclient.dev ]; }; packagesRequiringX = [ @@ -622,6 +668,7 @@ let "biplotbootGUI" "blender" "cairoDevice" + "canceR" "CCTpack" "cncaGUI" "cocorresp" @@ -730,6 +777,7 @@ let "RcmdrPlugin_EcoVirtual" "RcmdrPlugin_EZR" "RcmdrPlugin_FactoMineR" + "RcmdrPlugin_FuzzyClust" "RcmdrPlugin_HH" "RcmdrPlugin_IPSUR" "RcmdrPlugin_KMggplot2" @@ -737,6 +785,7 @@ let "RcmdrPlugin_MA" "RcmdrPlugin_MPAStats" "RcmdrPlugin_orloca" + "RcmdrPlugin_PcaRobust" "RcmdrPlugin_plotByGroup" "RcmdrPlugin_pointG" "RcmdrPlugin_ROC" @@ -751,7 +800,6 @@ let "RcmdrPlugin_UCA" "recluster" "relimp" - "rgl" "RHRV" "rich" "RNCEP" @@ -785,6 +833,7 @@ let "tspmeta" "TTAinterfaceTrendAnalysis" "twiddler" + "uHMM" "vcdExtra" "VecStatGraphs3D" "vegan" @@ -848,11 +897,11 @@ let # Packages which cannot be installed due to lack of dependencies or other reasons. brokenPackages = [ "av" - "rgl" "NetLogoR" - "x13binary" "valse" "HierO" + "HIBAG" + "HiveR" # Impure network access during build "waddR" @@ -1062,6 +1111,11 @@ let export LIB_DIR=${pkgs.v8}/lib patchShebangs configure ''; + + R_MAKEVARS_SITE = lib.optionalString (pkgs.system == "aarch64-linux") + (pkgs.writeText "Makevars" '' + CXX14PICFLAGS = -fPIC + ''); }); acs = old.acs.overrideDerivation (attrs: { @@ -1194,13 +1248,6 @@ let ''; }); - MatchIt = old.MatchIt.overrideDerivation (attrs: { - patches = [ (pkgs.fetchpatch { - url = "https://github.com/kosukeimai/MatchIt/commit/8c15a1afa16b74eb04a45e7e46f8aca64ed89bcb.patch"; - sha256 = "sha256-3UI60n49xuX6LniHpTLOUSsHCEAQ7f1FMBVH0jNlW60="; - }) ]; - }); - h2o = old.h2o.overrideDerivation (attrs: { preConfigure = '' # prevent download of jar file during install and postpone to first use @@ -1238,6 +1285,18 @@ let patchShebangs configure ''; }); + + ChIPXpress = old.ChIPXpress.override { hydraPlatforms = []; }; + + rgl = old.rgl.overrideDerivation (attrs: { + RGL_USE_NULL = "true"; + }); + + Rrdrand = old.Rrdrand.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; }; + + RandomFieldsUtils = old.RandomFieldsUtils.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; }; + + flowClust = old.flowClust.override { platforms = lib.platforms.x86_64 ++ lib.platforms.x86; }; }; in self |