From dad22a2b3c3cced169c4790e8fe5d8cf2cc62ee2 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 12 May 2020 20:58:56 -0400 Subject: Rework test/debug image features and crosssdk image definitions Changes include: - The agl-test-wgt/agl-devel-wgt image features and the scheme of appending to their FEATURE_PACKAGES definitions turned out to be problematic with respect to resulting in unexpected extra packages ending up in agl-image-{minimal,ivi}, etc., when building with agl-demo configured (which is typical usage). To avoid this, the FEATURE_PACKAGE definitions for the image features have been replaced with tweaks to define COMPLEMENTARY_GLOBS for the features to bring in the test/debug/coverage packages via that mechanism. - The above removes the need to define the extra test/devel packagegroups, and requires some minor tweaks to aglwgt.bbclass to use a -debug package for the debug widget instead of -dbg, to avoid collisions with the dbg-pkgs image feature. As well, the afb-test package has been added as to RDEPENDS of all test widget packages, since that seems sensible and avoids needing to explicitly adding it elsewhere. - Attempt to rework the various crosssdk image definitions to use a layered set of .inc files to remove duplication and ensure that additions to the SDK are declared once in the appropriate profile. It is likely that a clean sheet implementation would have some things coming from meta-agl-profile-graphical, so further rework may be required/desired to continue cleaning things up. Bug-AGL: SPEC-3300, SPEC-3375 Signed-off-by: Scott Murray Change-Id: I942b61501beb41d037001b70a501f90b9a59c45d --- meta-agl-distro/conf/distro/poky-agl.conf | 4 ++++ meta-agl-profile-core/conf/include/base-agl.inc | 4 ---- .../images/agl-image-minimal-crosssdk.bb | 19 +------------------ .../images/agl-image-minimal-crosssdk.inc | 18 ++++++++++++++++++ .../packagegroups/packagegroup-agl-core-services.bb | 13 ------------- .../images/agl-image-graphical-qt5-crosssdk.bb | 11 +---------- .../images/agl-image-graphical-qt5-crosssdk.inc | 11 +++++++++++ .../images/agl-image-graphical-qt5.bb | 5 ----- .../images/agl-image-graphical-qt5.inc | 8 +------- .../conf/include/agl-profile-graphical.inc | 3 --- .../packagegroup-agl-graphical-services.bb | 12 ------------ meta-app-framework/classes/aglwgt.bbclass | 9 +++++---- .../feature/agl-profile-graphical/50_local.conf.inc | 2 -- 13 files changed, 41 insertions(+), 78 deletions(-) mode change 100755 => 100644 meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb create mode 100644 meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc create mode 100644 meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc delete mode 100644 meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc delete mode 100644 templates/feature/agl-profile-graphical/50_local.conf.inc diff --git a/meta-agl-distro/conf/distro/poky-agl.conf b/meta-agl-distro/conf/distro/poky-agl.conf index 639e35554..48386ed1d 100644 --- a/meta-agl-distro/conf/distro/poky-agl.conf +++ b/meta-agl-distro/conf/distro/poky-agl.conf @@ -171,6 +171,10 @@ PACKAGE_FEED_BASE_PATHS = "rpm" PACKAGE_FEED_ARCHS = "" #${PACKAGE_ARCHS}" +# Complementary package definitions for agl-test-wgt and agl-devel-wgt +# image features +COMPLEMENTARY_GLOB[agl-test-wgt] = '*-test' +COMPLEMENTARY_GLOB[agl-devel-wgt] = '*-coverage *-debug' # Fix for rpm metadata clash between nativesdk-cmake and nativesdk-qtbase-tools # (revalidate after 2017-10-15, 2018-06-12: still required) diff --git a/meta-agl-profile-core/conf/include/base-agl.inc b/meta-agl-profile-core/conf/include/base-agl.inc index d568b067b..c5cf1a57f 100644 --- a/meta-agl-profile-core/conf/include/base-agl.inc +++ b/meta-agl-profile-core/conf/include/base-agl.inc @@ -2,10 +2,6 @@ # Comment this out to be able to select the kernel modules yourself. IMAGE_INSTALL_append = " kernel-modules" -# Base image feature package definitions for agl-test-wgt and agl-devel-wgt -FEATURE_PACKAGES_agl-test-wgt = "packagegroup-agl-core-services-test" -FEATURE_PACKAGES_agl-devel-wgt = "packagegroup-agl-core-services-devel" - # Likewise as we included all kernel modules by default in the filesystem, # we do not need a separate tarball stored. # Comment this out to receive the separate modules tarball again. diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb old mode 100755 new mode 100644 index 27c1ee6d6..8c5aae1bf --- a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb @@ -8,23 +8,7 @@ require agl-image-minimal.bb LICENSE = "MIT" -IMAGE_FEATURES_append = " dev-pkgs" -IMAGE_INSTALL_append = " kernel-dev kernel-devsrc" - -# required dependencies for app and test builds -# also in the minimal image (SPEC-1678) -TOOLCHAIN_HOST_TASK += " \ - nativesdk-lua \ - " - -# required dependencies for app and test builds -# also in the minimal image (SPEC-1678) -TOOLCHAIN_TARGET_TASK += " \ - lua-dev \ - lua-staticdev \ - libafb-helpers-staticdev \ - libappcontroller-staticdev \ - " +require agl-image-minimal-crosssdk.inc inherit populate_sdk @@ -32,4 +16,3 @@ inherit populate_sdk # Both exec "createrepo" on the same directory, and so one of them # can failed (randomly). addtask do_populate_sdk after do_rootfs - diff --git a/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc new file mode 100644 index 000000000..71812943c --- /dev/null +++ b/meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc @@ -0,0 +1,18 @@ +IMAGE_FEATURES_append = " dev-pkgs" +IMAGE_INSTALL_append = " kernel-dev kernel-devsrc" + +# Always include the test widgets +IMAGE_FEATURES_append = " agl-test-wgt" + +# Required dependencies for app and test builds +TOOLCHAIN_HOST_TASK += " \ + nativesdk-lua \ + " + +# Required dependencies for app and test builds +TOOLCHAIN_TARGET_TASK += " \ + lua-dev \ + lua-staticdev \ + libafb-helpers-staticdev \ + libappcontroller-staticdev \ + " diff --git a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb index 9f7015992..2fd31d148 100644 --- a/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb +++ b/meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb @@ -3,11 +3,8 @@ LICENSE = "MIT" inherit packagegroup -PROVIDES = "${PACKAGES}" PACKAGES = "\ packagegroup-agl-core-services \ - packagegroup-agl-core-services-test \ - packagegroup-agl-core-services-devel \ " RDEPENDS_${PN} += "\ @@ -15,13 +12,3 @@ RDEPENDS_${PN} += "\ agl-service-network \ agl-service-platform-info \ " - -RDEPENDS_${PN}-test = "\ - ${@' '.join([x + '-test' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - afb-test \ - " - -RDEPENDS_${PN}-devel = "\ - ${@' '.join([x + '-dbg' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - ${@' '.join([x + '-coverage' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - " diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb index a952fe2a1..5147ea44a 100755 --- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb +++ b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb @@ -8,8 +8,7 @@ require agl-image-graphical-qt5.bb LICENSE = "MIT" -IMAGE_FEATURES_append = " dev-pkgs" -IMAGE_INSTALL_append = " kernel-dev kernel-devsrc" +require agl-image-graphical-qt5-crosssdk.inc inherit populate_sdk populate_sdk_qt5 @@ -17,11 +16,3 @@ inherit populate_sdk populate_sdk_qt5 # Both exec "createrepo" on the same directory, and so one of them # can failed (randomly). addtask do_populate_sdk after do_rootfs - -# Add wayland-scanner to SDK (SPEC-945) -# Use TOOLCHAIN_HOST_TASK instead of adding to the packagegroup -# wayland-scanner is in nativesdk-wayland-dev ! -# option: add also nativesdk-qtwayland-tools -TOOLCHAIN_HOST_TASK_append = " nativesdk-wayland nativesdk-wayland-dev" - -TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules " diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc new file mode 100644 index 000000000..56fd4b154 --- /dev/null +++ b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc @@ -0,0 +1,11 @@ +require recipes-platform/images/agl-image-minimal-crosssdk.inc + +TOOLCHAIN_TARGET_TASK += "libafb-helpers-qt-staticdev" + +# Add wayland-scanner to SDK (SPEC-945) +# Use TOOLCHAIN_HOST_TASK instead of adding to the packagegroup +# wayland-scanner is in nativesdk-wayland-dev ! +# option: add also nativesdk-qtwayland-tools +TOOLCHAIN_HOST_TASK_append = " nativesdk-wayland nativesdk-wayland-dev" + +TOOLCHAIN_HOST_TASK_append = " nativesdk-perl-modules " diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb index 35989819e..bcfd724fa 100644 --- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb +++ b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb @@ -3,8 +3,3 @@ SUMMARY = "A very basic Wayland image with a terminal" require agl-image-graphical-qt5.inc LICENSE = "MIT" - -IMAGE_INSTALL_append = "\ - packagegroup-agl-image-weston \ - " - diff --git a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc index cef3bf64e..114d06a07 100644 --- a/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc +++ b/meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc @@ -1,7 +1 @@ -require recipes-platform/images/agl-image-minimal.inc - -IMAGE_FEATURES += "splash package-management ssh-server-dropbear" - -inherit features_check - -REQUIRED_DISTRO_FEATURES = "wayland" +require recipes-platform/images/agl-image-weston.inc diff --git a/meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc b/meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc deleted file mode 100644 index 519e79199..000000000 --- a/meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc +++ /dev/null @@ -1,3 +0,0 @@ -# Extend image feature package definitions for agl-test-wgt and agl-devel-wgt -FEATURE_PACKAGES_agl-test-wgt_append = " packagegroup-agl-graphical-services-test" -FEATURE_PACKAGES_agl-devel-wgt_append = " packagegroup-agl-graphical-services-devel" diff --git a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb index 0601606f2..e587ab21c 100644 --- a/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb +++ b/meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb @@ -3,11 +3,8 @@ LICENSE = "MIT" inherit packagegroup -PROVIDES = "${PACKAGES}" PACKAGES = "\ packagegroup-agl-graphical-services \ - packagegroup-agl-graphical-services-test \ - packagegroup-agl-graphical-services-devel \ " ALLOW_EMPTY_${PN} = "1" @@ -16,12 +13,3 @@ RDEPENDS_${PN} = "\ ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-mediaplayer', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'agl-service-radio', '', d)} \ " - -RDEPENDS_${PN}-test = "\ - ${@' '.join([x + '-test' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - " - -RDEPENDS_${PN}-devel = "\ - ${@' '.join([x + '-dbg' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - ${@' '.join([x + '-coverage' for x in str.split(d.getVar('RDEPENDS_${PN}'))])} \ - " diff --git a/meta-app-framework/classes/aglwgt.bbclass b/meta-app-framework/classes/aglwgt.bbclass index faa17e3a8..b5f7be8bf 100644 --- a/meta-app-framework/classes/aglwgt.bbclass +++ b/meta-app-framework/classes/aglwgt.bbclass @@ -47,6 +47,7 @@ AGLWGT_PACKAGE_WARN = "false" # NOTE: This should revisited after a round of autobuild script rework # to address SPEC-3300. ALLOW_EMPTY_${PN}-coverage = "1" +ALLOW_EMPTY_${PN}-debug = "1" ALLOW_EMPTY_${PN}-test = "1" @@ -145,7 +146,7 @@ do_install() { addtask aglwgt_deploy before do_package after do_install addtask aglwgt_package before do_aglwgt_deploy after do_compile -PACKAGES += "${PN}-test ${PN}-coverage" +PACKAGES += "${PN}-test ${PN}-debug ${PN}-coverage" FILES_${PN} += " \ /usr/AGL/apps/release/*.wgt \ @@ -154,11 +155,11 @@ FILES_${PN} += " \ ${sysconfdir}/agl-postinsts/${POST_INSTALL_SCRIPT} \ " FILES_${PN}-test = "/usr/AGL/apps/test/*.wgt" -FILES_${PN}-dbg = "/usr/AGL/apps/debug/*.wgt" +FILES_${PN}-debug = "/usr/AGL/apps/debug/*.wgt" FILES_${PN}-coverage = "/usr/AGL/apps/coverage/*.wgt" -# Test widgets need the base widget -RDEPENDS_${PN}-test = "${PN}" +# Test widgets need the parent widget and the test framework +RDEPENDS_${PN}-test = "${PN} afb-test" # Signature keys # These are default keys for development purposes ! diff --git a/templates/feature/agl-profile-graphical/50_local.conf.inc b/templates/feature/agl-profile-graphical/50_local.conf.inc deleted file mode 100644 index e290c098d..000000000 --- a/templates/feature/agl-profile-graphical/50_local.conf.inc +++ /dev/null @@ -1,2 +0,0 @@ -#see meta-agl/meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc -require conf/include/agl-profile-graphical.inc -- cgit 1.2.3-korg