[OE-core] [PATCH 1/2] qemu: Add pkg-config handling for libgcrypt

He Zhe zhe.he at windriver.com
Wed Sep 4 02:43:06 UTC 2019


Kindly ping.

Zhe

On 8/29/19 9:15 PM, zhe.he at windriver.com wrote:
> From: He Zhe <zhe.he at windriver.com>
>
> When PACKAGECONFIG libgcrypt is enabled, we would get the following error.
>
> ERROR: /usr/bin/libgcrypt-config should not be used, use an alternative such as pkg-config
>
> In oe-core, libgcrypt has been turned to be configured with pkg-config instead
> of libgcrypt-config, but qemu configure script does not contain pkg-config
> related part for libgcrypt to handle it.
>
> Signed-off-by: He Zhe <zhe.he at windriver.com>
> ---
>  meta/recipes-devtools/qemu/qemu.inc                |  1 +
>  ...ure-Add-pkg-config-handling-for-libgcrypt.patch | 93 ++++++++++++++++++++++
>  2 files changed, 94 insertions(+)
>  create mode 100644 meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
>
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
> index d2dd2bc..3eeba6e 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -22,6 +22,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
>             file://0007-apic-fixup-fallthrough-to-PIC.patch \
>             file://0008-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
>             file://0009-Fix-webkitgtk-builds.patch \
> +           file://0010-configure-Add-pkg-config-handling-for-libgcrypt.patch \
>             "
>  UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
>  
> diff --git a/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
> new file mode 100644
> index 0000000..a8ab7da
> --- /dev/null
> +++ b/meta/recipes-devtools/qemu/qemu/0010-configure-Add-pkg-config-handling-for-libgcrypt.patch
> @@ -0,0 +1,93 @@
> +From 5214dd4461f2090ef0965b4d2518f49927d61cbc Mon Sep 17 00:00:00 2001
> +From: He Zhe <zhe.he at windriver.com>
> +Date: Wed, 28 Aug 2019 19:56:28 +0800
> +Subject: [Qemu-devel] [PATCH] configure: Add pkg-config handling for libgcrypt
> +
> +libgcrypt may also be controlled by pkg-config, this patch adds pkg-config
> +handling for libgcrypt.
> +
> +Upstream-Status: Denied [https://lists.nongnu.org/archive/html/qemu-devel/2019-08/msg06333.html]
> +
> +Signed-off-by: He Zhe <zhe.he at windriver.com>
> +---
> + configure | 48 ++++++++++++++++++++++++++++++++++++++++--------
> + 1 file changed, 40 insertions(+), 8 deletions(-)
> +
> +diff --git a/configure b/configure
> +index e44e454..0f362a7 100755
> +--- a/configure
> ++++ b/configure
> +@@ -2875,6 +2875,30 @@ has_libgcrypt() {
> +     return 0
> + }
> + 
> ++has_libgcrypt_pkgconfig() {
> ++    if ! has $pkg_config ; then
> ++        return 1
> ++    fi
> ++
> ++    if ! $pkg_config --list-all | grep libgcrypt > /dev/null 2>&1 ; then
> ++        return 1
> ++    fi
> ++
> ++    if test -n "$cross_prefix" ; then
> ++        host=$($pkg_config --variable=host libgcrypt)
> ++        if test "${host%-gnu}-" != "${cross_prefix%-gnu}" ; then
> ++            print_error "host($host) does not match cross_prefix($cross_prefix)"
> ++            return 1
> ++        fi
> ++    fi
> ++
> ++    if ! $pkg_config --atleast-version=1.5.0 libgcrypt ; then
> ++        print_error "libgcrypt version is $($pkg_config --modversion libgcrypt)"
> ++        return 1
> ++    fi
> ++
> ++    return 0
> ++}
> + 
> + if test "$nettle" != "no"; then
> +     pass="no"
> +@@ -2902,7 +2926,14 @@ fi
> + 
> + if test "$gcrypt" != "no"; then
> +     pass="no"
> +-    if has_libgcrypt; then
> ++    if has_libgcrypt_pkgconfig; then
> ++        gcrypt_cflags=$($pkg_config --cflags libgcrypt)
> ++        if test "$static" = "yes" ; then
> ++            gcrypt_libs=$($pkg_config --libs --static libgcrypt)
> ++        else
> ++            gcrypt_libs=$($pkg_config --libs libgcrypt)
> ++        fi
> ++    elif has_libgcrypt; then
> +         gcrypt_cflags=$(libgcrypt-config --cflags)
> +         gcrypt_libs=$(libgcrypt-config --libs)
> +         # Debian has removed -lgpg-error from libgcrypt-config
> +@@ -2912,15 +2943,16 @@ if test "$gcrypt" != "no"; then
> +         then
> +             gcrypt_libs="$gcrypt_libs -lgpg-error"
> +         fi
> ++    fi
> + 
> +-        # Link test to make sure the given libraries work (e.g for static).
> +-        write_c_skeleton
> +-        if compile_prog "" "$gcrypt_libs" ; then
> +-            LIBS="$gcrypt_libs $LIBS"
> +-            QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags"
> +-            pass="yes"
> +-        fi
> ++    # Link test to make sure the given libraries work (e.g for static).
> ++    write_c_skeleton
> ++    if compile_prog "" "$gcrypt_libs" ; then
> ++	    LIBS="$gcrypt_libs $LIBS"
> ++	    QEMU_CFLAGS="$QEMU_CFLAGS $gcrypt_cflags"
> ++	    pass="yes"
> +     fi
> ++
> +     if test "$pass" = "yes"; then
> +         gcrypt="yes"
> +         cat > $TMPC << EOF
> +-- 
> +2.7.4
> +



More information about the Openembedded-core mailing list