gnome.eog: Hardcode library path in gir

By default, gobject-introspection refers to libraries using their
file name in the GIR file. Since we do not have FHS to reliably
find libraries by their name, we are patching gobject-introspection
to use absolute paths.

This works fine for libraries installed to "$out/lib" but when a different
path is used, the hard-coded absolute path will be incorrect.
To deal with this case, we also patch Meson to be able
to pass the install_dir to gobject-introspection.
But it currently only passes the data for targets
that have absolute install_dir set.

To have correct libeog path, we therefore need to absolutize the install_dir.
This commit is contained in:
Jan Tojnar 2022-04-03 19:01:27 +02:00
parent ac726e8502
commit e29253ad9b
2 changed files with 20 additions and 0 deletions

View file

@ -38,6 +38,13 @@ stdenv.mkDerivation rec {
sha256 = "sha256-+zW/tRZ6QhIfWae5t6wNdbvQUXua/W2Rgx6E01c13fg=";
};
patches = [
# Fix path to libeog.so in the gir file.
# We patch gobject-introspection to hardcode absolute paths but
# our Meson patch will only pass the info when install_dir is absolute as well.
./fix-gir-lib-path.patch
];
nativeBuildInputs = [
meson
ninja

View file

@ -0,0 +1,13 @@
diff --git a/src/meson.build b/src/meson.build
index cc9d3856..f909836d 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -165,7 +165,7 @@ libeog = shared_library(
link_args: ldflags,
link_depends: symbol_map,
install: true,
- install_dir: eog_pkglibdir,
+ install_dir: eog_prefix / eog_pkglibdir,
)
libeog_dep = declare_dependency(