cran-packages: marks broken packages broken instead of removeing them

This commit is contained in:
taku0 2014-11-24 19:55:45 +09:00 committed by Peter Simons
parent 8f0d6091bb
commit 2532844fb5
2 changed files with 38 additions and 15 deletions

View File

@ -38,9 +38,6 @@
"rsunlight" # jsonlite.so: undefined symbol: XXX "rsunlight" # jsonlite.so: undefined symbol: XXX
"slackr" # jsonlite.so: undefined symbol: XXX "slackr" # jsonlite.so: undefined symbol: XXX
"webutils" # jsonlite.so: undefined symbol: XXX "webutils" # jsonlite.so: undefined symbol: XXX
"HPO" # requires AnnotationDbi
"HPO.db" # requires AnnotationDbi
"HPO_db" # requires AnnotationDbi
"msarc" # requires AnnotationDbi "msarc" # requires AnnotationDbi
"ppiPre" # requires AnnotationDbi "ppiPre" # requires AnnotationDbi
"RobLox" # requires Biobase "RobLox" # requires Biobase
@ -69,7 +66,6 @@
"BiSEp" # requires GOSemSim, GO.db, and org.Hs.eg.db "BiSEp" # requires GOSemSim, GO.db, and org.Hs.eg.db
"PubMedWordcloud" # requires GOsummaries "PubMedWordcloud" # requires GOsummaries
"ExomeDepth" # requires GenomicRanges, and Rsamtools "ExomeDepth" # requires GenomicRanges, and Rsamtools
"HPOSim" # requires HPO_db
"HTSDiff" # requires HTSCluster "HTSDiff" # requires HTSCluster
"RAM" # requires Heatplus "RAM" # requires Heatplus
"RcppRedis" # requires Hiredis "RcppRedis" # requires Hiredis
@ -125,7 +121,6 @@
"calmate" # requires aroma_core "calmate" # requires aroma_core
"beadarrayFilter" # requires beadarray "beadarrayFilter" # requires beadarray
"PepPrep" # requires biomaRt "PepPrep" # requires biomaRt
"oposSOM" # requires biomaRt
"snplist" # requires biomaRt "snplist" # requires biomaRt
"FunctionalNetworks" # requires breastCancerVDX, and Biobase "FunctionalNetworks" # requires breastCancerVDX, and Biobase
"rJPSGCS" # requires chopsticks "rJPSGCS" # requires chopsticks
@ -187,7 +182,6 @@
"CORM" # requires limma "CORM" # requires limma
"DAAGbio" # requires limma "DAAGbio" # requires limma
"DCGL" # requires limma "DCGL" # requires limma
"GOsummaries" # requires limma
"SQDA" # requires limma "SQDA" # requires limma
"metaMA" # requires limma "metaMA" # requires limma
"plmDE" # requires limma "plmDE" # requires limma
@ -216,7 +210,6 @@
"qtlnet" # requires pcalg "qtlnet" # requires pcalg
"SigTree" # requires phyloseq "SigTree" # requires phyloseq
"saps" # requires piano, and survcomp "saps" # requires piano, and survcomp
"sgof" # requires plot2D
"surveillance" # requires polyCub "surveillance" # requires polyCub
"aLFQ" # requires protiq "aLFQ" # requires protiq
"NLPutils" # requires qdap "NLPutils" # requires qdap

View File

@ -11,7 +11,14 @@ let
# #
# some packages, e.g. cncaGUI, require X running while installation, # some packages, e.g. cncaGUI, require X running while installation,
# so that we use xvfb-run if requireX is true. # so that we use xvfb-run if requireX is true.
derive = lib.makeOverridable ({ name, version, sha256, depends ? [], doCheck ? true, requireX ? false, hydraPlatforms ? R.meta.hydraPlatforms }: buildRPackage { derive = lib.makeOverridable ({
name, version, sha256,
depends ? [],
doCheck ? true,
requireX ? false,
broken ? false,
hydraPlatforms ? R.meta.hydraPlatforms
}: buildRPackage {
name = "${name}-${version}"; name = "${name}-${version}";
src = fetchurl { src = fetchurl {
urls = [ urls = [
@ -25,6 +32,7 @@ let
nativeBuildInputs = depends; nativeBuildInputs = depends;
meta.homepage = "http://cran.r-project.org/web/packages/${name}/"; meta.homepage = "http://cran.r-project.org/web/packages/${name}/";
meta.hydraPlatforms = hydraPlatforms; meta.hydraPlatforms = hydraPlatforms;
meta.broken = broken;
}); });
# Overrides package definitions with nativeBuildInputs. # Overrides package definitions with nativeBuildInputs.
@ -131,10 +139,36 @@ let
in in
builtins.listToAttrs nameValuePairs; 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;
packagesWithNativeBuildInputs = import ./packages-with-native-build-inputs.nix pkgs; packagesWithNativeBuildInputs = import ./packages-with-native-build-inputs.nix pkgs;
packagesWithBuildInputs = import ./packages-with-build-inputs.nix pkgs; packagesWithBuildInputs = import ./packages-with-build-inputs.nix pkgs;
packagesRequireingX = import ./packages-requireing-x.nix; packagesRequireingX = import ./packages-requireing-x.nix;
packagesToSkipCheck = import ./packages-to-skip-check.nix; packagesToSkipCheck = import ./packages-to-skip-check.nix;
brokenPackages = import ./broken-packages.nix;
defaultOverrides = old: new: defaultOverrides = old: new:
let old0 = old; in let old0 = old; in
@ -143,7 +177,8 @@ let
old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1); old2 = old1 // (overrideSkipCheck packagesToSkipCheck old1);
old3 = old2 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old2); old3 = old2 // (overrideNativeBuildInputs packagesWithNativeBuildInputs old2);
old4 = old3 // (overrideBuildInputs packagesWithBuildInputs old3); old4 = old3 // (overrideBuildInputs packagesWithBuildInputs old3);
old = old4; old5 = old4 // (overrideBroken brokenPackages old4);
old = old5;
in old // (import ./default-overrides.nix stdenv pkgs old new); in old // (import ./default-overrides.nix stdenv pkgs old new);
@ -151,12 +186,7 @@ let
# `_self` is a collection of packages; # `_self` is a collection of packages;
# `self` is `_self` with overridden packages; # `self` is `_self` with overridden packages;
# packages in `_self` may depends on overridden packages. # packages in `_self` may depends on overridden packages.
overridden = (defaultOverrides _self self) // overrides; self = (defaultOverrides _self self) // overrides;
maskedPackages = import ./masked-packages.nix;
masked = removeAttrs overridden maskedPackages;
self = masked;
_self = import ./sources.nix { inherit self derive; }; _self = import ./sources.nix { inherit self derive; };
in in
self self