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

2019-09-03 Thread He Zhe
Kindly ping.

Zhe

On 8/29/19 9:15 PM, zhe...@windriver.com wrote:
> From: He Zhe 
>
> 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 
> ---
>  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\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 000..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 
> +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 
> +---
> + 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
> +

-- 
___
Openembedded-core 

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

2019-08-29 Thread zhe.he
From: He Zhe 

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 
---
 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\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 000..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 
+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 
+---
+ 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
+
-- 
2.7.4

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core