nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 80 lines 2.1 kB view raw
1{ callPackage }: 2 3let 4 # Common passthru for all perl interpreters. 5 # copied from lua 6 passthruFun = 7 { 8 overrides, 9 perlOnBuildForBuild, 10 perlOnBuildForHost, 11 perlOnBuildForTarget, 12 perlOnHostForHost, 13 perlOnTargetForTarget, 14 perlAttr ? null, 15 tests ? { }, 16 self, # is perlOnHostForTarget 17 }: 18 let 19 perlPackages = 20 callPackage 21 # Function that when called 22 # - imports perl-packages.nix 23 # - adds spliced package sets to the package set 24 ( 25 { 26 stdenv, 27 pkgs, 28 perl, 29 callPackage, 30 makeScopeWithSplicing', 31 }: 32 let 33 perlPackagesFun = callPackage ../../../top-level/perl-packages.nix { 34 inherit stdenv pkgs; 35 perl = self; 36 }; 37 38 otherSplices = { 39 selfBuildBuild = perlOnBuildForBuild.pkgs; 40 selfBuildHost = perlOnBuildForHost.pkgs; 41 selfBuildTarget = perlOnBuildForTarget.pkgs; 42 selfHostHost = perlOnHostForHost.pkgs; 43 selfTargetTarget = perlOnTargetForTarget.pkgs or { }; 44 }; 45 in 46 makeScopeWithSplicing' { 47 inherit otherSplices; 48 f = perlPackagesFun; 49 } 50 ) 51 { 52 perl = self; 53 }; 54 in 55 rec { 56 buildEnv = callPackage ./wrapper.nix { 57 perl = self; 58 inherit (pkgs) requiredPerlModules; 59 }; 60 withPackages = f: buildEnv.override { extraLibs = f pkgs; }; 61 pkgs = perlPackages // (overrides pkgs); 62 interpreter = "${self}/bin/perl"; 63 libPrefix = "lib/perl5/site_perl"; 64 perlOnBuild = perlOnBuildForHost.override { 65 inherit overrides; 66 self = perlOnBuild; 67 }; 68 69 inherit tests; 70 }; 71 72in 73rec { 74 perl5 = callPackage ./interpreter.nix { 75 self = perl5; 76 version = "5.42.0"; 77 sha256 = "sha256-4JPvGE1/mhuXl+JGUpb1VRCtttq4hCsMPtUzKWYwltw="; 78 inherit passthruFun; 79 }; 80}