From 1c3c06842ac1b9c089d0a08e91c60f44e4844fac Mon Sep 17 00:00:00 2001 From: Jan-Simon Moeller Date: Tue, 8 Dec 2020 11:12:45 +0100 Subject: SPEC-3723: restructure meta-agl Goal is to reach a minimal meta-agl-core as base for IVI and IC work at the same time. Trim dependencies and move most 'demo' related recipes to meta-agl-demo. v2: changed to bbapend + .inc , added description v3: testbuild of all images v4: restore -test packagegroup and -qa images, compare manifests and adapt packagegroups. v5: rebased v6: merged meta-agl-distro into meta-agl-core, due to dependency on meta-oe, moved -test packagegroup and -qa images to own layer meta-agl-core-test v7: Fixed comments from Paul Barker v8: Update the markdown files v9: restore wayland/weston/agl-compositor recipes/appends, reworked to move app f/w specific changes to bbappends in meta-app-framework and only demo specific weston-init changes to meta-agl-demo v10: fix s/agldemo/aglcore/ missed in weston-init.bbappend Description: This patch is part 1 out of 2 large patches that implement the layer rework discussed during the previous workshop. Essentially meta-agl-core is the small but versatile new core layer of AGL serving as basis for the work done by the IC and IVI EGs. All demo related work is moved to meta-agl-demo in the 2nd patchset. This should be applied together as atomic change. The resulting meta-agl/* follows these guidelines: - only bsp adaptations in meta-agl-bsp - remove the agl-profile-* layers for simplicity -- the packagegroup-agl(-profile)-graphical and so on have been kept in meta-agl-demo - meta-agl-profile-core is now meta-agl-core - meta-agl-core does pass yocto-check-layer -- therefore use the bbappend + conditional + .inc file construct found in meta-virtualization - meta-agl/meta-security has been merged into meta-agl/meta-app-framework - meta-netboot does pass yocto-check-layer - meta-pipewire does pass yocto-check-layer Migration: All packagegroups are preserved but they're now enabled by 'agl-demo'. Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller Signed-off-by: Scott Murray Change-Id: Ia6c6e5e6ce2b4ffa69ea94959cdc57c310ba7c53 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/25769 --- .../recipes-platform/images/agl-image-boot.bb | 9 ++++ .../recipes-platform/images/agl-image-boot.inc | 10 +++++ .../images/agl-image-core-autobuilder.bb | 18 ++++++++ .../images/agl-image-minimal-crosssdk.bb | 18 ++++++++ .../images/agl-image-minimal-crosssdk.inc | 24 +++++++++++ .../recipes-platform/images/agl-image-minimal.bb | 9 ++++ .../recipes-platform/images/agl-image-minimal.inc | 10 +++++ .../recipes-platform/images/agl-image-weston.bb | 9 ++++ .../recipes-platform/images/agl-image-weston.inc | 7 +++ .../packagegroups/packagegroup-agl-core-boot.bb | 50 ++++++++++++++++++++++ .../packagegroup-agl-core-connectivity.bb | 19 ++++++++ .../packagegroups/packagegroup-agl-core-devel.bb | 31 ++++++++++++++ .../packagegroup-agl-core-os-commonlibs.bb | 14 ++++++ .../packagegroup-agl-core-security.bb | 14 ++++++ .../packagegroup-agl-graphical-multimedia.bb | 16 +++++++ .../packagegroup-agl-graphical-weston.bb | 17 ++++++++ .../packagegroups/packagegroup-agl-image-boot.bb | 18 ++++++++ .../packagegroup-agl-image-minimal.bb | 24 +++++++++++ .../packagegroup-agl-profile-graphical.bb | 22 ++++++++++ 19 files changed, 339 insertions(+) create mode 100644 meta-agl-core/recipes-platform/images/agl-image-boot.bb create mode 100644 meta-agl-core/recipes-platform/images/agl-image-boot.inc create mode 100644 meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb create mode 100644 meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb create mode 100644 meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc create mode 100644 meta-agl-core/recipes-platform/images/agl-image-minimal.bb create mode 100644 meta-agl-core/recipes-platform/images/agl-image-minimal.inc create mode 100644 meta-agl-core/recipes-platform/images/agl-image-weston.bb create mode 100644 meta-agl-core/recipes-platform/images/agl-image-weston.inc create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb create mode 100644 meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb (limited to 'meta-agl-core/recipes-platform') diff --git a/meta-agl-core/recipes-platform/images/agl-image-boot.bb b/meta-agl-core/recipes-platform/images/agl-image-boot.bb new file mode 100644 index 000000000..84cdbcf31 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-boot.bb @@ -0,0 +1,9 @@ +SUMMARY = "An AGL small image just capable of allowing a device to boot." + +require agl-image-boot.inc + +LICENSE = "MIT" + +IMAGE_INSTALL_append = "\ + packagegroup-agl-image-boot \ + " diff --git a/meta-agl-core/recipes-platform/images/agl-image-boot.inc b/meta-agl-core/recipes-platform/images/agl-image-boot.inc new file mode 100644 index 000000000..825393978 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-boot.inc @@ -0,0 +1,10 @@ +IMAGE_LINGUAS = " " + +inherit core-image + +IMAGE_INSTALL = "${CORE_IMAGE_EXTRA_INSTALL}" + +IMAGE_ROOTFS_SIZE ?= "8192" + +# Allow extra IMAGE_FSTYPES to be added by boards configs +IMAGE_FSTYPES += "${AGL_EXTRA_IMAGE_FSTYPES}" diff --git a/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb new file mode 100644 index 000000000..3855b3c23 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb @@ -0,0 +1,18 @@ +SUMMARY = "A very basic Wayland image with a terminal" + +require agl-image-weston.inc + +LICENSE = "MIT" + +IMAGE_INSTALL_append = "\ + packagegroup-agl-profile-graphical \ + busybox \ + psplash \ + gdb \ + gperf \ + weston \ + weston-examples \ + curl \ + ptest-runner \ + libsoup-2.4 \ + " diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb new file mode 100644 index 000000000..8c5aae1bf --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb @@ -0,0 +1,18 @@ +SUMMARY = "Cross SDK of Full AGL Distribution for core profile" + +DESCRIPTION = "SDK image for full AGL Distribution for IVI profile. \ +It includes the full meta-toolchain, plus developement headers and libraries \ +to form a standalone cross SDK." + +require agl-image-minimal.bb + +LICENSE = "MIT" + +require agl-image-minimal-crosssdk.inc + +inherit populate_sdk + +# Task do_populate_sdk and do_rootfs can't be exec simultaneously. +# 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-core/recipes-platform/images/agl-image-minimal-crosssdk.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc new file mode 100644 index 000000000..a69e698a1 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc @@ -0,0 +1,24 @@ +IMAGE_FEATURES_append = " dev-pkgs" +IMAGE_INSTALL_append = " kernel-dev kernel-devsrc" + + + + + + +# FIXME: +# 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-core/recipes-platform/images/agl-image-minimal.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb new file mode 100644 index 000000000..1fd213d0f --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb @@ -0,0 +1,9 @@ +SUMMARY = "An AGL small image just capable of allowing a device to boot." + +require agl-image-minimal.inc + +LICENSE = "MIT" + +IMAGE_INSTALL_append = "\ + packagegroup-agl-image-minimal \ + " diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc new file mode 100644 index 000000000..825393978 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc @@ -0,0 +1,10 @@ +IMAGE_LINGUAS = " " + +inherit core-image + +IMAGE_INSTALL = "${CORE_IMAGE_EXTRA_INSTALL}" + +IMAGE_ROOTFS_SIZE ?= "8192" + +# Allow extra IMAGE_FSTYPES to be added by boards configs +IMAGE_FSTYPES += "${AGL_EXTRA_IMAGE_FSTYPES}" diff --git a/meta-agl-core/recipes-platform/images/agl-image-weston.bb b/meta-agl-core/recipes-platform/images/agl-image-weston.bb new file mode 100644 index 000000000..bbb61c922 --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-weston.bb @@ -0,0 +1,9 @@ +SUMMARY = "A very basic Wayland image with a terminal" + +require agl-image-weston.inc + +LICENSE = "MIT" + +IMAGE_INSTALL_append = "\ + packagegroup-agl-profile-graphical \ + " diff --git a/meta-agl-core/recipes-platform/images/agl-image-weston.inc b/meta-agl-core/recipes-platform/images/agl-image-weston.inc new file mode 100644 index 000000000..cef3bf64e --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-weston.inc @@ -0,0 +1,7 @@ +require recipes-platform/images/agl-image-minimal.inc + +IMAGE_FEATURES += "splash package-management ssh-server-dropbear" + +inherit features_check + +REQUIRED_DISTRO_FEATURES = "wayland" diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb new file mode 100644 index 000000000..5ffa4cfff --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb @@ -0,0 +1,50 @@ +# +# Copyright (C) 2007 OpenedHand Ltd. +# +# derived from oe-core: meta/recipes-core/packagegroups/packagegroup-core-boot.bb + +SUMMARY = "Minimal boot requirements" +DESCRIPTION = "The minimal set of packages required to boot the system" +LICENSE = "MIT" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +inherit packagegroup + +# +# Set by the machine configuration with packages essential for device bootup +# +MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= "" +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= "" + +# Distro can override the following VIRTUAL-RUNTIME providers: +VIRTUAL-RUNTIME_dev_manager ?= "udev" +VIRTUAL-RUNTIME_login_manager ?= "busybox" +VIRTUAL-RUNTIME_init_manager ?= "sysvinit" +VIRTUAL-RUNTIME_initscripts ?= "initscripts" +VIRTUAL-RUNTIME_keymaps ?= "keymaps" + +SYSVINIT_SCRIPTS = "${@bb.utils.contains('MACHINE_FEATURES', 'rtc', 'busybox-hwclock', '', d)} \ + modutils-initscripts \ + init-ifupdown \ + ${VIRTUAL-RUNTIME_initscripts} \ + " + +RDEPENDS_${PN} = "\ + base-files \ + base-passwd \ + busybox \ + rng-tools \ + ${@bb.utils.contains("DISTRO_FEATURES", "sysvinit", "${SYSVINIT_SCRIPTS}", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "keyboard", "${VIRTUAL-RUNTIME_keymaps}", "", d)} \ + netbase \ + ${VIRTUAL-RUNTIME_login_manager} \ + ${VIRTUAL-RUNTIME_init_manager} \ + ${VIRTUAL-RUNTIME_dev_manager} \ + ${VIRTUAL-RUNTIME_update-alternatives} \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS}" + +RRECOMMENDS_${PN} = "\ + tzdata \ + ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" + diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb new file mode 100644 index 000000000..0d7bbb58b --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-connectivity.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "The minimal set of packages for Connectivity Subsystem" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-connectivity \ + " + +ALLOW_EMPTY_${PN} = "1" + +PKGGROUP_ZEROCONF = "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'packagegroup-base-zeroconf', '', d)}" + +RDEPENDS_${PN} += "\ + dhcp-server \ + ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client connman-tests \ + connman-tools connman-ncurses connman-plugin-session-policy-local','',d)} \ + ${@bb.utils.contains('AGL_FEATURES', 'agl-devel', '${PKGGROUP_ZEROCONF}', '', d)} \ + " diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb new file mode 100644 index 000000000..72fec3ff0 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb @@ -0,0 +1,31 @@ +SUMMARY = "Provides a set of tools for development for AGL DISTRO" +LICENSE = "MIT" + +inherit packagegroup + +RDEPENDS_${PN} = "\ + strace \ + ldd \ + less \ + vim \ + lsof \ + gdb \ + valgrind \ + perf \ + powertop \ + screen \ + usbutils \ + rsync \ + pstree \ + procps \ + libxslt-bin \ + gcc-sanitizers \ + pciutils \ + " + +# needs meta-oe present +#RRECOMMENDS_${PN} = "\ +# jq \ +# htop \ +# tree \ +#" diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb new file mode 100644 index 000000000..aef732838 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb @@ -0,0 +1,14 @@ +SUMMARY = "The packages of middlewares for AGL IVI profile" +DESCRIPTION = "The set of packages required by Operating System and Common libraries Subsystem" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-os-commonlibs \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + " diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb new file mode 100644 index 000000000..0ae5c77a3 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb @@ -0,0 +1,14 @@ +SUMMARY = "The packages of middlewares for AGL IVI profile" +DESCRIPTION = "The set of packages required by Operating System and Common libraries Subsystem" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-core-security \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + " diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb new file mode 100644 index 000000000..cd37cb7d5 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb @@ -0,0 +1,16 @@ +SUMMARY = "The software for application framework of AGL IVI profile" +DESCRIPTION = "A set of packages belong to AGL application framework which required by \ +Multimedia Subsystem" + +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-graphical-multimedia \ + " + +RDEPENDS_${PN} += "\ + alsa-utils \ + gstreamer1.0-meta-base \ + " diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb new file mode 100644 index 000000000..6d3435d99 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "The minimal set of packages required for Wayland support" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-graphical-weston \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += " \ + weston \ + weston-init \ + weston-examples \ + " + diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb new file mode 100644 index 000000000..afa04e7a1 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "The minimal set of packages required by AGL" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-image-boot \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + packagegroup-agl-core-boot \ + packagegroup-machine-base \ + " + +RDEPENDS_${PN} += "\ + " diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb new file mode 100644 index 000000000..45107ed9c --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "The minimal set of packages required by AGL" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-image-minimal \ + profile-agl-minimal \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + packagegroup-agl-core-boot \ + packagegroup-machine-base \ + " + +RDEPENDS_${PN} += "\ + packagegroup-agl-core-connectivity \ + packagegroup-agl-core-os-commonlibs \ + packagegroup-agl-core-security \ + " + +RDEPENDS_profile-agl-minimal = "${PN}" diff --git a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb new file mode 100644 index 000000000..bfc5e19e8 --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb @@ -0,0 +1,22 @@ +SUMMARY = "The middleware for AGL IVI profile" +DESCRIPTION = "The set of packages required for AGL IVI Distribution" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-agl-profile-graphical \ + profile-graphical \ + " + +ALLOW_EMPTY_${PN} = "1" + +RDEPENDS_${PN} += "\ + packagegroup-agl-image-minimal \ + packagegroup-agl-graphical-weston \ + packagegroup-agl-graphical-multimedia \ +" +# FIXME: Removed due to issues building against weston 5.0.0: +# waltham-transmitter + +RDEPENDS_profile-graphical = "${PN}" -- cgit 1.2.3-korg