I’m trying to override a cairo in texlive.bin. I don’t want to override it in all of nixpkgs, as that would lead to me having to recompile almost every single package on my system and my machine is not fast enough, and quite a few of the builds don’t even succeed (yes overriding cairo leads to recompiling systemd, linux and a whole bunch of other packages…).
bin doesn’t seem to be overridable
(final: prev: {
texlive = prev.texlive // {
bin = prev.texlive.bin.override {
cairo = prev.cairo.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [
(prev.fetchpatch {
url =
"https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/595.patch";
hash = "sha256-iWYxMVeNpseClSTf7BfU9GBe+tJWc+DUJWTWE5MnGh4=";
})
];
});
};
};
})
This seems to lead to infinite recursion.
I’ve also tried adding this to my systemPackages, but that also doesn’t work:
(import <nixpkgs> {
overlays = [
(final: prev: {
cairo = (prev.cairo.overrideAttrs (old: {
patches = (old.patches or [ ]) ++ [
(prev.fetchpatch {
url =
"https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/595.patch";
hash =
"sha256-iWYxMVeNpseClSTf7BfU9GBe+tJWc+DUJWTWE5MnGh4=";
})
];
}));
})
];
}).texlive;
Is there a way to do this?