1{ 2 pkgs, 3 lib, 4 stdenv, 5 build-asdf-system, 6 ... 7}: 8 9let 10 11 # FIXME: automatically add nativeLibs based on conditions signalled 12 13 overrides = ( 14 self: super: { 15 cl_plus_ssl = super.cl_plus_ssl.overrideLispAttrs (o: { 16 nativeLibs = [ pkgs.openssl ]; 17 }); 18 cl-cffi-gtk-glib = super.cl-cffi-gtk-glib.overrideLispAttrs (o: { 19 nativeLibs = [ pkgs.glib ]; 20 }); 21 cl-cffi-gtk-cairo = super.cl-cffi-gtk-cairo.overrideLispAttrs (o: { 22 nativeLibs = [ pkgs.cairo ]; 23 }); 24 cl-cairo2 = super.cl-cairo2.overrideLispAttrs (o: { 25 nativeLibs = [ pkgs.cairo ]; 26 }); 27 cl-cairo2-xlib = super.cl-cairo2-xlib.overrideLispAttrs (o: { 28 nativeLibs = [ pkgs.gtk2-x11 ]; 29 }); 30 cl-freeimage = super.cl-freeimage.overrideLispAttrs (o: { 31 nativeLibs = [ pkgs.freeimage ]; 32 }); 33 cl-freetype2 = super.cl-freetype2.overrideLispAttrs (o: { 34 nativeLibs = [ pkgs.freetype ]; 35 nativeBuildInputs = [ pkgs.freetype ]; 36 patches = [ ./patches/cl-freetype2-fix-grovel-includes.patch ]; 37 }); 38 cl-pango = super.cl-pango.overrideLispAttrs (o: { 39 nativeLibs = [ pkgs.pango ]; 40 }); 41 cl-gtk2-gdk = super.cl-gtk2-gdk.overrideLispAttrs (o: { 42 nativeLibs = [ pkgs.gtk2-x11 ]; 43 }); 44 cl-gtk2-glib = super.cl-gtk2-glib.overrideLispAttrs (o: { 45 nativeLibs = [ pkgs.glib ]; 46 }); 47 cl-gtk2-pango = super.cl-gtk2-pango.overrideLispAttrs (o: { 48 nativeLibs = [ pkgs.pango ]; 49 }); 50 cl-rsvg2 = super.cl-rsvg2.overrideLispAttrs (o: { 51 nativeLibs = [ pkgs.librsvg ]; 52 }); 53 cl-cffi-gtk-gdk = super.cl-cffi-gtk-gdk.overrideLispAttrs (o: { 54 nativeLibs = [ pkgs.gtk3 ]; 55 }); 56 cl-cffi-gtk-gdk-pixbuf = super.cl-cffi-gtk-gdk-pixbuf.overrideLispAttrs (o: { 57 nativeLibs = [ pkgs.gdk-pixbuf ]; 58 }); 59 cl-cffi-gtk-pango = super.cl-cffi-gtk-pango.overrideLispAttrs (o: { 60 nativeLibs = [ pkgs.pango ]; 61 }); 62 cl-gobject-introspection = super.cl-gobject-introspection.overrideLispAttrs (o: { 63 nativeLibs = [ 64 pkgs.glib 65 pkgs.gobject-introspection 66 ]; 67 }); 68 cl-mysql = super.cl-mysql.overrideLispAttrs (o: { 69 nativeLibs = [ pkgs.mariadb.client ]; 70 }); 71 clsql-postgresql = super.clsql-postgresql.overrideLispAttrs (o: { 72 nativeLibs = [ pkgs.libpq ]; 73 }); 74 clsql-sqlite3 = super.clsql-sqlite3.overrideLispAttrs (o: { 75 nativeLibs = [ pkgs.sqlite ]; 76 }); 77 cl-webkit2 = super.cl-webkit2.overrideLispAttrs (o: { 78 nativeLibs = [ pkgs.webkitgtk_4_1 ]; 79 }); 80 dbd-mysql = super.dbd-mysql.overrideLispAttrs (o: { 81 nativeLibs = [ pkgs.mariadb.client ]; 82 }); 83 lla = super.lla.overrideLispAttrs (o: { 84 nativeLibs = [ pkgs.openblas ]; 85 }); 86 cffi = super.cffi.overrideLispAttrs (o: { 87 javaLibs = [ 88 (pkgs.fetchMavenArtifact { 89 groupId = "net.java.dev.jna"; 90 artifactId = "jna"; 91 version = "5.9.0"; 92 sha256 = "0qbis8acv04fi902qzak1mbagqaxcsv2zyp7b8y4shs5nj0cgz7a"; 93 }) 94 ]; 95 }); 96 cffi-libffi = super.cffi-libffi.overrideLispAttrs (o: { 97 nativeBuildInputs = [ pkgs.libffi ]; 98 nativeLibs = [ pkgs.libffi ]; 99 patches = lib.optionals stdenv.hostPlatform.isDarwin [ ./patches/cffi-libffi-darwin-ffi-h.patch ]; 100 }); 101 cl-rabbit = super.cl-rabbit.overrideLispAttrs (o: { 102 nativeBuildInputs = [ pkgs.rabbitmq-c ]; 103 nativeLibs = [ pkgs.rabbitmq-c ]; 104 }); 105 trivial-ssh-libssh2 = super.trivial-ssh-libssh2.overrideLispAttrs (o: { 106 nativeLibs = [ pkgs.libssh2 ]; 107 }); 108 sqlite = super.sqlite.overrideLispAttrs (o: { 109 nativeLibs = [ pkgs.sqlite ]; 110 }); 111 duckdb = super.duckdb.overrideLispAttrs (o: { 112 nativeLibs = [ pkgs.duckdb ]; 113 }); 114 cl-libuv = super.cl-libuv.overrideLispAttrs (o: { 115 nativeBuildInputs = [ pkgs.libuv ]; 116 nativeLibs = [ pkgs.libuv ]; 117 }); 118 cl-liballegro = super.cl-liballegro.overrideLispAttrs (o: { 119 nativeLibs = [ pkgs.allegro5 ]; 120 }); 121 cl-ode = super.cl-ode.overrideLispAttrs (o: { 122 nativeLibs = 123 let 124 ode' = pkgs.ode.overrideAttrs (o: { 125 configureFlags = [ 126 "--enable-shared" 127 "--enable-double-precision" 128 ]; 129 }); 130 in 131 [ ode' ]; 132 }); 133 classimp = super.classimp.overrideLispAttrs (o: { 134 nativeLibs = [ pkgs.assimp ]; 135 }); 136 sdl2 = super.sdl2.overrideLispAttrs (o: { 137 nativeLibs = [ pkgs.SDL2 ]; 138 }); 139 sdl2-image = super.sdl2-image.overrideLispAttrs (o: { 140 nativeLibs = [ pkgs.SDL2_image ]; 141 }); 142 sdl2-mixer = super.sdl2-mixer.overrideLispAttrs (o: { 143 nativeLibs = [ pkgs.SDL2_mixer ]; 144 }); 145 sdl2-ttf = super.sdl2-ttf.overrideLispAttrs (o: { 146 nativeLibs = [ pkgs.SDL2_ttf ]; 147 }); 148 lispbuilder-sdl-cffi = super.lispbuilder-sdl-cffi.overrideLispAttrs (o: { 149 nativeLibs = [ pkgs.SDL ]; 150 }); 151 cl-opengl = super.cl-opengl.overrideLispAttrs (o: { 152 nativeLibs = [ pkgs.libGL ]; 153 }); 154 cl-glu = super.cl-glu.overrideLispAttrs (o: { 155 nativeLibs = [ pkgs.libGLU ]; 156 }); 157 cl-glut = super.cl-glut.overrideLispAttrs (o: { 158 nativeLibs = [ pkgs.libglut ]; 159 }); 160 cl-glfw = super.cl-glfw.overrideLispAttrs (o: { 161 nativeLibs = [ pkgs.glfw ]; 162 }); 163 cl-glfw-opengl-core = super.cl-glfw-opengl-core.overrideLispAttrs (o: { 164 nativeLibs = [ pkgs.libGL ]; 165 }); 166 cl-glfw3 = super.cl-glfw3.overrideLispAttrs (o: { 167 nativeLibs = [ pkgs.glfw ]; 168 }); 169 lev = super.lev.overrideLispAttrs (o: { 170 nativeLibs = [ pkgs.libev ]; 171 }); 172 cl-rdkafka = super.cl-rdkafka.overrideLispAttrs (o: { 173 nativeBuildInputs = [ pkgs.rdkafka ]; 174 nativeLibs = [ pkgs.rdkafka ]; 175 }); 176 cl-async-ssl = super.cl-async-ssl.overrideLispAttrs (o: { 177 nativeLibs = [ pkgs.openssl ]; 178 }); 179 iolib = super.iolib.overrideLispAttrs (o: { 180 nativeBuildInputs = [ pkgs.libfixposix ]; 181 nativeLibs = [ pkgs.libfixposix ]; 182 systems = [ 183 "iolib" 184 "iolib/os" 185 "iolib/pathnames" 186 ]; 187 }); 188 cl-ana_dot_hdf-cffi = super.cl-ana_dot_hdf-cffi.overrideLispAttrs (o: { 189 nativeBuildInputs = [ pkgs.hdf5 ]; 190 nativeLibs = [ pkgs.hdf5 ]; 191 NIX_LDFLAGS = [ "-lhdf5" ]; 192 }); 193 gsll = super.gsll.overrideLispAttrs (o: { 194 nativeBuildInputs = [ pkgs.gsl ]; 195 nativeLibs = [ pkgs.gsl ]; 196 }); 197 cl-libyaml = super.cl-libyaml.overrideLispAttrs (o: { 198 nativeLibs = [ pkgs.libyaml ]; 199 }); 200 cl-libxml2 = super.cl-libxml2.overrideLispAttrs (o: { 201 nativeLibs = [ pkgs.libxml2 ]; 202 }); 203 cl-readline = super.cl-readline.overrideLispAttrs (o: { 204 nativeLibs = [ pkgs.readline ]; 205 }); 206 md5 = super.md5.overrideLispAttrs (o: { 207 lispLibs = [ super.flexi-streams ]; 208 }); 209 pzmq = super.pzmq.overrideLispAttrs (o: { 210 nativeBuildInputs = [ pkgs.zeromq ]; 211 nativeLibs = [ pkgs.zeromq ]; 212 }); 213 pzmq-compat = super.pzmq-compat.overrideLispAttrs (o: { 214 nativeBuildInputs = [ pkgs.zeromq ]; 215 nativeLibs = [ pkgs.zeromq ]; 216 }); 217 pzmq-examples = super.pzmq-examples.overrideLispAttrs (o: { 218 nativeBuildInputs = [ pkgs.zeromq ]; 219 nativeLibs = [ pkgs.zeromq ]; 220 }); 221 pzmq-test = super.pzmq-test.overrideLispAttrs (o: { 222 nativeBuildInputs = [ pkgs.zeromq ]; 223 nativeLibs = [ pkgs.zeromq ]; 224 }); 225 cl-git = super.cl-git.overrideLispAttrs (o: { 226 nativeLibs = [ pkgs.libgit2 ]; 227 }); 228 trivial-package-manager = super.trivial-package-manager.overrideLispAttrs (o: { 229 propagatedBuildInputs = [ pkgs.which ]; 230 }); 231 cl-sat_dot_glucose = super.cl-sat_dot_glucose.overrideLispAttrs (o: { 232 propagatedBuildInputs = [ pkgs.glucose ]; 233 patches = [ ./patches/cl-sat-binary-from-path.patch ]; 234 }); 235 cl-sat_dot_minisat = super.cl-sat_dot_minisat.overrideLispAttrs (o: { 236 propagatedBuildInputs = [ pkgs.minisat ]; 237 }); 238 hu_dot_dwim_dot_graphviz = super.hu_dot_dwim_dot_graphviz.overrideLispAttrs (o: { 239 nativeLibs = [ pkgs.graphviz ]; 240 }); 241 math = super.math.overrideLispAttrs (o: { 242 patches = [ ./patches/math-no-compile-time-directory.patch ]; 243 nativeLibs = [ pkgs.fontconfig ]; 244 }); 245 mcclim-fonts = super.mcclim-fonts.overrideLispAttrs (o: { 246 lispLibs = o.lispLibs ++ [ 247 super.cl-dejavu 248 super.zpb-ttf 249 super.cl-vectors 250 super.cl-paths-ttf 251 super.flexi-streams 252 ]; 253 systems = [ 254 "mcclim-fonts" 255 "mcclim-fonts/truetype" 256 ]; 257 }); 258 mcclim-render = super.mcclim-render.overrideLispAttrs (o: { 259 lispLibs = o.lispLibs ++ [ 260 self.mcclim-fonts 261 ]; 262 }); 263 mcclim-layouts = super.mcclim-layouts.overrideLispAttrs (o: { 264 systems = [ 265 "mcclim-layouts" 266 "mcclim-layouts/tab" 267 ]; 268 lispLibs = o.lispLibs ++ [ 269 self.mcclim 270 ]; 271 }); 272 cl-charms = super.cl-charms.overrideLispAttrs (o: { 273 nativeLibs = [ pkgs.ncurses ]; 274 }); 275 libusb-ffi = super.libusb-ffi.overrideLispAttrs (o: { 276 nativeLibs = [ pkgs.libusb-compat-0_1 ]; 277 }); 278 jpeg-turbo = super.jpeg-turbo.overrideLispAttrs (o: { 279 nativeLibs = [ pkgs.libjpeg_turbo ]; 280 }); 281 vorbisfile-ffi = super.vorbisfile-ffi.overrideLispAttrs (o: { 282 nativeLibs = [ pkgs.libvorbis ]; 283 }); 284 png = super.png.overrideLispAttrs (o: { 285 nativeLibs = [ pkgs.libpng ]; 286 }); 287 zmq = super.zmq.overrideLispAttrs (o: { 288 nativeLibs = [ pkgs.czmq ]; 289 }); 290 consfigurator = super.consfigurator.overrideLispAttrs (o: { 291 nativeLibs = [ 292 pkgs.acl 293 pkgs.libcap 294 ]; 295 }); 296 cl-gss = super.cl-gss.overrideLispAttrs (o: { 297 nativeLibs = [ pkgs.libkrb5 ]; 298 }); 299 magicffi = super.magicffi.overrideLispAttrs (o: { 300 nativeLibs = [ pkgs.file ]; 301 }); 302 keystone = super.keystone.overrideLispAttrs (o: { 303 nativeLibs = [ pkgs.keystone ]; 304 }); 305 capstone = super.capstone.overrideLispAttrs (o: { 306 nativeLibs = [ pkgs.capstone ]; 307 }); 308 vk = super.vk.overrideLispAttrs (o: { 309 nativeLibs = [ pkgs.vulkan-loader ]; 310 }); 311 _3d-math = super._3d-math.overrideLispAttrs (o: { 312 flags = o.flags ++ (if o.program == "sbcl" then [ "--dynamic-space-size 4096" ] else [ ]); 313 }); 314 } 315 ); 316 317 qlpkgs = lib.optionalAttrs (builtins.pathExists ./imported.nix) ( 318 pkgs.callPackage ./imported.nix { inherit build-asdf-system; } 319 ); 320 321in 322qlpkgs.overrideScope overrides