Merge pull request #114902 from obsidiansystems/fix-tools-withPackages

treewide: Fix various tools wrappers "with packages"
This commit is contained in:
John Ericson 2021-03-02 19:46:10 -05:00 committed by GitHub
commit d39fafe409
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 17 deletions

View file

@ -36,8 +36,9 @@ lib.makeOverridable
, # Shell commands to run after building the symlink tree. , # Shell commands to run after building the symlink tree.
postBuild ? "" postBuild ? ""
, # Additional inputs. Handy e.g. if using makeWrapper in `postBuild`. # Additional inputs
buildInputs ? [] , nativeBuildInputs ? [] # Handy e.g. if using makeWrapper in `postBuild`.
, buildInputs ? []
, passthru ? {} , passthru ? {}
, meta ? {} , meta ? {}
@ -53,7 +54,8 @@ in
runCommand name runCommand name
rec { rec {
inherit manifest ignoreCollisions checkCollisionContents passthru inherit manifest ignoreCollisions checkCollisionContents passthru
meta pathsToLink extraPrefix postBuild buildInputs; meta pathsToLink extraPrefix postBuild
nativeBuildInputs buildInputs;
pkgs = builtins.toJSON (map (drv: { pkgs = builtins.toJSON (map (drv: {
paths = paths =
# First add the usual output(s): respect if user has chosen explicitly, # First add the usual output(s): respect if user has chosen explicitly,

View file

@ -57,9 +57,8 @@ symlinkJoin {
# as a dedicated drv attribute, like `compiler-name` # as a dedicated drv attribute, like `compiler-name`
name = ghc.name + "-with-packages"; name = ghc.name + "-with-packages";
paths = paths ++ [ghc]; paths = paths ++ [ghc];
nativeBuildInputs = [ makeWrapper ];
postBuild = '' postBuild = ''
. ${makeWrapper}/nix-support/setup-hook
# wrap compiler executables with correct env variables # wrap compiler executables with correct env variables
for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do for prg in ${ghcCommand} ${ghcCommand}i ${ghcCommand}-${ghc.version} ${ghcCommand}i-${ghc.version}; do

View file

@ -20,17 +20,14 @@ in buildEnv {
inherit ignoreCollisions; inherit ignoreCollisions;
extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
buildInputs = [ makeWrapper texinfo wrapOctave ]; nativeBuildInputs = [ makeWrapper ];
buildInputs = [ texinfo wrapOctave ];
# During "build" we must first unlink the /share symlink to octave's /share # During "build" we must first unlink the /share symlink to octave's /share
# Then, we can re-symlink the all of octave/share, except for /share/octave # Then, we can re-symlink the all of octave/share, except for /share/octave
# in env/share/octave, re-symlink everything from octave/share/octave and then # in env/share/octave, re-symlink everything from octave/share/octave and then
# perform the pkg install. # perform the pkg install.
postBuild = '' postBuild = ''
. "${makeWrapper}/nix-support/setup-hook"
# The `makeWrapper` used here is the one defined in
# ${makeWrapper}/nix-support/setup-hook
if [ -L "$out/bin" ]; then if [ -L "$out/bin" ]; then
unlink $out/bin unlink $out/bin
mkdir -p "$out/bin" mkdir -p "$out/bin"

View file

@ -17,11 +17,10 @@ let
inherit ignoreCollisions; inherit ignoreCollisions;
extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
nativeBuildInputs = [ makeWrapper ];
# we create wrapper for the binaries in the different packages # we create wrapper for the binaries in the different packages
postBuild = '' postBuild = ''
. "${makeWrapper}/nix-support/setup-hook"
if [ -L "$out/bin" ]; then if [ -L "$out/bin" ]; then
unlink "$out/bin" unlink "$out/bin"
fi fi

View file

@ -1,10 +1,15 @@
{ lib, stdenv, python, buildEnv, makeWrapper { lib, stdenv, buildEnv, makeWrapper
# manually pased
, python
, requiredPythonModules
# extra opts
, extraLibs ? [] , extraLibs ? []
, extraOutputsToInstall ? [] , extraOutputsToInstall ? []
, postBuild ? "" , postBuild ? ""
, ignoreCollisions ? false , ignoreCollisions ? false
, permitUserSite ? false , permitUserSite ? false
, requiredPythonModules
# Wrap executables with the given argument. # Wrap executables with the given argument.
, makeWrapperArgs ? [] , makeWrapperArgs ? []
, }: , }:
@ -22,9 +27,9 @@ let
inherit ignoreCollisions; inherit ignoreCollisions;
extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall; extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
postBuild = '' nativeBuildInputs = [ makeWrapper ];
. "${makeWrapper}/nix-support/setup-hook"
postBuild = ''
if [ -L "$out/bin" ]; then if [ -L "$out/bin" ]; then
unlink "$out/bin" unlink "$out/bin"
fi fi