Merge pull request #183145 from Artturin/introspeobj

This commit is contained in:
Artturi 2022-07-28 01:42:20 +03:00 committed by GitHub
commit 64ddb6ad6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 22 additions and 45 deletions

View File

@ -90,7 +90,13 @@ stdenv.mkDerivation (finalAttrs: {
"-Dcairo=disabled"
"-Dgtk_doc=${lib.boolToString (stdenv.hostPlatform == stdenv.buildPlatform)}"
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"-Dgi_cross_ldd_wrapper=${buildPackages.prelink}/bin/prelink-rtld"
"-Dgi_cross_ldd_wrapper=${substituteAll {
name = "g-ir-scanner-lddwrapper";
isExecutable = true;
src = ./wrappers/g-ir-scanner-lddwrapper.sh;
inherit (buildPackages) bash;
buildobjdump = "${buildPackages.stdenv.cc.bintools}/bin/objdump";
}}"
"-Dgi_cross_use_prebuilt_gi=true"
"-Dgi_cross_binary_wrapper=${stdenv.hostPlatform.emulator buildPackages}"
];

View File

@ -1,32 +0,0 @@
From e0fc4a2a5161a36483ddc518be9bb14390f11b19 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 5 Sep 2018 16:46:52 +0200
Subject: [PATCH] giscanner: ignore error return codes from ldd-wrapper
prelink-rtld, which we use instead of ldd returns 127 when it can't find a library.
It is not an error per se, but it breaks subprocess.check_output().
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Adam Duskett <aduskett@gmail.com>
---
giscanner/shlibs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
index 9f8ab5df..7a1a72fe 100644
--- a/giscanner/shlibs.py
+++ b/giscanner/shlibs.py
@@ -103,7 +103,7 @@ def _resolve_non_libtool(options, binary, libraries):
args.extend(['otool', '-L', binary.args[0]])
else:
args.extend(['ldd', binary.args[0]])
- output = subprocess.check_output(args)
+ output = subprocess.run(args, check=False, stdout=subprocess.PIPE).stdout
if isinstance(output, bytes):
output = output.decode("utf-8", "replace")
--
2.25.1

View File

@ -18,24 +18,23 @@ in
(gobject-introspection-unwrapped.override args).overrideAttrs (previousAttrs: {
pname = "gobject-introspection-wrapped";
# failure in e.g. pkgsCross.aarch64-multiplatform.polkit
# subprocess.CalledProcessError: Command '['/nix/store/...-prelink-unstable-2019-06-24/bin/prelink-rtld', '/build/source/build/tmp-introspectzp2ldkyk/PolkitAgent-1.0']' returned non-zero exit status 127.
patches = previousAttrs.patches ++ [ ./giscanner-ignore-error-return-codes-from-ldd-wrapper.patch ];
postFixup = (previousAttrs.postFixup or "") + ''
mv $dev/bin/g-ir-compiler $dev/bin/.g-ir-compiler-wrapped
mv $dev/bin/g-ir-scanner $dev/bin/.g-ir-scanner-wrapped
(
export bash="${buildPackages.bash}/bin/bash"
export bash="${buildPackages.bash}"
export emulator=${lib.escapeShellArg (stdenv.targetPlatform.emulator buildPackages)}
export buildprelink="${buildPackages.prelink}/bin/prelink-rtld"
export buildobjdump="${buildPackages.stdenv.cc.bintools}/bin/objdump"
export targetgir="${lib.getDev (targetPackages.gobject-introspection-unwrapped.override argsForTarget)}"
substituteAll "${./wrappers/g-ir-compiler.sh}" "$dev/bin/g-ir-compiler"
substituteAll "${./wrappers/g-ir-scanner.sh}" "$dev/bin/g-ir-scanner"
substituteAll "${./wrappers/g-ir-scanner-lddwrapper.sh}" "$dev/bin/g-ir-scanner-lddwrapper"
chmod +x "$dev/bin/g-ir-compiler"
chmod +x "$dev/bin/g-ir-scanner"
chmod +x "$dev/bin/g-ir-scanner-lddwrapper"
)
''
# when cross-compiling and using the wrapper then when a package looks up the g_ir_X

View File

@ -1,4 +1,4 @@
#! @bash@
#! @bash@/bin/bash
# shellcheck shell=bash
exec @emulator@ @targetgir@/bin/g-ir-compiler "$@"

View File

@ -0,0 +1,4 @@
#! @bash@/bin/bash
# shellcheck shell=bash
exec @buildobjdump@ -p "$@"

View File

@ -1,7 +1,7 @@
#! @bash@
#! @bash@/bin/bash
# shellcheck shell=bash
exec @dev@/bin/.g-ir-scanner-wrapped \
--use-binary-wrapper=@emulator@ \
--use-ldd-wrapper=@buildprelink@ \
--use-ldd-wrapper=@dev@/bin/g-ir-scanner-lddwrapper \
"$@"

View File

@ -2,6 +2,7 @@
, stdenv
, fetchFromGitLab
, meson
, mesonEmulatorHook
, ninja
, pkg-config
, gobject-introspection
@ -39,16 +40,15 @@ stdenv.mkDerivation rec {
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [
gobject-introspection
glib
];
mesonFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"-Dgtk_doc=false"
];
meta = with lib; {
homepage = "https://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib";
description = "Qualcomm IPC Router protocol helper library";