Rework test/debug image features and crosssdk image definitions 05/24505/7
authorScott Murray <scott.murray@konsulko.com>
Wed, 13 May 2020 00:58:56 +0000 (20:58 -0400)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Mon, 18 May 2020 10:30:03 +0000 (10:30 +0000)
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 <scott.murray@konsulko.com>
Change-Id: I942b61501beb41d037001b70a501f90b9a59c45d

13 files changed:
meta-agl-distro/conf/distro/poky-agl.conf
meta-agl-profile-core/conf/include/base-agl.inc
meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.bb [changed mode: 0755->0644]
meta-agl-profile-core/recipes-platform/images/agl-image-minimal-crosssdk.inc [new file with mode: 0644]
meta-agl-profile-core/recipes-platform/packagegroups/packagegroup-agl-core-services.bb
meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5-crosssdk.inc [new file with mode: 0644]
meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.bb
meta-agl-profile-graphical-qt5/recipes-platform/images/agl-image-graphical-qt5.inc
meta-agl-profile-graphical/conf/include/agl-profile-graphical.inc [deleted file]
meta-agl-profile-graphical/recipes-platform/packagegroups/packagegroup-agl-graphical-services.bb
meta-app-framework/classes/aglwgt.bbclass
templates/feature/agl-profile-graphical/50_local.conf.inc [deleted file]

index 639e355..48386ed 100644 (file)
@@ -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)
index d568b06..c5cf1a5 100644 (file)
@@ -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.
old mode 100755 (executable)
new mode 100644 (file)
index 27c1ee6..8c5aae1
@@ -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 (file)
index 0000000..7181294
--- /dev/null
@@ -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 \
+    "
index 9f70159..2fd31d1 100644 (file)
@@ -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}'))])} \
-    "
index a952fe2..5147ea4 100755 (executable)
@@ -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 (file)
index 0000000..56fd4b1
--- /dev/null
@@ -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 "
index 3598981..bcfd724 100644 (file)
@@ -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 \
-    "
-
index cef3bf6..114d06a 100644 (file)
@@ -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 (file)
index 519e791..0000000
+++ /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"
index 0601606..e587ab2 100644 (file)
@@ -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}'))])} \
-    "
index faa17e3..b5f7be8 100644 (file)
@@ -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 (file)
index e290c09..0000000
+++ /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