default.nix (3192B)
1 { 2 callPackage 3 , lib 4 }: 5 let 6 typeChecked = caller: type: value: 7 let 8 inherit (lib) types mergeDefinitions; 9 defs = [{ file = caller; inherit value; }]; 10 type' = types.submodule { options = type; }; 11 in (mergeDefinitions [] type' defs).mergedValue; 12 in { 13 pseudofile = callPackage ./pseudofile {}; 14 liminix = { 15 services = callPackage ./liminix-tools/services {}; 16 networking = callPackage ./liminix-tools/networking {}; 17 builders = { 18 squashfs = callPackage ./liminix-tools/builders/squashfs.nix {}; 19 kernel = callPackage ./kernel {}; 20 }; 21 callService = path : parameters : 22 let pkg = callPackage path {}; 23 checkTypes = t : p : typeChecked (builtins.tostring path) t p; 24 in { 25 inherit parameters; 26 build = args : pkg (checkTypes parameters args); 27 }; 28 lib = { 29 types = 30 let inherit (lib) types isDerivation; 31 in { 32 service = types.package // { 33 name = "service"; 34 description = "s6-rc service"; 35 check = x: isDerivation x && x ? serviceType; 36 }; 37 serviceDefn = types.attrs // { 38 name = "service-defn"; 39 description = "parametrisable s6-rc service definition"; 40 check = x: lib.isAttrs x && x ? parameters && x ? build; 41 }; 42 }; 43 inherit typeChecked; 44 }; 45 }; 46 writeFennelScript = callPackage ./write-fennel-script {}; 47 writeAshScript = callPackage ./write-ash-script {}; 48 systemconfig = callPackage ./systemconfig {}; 49 s6-init-bin = callPackage ./s6-init-bin {}; 50 s6-rc-database = callPackage ./s6-rc-database {}; 51 mips-vm = callPackage ./mips-vm {}; 52 ppp = callPackage ./ppp {}; 53 pppoe = callPackage ./pppoe {}; 54 55 kernel-backport = callPackage ./kernel-backport {}; 56 mac80211 = callPackage ./mac80211 {}; 57 netlink-lua = callPackage ./netlink-lua {}; 58 linotify = callPackage ./linotify {}; 59 ifwait = callPackage ./ifwait {}; 60 61 gen_init_cpio = callPackage ./gen_init_cpio {}; 62 63 serviceFns = callPackage ./service-fns {}; 64 65 # these are packages for the build system not the host/target 66 67 tufted = callPackage ./tufted {}; 68 routeros = callPackage ./routeros {}; 69 go-l2tp = callPackage ./go-l2tp {}; 70 71 # we need to build real lzma instead of using xz, because the lzma 72 # decoder in u-boot doesn't understand streaming lzma archives 73 # ("Stream with EOS marker is not supported") and xz can't create 74 # non-streaming ones. See 75 # https://sourceforge.net/p/squashfs/mailman/message/26599379/ 76 lzma = callPackage ./lzma {}; 77 78 preinit = callPackage ./preinit {}; 79 swconfig = callPackage ./swconfig {}; 80 odhcp6c = callPackage ./odhcp6c {}; 81 82 openwrt = callPackage ./openwrt {}; 83 84 initramfs-peek = callPackage ./initramfs-peek {}; 85 min-collect-garbage = callPackage ./min-collect-garbage {}; 86 min-copy-closure = callPackage ./min-copy-closure {}; 87 hi = callPackage ./hi {}; 88 firewallgen = callPackage ./firewallgen {}; 89 kernel-modules = callPackage ./kernel-modules {}; 90 odhcp-script = callPackage ./odhcp-script {}; 91 fennel = callPackage ./fennel {}; 92 fennelrepl = callPackage ./fennelrepl {}; 93 anoia = callPackage ./anoia {}; 94 }