From patchwork Thu Aug 22 22:06:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabrice Fontaine X-Patchwork-Id: 1151846 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.133; helo=hemlock.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="r7jLV+b8"; dkim-atps=neutral Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46DzCC4pbLz9s3Z for ; Fri, 23 Aug 2019 08:06:44 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 0CB0B878F7; Thu, 22 Aug 2019 22:06:41 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AujmyMF4LYlH; Thu, 22 Aug 2019 22:06:40 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id F172A87009; Thu, 22 Aug 2019 22:06:39 +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 01BDB1BF3AB for ; Thu, 22 Aug 2019 22:06:39 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id F1D02204EA for ; Thu, 22 Aug 2019 22:06:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Q8Mw2COnMdt8 for ; Thu, 22 Aug 2019 22:06:38 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by silver.osuosl.org (Postfix) with ESMTPS id E6A6A20490 for ; Thu, 22 Aug 2019 22:06:37 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id t16so6804639wra.6 for ; Thu, 22 Aug 2019 15:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J/LGV2Gxo7gcsFHvOC6boDJkW8xRUumSr9xNiBQK+28=; b=r7jLV+b84EafRfMQoVoeTunvxHjQgZ5Y2gPkPB2bZim4NAHy5o08P9uHq6cPoh3U+2 Bljt5+0ZYwOs+eLRTmMOUjveWV1cja8aM//DG4El3pwPANAcGBQMSaMt61Sc48Kyildn gthgeAOh1Lo37xbI2VsRBqHkfKbO0+aejhPsY+Do+4bCcm5qENpRvTeksJ65aTUPVEMz YetuSk2nwHi4CDdO7H2TfOrUOz2pe/dvolxKwpxaAsBZASGEa6w2g8nAFqseElH2Uyuw fO/gG2uSsIqvSQPsC0T+9mCqKtWE/H8fRhovvPjKMqs+un0mlKDofovQhRNGm8xQ6n9A 4dUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=J/LGV2Gxo7gcsFHvOC6boDJkW8xRUumSr9xNiBQK+28=; b=kiipjgzOlIV/C0u/kFtLpU3HNLp+JQuqOwJawCynO+y9nOj6H9CVWV1TcZp8BMjwQT qpqqneWRDSUNVL1J087aPS1mTEpduhLejIVh5uOgU12Z4uwyvA+txOZ+e0dgZFg2L4FI vDneceau1L9E/5Aw5ERf+DtR4RQIMLl6TzuBu1J+oPIKz4apx8qOEZSfchuHIfYWAX0V 9cSW5MbNrNnMx9BdPz5oI4MO7JXEItPcSbiLz+JZE7lB82tOw6RtVEtkd/EUUVGReio5 X0Z1JlW7g98eK2B9i/VCybR/xh1+zbie3rmEKMvPEMkm5V5QlaJlgkjoJhMGdCsGAZul p1Mw== X-Gm-Message-State: APjAAAUMqxqyzei6KLAZqvm4QgJ/W0mm8oG8kErdtbk9g0EYyeuiz9YU NzQFAAzQyQGjDa/ugNQdIzlSvHQQ X-Google-Smtp-Source: APXvYqxFD0aoerLHqxD3WxvxcnWUySQyAE3dctfDlHUDZ93Y6dmYUZgsbfNOm91J5sVx1dRLFr7YEQ== X-Received: by 2002:adf:f088:: with SMTP id n8mr1133511wro.58.1566511596111; Thu, 22 Aug 2019 15:06:36 -0700 (PDT) Received: from kali.home (lfbn-ren-1-605-248.w81-53.abo.wanadoo.fr. [81.53.181.248]) by smtp.gmail.com with ESMTPSA id 4sm1258942wro.78.2019.08.22.15.06.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Aug 2019 15:06:35 -0700 (PDT) From: Fabrice Fontaine To: buildroot@buildroot.org Date: Fri, 23 Aug 2019 00:06:38 +0200 Message-Id: <20190822220638.7304-1-fontaine.fabrice@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH v2, 1/1] package/python-pyqt5: manage qt optional dependencies X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fabrice Fontaine , Asaf Kahlon , =?utf-8?q?Manuel_V=C3=B6gele?= Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Explictly enable the needed pyqt5 modules depending on Qt5 options or packages QtQuick moodule can't be built without opengl support so enable only when OpenGL is available Fixes: - https://bugs.buildroot.org/show_bug.cgi?id=12121 - http://autobuild.buildroot.org/results/cb69c5daa564aa9f3250faa395399cb00a445e85 Signed-off-by: Fabrice Fontaine Reviewed-by: Giulio Benetti --- Changes v1 -> v2 (after review of Thomas Petazzoni and Arnout Vandecappelle): - Explicitly enable modules through --enable=module in addition to managing dependencies. As this is bypassing current autodetection mechanism, I would advise to apply it for next and not for master package/python-pyqt5/python-pyqt5.mk | 108 ++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/package/python-pyqt5/python-pyqt5.mk b/package/python-pyqt5/python-pyqt5.mk index 4955936ae3..b6d559cd5b 100644 --- a/package/python-pyqt5/python-pyqt5.mk +++ b/package/python-pyqt5/python-pyqt5.mk @@ -11,6 +11,14 @@ PYTHON_PYQT5_LICENSE = GPL-3.0 PYTHON_PYQT5_LICENSE_FILES = LICENSE PYTHON_PYQT5_DEPENDENCIES = python-sip host-python-sip qt5base +PYTHON_PYQT5_MODULES = \ + QtCore \ + $(if $(BR2_PACKAGE_QT5BASE_DBUS),QtDBus) \ + $(if $(BR2_PACKAGE_QT5BASE_GUI),QtGui) \ + $(if $(BR2_PACKAGE_QT5BASE_NETWORK),QtNetwork) \ + $(if $(BR2_PACKAGE_QT5BASE_OPENGL_LIB),QtOpenGL) \ + $(if $(BR2_PACKAGE_QT5BASE_PRINTSUPPORT),QtPrintSupport) \ + $(if $(BR2_PACKAGE_QT5BASE_XML),QtXml) ifeq ($(BR2_PACKAGE_PYTHON),y) PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON_VERSION_MAJOR) @@ -20,6 +28,103 @@ PYTHON_PYQT5_PYTHON_DIR = python$(PYTHON3_VERSION_MAJOR) PYTHON_PYQT5_RM_PORT_BASE = port_v2 endif +ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y) +PYTHON_PYQT5_MODULES += QtWidgets + +# QtSql needs QtWidgets +ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y) +PYTHON_PYQT5_MODULES += QtSql +endif + +# QtTest needs QtWidgets +ifeq ($(BR2_PACKAGE_QT5BASE_TEST),y) +PYTHON_PYQT5_MODULES += QtTest +endif +endif + +ifeq ($(BR2_PACKAGE_QT5CONNECTIVITY),y) +PYTHON_PYQT5_DEPENDENCIES += qt5connectivity +PYTHON_PYQT5_MODULES += QtBluetooth QtNfc +endif + +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE),y) +PYTHON_PYQT5_DEPENDENCIES += qt5declarative +PYTHON_PYQT5_MODULES += QtQml + +# QtQuick module needs opengl +ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5BASE_OPENGL_LIB),yy) +PYTHON_PYQT5_MODULES += \ + QtQuick \ + $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtQuickWidgets) +endif +endif + +ifeq ($(BR2_PACKAGE_QT5ENGINIO),y) +PYTHON_PYQT5_DEPENDENCIES += qt5enginio +PYTHON_PYQT5_MODULES += Enginio +endif + +ifeq ($(BR2_PACKAGE_QT5LOCATION),y) +PYTHON_PYQT5_DEPENDENCIES += qt5location +PYTHON_PYQT5_MODULES += QtLocation QtPositioning +endif + +ifeq ($(BR2_PACKAGE_QT5MULTIMEDIA),y) +PYTHON_PYQT5_DEPENDENCIES += qt5multimedia +PYTHON_PYQT5_MODULES += \ + QtMultimedia \ + $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtMultimediaWidgets) +endif + +ifeq ($(BR2_PACKAGE_QT5SENSORS),y) +PYTHON_PYQT5_DEPENDENCIES += qt5sensors +PYTHON_PYQT5_MODULES += QtSensors +endif + +ifeq ($(BR2_PACKAGE_QT5SERIALPORT),y) +PYTHON_PYQT5_DEPENDENCIES += qt5serialport +PYTHON_PYQT5_MODULES += QtSerialPort +endif + +ifeq ($(BR2_PACKAGE_QT5SVG),y) +PYTHON_PYQT5_DEPENDENCIES += qt5svg +PYTHON_PYQT5_MODULES += QtSvg +endif + +ifeq ($(BR2_PACKAGE_QT5WEBCHANNEL),y) +PYTHON_PYQT5_DEPENDENCIES += qt5webchannel +PYTHON_PYQT5_MODULES += QtWebChannel +endif + +ifeq ($(BR2_PACKAGE_QT5WEBENGINE),y) +PYTHON_PYQT5_DEPENDENCIES += qt5webengine +PYTHON_PYQT5_MODULES += \ + QtWebEngineCore \ + $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebEngineWidgets) +endif + +ifeq ($(BR2_PACKAGE_QT5WEBKIT),y) +PYTHON_PYQT5_DEPENDENCIES += qt5webkit +PYTHON_PYQT5_MODULES += \ + QtWebKit \ + $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),QtWebKitWidgets) +endif + +ifeq ($(BR2_PACKAGE_QT5WEBSOCKETS),y) +PYTHON_PYQT5_DEPENDENCIES += qt5websockets +PYTHON_PYQT5_MODULES += QtWebSockets +endif + +ifeq ($(BR2_PACKAGE_QT5X11EXTRAS),y) +PYTHON_PYQT5_DEPENDENCIES += qt5x11extras +PYTHON_PYQT5_MODULES += QtX11Extras +endif + +ifeq ($(BR2_PACKAGE_QT5XMLPATTERNS),y) +PYTHON_PYQT5_DEPENDENCIES += qt5xmlpatterns +PYTHON_PYQT5_MODULES += QtXmlPatterns +endif + PYTHON_PYQT5_QTDETAIL_LICENSE = Open Source PYTHON_PYQT5_QTDETAIL_TYPE = shared @@ -52,7 +157,8 @@ PYTHON_PYQT5_CONF_OPTS = \ -w --confirm-license \ --no-designer-plugin \ --no-docstrings \ - --no-sip-files + --no-sip-files \ + $(foreach module,$(PYTHON_PYQT5_MODULES),--enable=$(module)) define PYTHON_PYQT5_CONFIGURE_CMDS $(call PYTHON_PYQT5_GENERATE_QTDETAIL,$(@D))