liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }