[OE-core] [PATCH v3] python3: make readline and gdbm support conditional.

Ismo Puustinen ismo.puustinen at intel.com
Fri Jun 9 07:43:46 UTC 2017


The two libraries' (readline and gdbm) licenses belong to the GPLv3
family. Add them to to PACKAGECONFIG so they can be switched off if the
licensing doesn't allow using them. Python build system autodetects the
dependencies but doesn't allow them to be explicitly disabled, so just
deal with the dependencies.

The defaults in PACKAGECONFIG are the same as before, so there should be
no change to current users.

Signed-off-by: Ismo Puustinen <ismo.puustinen at intel.com>
---
 meta/recipes-devtools/python/python3_3.5.3.bb | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/python/python3_3.5.3.bb b/meta/recipes-devtools/python/python3_3.5.3.bb
index d7c29f2..a85c3d6 100644
--- a/meta/recipes-devtools/python/python3_3.5.3.bb
+++ b/meta/recipes-devtools/python/python3_3.5.3.bb
@@ -1,6 +1,6 @@
 require recipes-devtools/python/python.inc
 
-DEPENDS = "python3-native libffi bzip2 db gdbm openssl readline sqlite3 zlib virtual/libintl xz"
+DEPENDS = "python3-native libffi bzip2 db openssl sqlite3 zlib virtual/libintl xz"
 PR = "${INC_PR}.0"
 PYTHON_MAJMIN = "3.5"
 PYTHON_BINABI= "${PYTHON_MAJMIN}m"
@@ -76,6 +76,10 @@ export CROSSPYTHONPATH = "${STAGING_LIBDIR_NATIVE}/python${PYTHON_MAJMIN}/lib-dy
 # No ctypes option for python 3
 PYTHONLSBOPTS = ""
 
+PACKAGECONFIG ??= "readline gdbm"
+PACKAGECONFIG[readline] = ",,readline"
+PACKAGECONFIG[gdbm] = ",,gdbm"
+
 do_configure_append() {
 	rm -f ${S}/Makefile.orig
 	autoreconf -Wcross --verbose --install --force --exclude=autopoint ../Python-${PV}/Modules/_ctypes/libffi
@@ -194,7 +198,7 @@ require python-${PYTHON_MAJMIN}-manifest.inc
 
 # manual dependency additions
 RPROVIDES_${PN}-modules = "${PN}"
-RRECOMMENDS_${PN}-core = "${PN}-readline"
+RRECOMMENDS_${PN}-core = "${@bb.utils.contains('PACKAGECONFIG', 'readline', '${PN}-readline', '', d)}"
 RRECOMMENDS_${PN}-crypt = "openssl"
 RRECOMMENDS_${PN}-crypt_class-nativesdk = "nativesdk-openssl"
 
@@ -222,3 +226,18 @@ PACKAGES += "${PN}-man"
 FILES_${PN}-man = "${datadir}/man"
 
 BBCLASSEXTEND = "nativesdk"
+
+# If readline is not there, don't create python3-readline package and
+# also do not depend on it. Same goes for gdbm.
+PACKAGES_remove = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'readline', '', '${PN}-readline', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '${PN}-gdbm', d)} \
+"
+PROVIDES_remove = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'readline', '', '${PN}-readline', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '${PN}-gdbm', d)} \
+"
+RDEPENDS_${PN}-modules_remove = " \
+    ${@bb.utils.contains('PACKAGECONFIG', 'readline', '', '${PN}-readline', d)} \
+    ${@bb.utils.contains('PACKAGECONFIG', 'gdbm', '', '${PN}-gdbm', d)} \
+"
-- 
2.9.4




More information about the Openembedded-core mailing list