cran-packages: uses common variable names, doCheck and installFlags
This commit is contained in:
parent
f7aba18c02
commit
8f0d6091bb
@ -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;
|
||||||
|
@ -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;
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user