diff options
author | Scott Murray <scott.murray@konsulko.com> | 2023-06-05 10:07:24 -0400 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2023-06-12 11:10:13 +0000 |
commit | 4b4c0f15d1d2a52e636aa22e56cf864d1a8a656b (patch) | |
tree | d60da28a0e968afc33156a0a7c2a40d7cdcc93f3 /meta-agl-core/recipes-platform | |
parent | acbae7dc3d56800e68700b8f14515db6c34d337f (diff) |
Remove systemd user session and clean up packagegroups and images
Remove the use of a systemd user session to align with how upstream
runs Weston, and to allow using all systemd sandboxing features with
the compositor and homescreen, launcher, etc. applications. The
changes for this touched enough packagegroups and images that further
rework was done to address some of the cleanup described in SPEC-4813,
see below for details.
Changes:
- Remove agl-session and update various recipes that were manually
adding dependencies to the user session it created. The compositor
(be it weston or agl-compositor) and Wayland clients now run in the
system session as non-root users.
- Revive agl-users recipe, this time living in meta-agl-core, with
the purpose of creating the agl-driver user. For simplicity,
agl-compositor is always run as the agl-driver user, as opposed to
trying to wrangle running it as different users depending on build
configuration. This can potentially be made more configurable if a
downstream user has a usecase to be able to specify another user.
- Fully split agl-compositor's systemd unit with a tweaked fork of the
weston-init recipe and unit which lives in meta-agl-core. This will
be easier to maintain than the attempt to reuse weston-init for
builds without meta-app-framework that was done previously.
- Create packagegroup-agl-graphical-compositor, distinct from the
weston packagegroup. This should make it more straightforward for
downstreams that want agl-compositor or weston.
- Rename agl-image-agl-compositor to agl-image-compositor to remove
redundancy.
- Tweak the logic for the inclusion of a few debug packages (e.g.
agl-shell-activator) to ensure they only show up in images when
agl-devel is enabled.
- Split weston-terminal and the required icon resources into separate
packages in our weston bbappend to avoid pulling in weston just to
get the terminal for testing.
- Add a agl-core-image.bbclass to use as a base for images.
- Move our cross-SDK configuration to a agl-crosssdk.bbclass to ease
reuse.
- Remove various empty packagegroups.
- Unify image .inc files with their .bb files as a simplification,
and to move towards more how upstream Yocto Project does things.
- Split pipewire tools into their own -devel packagegroup.
- Remove rcar3 additions to packagegroup-agl-graphical-multimedia, as
that packagegroup is not machine-specific. They will be added back
in via a change in meta-agl-demo. If a downstream user desires a
platform-specific packagegroup for such packages in meta-agl-core,
this can be revisited, though a different implementation should be
used.
- Replace some :append usage with += to avoid creating problems
for downstream users.
Bug-AGL: SPEC-4714, SPEC-4813
Change-Id: I55b29bf749f0d5d50993a362c665bce62b785f67
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28996
Tested-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-core/recipes-platform')
23 files changed, 69 insertions, 173 deletions
diff --git a/meta-agl-core/recipes-platform/images/agl-image-agl-compositor.bb b/meta-agl-core/recipes-platform/images/agl-image-agl-compositor.bb deleted file mode 100644 index 9ca70e041..000000000 --- a/meta-agl-core/recipes-platform/images/agl-image-agl-compositor.bb +++ /dev/null @@ -1,10 +0,0 @@ -SUMMARY = "A very basic Wayland image with agl-compositor" - -require agl-image-weston.inc - -LICENSE = "MIT" - -IMAGE_INSTALL:append = "\ - agl-compositor \ - packagegroup-agl-profile-graphical \ - " diff --git a/meta-agl-core/recipes-platform/images/agl-image-boot.bb b/meta-agl-core/recipes-platform/images/agl-image-boot.bb index 6e2b89324..dde6a18db 100644 --- a/meta-agl-core/recipes-platform/images/agl-image-boot.bb +++ b/meta-agl-core/recipes-platform/images/agl-image-boot.bb @@ -1,9 +1,5 @@ -SUMMARY = "An AGL small image just capable of allowing a device to boot." - -require agl-image-boot.inc - +SUMMARY = "A small image just capable of allowing a device to boot." LICENSE = "MIT" -IMAGE_INSTALL:append = "\ - packagegroup-agl-image-boot \ - " +inherit agl-core-image + diff --git a/meta-agl-core/recipes-platform/images/agl-image-boot.inc b/meta-agl-core/recipes-platform/images/agl-image-boot.inc deleted file mode 100644 index b7cb19496..000000000 --- a/meta-agl-core/recipes-platform/images/agl-image-boot.inc +++ /dev/null @@ -1,16 +0,0 @@ -IMAGE_LINGUAS = " " - -AGL_BASE_IMAGE ?= "core-image" - -inherit ${AGL_BASE_IMAGE} - -FEATURE_PACKAGES_selinux = " \ - packagegroup-agl-core-selinux \ - ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-agl-core-selinux-devel', '', d)} \ -" - -IMAGE_FEATURES:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}" - -IMAGE_INSTALL = "packagegroup-agl-core-boot ${CORE_IMAGE_EXTRA_INSTALL}" - -IMAGE_ROOTFS_SIZE ?= "8192" diff --git a/meta-agl-core/recipes-platform/images/agl-image-compositor.bb b/meta-agl-core/recipes-platform/images/agl-image-compositor.bb new file mode 100644 index 000000000..ea48f474f --- /dev/null +++ b/meta-agl-core/recipes-platform/images/agl-image-compositor.bb @@ -0,0 +1,15 @@ +SUMMARY = "A very basic Wayland image with agl-compositor" +LICENSE = "MIT" + +require agl-image-minimal.bb + +inherit features_check + +REQUIRED_DISTRO_FEATURES = "wayland" + +SYSTEMD_DEFAULT_TARGET = "graphical.target" + +IMAGE_INSTALL += " \ + packagegroup-agl-graphical-compositor \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'agl-shell-activator weston-examples', '', d)} \ +" 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 index 3a887a5c0..eec1cf54c 100644 --- a/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb +++ b/meta-agl-core/recipes-platform/images/agl-image-core-autobuilder.bb @@ -1,16 +1,14 @@ SUMMARY = "A very basic Wayland image with a terminal" +LICENSE = "MIT" -require agl-image-weston.inc +require agl-image-weston.bb -LICENSE = "MIT" +IMAGE_FEATURES += "splash" -IMAGE_INSTALL:append = "\ - packagegroup-agl-profile-graphical \ +IMAGE_INSTALL += " \ busybox \ - psplash \ gdb \ gperf \ - weston \ weston-examples \ curl \ ptest-runner \ 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 index 8c5aae1bf..6aa308273 100644 --- a/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.bb @@ -1,18 +1,9 @@ -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 +SUMMARY = "Cross SDK of minimal AGL Distribution for core profile" +DESCRIPTION = "SDK image for AGL core distribution. \ +It includes the full toolchain, plus developement headers and libraries \ +to form a standalone cross SDK." 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 +inherit agl-crosssdk 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 deleted file mode 100644 index bab27eb98..000000000 --- a/meta-agl-core/recipes-platform/images/agl-image-minimal-crosssdk.inc +++ /dev/null @@ -1,2 +0,0 @@ -IMAGE_FEATURES:append = " dev-pkgs" -IMAGE_INSTALL:append = " kernel-dev kernel-devsrc" diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal.bb b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb index 52cc06aeb..4e54e93ed 100644 --- a/meta-agl-core/recipes-platform/images/agl-image-minimal.bb +++ b/meta-agl-core/recipes-platform/images/agl-image-minimal.bb @@ -1,9 +1,9 @@ SUMMARY = "An AGL small image just capable of allowing a device to boot." +LICENSE = "MIT" -require agl-image-minimal.inc +inherit agl-core-image -LICENSE = "MIT" +IMAGE_INSTALL = "packagegroup-agl-image-minimal ${CORE_IMAGE_EXTRA_INSTALL}" -IMAGE_INSTALL:append = "\ - packagegroup-agl-image-minimal \ - " +IMAGE_ROOTFS_SIZE ?= "8192" +IMAGE_ROOTFS_EXTRA_SPACE:append = "${@bb.utils.contains("DISTRO_FEATURES", "systemd", " + 4096", "", d)}" diff --git a/meta-agl-core/recipes-platform/images/agl-image-minimal.inc b/meta-agl-core/recipes-platform/images/agl-image-minimal.inc deleted file mode 100644 index 50b6336de..000000000 --- a/meta-agl-core/recipes-platform/images/agl-image-minimal.inc +++ /dev/null @@ -1 +0,0 @@ -require agl-image-boot.inc diff --git a/meta-agl-core/recipes-platform/images/agl-image-weston.bb b/meta-agl-core/recipes-platform/images/agl-image-weston.bb index 7e9f8814e..d902020cc 100644 --- a/meta-agl-core/recipes-platform/images/agl-image-weston.bb +++ b/meta-agl-core/recipes-platform/images/agl-image-weston.bb @@ -1,9 +1,15 @@ SUMMARY = "A very basic Wayland image with a terminal" +LICENSE = "MIT" -require agl-image-weston.inc +require agl-image-minimal.bb -LICENSE = "MIT" +inherit features_check + +REQUIRED_DISTRO_FEATURES = "wayland" + +SYSTEMD_DEFAULT_TARGET = "graphical.target" -IMAGE_INSTALL:append = "\ - packagegroup-agl-profile-graphical \ - " +IMAGE_INSTALL += " \ + packagegroup-agl-graphical-weston \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'weston-examples', '', d)} \ +" diff --git a/meta-agl-core/recipes-platform/images/agl-image-weston.inc b/meta-agl-core/recipes-platform/images/agl-image-weston.inc deleted file mode 100644 index 00e36bc4e..000000000 --- a/meta-agl-core/recipes-platform/images/agl-image-weston.inc +++ /dev/null @@ -1,9 +0,0 @@ -require recipes-platform/images/agl-image-minimal.inc - -# NOTE: In hardknott or later this can be replaced by adding "weston" -# to IMAGE_FEATURES. -SYSTEMD_DEFAULT_TARGET = "graphical.target" - -inherit features_check - -REQUIRED_DISTRO_FEATURES = "wayland" diff --git a/meta-agl-core/recipes-platform/images/core-image-weston.bbappend b/meta-agl-core/recipes-platform/images/core-image-weston.bbappend deleted file mode 100644 index 082637b7e..000000000 --- a/meta-agl-core/recipes-platform/images/core-image-weston.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'core-image-weston_aglcore.inc', '', d)} diff --git a/meta-agl-core/recipes-platform/images/core-image-weston_aglcore.inc b/meta-agl-core/recipes-platform/images/core-image-weston_aglcore.inc deleted file mode 100644 index 82e348587..000000000 --- a/meta-agl-core/recipes-platform/images/core-image-weston_aglcore.inc +++ /dev/null @@ -1,3 +0,0 @@ -# NOTE: In hardknott or later this can be replaced by adding "weston" -# to IMAGE_FEATURES. -SYSTEMD_DEFAULT_TARGET = "graphical.target" 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 index fe1ee7b8c..28a734548 100644 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-boot.bb @@ -16,6 +16,7 @@ VIRTUAL-RUNTIME_rngd ?= "rng-tools" RDEPENDS:${PN} = "\ packagegroup-core-boot \ + packagegroup-machine-base \ ${VIRTUAL-RUNTIME_rngd} \ " 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 index eca4f5222..fc72d11cd 100644 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-devel.bb @@ -21,11 +21,4 @@ RDEPENDS:${PN} = "\ pciutils \ openssh-sftp-server \ zstd \ - " - -# 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 deleted file mode 100644 index 0ee63e82a..000000000 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-os-commonlibs.bb +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index 7532f4cd7..000000000 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-core-security.bb +++ /dev/null @@ -1,14 +0,0 @@ -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-compositor.bb b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-compositor.bb new file mode 100644 index 000000000..be124925f --- /dev/null +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-compositor.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "The minimal set of packages required for the AGL compositor" +LICENSE = "MIT" + +inherit packagegroup features_check + +# agl-compositor-init requires pam enabled if started via systemd +REQUIRED_DISTRO_FEATURES = "wayland ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" + +RDEPENDS:${PN} += " \ + agl-compositor \ + agl-compositor-init \ + ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \ +" 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 deleted file mode 100644 index f9903d942..000000000 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-multimedia.bb +++ /dev/null @@ -1,16 +0,0 @@ -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 index 859303049..af4d90c49 100644 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb @@ -1,17 +1,13 @@ -DESCRIPTION = "The minimal set of packages required for Wayland support" +DESCRIPTION = "The minimal set of packages required for the Weston compositor" LICENSE = "MIT" -inherit packagegroup +inherit packagegroup features_check -PACKAGES = "\ - packagegroup-agl-graphical-weston \ - " - -ALLOW_EMPTY:${PN} = "1" +# weston-init requires pam enabled if started via systemd +REQUIRED_DISTRO_FEATURES = "wayland ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" RDEPENDS:${PN} += " \ - weston \ - weston-init \ - weston-examples \ - " - + weston \ + weston-init \ + ${@bb.utils.filter('DISTRO_FEATURES', 'polkit', d)} \ +" 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 deleted file mode 100644 index 8b2cfbb31..000000000 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-boot.bb +++ /dev/null @@ -1,18 +0,0 @@ -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 index 1a51a9bf1..a60cbab21 100644 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-image-minimal.bb @@ -12,13 +12,7 @@ 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 index 13b5fdc41..b92e760ae 100644 --- a/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb +++ b/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-profile-graphical.bb @@ -1,5 +1,5 @@ SUMMARY = "The middleware for AGL IVI profile" -DESCRIPTION = "The set of packages required for AGL IVI Distribution" +DESCRIPTION = "The base set of packages required for a AGL IVI Distribution" LICENSE = "MIT" inherit packagegroup @@ -7,14 +7,11 @@ 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 \ + packagegroup-agl-graphical-compositor \ " RDEPENDS:profile-graphical = "${PN}" |