From 8acd397e566a90d313fcd03e1c00e9ea4da284a0 Mon Sep 17 00:00:00 2001 From: Colin Date: Wed, 8 May 2024 17:55:35 +0000 Subject: [PATCH] libgweather: enable introspection on cross builds without introspection, consumers like gnome.gnome-weather fail at runtime --- pkgs/by-name/li/libgweather/package.nix | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/li/libgweather/package.nix b/pkgs/by-name/li/libgweather/package.nix index 838ad727b739..c528a2198ddc 100644 --- a/pkgs/by-name/li/libgweather/package.nix +++ b/pkgs/by-name/li/libgweather/package.nix @@ -1,6 +1,8 @@ { lib , stdenv +, buildPackages , fetchurl +, makeWrapper , meson , ninja , pkg-config @@ -16,7 +18,7 @@ , geocode-glib_2 , vala , gnome -, withIntrospection ? stdenv.buildPlatform == stdenv.hostPlatform +, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages }: stdenv.mkDerivation rec { @@ -38,6 +40,7 @@ stdenv.mkDerivation rec { ]; depsBuildBuild = [ + makeWrapper pkg-config ]; @@ -70,19 +73,25 @@ stdenv.mkDerivation rec { ]; postPatch = '' - patchShebangs build-aux/meson/gen_locations_variant.py + patchShebangs --build build-aux/meson/gen_locations_variant.py + wrapProgram $PWD/build-aux/meson/gen_locations_variant.py \ + --prefix GI_TYPELIB_PATH : ${lib.getLib buildPackages.glib}/lib/girepository-1.0 \ # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake) # it should be a build-time dep for build # TODO: send upstream substituteInPlace doc/meson.build \ - --replace "'gi-docgen', ver" "'gi-docgen', native:true, ver" \ - --replace "'gi-docgen', req" "'gi-docgen', native:true, req" + --replace-fail "'gi-docgen', ver" "'gi-docgen', native:true, ver" \ + --replace-fail "'gi-docgen', req" "'gi-docgen', native:true, req" # gir works for us even when cross-compiling # TODO: send upstream because downstream users can use the option to disable gir if they don't have it working - substituteInPlace libgweather/meson.build \ - --replace "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()" + substituteInPlace meson.build \ + --replace-fail "g_ir_scanner.found() and not meson.is_cross_build()" "g_ir_scanner.found()" + + substituteInPlace libgweather/meson.build --replace-fail \ + "dependency('vapigen', required: enable_vala == 'true')" \ + "dependency('vapigen', native: true, required: enable_vala == 'true')" ''; postFixup = '' @@ -90,6 +99,8 @@ stdenv.mkDerivation rec { moveToOutput "share/doc" "$devdoc" ''; + strictDeps = true; + passthru = { updateScript = gnome.updateScript { packageName = pname;