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