zfs_unstable: 2.3.0-rc3 -> 2.3.0-rc4 (#365045)
[NixPkgs.git] / pkgs / development / compilers / chicken / 5 / overrides.nix
blob0e683d8cf8f5a32d38372eef8515d84c35deeb7a
2   stdenv,
3   pkgs,
4   lib,
5   chickenEggs,
6 }:
7 let
8   inherit (lib) addMetaAttrs;
9   addToNativeBuildInputs = pkg: old: {
10     nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ lib.toList pkg;
11   };
12   addToBuildInputs = pkg: old: {
13     buildInputs = (old.buildInputs or [ ]) ++ lib.toList pkg;
14   };
15   addToPropagatedBuildInputs = pkg: old: {
16     propagatedBuildInputs = (old.propagatedBuildInputs or [ ]) ++ lib.toList pkg;
17   };
18   addPkgConfig = old: {
19     nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.pkg-config ];
20   };
21   addToBuildInputsWithPkgConfig = pkg: old: (addPkgConfig old) // (addToBuildInputs pkg old);
22   addToPropagatedBuildInputsWithPkgConfig =
23     pkg: old: (addPkgConfig old) // (addToPropagatedBuildInputs pkg old);
24   broken = addMetaAttrs { broken = true; };
25   brokenOnDarwin = addMetaAttrs { broken = stdenv.hostPlatform.isDarwin; };
26   addToCscOptions = opt: old: {
27     CSC_OPTIONS = lib.concatStringsSep " " ([ old.CSC_OPTIONS or "" ] ++ lib.toList opt);
28   };
31   allegro =
32     old:
33     (
34       (addToBuildInputsWithPkgConfig (
35         [
36           pkgs.allegro5
37           pkgs.libglvnd
38           pkgs.libGLU
39         ]
40         ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.darwin.apple_sdk.frameworks.OpenGL ]
41         ++ lib.optionals stdenv.hostPlatform.isLinux [ pkgs.xorg.libX11 ]
42       ))
43       old
44     )
45     // {
46       # depends on 'chicken' egg, which doesn't exist,
47       # so we specify all the deps here
48       propagatedBuildInputs = [
49         chickenEggs.foreigners
50       ];
51     };
52   breadline = addToBuildInputs pkgs.readline;
53   blas = addToBuildInputsWithPkgConfig pkgs.blas;
54   blosc = addToBuildInputs pkgs.c-blosc;
55   botan = addToBuildInputsWithPkgConfig pkgs.botan2;
56   cairo =
57     old:
58     (addToBuildInputsWithPkgConfig pkgs.cairo old)
59     // (addToPropagatedBuildInputs (with chickenEggs; [
60       srfi-1
61       srfi-13
62     ]) old);
63   cmark = addToBuildInputs pkgs.cmark;
64   comparse = old: {
65     # For some reason lazy-seq 2 gets interpreted as lazy-seq 0.0.0??
66     postPatch = ''
67       substituteInPlace comparse.egg \
68         --replace-fail 'lazy-seq "0.1.0"' 'lazy-seq "0.0.0"'
69     '';
70   };
71   epoxy =
72     old:
73     (addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy old)
74     // lib.optionalAttrs stdenv.cc.isClang {
75       env.NIX_CFLAGS_COMPILE = toString [
76         "-Wno-error=incompatible-function-pointer-types"
77         "-Wno-error=int-conversion"
78       ];
79     };
80   espeak = addToBuildInputsWithPkgConfig pkgs.espeak-ng;
81   exif = addToBuildInputsWithPkgConfig pkgs.libexif;
82   expat =
83     old:
84     (addToBuildInputsWithPkgConfig pkgs.expat old)
85     // lib.optionalAttrs stdenv.cc.isClang {
86       env.NIX_CFLAGS_COMPILE = toString [
87         "-Wno-error=incompatible-function-pointer-types"
88       ];
89     };
90   ezxdisp =
91     old:
92     (addToBuildInputsWithPkgConfig pkgs.xorg.libX11 old)
93     // lib.optionalAttrs stdenv.cc.isClang {
94       env.NIX_CFLAGS_COMPILE = toString [
95         "-Wno-error=implicit-function-declaration"
96       ];
97     };
98   freetype = addToBuildInputsWithPkgConfig pkgs.freetype;
99   fuse = addToBuildInputsWithPkgConfig pkgs.fuse;
100   gl-utils = addPkgConfig;
101   glfw3 = addToBuildInputsWithPkgConfig pkgs.glfw3;
102   glls = addPkgConfig;
103   iconv = addToBuildInputs (lib.optional stdenv.hostPlatform.isDarwin pkgs.libiconv);
104   icu = addToBuildInputsWithPkgConfig pkgs.icu;
105   imlib2 = addToBuildInputsWithPkgConfig pkgs.imlib2;
106   inotify =
107     old:
108     (addToBuildInputs (lib.optional stdenv.hostPlatform.isDarwin pkgs.libinotify-kqueue) old)
109     // lib.optionalAttrs stdenv.hostPlatform.isDarwin (addToCscOptions "-L -linotify" old);
110   leveldb = addToBuildInputs pkgs.leveldb;
111   lowdown = old: {
112     # For some reason comparse version gets interpreted as 0.0.0
113     postPatch = ''
114       substituteInPlace lowdown.egg \
115         --replace-fail 'comparse "3"' 'comparse "0.0.0"'
116     '';
117   };
118   magic = addToBuildInputs pkgs.file;
119   mdh =
120     old:
121     (addToBuildInputs pkgs.pcre old)
122     // lib.optionalAttrs stdenv.cc.isClang {
123       env.NIX_CFLAGS_COMPILE = toString [
124         "-Wno-error=implicit-function-declaration"
125         "-Wno-error=implicit-int"
126       ];
127     };
128   medea = old: {
129     # For some reason comparse gets interpreted as comparse 0.0.0
130     postPatch = ''
131       substituteInPlace medea.egg \
132         --replace-fail 'comparse "0.3.0"' 'comparse "0.0.0"'
133     '';
134   };
135   # missing dependency in upstream egg
136   mistie = addToPropagatedBuildInputs (with chickenEggs; [ srfi-1 ]);
137   mosquitto = addToPropagatedBuildInputs ([ pkgs.mosquitto ]);
138   nanomsg = addToBuildInputs pkgs.nanomsg;
139   ncurses = addToBuildInputsWithPkgConfig [ pkgs.ncurses ];
140   opencl = addToBuildInputs (
141     [
142       pkgs.opencl-headers
143       pkgs.ocl-icd
144     ]
145     ++ lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.darwin.apple_sdk.frameworks.OpenCL ]
146   );
147   openssl = addToBuildInputs pkgs.openssl;
148   plot = addToBuildInputs pkgs.plotutils;
149   postgresql = addToBuildInputsWithPkgConfig pkgs.postgresql;
150   rocksdb = addToBuildInputs pkgs.rocksdb_8_3;
151   scheme2c-compatibility =
152     old:
153     addToNativeBuildInputs (lib.optionals (stdenv.system == "x86_64-darwin") [
154       pkgs.memorymappingHook
155     ]) (addPkgConfig old);
156   sdl-base =
157     old:
158     (
159       (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL old)
160       //
161         # needed for sdl-config to be in PATH
162         (addToNativeBuildInputs pkgs.SDL old)
163     );
164   sdl2 =
165     old:
166     (
167       (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2 old)
168       //
169         # needed for sdl2-config to be in PATH
170         (addToNativeBuildInputs pkgs.SDL2 old)
171     );
172   sdl2-image =
173     old:
174     (
175       (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2_image old)
176       //
177         # needed for sdl2-config to be in PATH
178         (addToNativeBuildInputs pkgs.SDL2 old)
179     );
180   sdl2-ttf =
181     old:
182     (
183       (addToPropagatedBuildInputsWithPkgConfig pkgs.SDL2_ttf old)
184       //
185         # needed for sdl2-config to be in PATH
186         (addToNativeBuildInputs pkgs.SDL2 old)
187     );
188   soil = addToPropagatedBuildInputsWithPkgConfig pkgs.libepoxy;
189   sqlite3 = addToBuildInputs pkgs.sqlite;
190   stemmer = old: (addToBuildInputs pkgs.libstemmer old) // (addToCscOptions "-L -lstemmer" old);
191   stfl =
192     old: (addToBuildInputs [ pkgs.ncurses pkgs.stfl ] old) // (addToCscOptions "-L -lncurses" old);
193   taglib =
194     old:
195     (addToBuildInputs [ pkgs.zlib pkgs.taglib ] old)
196     // (
197       # needed for tablib-config to be in PATH
198       addToNativeBuildInputs pkgs.taglib old
199     );
200   uuid-lib = addToBuildInputs pkgs.libuuid;
201   webview = addToBuildInputsWithPkgConfig pkgs.webkitgtk_4_0;
202   ws-client = addToBuildInputs pkgs.zlib;
203   xlib = addToPropagatedBuildInputs pkgs.xorg.libX11;
204   yaml = addToBuildInputs pkgs.libyaml;
205   zlib = addToBuildInputs pkgs.zlib;
206   zmq = addToBuildInputs pkgs.zeromq;
207   zstd = addToBuildInputs pkgs.zstd;
209   # less trivial fixes, should be upstreamed
210   git =
211     old:
212     (addToBuildInputsWithPkgConfig pkgs.libgit2 old)
213     // {
214       postPatch = ''
215         substituteInPlace libgit2.scm \
216           --replace "asize" "reserved"
217       '';
218     };
219   lazy-ffi =
220     old:
221     (addToBuildInputs pkgs.libffi old)
222     // {
223       postPatch = ''
224         substituteInPlace lazy-ffi.scm \
225           --replace "ffi/ffi.h" "ffi.h"
226       '';
227     };
228   opengl =
229     old:
230     (addToBuildInputsWithPkgConfig (
231       lib.optionals (!stdenv.hostPlatform.isDarwin) [
232         pkgs.libGL
233         pkgs.libGLU
234       ]
235       ++ lib.optionals stdenv.hostPlatform.isDarwin [
236         pkgs.darwin.apple_sdk.frameworks.Foundation
237         pkgs.darwin.apple_sdk.frameworks.OpenGL
238       ]
239     ) old)
240     // {
241       postPatch = ''
242         substituteInPlace opengl.egg \
243           --replace 'framework ' 'framework" "'
244       '';
245     };
246   posix-shm = old: {
247     postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
248       substituteInPlace build.scm \
249         --replace "-lrt" ""
250     '';
251   };
253   # platform changes
254   pledge = addMetaAttrs { platforms = lib.platforms.openbsd; };
255   unveil = addMetaAttrs { platforms = lib.platforms.openbsd; };
257   # overrides for chicken 5.4
258   dbus =
259     old:
260     (addToBuildInputsWithPkgConfig [ pkgs.dbus ] old)
261     // {
262       # backticks in compiler options
263       # aren't supported anymore as of chicken 5.4, it seems.
264       preBuild = ''
265         substituteInPlace \
266           dbus.egg dbus.setup \
267           --replace '`pkg-config --cflags dbus-1`' "$(pkg-config --cflags dbus-1)" \
268           --replace '`pkg-config --libs dbus-1`' "$(pkg-config --libs dbus-1)"
269       '';
270     };
271   math = old: {
272     # define-values is used but not imported
273     # some breaking change happened now it needs to be done
274     # explicitly?
275     preBuild = ''
276       substituteInPlace *.scm **/*.scm \
277         --replace-quiet 'only chicken.base' 'only chicken.base define-values'
278     '';
279   };
280   socket = old: {
281     # chicken-do checks for changes to a file that doesn't exist
282     preBuild = ''
283       touch socket-config
284     '';
285   };
287   # mark broken
288   "ephem-v1.1" = broken;
289   F-operator = broken;
290   atom = broken;
291   begin-syntax = broken;
292   canvas-draw = broken;
293   chicken-doc-admin = broken;
294   coops-utils = broken;
295   crypt = broken;
296   hypergiant = broken;
297   iup = broken;
298   kiwi = broken;
299   lmdb-ht = broken;
300   mpi = broken;
301   pyffi = broken;
302   qt-light = broken;
303   salmonella-html-report = broken;
304   sundials = broken;
305   svn-client = broken;
306   system = broken;
307   tokyocabinet = broken;
309   # mark broken darwin
311   # fatal error: 'mqueue.h' file not found
312   posix-mq = brokenOnDarwin;
313   # Undefined symbols for architecture arm64: "_pthread_setschedprio"
314   pthreads = brokenOnDarwin;
315   # error: use of undeclared identifier 'B4000000'
316   stty = brokenOnDarwin;