36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
|
let
|
|||
|
# This can be made unconditional once jq is available in the bootstrap tools. If corecrypto is not removed from
|
|||
|
# the umbrella framework, linking will fail in stage 1 because it can’t find the tbd.
|
|||
|
disallowedPackages' = builtins.fromJSON (builtins.readFile ../metadata/disallowed-packages.json);
|
|||
|
in
|
|||
|
|
|||
|
{
|
|||
|
lib,
|
|||
|
jq,
|
|||
|
stdenv,
|
|||
|
}:
|
|||
|
|
|||
|
let
|
|||
|
disallowedPackages =
|
|||
|
if jq == null then
|
|||
|
lib.filter (p: p.package != "corecrypto") disallowedPackages'
|
|||
|
else
|
|||
|
disallowedPackages';
|
|||
|
in
|
|||
|
self: super: {
|
|||
|
# Remove headers and stubs for packages that are available in nixpkgs.
|
|||
|
buildPhase =
|
|||
|
super.buildPhase or ""
|
|||
|
+ ''
|
|||
|
${lib.concatMapStringsSep "\n" (
|
|||
|
pkg:
|
|||
|
lib.concatLines (
|
|||
|
[ ''echo "Removing headers and libraries from ${pkg.package}"'' ]
|
|||
|
++ (map (header: "rm -rf -- usr/include/${header}") pkg.headers or [ ])
|
|||
|
++ (map (framework: "rm -rf -- System/Library/Frameworks/${framework}") pkg.frameworks or [ ])
|
|||
|
++ (map (library: "rm -rf -- usr/lib/${library}") pkg.libraries or [ ])
|
|||
|
)
|
|||
|
) disallowedPackages}
|
|||
|
'';
|
|||
|
}
|