gpgme: Fix issue building for the target

gpgme failed when configuring since you can only configure for one python
system at a time (via the inherits).  So we need to have a PACKAGECONFIG
that defines which one [or neither] you want to use.

The prior pkgconfig patch introduced the usage of the variable PKG_CONFIG,
which is not defined anywhere.  Define this.

When building the python module, we can not call gpg-error-config, so we
need to find an alternative way of finding the information the setup.py.in
requires.  (In this case, it's easy to just use the environment
STAGING_INCDIR.)

(From OE-Core rev: 839d6f124c2761194c868cf5597e1aa96571e1ca)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mark Hatle 2017-03-07 12:54:33 -06:00 committed by Richard Purdie
parent 07eca81801
commit fc6c81da79
2 changed files with 79 additions and 1 deletions

View File

@ -0,0 +1,52 @@
gpgme/lang/python: gpg-error-config should not be used.
gpg-error-config was modified by OE to always return an error. So we want
to find an alternative way to retrieve whatever it is we need. It turns
out that the system is just trying to find the path to the gpg-error.h, which
we can pull in from the STAGING_INC environment.
Upstream-Status: Inappropriate [changes are specific to OE]
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Index: gpgme-1.8.0/lang/python/setup.py.in
===================================================================
--- gpgme-1.8.0.orig/lang/python/setup.py.in
+++ gpgme-1.8.0/lang/python/setup.py.in
@@ -24,7 +24,6 @@ import glob
import subprocess
# Out-of-tree build of the gpg bindings.
-gpg_error_config = ["gpg-error-config"]
gpgme_config_flags = ["--thread=pthread"]
gpgme_config = ["gpgme-config"] + gpgme_config_flags
gpgme_h = ""
@@ -52,13 +51,6 @@ else:
devnull = open(os.devnull, "w")
try:
- subprocess.check_call(gpg_error_config + ['--version'],
- stdout=devnull)
-except:
- sys.exit("Could not find gpg-error-config. " +
- "Please install the libgpg-error development package.")
-
-try:
subprocess.check_call(gpgme_config + ['--version'],
stdout=devnull)
except:
@@ -81,12 +73,9 @@ if not (major > 1 or (major == 1 and min
if not gpgme_h:
gpgme_h = os.path.join(getconfig("prefix")[0], "include", "gpgme.h")
-gpg_error_prefix = getconfig("prefix", config=gpg_error_config)[0]
-gpg_error_h = os.path.join(gpg_error_prefix, "include", "gpg-error.h")
+gpg_error_h = os.path.join(os.getenv('STAGING_INCDIR'), "gpg-error.h")
if not os.path.exists(gpg_error_h):
- gpg_error_h = \
- glob.glob(os.path.join(gpg_error_prefix, "include",
- "*", "gpg-error.h"))[0]
+ sys.exit("gpg_error_h not found: %s" % gpg_error_h)
print("Building python gpg module using {} and {}.".format(gpgme_h, gpg_error_h))

View File

@ -12,6 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
UPSTREAM_CHECK_URI = "https://gnupg.org/download/index.html"
SRC_URI = "${GNUPG_MIRROR}/gpgme/${BP}.tar.bz2 \
file://pkgconfig.patch \
file://python-lang-config.patch \
"
SRC_URI[md5sum] = "722a4153904b9b5dc15485a22d29263b"
@ -22,12 +23,37 @@ RDEPENDS_${PN}-cpp += "libstdc++"
BINCONFIG = "${bindir}/gpgme-config"
inherit autotools texinfo binconfig-disabled pkgconfig
# Note select python2 or python3, but you can't select both at the same time
PACKAGECONFIG ??= "python3"
PACKAGECONFIG[python2] = ",,python swig-native,"
PACKAGECONFIG[python3] = ",,python3 swig-native,"
# Default in configure.ac: "cl cpp python qt"
# Supported: "cl cpp python python2 python3 qt"
# python says 'search and find python2 or python3'
LANGUAGES ?= "cpp"
LANGUAGES .= "${@bb.utils.contains('PACKAGECONFIG', 'python2', ' python2', '', d)}"
LANGUAGES .= "${@bb.utils.contains('PACKAGECONFIG', 'python3', ' python3', '', d)}"
PYTHON_INHERIT = "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'pythonnative', '', d)}"
PYTHON_INHERIT .= "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}"
EXTRA_OECONF += '--enable-languages="${LANGUAGES}"'
inherit autotools texinfo binconfig-disabled pkgconfig ${PYTHON_INHERIT}
export PKG_CONFIG='pkg-config'
BBCLASSEXTEND = "native"
PACKAGES =+ "${PN}-cpp"
PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python2-gpg ', '', d)}"
PACKAGES =. "${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-gpg ', '', d)}"
FILES_${PN}-cpp = "${libdir}/libgpgmepp.so.*"
FILES_python2-gpg = "${PYTHON_SITEPACKAGES_DIR}/*"
FILES_python3-gpg = "${PYTHON_SITEPACKAGES_DIR}/*"
FILES_${PN}-dev += "${datadir}/common-lisp/source/gpgme/* \
${libdir}/cmake/* \
"