diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2018-01-20 15:08:27 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2018-01-20 15:58:20 +0100 |
commit | e44038bccab0cae96a93fa517a9acaab9c81a6d8 (patch) | |
tree | 501131be316dbc19f1daa39e9201b9877798e02e | |
parent | 4fd0a3a43d6a4be050e786706e258707049d76d9 (diff) | |
download | nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar.gz nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar.bz2 nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar.lz nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar.xz nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.tar.zst nixlib-e44038bccab0cae96a93fa517a9acaab9c81a6d8.zip |
gobjectIntrospection: use absolute path for cairo GIR
Cairo does not provide its own GObject bindinds so they are provided by gobject-introspection package. Unfortunately, this means that if we want to use the absolute path, we need gi to depend on cairo, which increases the closure size from 41M to 56M. We will probably want to split the typelib into a separate output. Closes: #34080
-rw-r--r-- | pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch | 11 | ||||
-rw-r--r-- | pkgs/development/libraries/gobject-introspection/default.nix | 17 |
2 files changed, 23 insertions, 5 deletions
diff --git a/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch b/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch new file mode 100644 index 000000000000..f7e1bedd3e18 --- /dev/null +++ b/pkgs/development/libraries/gobject-introspection/absolute_gir_path.patch @@ -0,0 +1,11 @@ +--- a/gir/cairo-1.0.gir.in ++++ b/gir/cairo-1.0.gir.in +@@ -5,7 +5,7 @@ + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <package name="%CAIRO_GIR_PACKAGE%"/> + <namespace name="cairo" version="1.0" +- shared-library="%CAIRO_SHARED_LIBRARY%" ++ shared-library="@cairoLib@/%CAIRO_SHARED_LIBRARY%" + c:identifier-prefixes="cairo" + c:symbol-prefixes="cairo"> + <record name="Context" c:type="cairo_t" foreign="1" diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix index f629b9a8a3c3..870f77686b3e 100644 --- a/pkgs/development/libraries/gobject-introspection/default.nix +++ b/pkgs/development/libraries/gobject-introspection/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, glib, flex, bison, pkgconfig, libffi, python -, libintlOrEmpty, cctools +, libintlOrEmpty, cctools, cairo , substituteAll, nixStoreDir ? builtins.storeDir }: # now that gobjectIntrospection creates large .gir files (eg gtk3 case) @@ -38,10 +38,17 @@ stdenv.mkDerivation rec { setupHook = ./setup-hook.sh; - patches = stdenv.lib.singleton (substituteAll { - src = ./absolute_shlib_path.patch; - inherit nixStoreDir; - }); + patches = [ + (substituteAll { + src = ./absolute_shlib_path.patch; + inherit nixStoreDir; + }) + # https://github.com/NixOS/nixpkgs/issues/34080 + (substituteAll { + src = ./absolute_gir_path.patch; + cairoLib = "${getLib cairo}/lib"; + }) + ]; meta = with stdenv.lib; { description = "A middleware layer between C libraries and language bindings"; |