From patchwork Thu Feb 23 00:54:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Bobroff X-Patchwork-Id: 731350 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vTG566mMkz9s78 for ; Thu, 23 Feb 2017 11:56:10 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 1316C93321; Thu, 23 Feb 2017 00:56:05 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zykCPQ892luS; Thu, 23 Feb 2017 00:56:03 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 85B0393351; Thu, 23 Feb 2017 00:56:03 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id CEEEC1C14F8 for ; Thu, 23 Feb 2017 00:55:59 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id CBC6F30FD6 for ; Thu, 23 Feb 2017 00:55:59 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XHZ2p-blXIwP for ; Thu, 23 Feb 2017 00:55:58 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by silver.osuosl.org (Postfix) with ESMTPS id BA20C2FF74 for ; Thu, 23 Feb 2017 00:55:58 +0000 (UTC) Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v1N0rXmL037025 for ; Wed, 22 Feb 2017 19:55:58 -0500 Received: from e23smtp02.au.ibm.com (e23smtp02.au.ibm.com [202.81.31.144]) by mx0a-001b2d01.pphosted.com with ESMTP id 28shksra1b-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Wed, 22 Feb 2017 19:55:58 -0500 Received: from localhost by e23smtp02.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 23 Feb 2017 10:55:55 +1000 Received: from d23dlp03.au.ibm.com (202.81.31.214) by e23smtp02.au.ibm.com (202.81.31.208) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 23 Feb 2017 10:55:53 +1000 Received: from d23relay08.au.ibm.com (d23relay08.au.ibm.com [9.185.71.33]) by d23dlp03.au.ibm.com (Postfix) with ESMTP id F07103578056 for ; Thu, 23 Feb 2017 11:55:52 +1100 (EST) Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay08.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id v1N0tiFC51576858 for ; Thu, 23 Feb 2017 11:55:52 +1100 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id v1N0tKlE019219 for ; Thu, 23 Feb 2017 11:55:20 +1100 Received: from ozlabs.au.ibm.com (ozlabs.au.ibm.com [9.192.253.14]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id v1N0tKJa018736; Thu, 23 Feb 2017 11:55:20 +1100 Received: from tungsten.ozlabs.ibm.com (haven.au.ibm.com [9.192.254.114]) (using TLSv1.2 with cipher AES128-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.au.ibm.com (Postfix) with ESMTPSA id CF767A0271; Thu, 23 Feb 2017 11:54:55 +1100 (AEDT) From: Sam Bobroff To: buildroot@buildroot.org Date: Thu, 23 Feb 2017 11:54:54 +1100 X-Mailer: git-send-email 2.1.4 In-Reply-To: References: In-Reply-To: References: X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 17022300-0004-0000-0000-000001E3FA2C X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17022300-0005-0000-0000-000009B7A67B Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-02-22_17:, , signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=14 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1702230006 Cc: jezz@sysmic.org Subject: [Buildroot] [RFC PATCH 1/2] package/gobject-introspection: add package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Add gobject-introspection, built using host-qemu. Also updates libglib2 to a more recent version to satasify a dependency. --- package/Config.in | 1 + .../0001-ldd-cross-launcher.patch | 22 +++++++++ package/gobject-introspection/Config.in | 12 +++++ package/gobject-introspection/create-ldd-cross.sh | 46 ++++++++++++++++++ .../gobject-introspection/gobject-introspection.mk | 55 ++++++++++++++++++++++ package/libglib2/libglib2.hash | 4 +- package/libglib2/libglib2.mk | 4 +- 7 files changed, 140 insertions(+), 4 deletions(-) create mode 100644 package/gobject-introspection/0001-ldd-cross-launcher.patch create mode 100644 package/gobject-introspection/Config.in create mode 100755 package/gobject-introspection/create-ldd-cross.sh create mode 100644 package/gobject-introspection/gobject-introspection.mk diff --git a/package/Config.in b/package/Config.in index deff0fe2c..bde5246e1 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1348,6 +1348,7 @@ menu "Other" source "package/libffi/Config.in" source "package/libgee/Config.in" source "package/libglib2/Config.in" + source "package/gobject-introspection/Config.in" source "package/libglob/Config.in" source "package/libical/Config.in" source "package/libite/Config.in" diff --git a/package/gobject-introspection/0001-ldd-cross-launcher.patch b/package/gobject-introspection/0001-ldd-cross-launcher.patch new file mode 100644 index 000000000..9129431cb --- /dev/null +++ b/package/gobject-introspection/0001-ldd-cross-launcher.patch @@ -0,0 +1,22 @@ +*** a/giscanner/shlibs.py 2016-06-01 13:42:52.559661299 +1000 +--- b/giscanner/shlibs.py 2016-06-01 13:44:43.028025807 +1000 +*************** +*** 103,109 **** + if platform_system == 'Darwin': + args.extend(['otool', '-L', binary.args[0]]) + else: +! args.extend(['ldd', binary.args[0]]) + proc = subprocess.Popen(args, stdout=subprocess.PIPE) + patterns = {} + for library in libraries: +--- 103,112 ---- + if platform_system == 'Darwin': + args.extend(['otool', '-L', binary.args[0]]) + else: +! ldd = os.getenv('GI_LDD') +! if not ldd: +! ldd = 'ldd' +! args.extend([ldd, binary.args[0]]) + proc = subprocess.Popen(args, stdout=subprocess.PIPE) + patterns = {} + for library in libraries: diff --git a/package/gobject-introspection/Config.in b/package/gobject-introspection/Config.in new file mode 100644 index 000000000..253c20b30 --- /dev/null +++ b/package/gobject-introspection/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_GOBJECT_INTROSPECTION + bool "gobject-introspection" + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_3 # ldd + select BR2_PACKAGE_HOST_QEMU + select BR2_PACKAGE_PKGCONF + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_PYTHON + + help + gobject-introspection + + http://wiki.gnome.org/ diff --git a/package/gobject-introspection/create-ldd-cross.sh b/package/gobject-introspection/create-ldd-cross.sh new file mode 100755 index 000000000..58d4281e8 --- /dev/null +++ b/package/gobject-introspection/create-ldd-cross.sh @@ -0,0 +1,46 @@ +#!/bin/bash +set -e + +if [ $# -ne 2 ]; then + echo "Usage: " + exit 2 +fi + +QEMU="$1" +STAGING_DIR="$2" +OUT="$STAGING_DIR/usr/bin/ldd-cross" + +cat > "$OUT"<<'EOF' +#! /bin/bash + +set -e + +EOF +echo "QEMU=\"$QEMU\"" >> "$OUT" +eval "$(grep ^RTLDLIST= $STAGING_DIR/usr/bin/ldd)" + +echo -n 'RTLDLIST="' >> "$OUT" +for RTLD in $RTLDLIST; do + echo -n "$STAGING_DIR$RTLD " >> "$OUT" +done +echo '"' >> "$OUT" +echo >> "$OUT" + +cat >> "$OUT"<<'EOF' +for file do + case $file in + */*) : + ;; + *) file=./$file + ;; + esac + for RTLD in ${RTLDLIST}; do + if test -x $RTLD; then + "$QEMU" "$RTLD" --list "$file" + fi + done +done +EOF + +chmod +x "$OUT" +echo "Wrote: $OUT" diff --git a/package/gobject-introspection/gobject-introspection.mk b/package/gobject-introspection/gobject-introspection.mk new file mode 100644 index 000000000..2ee8fc8e0 --- /dev/null +++ b/package/gobject-introspection/gobject-introspection.mk @@ -0,0 +1,55 @@ +################################################################################ +# +# gobject-introspection +# +################################################################################ + +GOBJECT_INTROSPECTION_VERSION = 1.51.1 +GOBJECT_INTROSPECTION_SITE = $(call github,GNOME,gobject-introspection,$(GOBJECT_INTROSPECTION_VERSION)) +GOBJECT_INTROSPECTION_LICENSE = GPLv2+ LGPLv2.1 +GOBJECT_INTROSPECTION_LICENSE_FILES = COPYING COPYING.GPL COPYING.LGPL COPYING.lib COPYING.tools +GOBJECT_INTROSPECTION_INSTALL_STAGING = YES +GOBJECT_INTROSPECTION_MAKE_OPTS = GI_CROSS_LAUNCHER="$(HOST_DIR)/usr/bin/qemu-$(HOST_QEMU_ARCH)" GI_LDD=$(STAGING_DIR)/usr/bin/ldd-cross INTROSPECTION_SCANNER=g-ir-scanner INTROSPECTION_COMPILER=g-ir-compiler +GOBJECT_INTROSPECTION_DEPENDENCIES = pkgconf python libglib2 host-qemu host-gobject-introspection +HOST_GOBJECT_INTROSPECTION_DEPENDENCIES = host-pkgconf host-python host-libglib2 toolchain + +define GOBJECT_INTROSPECTION_BOOTSTRAP + cd $(GOBJECT_INTROSPECTION_DIR) && env NOCONFIGURE=1 ./autogen.sh --host=$(GNU_TARGET_NAME) +endef +GOBJECT_INTROSPECTION_POST_EXTRACT_HOOKS += GOBJECT_INTROSPECTION_BOOTSTRAP + +define HOST_GOBJECT_INTROSPECTION_BOOTSTRAP + cd $(HOST_GOBJECT_INTROSPECTION_DIR) && env NOCONFIGURE=1 ./autogen.sh +endef +HOST_GOBJECT_INTROSPECTION_POST_EXTRACT_HOOKS += HOST_GOBJECT_INTROSPECTION_BOOTSTRAP + +# We must hack staging twice: once after installing the host version in order to +# provide the cross-versions that can be used to build the target version +# and again after the target version has overwritten the staging files as it +# installs to staging. +HOST_GOBJECT_INTROSPECTION_POST_INSTALL_HOOKS += GOBJECT_INTROSPECTION_HACK_STAGING +GOBJECT_INTROSPECTION_POST_INSTALL_STAGING_HOOKS += GOBJECT_INTROSPECTION_HACK_STAGING_PKGCONFIG GOBJECT_INTROSPECTION_HACK_STAGING +# TODO: Use a better name than ldd-cross? Move it to a separate package? +define GOBJECT_INTROSPECTION_HACK_STAGING_PKGCONFIG + echo "HACKING STAGING PACKAGE CONFIG" + sed --in-place -e "s:^prefix=.*:prefix=$(STAGING_DIR)/usr:" $(STAGING_DIR)/usr/lib/pkgconfig/gobject-introspection-1.0.pc + sed --in-place -e "s:^exec_prefix=.*:exec_prefix=$(STAGING_DIR)/usr:" $(STAGING_DIR)/usr/lib/pkgconfig/gobject-introspection-1.0.pc +endef + +define GOBJECT_INTROSPECTION_HACK_STAGING + echo "CREATING STAGING g-ir-scanner" + echo "#!/bin/sh" > $(STAGING_DIR)/usr/bin/g-ir-scanner + echo "env GI_CROSS_LAUNCHER=\"$(HOST_DIR)/usr/bin/qemu-$(HOST_QEMU_ARCH)\" GI_LDD=ldd-cross $(HOST_DIR)/usr/bin/g-ir-scanner \""'$$'@"\"" >> $(STAGING_DIR)/usr/bin/g-ir-scanner + + echo "CREATING STAGING g-ir-compiler" + echo "#!/bin/sh" > $(STAGING_DIR)/usr/bin/g-ir-compiler + echo "env GI_CROSS_LAUNCHER=\"$(HOST_DIR)/usr/bin/qemu-$(HOST_QEMU_ARCH)\" GI_LDD=ldd-cross $(HOST_DIR)/usr/bin/g-ir-compiler \""'$$'"@\"" >> $(STAGING_DIR)/usr/bin/g-ir-compiler + + echo "CREATING STAGING ldd-cross" + $(GOBJECT_INTROSPECTION_PKGDIR)/create-ldd-cross.sh $(HOST_DIR)/usr/bin/qemu-$(HOST_QEMU_ARCH) $(STAGING_DIR) + echo "Created:" + cat $(STAGING_DIR)/usr/bin/ldd-cross +endef + +$(eval $(host-autotools-package)) +$(eval $(autotools-package)) diff --git a/package/libglib2/libglib2.hash b/package/libglib2/libglib2.hash index 94bf8700b..126b051b9 100644 --- a/package/libglib2/libglib2.hash +++ b/package/libglib2/libglib2.hash @@ -1,2 +1,2 @@ -# https://download.gnome.org/sources/glib/2.50/glib-2.50.2.sha256sum -sha256 be68737c1f268c05493e503b3b654d2b7f43d7d0b8c5556f7e4651b870acfbf5 glib-2.50.2.tar.xz +# https://download.gnome.org/sources/glib/2.51/glib-2.51.0.sha256sum +sha256 f113b7330f4b4a43e3e401fe7849e751831060d574bd936a63e979887137a74a glib-2.51.0.tar.xz diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk index ddd1f3965..0e8c9410a 100644 --- a/package/libglib2/libglib2.mk +++ b/package/libglib2/libglib2.mk @@ -4,8 +4,8 @@ # ################################################################################ -LIBGLIB2_VERSION_MAJOR = 2.50 -LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).2 +LIBGLIB2_VERSION_MAJOR = 2.51 +LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz LIBGLIB2_SITE = http://ftp.gnome.org/pub/gnome/sources/glib/$(LIBGLIB2_VERSION_MAJOR) LIBGLIB2_LICENSE = LGPLv2+