blob: 2a40da2a0d9c12ffeca8e817822a4fc2e24170b6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
_: super: {
# Given a generic `builder`, will generate an attrset for all the packages
# pinned by `deps` with `builder` applied to the package. This attrset can
# then be merged with the rest of the packages in the set as part of an
# overlay or overrides.
overridePinnedDeps = builder:
super.lib.genAttrs (builtins.attrNames super.sources) builder;
# Modifies a derivation with our source and version, keeping super build
# rules. This will fail if build steps have changed, or if no build
# rules are available upstream.
overrideSource = depName:
if super ? "${depName}" && super.${depName} ? overrideAttrs
then
super.${depName}.overrideAttrs (attrs:
attrs
// rec {
version =
super.sources.${depName}.version or super.sources.${depName}.rev;
src = super.sources.${depName};
})
else null;
# Simply override the 'src' attr on a drv. This is meant to be a simpler
# alternative to 'overrideSource' above. In an overlay, use it like:
# mypkg = super.overrideSrc super.mypkg super.sources.mypkg;
overrideSrc = dep: src:
dep.overrideAttrs (attrs:
attrs
// {
version = src.version or src.rev;
src = src;
});
}
|