From ef156fb8eda84d192b7af389528edeae50e5ca8b Mon Sep 17 00:00:00 2001 From: Matthieu Coudron Date: Mon, 18 Jan 2021 10:29:56 +0100 Subject: [PATCH] rWrapper: use symlinkJoin instead of runCommand While trying to build a haskell-project I got: Configuring library for inline-r-0.10.4.. cabal: The pkg-config package 'libR' version ==3.0 || >3.0 is required but it could not be found. the rWrapper was only bringing the R binary without its companion library: this fixes it. --- pkgs/development/r-modules/wrapper.nix | 32 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/pkgs/development/r-modules/wrapper.nix b/pkgs/development/r-modules/wrapper.nix index 76e819501a5..12704149666 100644 --- a/pkgs/development/r-modules/wrapper.nix +++ b/pkgs/development/r-modules/wrapper.nix @@ -1,21 +1,31 @@ -{ runCommand, R, makeWrapper, recommendedPackages, packages }: - -runCommand (R.name + "-wrapper") { +{ symlinkJoin, R, makeWrapper, recommendedPackages, packages }: +symlinkJoin { + name = R.name + "-wrapper"; preferLocalBuild = true; allowSubstitutes = false; buildInputs = [R] ++ recommendedPackages ++ packages; + paths = [ R ]; nativeBuildInputs = [makeWrapper]; + postBuild = '' + cd ${R}/bin + for exe in *; do + rm "$out/bin/$exe" + + makeWrapper "${R}/bin/$exe" "$out/bin/$exe" \ + --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" + done + ''; + # Make the list of recommended R packages accessible to other packages such as rpy2 passthru = { inherit recommendedPackages; }; + + meta = R.meta // { + # To prevent builds on hydra + hydraPlatforms = []; + # prefer wrapper over the package + priority = (R.meta.priority or 0) - 1; + }; } -'' -mkdir -p $out/bin -cd ${R}/bin -for exe in *; do - makeWrapper ${R}/bin/$exe $out/bin/$exe \ - --prefix "R_LIBS_SITE" ":" "$R_LIBS_SITE" -done -''