4 # Common passthru for all perl interpreters.
10 , perlOnBuildForTarget
12 , perlOnTargetForTarget
14 , self # is perlOnHostForTarget
16 perlPackages = callPackage
17 # Function that when called
18 # - imports perl-packages.nix
19 # - adds spliced package sets to the package set
20 ({ stdenv, pkgs, perl, callPackage, makeScopeWithSplicing' }: let
21 perlPackagesFun = callPackage ../../../top-level/perl-packages.nix {
22 # allow 'perlPackages.override { pkgs = pkgs // { imagemagick = imagemagickBig; }; }' like in python3Packages
23 # most perl packages aren't called with callPackage so it's not possible to override their arguments individually
24 # the conditional is because the // above won't be applied to __splicedPackages and hopefully no one is doing that when cross-compiling
25 pkgs = if stdenv.buildPlatform != stdenv.hostPlatform then pkgs.__splicedPackages else pkgs;
31 selfBuildBuild = perlOnBuildForBuild.pkgs;
32 selfBuildHost = perlOnBuildForHost.pkgs;
33 selfBuildTarget = perlOnBuildForTarget.pkgs;
34 selfHostHost = perlOnHostForHost.pkgs;
35 selfTargetTarget = perlOnTargetForTarget.pkgs or {};
37 in makeScopeWithSplicing' {
45 buildEnv = callPackage ./wrapper.nix {
47 inherit (pkgs) requiredPerlModules;
49 withPackages = f: buildEnv.override { extraLibs = f pkgs; };
50 pkgs = perlPackages // (overrides pkgs);
51 interpreter = "${self}/bin/perl";
52 libPrefix = "lib/perl5/site_perl";
53 perlOnBuild = perlOnBuildForHost.override { inherit overrides; self = perlOnBuild; };
58 perl538 = callPackage ./interpreter.nix {
61 sha256 = "sha256-oKMVNEUet7g8fWWUpJdUOlTUiLyQygD140diV39AZV4=";
66 perl540 = callPackage ./interpreter.nix {
69 sha256 = "sha256-x0A0jzVzljJ6l5XT6DI7r9D+ilx4NfwcuroMyN/nFh8=";