cran-packages: uses common variable names, doCheck and installFlags

This commit is contained in:
taku0 2014-11-24 15:29:56 +09:00 committed by Peter Simons
parent f7aba18c02
commit 8f0d6091bb
3 changed files with 17 additions and 13 deletions

View File

@ -11,7 +11,7 @@ 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 ? [], skipTest ? false, requireX ? false, hydraPlatforms ? R.meta.hydraPlatforms }: buildRPackage { derive = lib.makeOverridable ({ name, version, sha256, depends ? [], doCheck ? true, requireX ? false, hydraPlatforms ? R.meta.hydraPlatforms }: buildRPackage {
name = "${name}-${version}"; name = "${name}-${version}";
src = fetchurl { src = fetchurl {
urls = [ urls = [
@ -20,7 +20,7 @@ let
]; ];
inherit sha256; inherit sha256;
}; };
inherit skipTest requireX; inherit doCheck requireX;
propagatedBuildInputs = depends; propagatedBuildInputs = depends;
nativeBuildInputs = depends; nativeBuildInputs = depends;
meta.homepage = "http://cran.r-project.org/web/packages/${name}/"; meta.homepage = "http://cran.r-project.org/web/packages/${name}/";
@ -106,10 +106,10 @@ let
in in
builtins.listToAttrs nameValuePairs; builtins.listToAttrs nameValuePairs;
# Overrides package definition to skip tests. # Overrides package definition to skip check.
# For example, # For example,
# #
# overrideSkipTests [ # overrideSkipCheck [
# "foo" # "foo"
# ] old # ] old
# #
@ -117,15 +117,15 @@ let
# #
# { # {
# foo = old.foo.override { # foo = old.foo.override {
# skipTest = true; # doCheck = false;
# }; # };
# } # }
overrideSkipTests = packageNames: old: overrideSkipCheck = packageNames: old:
let let
nameValuePairs = map (name: { nameValuePairs = map (name: {
inherit name; inherit name;
value = (builtins.getAttr name old).override { value = (builtins.getAttr name old).override {
skipTest = true; doCheck = false;
}; };
}) packageNames; }) packageNames;
in in
@ -134,13 +134,13 @@ let
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;
packagesToSkipTests = import ./packages-to-skip-tests.nix; packagesToSkipCheck = import ./packages-to-skip-check.nix;
defaultOverrides = old: new: defaultOverrides = old: new:
let old0 = old; in let old0 = old; in
let let
old1 = old0 // (overrideRequireX packagesRequireingX old0); old1 = old0 // (overrideRequireX packagesRequireingX old0);
old2 = old1 // (overrideSkipTests packagesToSkipTests 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; old = old4;

View File

@ -16,10 +16,10 @@ R.stdenv.mkDerivation ({
runHook postBuild runHook postBuild
''; '';
installOptions = if attrs.skipTest or false then installFlags = if attrs.doCheck or true then
"--no-test-load " []
else else
""; [ "--no-test-load" ];
rCommand = if attrs.requireX or false then rCommand = if attrs.requireX or false then
# Unfortunately, xvfb-run has a race condition even with -a option, so that # Unfortunately, xvfb-run has a race condition even with -a option, so that
@ -31,7 +31,7 @@ R.stdenv.mkDerivation ({
installPhase = '' installPhase = ''
runHook preInstall runHook preInstall
mkdir -p $out/library mkdir -p $out/library
$rCommand CMD INSTALL $installOptions --configure-args="$configureFlags" -l $out/library . $rCommand CMD INSTALL $installFlags --configure-args="$configureFlags" -l $out/library .
runHook postInstall runHook postInstall
''; '';
@ -40,6 +40,10 @@ R.stdenv.mkDerivation ({
ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
fi fi
''; '';
checkPhase = ''
# noop since R CMD INSTALL tests packages
'';
} // attrs // { } // attrs // {
name = "r-" + name; name = "r-" + name;
}) })