pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / build-support / rust / default-crate-overrides.nix
blob21ca75357fbbfd7c1559c7959e2ba4bb1f0099b2
1 { lib
2 , stdenv
3 , alsa-lib
4 , atk
5 , autoconf
6 , automake
7 , cairo
8 , capnproto
9 , clang
10 , cmake
11 , curl
12 , darwin
13 , dbus
14 , dbus-glib
15 , fontconfig
16 , foundationdb
17 , freetype
18 , gdk-pixbuf
19 , glib
20 , gmp
21 , gobject-introspection
22 , graphene
23 , gtk3
24 , gtk4
25 , libevdev
26 , libgit2
27 , libsodium
28 , libsoup_3
29 , libssh2
30 , libtool
31 , linux-pam
32 , llvmPackages
33 , nettle
34 , openssl
35 , pango
36 , pkg-config
37 , postgresql
38 , protobuf
39 , python3
40 , rdkafka
41 , seatd # =libseat
42 , sqlite
43 , udev
44 , webkitgtk_4_1
45 , zlib
46 , buildPackages
47 , ...
50 let
51   inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
54   alsa-sys = attrs: {
55     nativeBuildInputs = [ pkg-config ];
56     buildInputs = [ alsa-lib ];
57   };
59   cairo-rs = attrs: {
60     buildInputs = [ cairo ];
61   };
63   cairo-sys-rs = attrs: {
64     nativeBuildInputs = [ pkg-config ];
65     buildInputs = [ cairo ];
66     extraLinkFlags = [ "-L${zlib.out}/lib" ];
67   };
69   capnp-rpc = attrs: {
70     nativeBuildInputs = [ capnproto ];
71   };
73   cargo = attrs: {
74     buildInputs = [ openssl zlib curl ]
75       ++ lib.optionals stdenv.hostPlatform.isDarwin [ CoreFoundation Security ];
76   };
78   libz-sys = attrs: {
79     nativeBuildInputs = [ pkg-config ];
80     buildInputs = [ zlib ];
81     extraLinkFlags = [ "-L${zlib.out}/lib" ];
82   };
84   curl-sys = attrs: {
85     nativeBuildInputs = [ pkg-config ];
86     buildInputs = [ zlib curl ];
87     propagatedBuildInputs = [ curl zlib ];
88     extraLinkFlags = [ "-L${zlib.out}/lib" ];
89   };
91   dbus = attrs: {
92     nativeBuildInputs = [ pkg-config ];
93     buildInputs = [ dbus ];
94   };
96   evdev-sys = attrs: {
97     nativeBuildInputs = [
98       pkg-config
99     ] ++ lib.optionals (stdenv.buildPlatform.config != stdenv.hostPlatform.config) [
100       python3
101       autoconf
102       automake
103       libtool
104     ];
105     buildInputs = [ libevdev ];
107     # This prevents libevdev's build.rs from trying to `git fetch` when HOST!=TARGET
108     prePatch = ''
109       touch libevdev/.git
110     '';
111   };
113   expat-sys = attrs: {
114     nativeBuildInputs = [ cmake ];
115   };
117   foundationdb-sys = attrs: {
118     buildInputs = [ foundationdb ];
119     # needed for 0.4+ release, when the FFI bindings are auto-generated
120     #
121     # patchPhase = ''
122     #   substituteInPlace ./foundationdb-sys/build.rs \
123     #     --replace /usr/local/include ${foundationdb.dev}/include
124     # '';
125   };
127   foundationdb = attrs: {
128     buildInputs = [ foundationdb ];
129   };
131   freetype-sys = attrs: {
132     nativeBuildInputs = [ cmake ];
133     buildInputs = [ freetype ];
134   };
136   glib-sys = attrs: {
137     nativeBuildInputs = [ pkg-config ];
138     buildInputs = [ glib ];
139     extraLinkFlags = [ "-L${zlib.out}/lib" ];
140   };
142   gobject-sys = attrs: {
143     nativeBuildInputs = [ pkg-config ];
144     buildInputs = [ dbus-glib ];
145   };
147   gio-sys = attrs: {
148     nativeBuildInputs = [ pkg-config ];
149     buildInputs = [ dbus-glib ];
150   };
152   gdk-pixbuf = attrs: {
153     buildInputs = [ dbus-glib gdk-pixbuf ];
154   };
156   gdk-pixbuf-sys = attrs: {
157     nativeBuildInputs = [ pkg-config ];
158     buildInputs = [ gdk-pixbuf ];
159   };
161   gdk-sys = attrs: {
162     nativeBuildInputs = [ pkg-config ];
163     buildInputs = [ gtk3 ]; # libgdk-3
164   };
166   gdkx11-sys = attrs: {
167     nativeBuildInputs = [ pkg-config ];
168     buildInputs = [ gtk3 ];
169   };
171   gtk-sys = attrs: {
172     buildInputs = [ gtk3 ];
173     nativeBuildInputs = [ pkg-config ];
174   };
176   gtk4-sys = attrs: {
177     buildInputs = [ gtk4 ];
178     nativeBuildInputs = [ pkg-config ];
179   };
181   gdk4-sys = attrs: {
182     buildInputs = [ gtk4 ];
183     nativeBuildInputs = [ pkg-config ];
184   };
186   gsk4-sys = attrs: {
187     buildInputs = [ gtk4 ];
188     nativeBuildInputs = [ pkg-config ];
189   };
191   libgit2-sys = attrs: {
192     LIBGIT2_SYS_USE_PKG_CONFIG = true;
193     nativeBuildInputs = [ pkg-config ];
194     buildInputs = [ openssl zlib libgit2 ];
195   };
197   libseat-sys = attrs: {
198     nativeBuildInputs = [ pkg-config ];
199     buildInputs = [ seatd ];
200   };
202   libsqlite3-sys = attrs: {
203     nativeBuildInputs = [ pkg-config ];
204     buildInputs = [ sqlite ];
205   };
207   libssh2-sys = attrs: {
208     nativeBuildInputs = [ pkg-config ];
209     buildInputs = [ openssl zlib libssh2 ];
210   };
212   libdbus-sys = attrs: {
213     nativeBuildInputs = [ pkg-config ];
214     buildInputs = [ dbus ];
215   };
217   libudev-sys = attrs: {
218     nativeBuildInputs = [ pkg-config ];
219     buildInputs = [ udev ];
220   };
222   graphene-sys = attrs: {
223     nativeBuildInputs = [ pkg-config gobject-introspection ];
224     buildInputs = [ graphene ];
225   };
227   javascriptcore-rs-sys = attrs: {
228     nativeBuildInputs = [ pkg-config ];
229     buildInputs = [ webkitgtk_4_1 ];
230   };
232   nettle-sys = attrs: {
233     nativeBuildInputs = [ pkg-config ];
234     buildInputs = [ nettle clang ];
235     LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
236   };
238   openssl = attrs: {
239     buildInputs = [ openssl ];
240   };
242   openssl-sys = attrs: {
243     nativeBuildInputs = [ pkg-config ];
244     buildInputs = [ openssl ];
245   };
247   opentelemetry-proto = attrs: {
248     nativeBuildInputs = [ protobuf ];
249   };
251   pam-sys = attr: {
252     buildInputs = [ linux-pam ];
253   };
255   pango-sys = attr: {
256     nativeBuildInputs = [ pkg-config ];
257     buildInputs = [ pango ];
258   };
260   pq-sys = attr: {
261     nativeBuildInputs = [ pkg-config ];
262     buildInputs = [ postgresql ];
263   };
265   prost-build = attr: {
266     nativeBuildInputs = [ protobuf ];
267   };
269   prost-wkt-types = attr: {
270     nativeBuildInputs = [ protobuf ];
271   };
273   rdkafka-sys = attr: {
274     nativeBuildInputs = [ pkg-config ];
275     buildInputs = [ rdkafka ];
276   };
278   rink = attrs: {
279     buildInputs = [ gmp ];
280     crateBin = [{ name = "rink"; path = "src/bin/rink.rs"; }];
281   };
283   security-framework-sys = attr: {
284     propagatedBuildInputs = lib.optional stdenv.hostPlatform.isDarwin Security;
285   };
287   sequoia-openpgp = attrs: {
288     buildInputs = [ gmp ];
289   };
291   sequoia-openpgp-ffi = attrs: {
292     buildInputs = [ gmp ];
293   };
295   sequoia-ipc = attrs: {
296     buildInputs = [ gmp ];
297   };
299   sequoia-guide = attrs: {
300     buildInputs = [ gmp ];
301   };
303   pangocairo-sys = attr: {
304     nativeBuildInputs = [ pkg-config ];
305     buildInputs = [ pango ];
306   };
308   sequoia-store = attrs: {
309     nativeBuildInputs = [ capnproto ];
310     buildInputs = [ sqlite gmp ];
311   };
313   sequoia-sq = attrs: {
314     buildInputs = [ sqlite gmp ];
315   };
317   sequoia-tool = attrs: {
318     nativeBuildInputs = [ capnproto ];
319     buildInputs = [ sqlite gmp ];
320   };
322   serde_derive = attrs: {
323     buildInputs = lib.optional stdenv.hostPlatform.isDarwin Security;
324   };
326   servo-fontconfig-sys = attrs: {
327     nativeBuildInputs = [ pkg-config ];
328     buildInputs = [ freetype fontconfig ];
329   };
331   soup3-sys = attrs: {
332     nativeBuildInputs = [ pkg-config ];
333     buildInputs = [ libsoup_3 ];
334     extraLinkFlags = [ "-L${zlib.out}/lib" ];
335   };
337   thrussh-libsodium = attrs: {
338     nativeBuildInputs = [ pkg-config ];
339     buildInputs = [ libsodium ];
340   };
342   tonic-reflection = attrs: {
343     nativeBuildInputs = [ protobuf ];
344   };
346   webkit2gtk-sys = attrs: {
347     nativeBuildInputs = [ pkg-config ];
348     buildInputs = [ webkitgtk_4_1 ];
349     extraLinkFlags = [ "-L${zlib.out}/lib" ];
350   };
352   xcb = attrs: {
353     buildInputs = [ python3 ];
354   };
356   atk-sys = attrs: {
357     nativeBuildInputs = [ pkg-config ];
358     buildInputs = [ atk ];
359   };
361   # Assumes it can run Command::new(env::var("CARGO")).arg("locate-project")
362   # https://github.com/bkchr/proc-macro-crate/blame/master/src/lib.rs#L244
363   proc-macro-crate = attrs: lib.optionalAttrs (lib.versionAtLeast attrs.version "2.0") {
364     prePatch = (attrs.prePatch or "") + ''
365       substituteInPlace \
366         src/lib.rs \
367         --replace-fail \
368         'env::var("CARGO").map_err(|_| Error::CargoEnvVariableNotSet)?' \
369         '"${lib.getBin buildPackages.cargo}/bin/cargo"'
370     '';
371   };