From b40c50cc82681261a4be3c15b529825ae66ebc3f Mon Sep 17 00:00:00 2001 From: Seokha Ko Date: Tue, 7 Aug 2018 16:20:10 +0900 Subject: [PATCH 1/3] webos-sdk: make test image & SDK including Qt5. :Release Notes: make test image & SDK which includes Qt5. :Detailed Notes: perl is needed for syncqt.pl remove blacklisted packagegroup-qt5-toolchain-target then, add all the other possible qt5 libraries. :Testing Performed: :QA Notes: :Issues Addressed: --- .../include/webos-recipe-blacklist-world.inc | 1 - meta-webos/recipes-core/images/webos-sdk.bb | 12 +++ ...tivesdk-packagegroup-qt5-toolchain-host.bb | 15 ++++ .../packagegroup-qt5-toolchain-target.bb | 87 +++++++++++++++++++ 4 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 meta-webos/recipes-core/images/webos-sdk.bb create mode 100644 meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb create mode 100644 meta-webos/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb diff --git a/meta-webos/conf/distro/include/webos-recipe-blacklist-world.inc b/meta-webos/conf/distro/include/webos-recipe-blacklist-world.inc index 925d0dafb..096bbaba3 100644 --- a/meta-webos/conf/distro/include/webos-recipe-blacklist-world.inc +++ b/meta-webos/conf/distro/include/webos-recipe-blacklist-world.inc @@ -72,7 +72,6 @@ PNBLACKLIST[qt5-creator] ?= "depends on blacklisted qttools" PNBLACKLIST[qwt-qt5] ?= "depends on blacklisted qttools" PNBLACKLIST[qt3d] ?= "license of current version does not allow redistribution" PNBLACKLIST[qtlocation] ?= "has build dependency on qt3d" -PNBLACKLIST[packagegroup-qt5-toolchain-target] ?= "rdepends on headers from blacklisted qtwebkit, qttools, qt3d, qtlocation" PNBLACKLIST[qt5-creator] ?= "rdepends on blacklisted qttools, packagegroup-qt5-toolchain-target, gcc-symlinks" PNBLACKLIST[qtscript] ?= "unused in webOS world" # https://anaconda.lgsvl.com/jenkins/job/webos-wearable-jansa-jethro-test-dependencies-qemux86/85/artifact/BUILD-ARTIFACTS/qemux86/2_max/failed/libconnman-qt5.log diff --git a/meta-webos/recipes-core/images/webos-sdk.bb b/meta-webos/recipes-core/images/webos-sdk.bb new file mode 100644 index 000000000..23f6b9ddd --- /dev/null +++ b/meta-webos/recipes-core/images/webos-sdk.bb @@ -0,0 +1,12 @@ +# Copyright (c) 2018 LG Electronics, Inc. + +SUMMARY = "webOS OSE developer/test image & SDK" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" + +PR = "r0" + +require webos-image-devel.bb +inherit webos_image +inherit populate_sdk populate_sdk_qt5 + diff --git a/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb b/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb new file mode 100644 index 000000000..4b46e676c --- /dev/null +++ b/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb @@ -0,0 +1,15 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +SUMMARY = "Host packages for the Qt5 standalone SDK or external toolchain" +LICENSE = "MIT" + +inherit nativesdk packagegroup + +PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" + +RDEPENDS_${PN} += " \ + nativesdk-packagegroup-sdk-host \ + nativesdk-qttools-tools \ + nativesdk-qtbase-tools \ + nativesdk-perl-modules \ +" diff --git a/meta-webos/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb b/meta-webos/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb new file mode 100644 index 000000000..5b61a73f3 --- /dev/null +++ b/meta-webos/recipes-qt/packagegroups/packagegroup-qt5-toolchain-target.bb @@ -0,0 +1,87 @@ +# Copyright (C) 2014 O.S. Systems Software LTDA. + +DESCRIPTION = "Target packages for Qt5 SDK" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1" + +# Requires Ruby to work +USE_RUBY = " \ + qttranslations-qtquick1 \ +" + +# Requires Wayland to work +USE_WAYLAND = " \ + qtwayland-dev \ + qtwayland-mkspecs \ + qtwayland-plugins \ + qtwayland-tools \ +" + +# Requires X11 to work +USE_X11 = " \ + qtx11extras-dev \ + qtx11extras-mkspecs \ +" + +RDEPENDS_${PN} += " \ + packagegroup-core-standalone-sdk-target \ + libsqlite3-dev \ + qtbase-dev \ + qtbase-fonts \ + qtbase-mkspecs \ + qtbase-plugins \ + qtbase-staticdev \ + qttranslations-qt \ + qttranslations-qtbase \ + qttranslations-qtconfig \ + qttranslations-qthelp \ + qttranslations-qtconnectivity \ + qtdeclarative-dev \ + qtdeclarative-mkspecs \ + qtdeclarative-plugins \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtdeclarative-qmlplugins', '', d)} \ + qttranslations-qmlviewer \ + qttranslations-qtdeclarative \ + qtenginio-dev \ + qtenginio-mkspecs \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtenginio-qmlplugins', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtgraphicaleffects-qmlplugins', '', d)} \ + qtimageformats-dev \ + qtimageformats-plugins \ + qttranslations-qtlocation \ + qtmultimedia-dev \ + qtmultimedia-mkspecs \ + qtmultimedia-plugins \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtmultimedia-qmlplugins', '', d)} \ + qttranslations-qtmultimedia \ + qttranslations-qtscript \ + qtsensors-dev \ + qtsensors-mkspecs \ + qtsensors-plugins \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtsensors-qmlplugins', '', d)} \ + qtserialport-dev \ + qtserialport-mkspecs \ + qtsvg-dev \ + qtsvg-mkspecs \ + qtsvg-plugins \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '${USE_WAYLAND}', '', d)} \ + ${USE_RUBY} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${USE_X11}', '', d)} \ + qtwebsockets-dev \ + qtwebsockets-mkspecs \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebsockets-qmlplugins', '', d)} \ + qttranslations-qtwebsockets \ + qtwebchannel-dev \ + qtwebchannel-mkspecs \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'qtwebchannel-qmlplugins', '', d)} \ + qtxmlpatterns-dev \ + qtxmlpatterns-mkspecs \ + qttranslations-qtxmlpatterns \ +" + +RRECOMMENDS_${PN} += " \ + qtquickcontrols-qmlplugins \ +" From a2b98c3ec305a5fe85559851a2ad2dcfe3ef6ea1 Mon Sep 17 00:00:00 2001 From: Junil Kim Date: Fri, 21 Sep 2018 18:52:21 +0900 Subject: [PATCH 2/3] webos-sdk: add missing tools for qt5 sdk :Release Notes: add missing tools for qt5 sdk :Detailed Notes: - add wayland-scanner - add qtwaylandscanner - add OE_QMAKE_WAYLAND_SCANNER environment variable - make 'populate_sdk' include qt5 :Testing Performed: Local Test OK, Build OK :QA Notes: None --- meta-webos/classes/webos_image.bbclass | 2 ++ ...tivesdk-packagegroup-qt5-toolchain-host.bb | 2 ++ .../qt5/nativesdk-qtbase_git.bbappend | 32 +++++++++++++++++++ .../recipes-qt/qt5/nativesdk-qtwayland_git.bb | 30 +++++++++++++++++ ...ylandscanner-tool-to-the-native-side.patch | 29 +++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 meta-webos/recipes-qt/qt5/nativesdk-qtbase_git.bbappend create mode 100644 meta-webos/recipes-qt/qt5/nativesdk-qtwayland_git.bb create mode 100644 meta-webos/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch diff --git a/meta-webos/classes/webos_image.bbclass b/meta-webos/classes/webos_image.bbclass index cc98fa661..cf8d6f9ae 100644 --- a/meta-webos/classes/webos_image.bbclass +++ b/meta-webos/classes/webos_image.bbclass @@ -84,4 +84,6 @@ ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "read-only inherit core-image inherit webos_machine_impl_dep inherit webos_filesystem_paths +QTSDKCLASS ?= '${@bb.utils.contains("SDK_OS", "linux", "populate_sdk_qt5", "", d)}' +inherit ${QTSDKCLASS} do_rootfs[depends] += "libpbnjson-native:do_populate_sysroot" diff --git a/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb b/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb index 4b46e676c..2338bc302 100644 --- a/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb +++ b/meta-webos/recipes-qt/packagegroups/nativesdk-packagegroup-qt5-toolchain-host.bb @@ -12,4 +12,6 @@ RDEPENDS_${PN} += " \ nativesdk-qttools-tools \ nativesdk-qtbase-tools \ nativesdk-perl-modules \ + nativesdk-qtwayland \ + nativesdk-wayland-dev \ " diff --git a/meta-webos/recipes-qt/qt5/nativesdk-qtbase_git.bbappend b/meta-webos/recipes-qt/qt5/nativesdk-qtbase_git.bbappend new file mode 100644 index 000000000..f7f2032ee --- /dev/null +++ b/meta-webos/recipes-qt/qt5/nativesdk-qtbase_git.bbappend @@ -0,0 +1,32 @@ +# Copyright (c) 2018 LG Electronics, Inc. + +EXTENDPRAUTO_append = "webos2" + +fakeroot do_generate_qt_environment_file() { + mkdir -p ${D}${SDKPATHNATIVE}/environment-setup.d/ + script=${D}${SDKPATHNATIVE}/environment-setup.d/qt5.sh + + echo 'export PATH=${OE_QMAKE_PATH_HOST_BINS}:$PATH' > $script + echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' >> $script + echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script + echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script + echo 'export OE_QMAKE_CC=$CC' >> $script + echo 'export OE_QMAKE_CXX=$CXX' >> $script + echo 'export OE_QMAKE_LINK=$CXX' >> $script + echo 'export OE_QMAKE_AR=$AR' >> $script + echo 'export QT_CONF_PATH=${OE_QMAKE_PATH_HOST_BINS}/qt.conf' >> $script + echo 'export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`' >> $script + echo 'export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`' >> $script + echo 'export OE_QMAKE_MOC=${OE_QMAKE_PATH_HOST_BINS}/moc' >> $script + echo 'export OE_QMAKE_UIC=${OE_QMAKE_PATH_HOST_BINS}/uic' >> $script + echo 'export OE_QMAKE_RCC=${OE_QMAKE_PATH_HOST_BINS}/rcc' >> $script + echo 'export OE_QMAKE_QDBUSCPP2XML=${OE_QMAKE_PATH_HOST_BINS}/qdbuscpp2xml' >> $script + echo 'export OE_QMAKE_QDBUSXML2CPP=${OE_QMAKE_PATH_HOST_BINS}/qdbusxml2cpp' >> $script + echo 'export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script + echo 'export OE_QMAKE_PATH_HOST_BINS=${OE_QMAKE_PATH_HOST_BINS}' >> $script + echo 'export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`${QT_DIR_NAME}/mkspecs/linux-oe-g++' >> $script + echo "export OE_QMAKE_WAYLAND_SCANNER=${OE_QMAKE_PATH_HOST_BINS}/wayland-scanner" >> $script + + # Use relocable sysroot + sed -i -e 's:${SDKPATHNATIVE}:$OECORE_NATIVE_SYSROOT:g' $script +} diff --git a/meta-webos/recipes-qt/qt5/nativesdk-qtwayland_git.bb b/meta-webos/recipes-qt/qt5/nativesdk-qtwayland_git.bb new file mode 100644 index 000000000..65440975b --- /dev/null +++ b/meta-webos/recipes-qt/qt5/nativesdk-qtwayland_git.bb @@ -0,0 +1,30 @@ +require ${TOPDIR}/meta-qt5/recipes-qt/qt5/nativesdk-qt5.inc +require ${TOPDIR}/meta-qt5/recipes-qt/qt5/qt5-git.inc + +# There are no LGPLv3-only licensed files in this component. +LICENSE = "BSD & (LGPL-2.1 & The-Qt-Company-Qt-LGPL-Exception-1.1 | LGPL-3.0)" +LIC_FILES_CHKSUM = " \ + file://LICENSE.LGPLv21;md5=4bfd28363f541b10d9f024181b8df516 \ + file://LICENSE.LGPLv3;md5=e0459b45c5c4840b353141a8bbed91f0 \ + file://LICENSE.GPLv3;md5=88e2b9117e6be406b5ed6ee4ca99a705 \ + file://LGPL_EXCEPTION.txt;md5=9625233da42f9e0ce9d63651a9d97654 \ + file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e \ +" + +DEPENDS = "nativesdk-qtbase nativesdk-wayland" + +# Patches from https://github.com/meta-qt5/qtwayland/commits/b5.6-native +# 5.6.meta-qt5-native.1 +SRC_URI += " \ + file://0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch \ +" + +do_configure() { + ${OE_QMAKE_QMAKE} ${OE_QMAKE_DEBUG_OUTPUT} -r ${S}/src/qtwaylandscanner +} + +do_install() { + oe_runmake install INSTALL_ROOT=${D} +} + +SRCREV = "70575643cfece4f0aca4b40e77ac5d7c0e8042a2" diff --git a/meta-webos/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch b/meta-webos/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch new file mode 100644 index 000000000..078f2ac4a --- /dev/null +++ b/meta-webos/recipes-qt/qt5/qtwayland/0001-Install-the-qtwaylandscanner-tool-to-the-native-side.patch @@ -0,0 +1,29 @@ +From 07ec1f1728be3dff2f93f939065b7fb58f1df434 Mon Sep 17 00:00:00 2001 +From: Simon Busch +Date: Fri, 19 Jul 2013 13:35:14 +0000 +Subject: [PATCH] Install the qtwaylandscanner tool to the native side + +Upstream-Status: Inappropiate [configuration] + +Signed-off-by: Simon Busch +--- + src/qtwaylandscanner/qtwaylandscanner.pro | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/qtwaylandscanner/qtwaylandscanner.pro b/src/qtwaylandscanner/qtwaylandscanner.pro +index ac2d07b..7a46a24 100644 +--- a/src/qtwaylandscanner/qtwaylandscanner.pro ++++ b/src/qtwaylandscanner/qtwaylandscanner.pro +@@ -1,6 +1,10 @@ + option(host_build) + +-SOURCES += qtwaylandscanner.cpp ++TARGET = qtwaylandscanner$$qtPlatformTargetSuffix() ++CONFIG += console warn_off ++QT = core + +-load(qt_tool) ++SOURCES += qtwaylandscanner.cpp + ++target.path = $$[QT_HOST_BINS] ++INSTALLS += target From c3254fe624518fecab82c0541e0edc3c99ba0517 Mon Sep 17 00:00:00 2001 From: Seokha Ko Date: Wed, 10 Oct 2018 18:50:33 +0900 Subject: [PATCH 3/3] webos-sdk: delete unnecessary webos-sdk.bb :Release Notes: delete unnecessary webos-sdk.bb :Detailed Notes: we can use 'bitbake -c populate_sdk webos-image' to make qt5 included SDK. :Testing Performed: $ bitbake -c populate_sdk webos-image :QA Notes: :Issues Addressed: Change-Id: I7ac0f05b6e34aaf4ec213379bec334dac4db93d3 --- meta-webos/recipes-core/images/webos-sdk.bb | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 meta-webos/recipes-core/images/webos-sdk.bb diff --git a/meta-webos/recipes-core/images/webos-sdk.bb b/meta-webos/recipes-core/images/webos-sdk.bb deleted file mode 100644 index 23f6b9ddd..000000000 --- a/meta-webos/recipes-core/images/webos-sdk.bb +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) 2018 LG Electronics, Inc. - -SUMMARY = "webOS OSE developer/test image & SDK" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10" - -PR = "r0" - -require webos-image-devel.bb -inherit webos_image -inherit populate_sdk populate_sdk_qt5 -