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
35
36
37
38
39
40
41
42
43
44
45
46
{ pkgs }:
let
callPackage = pkgs.lib.callPackageWith (pkgs // self);
callPackageWithMerged = attrName: f: extraArgs:
let
mergedSubset = pkgs.${attrName} // self.${attrName};
subsetArgs = builtins.listToAttrs [{ name = attrName; value = mergedSubset; }];
in
callPackage f (subsetArgs // extraArgs);
self = rec {
dma = callPackage ./tools/networking/dma { };
drep = callPackage ./tools/text/drep { };
dyndnsc = callPackageWithMerged "python3Packages" ./tools/networking/dyndnsc { };
guile-commonmark = callPackage ./development/guile-modules/guile-commonmark { };
guile-json = callPackage ./development/guile-modules/guile-json { };
haunt = callPackage ./applications/misc/haunt { };
linuxPackages = pkgs.recurseIntoAttrs (linuxPackagesFor pkgs.linux);
linuxPackages_latest = pkgs.recurseIntoAttrs (linuxPackagesFor pkgs.linux_latest);
linuxPackagesFor = kernel:
let
ksuper = pkgs.linuxPackagesFor kernel;
kself = import ./os-specific/linux/kernel-packages.nix (ksuper // kself) ksuper;
in
pkgs.lib.makeExtensible (_: kself);
python3Packages =
let
pysuper = pkgs.python3Packages;
pyself = import ./development/python-modules (pysuper // pyself) pysuper;
in
pkgs.recurseIntoAttrs pyself;
shellharden = callPackage ./development/tools/shellharden { };
trust-dns = callPackage ./servers/dns/trust-dns { };
};
in
self