Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.03 211 lines 5.0 kB view raw
1{ pkgs, idris-no-deps, overrides ? (self: super: {}) }: let 2 inherit (pkgs.lib) callPackageWith fix' extends; 3 4 /* Taken from haskell-modules/default.nix, should probably abstract this away */ 5 callPackageWithScope = scope: drv: args: (callPackageWith scope drv args) // { 6 overrideScope = f: callPackageWithScope (mkScope (fix' (extends f scope.__unfix__))) drv args; 7 }; 8 9 mkScope = scope : pkgs // pkgs.xorg // pkgs.gnome2 // scope; 10 11 idrisPackages = self: let 12 defaultScope = mkScope self; 13 14 callPackage = callPackageWithScope defaultScope; 15 16 builtins_ = pkgs.lib.mapAttrs self.build-builtin-package { 17 prelude = []; 18 19 base = [ self.prelude ]; 20 21 contrib = [ self.prelude self.base ]; 22 23 effects = [ self.prelude self.base ]; 24 25 pruviloj = [ self.prelude self.base ]; 26 }; 27 28 in 29 { 30 inherit idris-no-deps callPackage; 31 32 # Idris wrapper with specified compiler and library paths, used to build packages 33 34 idris = pkgs.callPackage ./idris-wrapper.nix { 35 inherit idris-no-deps; 36 }; 37 38 # Utilities for building packages 39 40 with-packages = callPackage ./with-packages.nix {} ; 41 42 build-builtin-package = callPackage ./build-builtin-package.nix {}; 43 44 build-idris-package = callPackage ./build-idris-package.nix {}; 45 46 # The set of libraries that comes with idris 47 48 builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_; 49 50 # Libraries 51 52 array = callPackage ./array.nix {}; 53 54 bi = callPackage ./bi.nix {}; 55 56 bifunctors = callPackage ./bifunctors.nix {}; 57 58 bytes = callPackage ./bytes.nix {}; 59 60 canvas = callPackage ./canvas.nix {}; 61 62 categories = callPackage ./categories.nix {}; 63 64 coda = callPackage ./coda.nix {}; 65 66 config = callPackage ./config.nix {}; 67 68 comonad = callPackage ./comonad.nix {}; 69 70 composition = callPackage ./composition.nix {}; 71 72 console = callPackage ./console.nix {}; 73 74 containers = callPackage ./containers.nix {}; 75 76 cube = callPackage ./cube.nix {}; 77 78 data = callPackage ./data.nix {}; 79 80 derive = callPackage ./derive.nix {}; 81 82 descncrunch = callPackage ./descncrunch.nix {}; 83 84 dict = callPackage ./dict.nix {}; 85 86 dom = callPackage ./dom.nix {}; 87 88 electron = callPackage ./electron.nix {}; 89 90 eternal = callPackage ./eternal.nix {}; 91 92 farrp = callPackage ./farrp.nix {}; 93 94 free = callPackage ./free.nix {}; 95 96 fsm = callPackage ./fsm.nix {}; 97 98 glfw = callPackage ./glfw.nix {}; 99 100 graphviz = callPackage ./graphviz.nix {}; 101 102 hamt = callPackage ./hamt.nix {}; 103 104 html = callPackage ./html.nix {}; 105 106 hezarfen = callPackage ./hezarfen.nix {}; 107 108 hrtime = callPackage ./hrtime.nix {}; 109 110 http = callPackage ./http.nix {}; 111 112 http4idris = callPackage ./http4idris.nix {}; 113 114 iaia = callPackage ./iaia.nix {}; 115 116 idrishighlighter = callPackage ./idrishighlighter.nix {}; 117 118 idrisscript = callPackage ./idrisscript.nix {}; 119 120 ipkgparser = callPackage ./ipkgparser.nix {}; 121 122 jheiling-extras = callPackage ./jheiling-extras.nix {}; 123 124 jheiling-js = callPackage ./jheiling-js.nix {}; 125 126 js = callPackage ./js.nix {}; 127 128 lens = callPackage ./lens.nix {}; 129 130 lightyear = callPackage ./lightyear.nix {}; 131 132 logic = callPackage ./logic.nix {}; 133 134 mapping = callPackage ./mapping.nix {}; 135 136 mhd = callPackage ./mhd.nix {}; 137 138 pacman = callPackage ./pacman.nix {}; 139 140 patricia = callPackage ./patricia.nix {}; 141 142 permutations = callPackage ./permutations.nix {}; 143 144 pfds = callPackage ./pfds.nix {}; 145 146 pipes = callPackage ./pipes.nix {}; 147 148 posix = callPackage ./posix.nix {}; 149 150 protobuf = callPackage ./protobuf.nix {}; 151 152 quantities = callPackage ./quantities.nix {}; 153 154 rationals = callPackage ./rationals.nix {}; 155 156 recursion_schemes = callPackage ./recursion_schemes.nix {}; 157 158 refined = callPackage ./refined.nix {}; 159 160 sdl = callPackage ./sdl.nix {}; 161 162 sdl2 = callPackage ./sdl2.nix {}; 163 164 semidirect = callPackage ./semidirect.nix {}; 165 166 setoids = callPackage ./setoids.nix {}; 167 168 smproc = callPackage ./smproc.nix {}; 169 170 snippets = callPackage ./snippets.nix {}; 171 172 software_foundations = callPackage ./software_foundations.nix {}; 173 174 specdris = callPackage ./specdris.nix {}; 175 176 tap = callPackage ./tap.nix {}; 177 178 test = callPackage ./test.nix {}; 179 180 tlhydra = callPackage ./tlhydra.nix {}; 181 182 tomladris = callPackage ./tomladris.nix {}; 183 184 tp = callPackage ./tp.nix {}; 185 186 tparsec = callPackage ./tparsec.nix {}; 187 188 transducers = callPackage ./transducers.nix {}; 189 190 trees = callPackage ./trees.nix {}; 191 192 union_type = callPackage ./union_type.nix {}; 193 194 vdom = callPackage ./vdom.nix {}; 195 196 vecspace = callPackage ./vecspace.nix {}; 197 198 webgl = callPackage ./webgl.nix {}; 199 200 wl-pprint = callPackage ./wl-pprint.nix {}; 201 202 wyvern = callPackage ./wyvern.nix {}; 203 204 xhr = callPackage ./xhr.nix {}; 205 206 yaml = callPackage ./yaml.nix {}; 207 208 yampa = callPackage ./yampa.nix {}; 209 210 } // builtins_; 211in fix' (extends overrides idrisPackages)