R: simplify the generic builder

This commit is contained in:
Peter Simons 2014-05-04 23:54:11 +02:00
parent 401f4a28c1
commit 66bcd77f0e
6 changed files with 36 additions and 35 deletions

View File

@ -39,7 +39,7 @@ let
inherit (pkgs) R fetchurl stdenv; inherit (pkgs) R fetchurl stdenv;
buildRPackage = import ./generic R; buildRPackage = import ./generic-builder.nix R;
derive = { name, version, sha256, depends ? [] }: buildRPackage { derive = { name, version, sha256, depends ? [] }: buildRPackage {
name = "${name}-${version}"; name = "${name}-${version}";
@ -5510,7 +5510,7 @@ let self = _self // overrides; _self = with self; {
XLConnect = derive { name="XLConnect"; version="0.2-7"; sha256="15vqjlcdh51y3riqaifvj1gk8sfl657dyicbwagnwqq4vsniqihi"; depends=[rJava]; }; XLConnect = derive { name="XLConnect"; version="0.2-7"; sha256="15vqjlcdh51y3riqaifvj1gk8sfl657dyicbwagnwqq4vsniqihi"; depends=[rJava]; };
xlsx = derive { name="xlsx"; version="0.5.5"; sha256="0dl0j0rk9m0chv9yxx92gbbfv9mf5igvk75jrpm2105l2cq5j8jc"; depends=[rJava xlsxjars]; }; xlsx = derive { name="xlsx"; version="0.5.5"; sha256="0dl0j0rk9m0chv9yxx92gbbfv9mf5igvk75jrpm2105l2cq5j8jc"; depends=[rJava xlsxjars]; };
xlsxjars = derive { name="xlsxjars"; version="0.6.0"; sha256="0mjfvd433iz742gn3avaq48172yi5hhd0ajc3v22y1j4k9w82pr7"; depends=[rJava]; }; xlsxjars = derive { name="xlsxjars"; version="0.6.0"; sha256="0mjfvd433iz742gn3avaq48172yi5hhd0ajc3v22y1j4k9w82pr7"; depends=[rJava]; };
XML = derive { name="XML"; version="3.98-1.1"; sha256="0n9i6746211wihglbpsgalj2cyvggn4rv6a4fbavqwnjw3h1hwwl"; depends=[]; }; XML = derive { name="XML"; version="3.98-1.1"; sha256="0n9i6746211wihglbpsgalj2cyvggn4rv6a4fbavqwnjw3h1hwwl"; depends=[ pkgs.libxml2 ]; };
XML2R = derive { name="XML2R"; version="0.0.6"; sha256="0azfh950r2b7ck3n1vzk3mdll7zy844nx3mbk676jxnj8gg7nxk5"; depends=[XML RCurl plyr]; }; XML2R = derive { name="XML2R"; version="0.0.6"; sha256="0azfh950r2b7ck3n1vzk3mdll7zy844nx3mbk676jxnj8gg7nxk5"; depends=[XML RCurl plyr]; };
XNomial = derive { name="XNomial"; version="1.0.1"; sha256="134bwglqhgah7v3w6ir65dch2dwp5h4vldw521ba74l5v9b2j2h4"; depends=[]; }; XNomial = derive { name="XNomial"; version="1.0.1"; sha256="134bwglqhgah7v3w6ir65dch2dwp5h4vldw521ba74l5v9b2j2h4"; depends=[]; };
xoi = derive { name="xoi"; version="0.61-1"; sha256="0ypy0rb0f0bns41vjzyln04k3hypgr3wysqbdi0b0r14ip5rb47k"; depends=[qtl]; }; xoi = derive { name="xoi"; version="0.61-1"; sha256="0ypy0rb0f0bns41vjzyln04k3hypgr3wysqbdi0b0r14ip5rb47k"; depends=[qtl]; };

View File

@ -0,0 +1,33 @@
R:
{ name, buildInputs ? [], ... } @ attrs:
R.stdenv.mkDerivation ({
name = "r-" + name;
buildInputs = buildInputs ++ [R];
configurePhase = ''
runHook preConfigure
export R_LIBS_SITE="$R_LIBS_SITE''${R_LIBS_SITE:+:}$out/library"
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/library
R CMD INSTALL -l $out/library $src
runHook postInstall
'';
postFixup = ''
if test -e $out/nix-support/propagated-native-build-inputs; then
ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
fi
'';
} // attrs)

View File

@ -1,23 +0,0 @@
source $stdenv/setup
export R_LIBS_SITE="$R_LIBS_SITE${R_LIBS_SITE:+:}$out/library"
if test -n "$rPreHook"; then
eval "$rPreHook"
fi
installPhase() {
runHook preInstall
mkdir -p $out/library
R CMD INSTALL -l $out/library $src
runHook postInstall
}
postFixup() {
if test -e $out/nix-support/propagated-native-build-inputs; then
ln -s $out/nix-support/propagated-native-build-inputs $out/nix-support/propagated-user-env-packages
fi
}
genericBuild

View File

@ -1,9 +0,0 @@
R:
{ name, buildInputs ? [], ... } @ attrs:
R.stdenv.mkDerivation (attrs // {
name = "r-" + name;
builder = ./builder.sh;
buildInputs = buildInputs ++ [ R ];
})

View File

@ -6434,7 +6434,7 @@ let
withRecommendedPackages = false; withRecommendedPackages = false;
}; };
rWrapper = callPackage ../development/r-modules/wrapper { rWrapper = callPackage ../development/r-modules/wrapper.nix {
# Those packages are usually installed as part of the R build. # Those packages are usually installed as part of the R build.
recommendedPackages = with rPackages; [ MASS lattice Matrix nlme recommendedPackages = with rPackages; [ MASS lattice Matrix nlme
survival boot cluster codetools foreign KernSmooth rpart class survival boot cluster codetools foreign KernSmooth rpart class