1 { lib, perl, buildEnv, makeWrapper
3 , extraOutputsToInstall ? []
5 , ignoreCollisions ? false
9 # Create a perl executable that knows about additional packages.
12 paths = requiredPerlModules (extraLibs ++ [ perl ] );
14 name = "${perl.name}-env";
17 inherit ignoreCollisions;
18 extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
20 nativeBuildInputs = [ makeWrapper ];
22 # we create wrapper for the binaries in the different packages
24 if [ -L "$out/bin" ]; then
29 # take every binary from perl packages and put them into the env
30 for path in ${lib.concatStringsSep " " paths}; do
31 if [ -d "$path/bin" ]; then
34 if [ -f "$prg" ]; then
36 if [ -x "$prg" ]; then
37 makeWrapper "$path/bin/$prg" "$out/bin/$prg" --suffix PERL5LIB ':' "$out/${perl.libPrefix}"
45 meta = perl.meta // { outputsToInstall = ["out"]; }; # remove "man" from meta.outputsToInstall. pkgs.buildEnv produces no "man", it puts everything to "out"
47 passthru = perl.passthru // {
48 interpreter = "${env}/bin/perl";