35 lines
1.1 KiB
Nix
35 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}
|
||
'';
|
||
}
|