Apply platform patches before planning source repository packages

This commit is contained in:
Moritz Angermann committed 2026-10-15 21:57:10 +09:00
1 parent b0eab49f34
commit 31b91a1cdc
2 files changed
+46 -25

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
{ pkgs, cabalProject, sha256map, patchesByUrl }:
let
parsed = pkgs.haskell-nix.haskellLib.parseSourceRepositoryPackages
"cabal.project" sha256map {} cabalProject;
repos = map (block: block.sourceRepo)
(builtins.filter (block: block ? sourceRepo) parsed.sourceRepos);
patchedSource = url: patches:
let
matches = builtins.filter (repo: repo.url == url) repos;
repo = assert pkgs.lib.assertMsg (builtins.length matches == 1)
"Expected exactly one pinned source repository for ${url}";
builtins.head matches;
rev = repo.rev or repo.ref;
in {
name = "${url}/${rev}";
value = pkgs.applyPatches {
src = pkgs.fetchgit {
inherit (repo) url sha256;
inherit rev;
};
inherit patches;
};
};
in builtins.listToAttrs (pkgs.lib.mapAttrsToList patchedSource patchesByUrl)