From f4fac16e1033b3f8679b94e258e8c5d276167946 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Tue, 7 Jan 2020 16:03:22 +0100 Subject: qt5: do not require meta-qt5 Move all qt5 relevant stuff where it only gets parsed if meta-qt5 is available. Signed-off-by: Max Krummenacher --- qt5-layer/recipes-qt/falkon/falkon_3.1.0.bb | 28 ++++++++++++ ...-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch | 33 ++++++++++++++ qt5-layer/recipes-qt/qedit/files/qedit.desktop | 9 ++++ qt5-layer/recipes-qt/qedit/qedit_2.8.2.bb | 33 ++++++++++++++ qt5-layer/recipes-qt/qt5/packagegroup-qt5.bb | 26 +++++++++++ .../qt3d/0001-qt3d-do-not-set-resources_big.patch | 51 ++++++++++++++++++++++ qt5-layer/recipes-qt/qt5/qt3d_%.bbappend | 13 ++++++ qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd.bb | 25 +++++++++++ .../qt5/qt5-x11-free-systemd/qt5-x11-demo-init | 43 ++++++++++++++++++ .../qt5/qt5-x11-free-systemd/qt5-x11-demo.service | 10 +++++ qt5-layer/recipes-qt/qt5/qtbase_%.bbappend | 19 ++++++++ 11 files changed, 290 insertions(+) create mode 100644 qt5-layer/recipes-qt/falkon/falkon_3.1.0.bb create mode 100644 qt5-layer/recipes-qt/qedit/files/0001-Options.cpp-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch create mode 100644 qt5-layer/recipes-qt/qedit/files/qedit.desktop create mode 100644 qt5-layer/recipes-qt/qedit/qedit_2.8.2.bb create mode 100644 qt5-layer/recipes-qt/qt5/packagegroup-qt5.bb create mode 100644 qt5-layer/recipes-qt/qt5/qt3d/0001-qt3d-do-not-set-resources_big.patch create mode 100644 qt5-layer/recipes-qt/qt5/qt3d_%.bbappend create mode 100644 qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd.bb create mode 100644 qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init create mode 100644 qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service create mode 100644 qt5-layer/recipes-qt/qt5/qtbase_%.bbappend (limited to 'qt5-layer') diff --git a/qt5-layer/recipes-qt/falkon/falkon_3.1.0.bb b/qt5-layer/recipes-qt/falkon/falkon_3.1.0.bb new file mode 100644 index 0000000..4e2627d --- /dev/null +++ b/qt5-layer/recipes-qt/falkon/falkon_3.1.0.bb @@ -0,0 +1,28 @@ +SUMMARY = "Falkon Webbrowser" +HOMEPAGE = "http://www.falkon.org" +SECTION = "x11" + +LICENSE = "GPLv3 & LGPLv3 & MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f0e2cd40e05189ec81232da84bd6e1a" + +DEPENDS = "libxcb ki18n openssl qtbase qttools-native qtwebengine qtx11extras" + +inherit cmake_qt5_extra gettext kde-base + +SRC_URI = "https://download.kde.org/stable/falkon/3.1/falkon-3.1.0.tar.xz" +SRC_URI[md5sum] = "9255fb335d3ba361dea44b7b297ddf7d" +SRC_URI[sha256sum] = "ce743cd80c0e2d525a784e29c9b487f73480119b0567f9ce8ef1f44cca527587" + +PATH_prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:" + +export USE_LIBPATH = "${libdir}" +export QUPZILLA_PREFIX = "${prefix}" +export SHARE_FOLDER = "${datadir}" +export QMAKE_LRELEASE = "${RECIPE_SYSROOT_NATIVE}/usr/bin/qt5" + +FILES_${PN} += " \ + ${OE_QMAKE_PATH_DATA}/icons \ + ${OE_QMAKE_PATH_DATA}/metainfo \ + ${OE_QMAKE_PATH_DATA}/bash-completion/completions \ + ${OE_QMAKE_PATH_PLUGINS}/falkon \ +" diff --git a/qt5-layer/recipes-qt/qedit/files/0001-Options.cpp-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch b/qt5-layer/recipes-qt/qedit/files/0001-Options.cpp-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch new file mode 100644 index 0000000..7c7f563 --- /dev/null +++ b/qt5-layer/recipes-qt/qedit/files/0001-Options.cpp-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch @@ -0,0 +1,33 @@ +From 0c9e80df71bde69179edcb6847eb381eeec5cf7c Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Tue, 26 Dec 2017 20:05:37 +0100 +Subject: [PATCH] Options.cpp: provide default for + SIDE_PANEL_TOOLBAR_TEXT_POSITION + +prevents the following: + +| # qedit +| 2017/12/26 17:24:23 Options::_find - invalid option: SIDE_PANEL_TOOLBAR_TEXT_POSITION +| Segmentation fault (core dumped) + +Signed-off-by: Max Krummenacher +--- + base/Options.cpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/base/Options.cpp b/base/Options.cpp +index 2fb2c9f..cd099c6 100644 +--- a/base/Options.cpp ++++ b/base/Options.cpp +@@ -62,6 +62,8 @@ void Options::installDefaultOptions() + set( "FIXED_FONT_NAME", "Sans Serif,10" ); + set( "FONT_NAME", "Monospace,10" ); + ++ set( "SIDE_PANEL_TOOLBAR_TEXT_POSITION", 0 ); ++ + // toolbars default configuration + set( "TOOLBUTTON_ICON_SIZE", 0 ); + set( "TOOLBUTTON_TEXT_POSITION", -1 ); +-- +2.13.6 + diff --git a/qt5-layer/recipes-qt/qedit/files/qedit.desktop b/qt5-layer/recipes-qt/qedit/files/qedit.desktop new file mode 100644 index 0000000..14f5669 --- /dev/null +++ b/qt5-layer/recipes-qt/qedit/files/qedit.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=QEdit +Comment=A Qt Text editor +Exec=qedit %F +Terminal=false +Type=Application +MimeType=text/plain; +Icon=qedit +Categories=Utility;TextEditor;Qt; \ No newline at end of file diff --git a/qt5-layer/recipes-qt/qedit/qedit_2.8.2.bb b/qt5-layer/recipes-qt/qedit/qedit_2.8.2.bb new file mode 100644 index 0000000..112a8c0 --- /dev/null +++ b/qt5-layer/recipes-qt/qedit/qedit_2.8.2.bb @@ -0,0 +1,33 @@ +SUMMARY = "QEdit Text Editor" +HOMEPAGE = "http://hugo.pereira.free.fr/software/index.php?page=package&package_list=software_list_qt&package=qedit&full=0" +SECTION = "x11" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=81bcece21748c91ba9992349a91ec11d" + +DEPENDS = "qtbase qtx11extras" + +inherit cmake_qt5 + +SRC_URI = " \ + http://hugo.pereira.free.fr/software/tgz/qedit-2.8.2.tar.gz \ + file://qedit.desktop \ + file://0001-Options.cpp-provide-default-for-SIDE_PANEL_TOOLBAR_T.patch \ +" +SRC_URI[md5sum] = "7cca177ea042b230678ba0bb36269665" +SRC_URI[sha256sum] = "cc0686927ec8ffe44527f682b3a8d9585f753d643543fae061cb023a3b71ddb0" + +EXTRA_OECMAKE = "-DUSE_QT5=ON" +#export EXTRA_OECMAKE = "-DCMAKE_INSTALL_PREFIX=/usr" +do_configure() { + # Ensure we get the cmake configure and not qmake + cmake_do_configure +} + +do_install_append () { + install -d ${D}/${datadir}/applications + install -m 755 ${WORKDIR}/qedit.desktop ${D}/${datadir}/applications/ +} + +FILES_${PN} += "" +FILES_${PN}-dev += "" diff --git a/qt5-layer/recipes-qt/qt5/packagegroup-qt5.bb b/qt5-layer/recipes-qt/qt5/packagegroup-qt5.bb new file mode 100644 index 0000000..32700ad --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/packagegroup-qt5.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "QT5 base package group" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit packagegroup + +RDEPENDS_${PN} = " \ + qtbase \ + qtbase-tools \ + qtmultimedia \ + qtsvg \ + qtsensors \ + qtsystems \ + qtsystems-tools \ + qtscript \ + qtgraphicaleffects-qmlplugins \ + qtconnectivity-qmlplugins \ + qtlocation-plugins \ + qtlocation-qmlplugins \ + qtdeclarative \ + ${QTWEBKIT} \ +" + +QTWEBKIT ??= "\ + qtwebkit \ +" diff --git a/qt5-layer/recipes-qt/qt5/qt3d/0001-qt3d-do-not-set-resources_big.patch b/qt5-layer/recipes-qt/qt5/qt3d/0001-qt3d-do-not-set-resources_big.patch new file mode 100644 index 0000000..d2c143f --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qt3d/0001-qt3d-do-not-set-resources_big.patch @@ -0,0 +1,51 @@ +From 6d58507157d88160310545e2aedd91be311ae1d5 Mon Sep 17 00:00:00 2001 +From: Max Krummenacher +Date: Tue, 15 Jan 2019 09:30:12 +0000 +Subject: [PATCH] qt3d: do not set resources_big + +resources_big enables rcc's two pass mode. +In an OE setup there seem to be a race condition which makes the build fail with +the following error messages (with changing build targets): + +| No data signature found +| make[3]: *** [Makefile:458: .rcc/qrc_controls.o] Error 1 +| make[3]: Leaving directory '.../build/examples/qt3d/controls' + +see also: +https://bugreports.qt.io/browse/QTBUG-41301?focusedCommentId=255692&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel +(the default is now 1 pass and 2 pass needs to be configured in CONFIG with ressource_big) + +Signed-off-by: Max Krummenacher +--- + examples/qt3d/examples.pri | 2 +- + examples/qt3d/planets-qml/planets-qml.pro | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/examples/qt3d/examples.pri b/examples/qt3d/examples.pri +index 621b1473c..7d9a75073 100644 +--- a/examples/qt3d/examples.pri ++++ b/examples/qt3d/examples.pri +@@ -1,7 +1,6 @@ + TEMPLATE = app + + QT += 3dextras +-CONFIG += resources_big + + target.path = $$[QT_INSTALL_EXAMPLES]/qt3d/$$TARGET + INSTALLS += target +diff --git a/examples/qt3d/planets-qml/planets-qml.pro b/examples/qt3d/planets-qml/planets-qml.pro +index de14ecc8a..a66712928 100644 +--- a/examples/qt3d/planets-qml/planets-qml.pro ++++ b/examples/qt3d/planets-qml/planets-qml.pro +@@ -8,7 +8,7 @@ QT += qml quick \ + 3dquick 3dquickrender 3dquickinput 3dquickextras \ + network + +-CONFIG += resources_big c++11 ++CONFIG += c++11 + + HEADERS += \ + networkcontroller.h +-- +2.13.6 + diff --git a/qt5-layer/recipes-qt/qt5/qt3d_%.bbappend b/qt5-layer/recipes-qt/qt5/qt3d_%.bbappend new file mode 100644 index 0000000..85d7eab --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qt3d_%.bbappend @@ -0,0 +1,13 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/qt3d:" + +# qt3d links against the opengl flavours we configured qtbase for, so +# depend on them here +DEPENDS_GLES = "" +DEPENDS_GLES_imxpxp += "virtual/libgles2 virtual/egl" +DEPENDS_GLES_imgpu3d += "virtual/libgles2 virtual/egl" +DEPENDS_GLES_use-mainline-bsp += "virtual/libgles2 virtual/egl" + +DEPENDS_class-target += " ${DEPENDS_GLES}" + +# Fix race condition +SRC_URI += "file://0001-qt3d-do-not-set-resources_big.patch" diff --git a/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd.bb b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd.bb new file mode 100644 index 0000000..f6ba46d --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd.bb @@ -0,0 +1,25 @@ +SECTION = "x11/libs" +SUMMARY = "systemd qtapplication autostart" +# The license is meant for this recipe and the files it installs. +# RNDIS is part of the kernel, udhcpd is part of busybox +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +inherit allarch systemd + +SRC_URI = " \ + file://qt5-x11-demo.service \ + file://qt5-x11-demo-init \ +" + +do_install () { + install -d ${D}/${bindir} + install -m 0755 ${WORKDIR}/qt5-x11-demo-init ${D}/${bindir} + + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/qt5-x11-demo.service ${D}${systemd_unitdir}/system +} + +NATIVE_SYSTEMD_SUPPORT = "1" +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "qt5-x11-demo.service" diff --git a/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init new file mode 100644 index 0000000..76922ec --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo-init @@ -0,0 +1,43 @@ +#!/bin/sh + +set -e + +cd /usr/share/qtsmarthome-1.0 +QTAPP="smarthome" +QTAPPSTART="./${QTAPP} > /var/log/Xsession.log 2>&1" + +case "$1" in + start) + echo "Starting ${QTAPP}" + if [ -f /etc/profile.d/tslib.sh ]; then + source /etc/profile.d/tslib.sh + fi + if [ -e "$TSLIB_TSDEVICE" ]; then + if [ ! -f /etc/pointercal ]; then + /usr/bin/ts_calibrate + fi + else + if [ -e "/usr/bin/xinput_calibrator_once.sh" ]; then + xinput_calibrator_once.sh + fi + fi + Xorg & + export DISPLAY=:0 + eval $QTAPPSTART & + ;; + stop) + echo "Stopping ${QTAPP}" + killall $QTAPP + killall Xorg + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 { start | stop | restart }" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service new file mode 100644 index 0000000..053f273 --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qt5-x11-free-systemd/qt5-x11-demo.service @@ -0,0 +1,10 @@ +[Unit] +Description=start X and a qt application + +[Service] +Type=forking +ExecStart=/usr/bin/qt5-x11-demo-init start +ExecStop=/usr/bin/qt5-x11-demo-init stop + +[Install] +WantedBy=graphical.target diff --git a/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend new file mode 100644 index 0000000..0b6f29b --- /dev/null +++ b/qt5-layer/recipes-qt/qt5/qtbase_%.bbappend @@ -0,0 +1,19 @@ +PACKAGECONFIG_EXAMPLES ?= "examples" + +# | /build/krm/oe-core_V2.6/build/out-glibc/work/armv7at2hf-vfp-neon-mx6qdl-angstrom-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp: In member function 'virtual QRect QGtkStyle::subControlRect(QStyle::ComplexControl, const QStyleOptionComplex*, QStyle::SubControl, const QWidget*) const': +# | /build/krm/oe-core_V2.6/build/out-glibc/work/armv7at2hf-vfp-neon-mx6qdl-angstrom-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp:3636:24: error: 'isInstanceOf' is not a member of 'QStyleHelper' +# | } else if (QStyleHelper::isInstanceOf(groupBox->styleObject, QAccessible::Grouping)) { +# | ^ +# | /build/krm/oe-core_V2.6/build/out-glibc/work/armv7at2hf-vfp-neon-mx6qdl-angstrom-linux-gnueabi/qtbase/5.5.1+gitAUTOINC+5afc431323-r0/git/src/widgets/styles/qgtkstyle.cpp:3636:74: error: 'QAccessible' has not been declared +# | } else if (QStyleHelper::isInstanceOf(groupBox->styleObject, QAccessible::Grouping)) { + +PACKAGECONFIG_append = " accessibility" +PACKAGECONFIG_append = " sql-sqlite" + +PACKAGECONFIG_FONTS_append = " fontconfig" + +#qtbase must be configured with icu for qtwebkit +PACKAGECONFIG_append = " \ + icu \ + ${PACKAGECONFIG_EXAMPLES} \ +" -- cgit v1.2.3