Remove systemd user session and clean up packagegroups and images 99/28999/1 15.91.0 pike/15.91.0 pike_15.91.0
authorScott Murray <scott.murray@konsulko.com>
Mon, 5 Jun 2023 14:08:59 +0000 (10:08 -0400)
committerScott Murray <scott.murray@konsulko.com>
Wed, 7 Jun 2023 17:33:53 +0000 (13:33 -0400)
Remove the use of 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:
- Rework systemd units and recipes of affected applications.
- Rework images to pull in image .bb files instead of .inc files.
- Pull in the new agl-image-compositor as a base image where
  appropriate.
- Update weston-terminal-conf recipe to use new split out
  weston-terminal package.
- Use new agl-crosssdk bbclass where appropriate.
- Pull some local common cross-SDK additions into a new
  agl-ivi-crosssdk.inc include file and use as appropriate.  Note
  that this does have a side effect of likely correcting the contents
  of agl-image-ivi-crosssdk for some recent additions.
- Remove flutter-gallery bbappend that turned it into an app, as we
  are not using it in images, have other examples now, and it seems
  better to not affect the contents of agl-image-flutter.
- Remove unused agl-image-graphical-html5. If a downstream user does
  desire an image with Chromium+WAM without applications, restoring it
  can be considered.
- Remove unused agl-image-graphical-qt5-crosssdk.
- Remove all packagegroup-agl-profile-* packagegroups, as they were
  either empty or not providing value at this point.  Any future plans
  for defining profiles can start from a clean sheet.
- Added new packagegroup-agl-ivi-multimedia-hardware to hold some
  rcar3 specific additions (via override) that were previously being
  appended onto packagegroup-agl-graphical-multimedia even though
  they are machine-specific and that packagegroup is not.  This may
  be a stopgap solution if the agl-ivi-* packagegroups are reworked
  further.
- Replace some :append usage with += to avoid creating problems
  for downstream users.

Bug-AGL: SPEC-4714, SPEC-4813

Change-Id: I544b1495bed1e2e2412a8e46b7d20d7622ec28c9
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
69 files changed:
recipes-config/agl-session/agl-container-guest/agl-session@.service [deleted file]
recipes-config/agl-session/agl-session_agl-container-guest-demo.inc [deleted file]
recipes-config/agl-users/agl-users_%.bbappend [moved from recipes-config/agl-session/agl-session_%.bbappend with 51% similarity]
recipes-config/agl-users/agl-users_agl-container-guest-demo.inc [new file with mode: 0644]
recipes-core/nss/nss-agl-driver-db/nss-agl-driver-db.service
recipes-core/nss/nss-agl-driver-db_git.bb
recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service
recipes-demo/cluster-dashboard/cluster-dashboard_git.bb
recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service
recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb
recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service
recipes-demo/cluster-receiver/cluster-receiver_git.bb
recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service
recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb
recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service
recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb
recipes-demo/flutter-gallery/flutter-gallery_agldemo.inc [deleted file]
recipes-demo/flutter-gallery/flutter-gallery_git.bbappend [deleted file]
recipes-demo/flutter-homescreen/files/flutter-homescreen.service
recipes-demo/flutter-homescreen/flutter-homescreen_git.bb
recipes-demo/homescreen/files/homescreen.service
recipes-demo/homescreen/homescreen_git.bb
recipes-demo/html5-homescreen/files/homescreen.service
recipes-demo/html5-homescreen/html5-homescreen_git.bb
recipes-demo/html5-launcher/html5-launcher_git.bb
recipes-demo/launcher/files/launcher.service
recipes-demo/launcher/launcher_git.bb
recipes-demo/navigation/tbtnavi/tbtnavi.service
recipes-demo/navigation/tbtnavi_git.bb
recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service
recipes-graphics/wayland/weston-terminal-conf.bb
recipes-graphics/wayland/weston-terminal-conf/org.freedesktop.weston.wayland-terminal.desktop [deleted file]
recipes-graphics/wayland/weston-terminal-conf/weston-terminal.desktop [deleted file]
recipes-platform/images/agl-cluster-demo-platform-flutter.bb
recipes-platform/images/agl-cluster-demo-platform.bb
recipes-platform/images/agl-cluster-demo-qtcompositor.bb
recipes-platform/images/agl-image-graphical-html5.bb [deleted file]
recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb [deleted file]
recipes-platform/images/agl-image-ivi-crosssdk.bb
recipes-platform/images/agl-image-ivi.bb
recipes-platform/images/agl-ivi-crosssdk.inc [new file with mode: 0644]
recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb
recipes-platform/images/agl-ivi-demo-platform-flutter.bb
recipes-platform/images/agl-ivi-demo-platform-html5.bb
recipes-platform/images/agl-ivi-demo-platform.bb
recipes-platform/images/agl-kvm-demo-platform.bb
recipes-platform/images/agl-telematics-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb
recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb
recipes-platform/packagegroups/packagegroup-agl-demo.bb
recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bbappend [deleted file]
recipes-platform/packagegroups/packagegroup-agl-graphical-weston_agldemo.inc [deleted file]
recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb
recipes-platform/packagegroups/packagegroup-agl-image-ivi.bbappend [deleted file]
recipes-platform/packagegroups/packagegroup-agl-ivi-identity.bb
recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia-hardware.bb [new file with mode: 0644]
recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb
recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb [deleted file]
recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb
recipes-platform/packagegroups/packagegroup-hmi-framework.bb [deleted file]
recipes-wam/wam/files/WebAppMgr.service
recipes-wam/wam/wam_git.bb

diff --git a/recipes-config/agl-session/agl-container-guest/agl-session@.service b/recipes-config/agl-session/agl-container-guest/agl-session@.service
deleted file mode 100644 (file)
index 213d88c..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-[Unit]
-Description=AGL user session
-After=systemd-user-sessions.service
-Wants=dbus.socket
-After=dbus.socket
-After=session-c1.scope
-Before=multi-user.target
-
-[Service]
-Environment=XDG_SESSION_TYPE=wayland
-ExecStart=/bin/systemctl --wait --user start agl-session.target
-TimeoutStartSec=30
-# This is a template service, instantiate for desired user's name or uid
-User=%i
-PAMName=login
-WorkingDirectory=~
-StandardInput=null
-StandardOutput=journal
-StandardError=journal
-Restart=always
-RestartSec=3s
-
-[Install]
-WantedBy=multi-user.target
diff --git a/recipes-config/agl-session/agl-session_agl-container-guest-demo.inc b/recipes-config/agl-session/agl-session_agl-container-guest-demo.inc
deleted file mode 100644 (file)
index 94a0b90..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/agl-container-guest:"
-
-# Allow input device for agl-driver
-GROUPADD_PARAM:${PN} = "\
-       --system display ; \
-       --system video ; \
-       --system input ; \
-       --system pipewire ; \
-       -g 1001 agl-driver ; \
-       -g 1003 applaunchd ; \
-"
-USERADD_PARAM:${PN} = "\
-  -g 1001 -u 1001 -G video,input,display,pipewire,applaunchd -o -d /home/agl-driver -m -K PASS_MAX_DAYS=-1 agl-driver ; \
-  -g 1003 -u 1003 -o -d / -K PASS_MAX_DAYS=-1 applaunchd ; \
-"
@@ -1 +1 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agl-container-guest-demo', 'agl-session_agl-container-guest-demo.inc', '', d)}
+require ${@bb.utils.contains('AGL_FEATURES', 'agl-container-guest-demo', 'agl-users_agl-container-guest-demo.inc', '', d)}
diff --git a/recipes-config/agl-users/agl-users_agl-container-guest-demo.inc b/recipes-config/agl-users/agl-users_agl-container-guest-demo.inc
new file mode 100644 (file)
index 0000000..cb21d07
--- /dev/null
@@ -0,0 +1,10 @@
+# Allow input device for agl-driver
+GROUPADD_PARAM:${PN} = "\
+       --system video ; \
+       --system input ; \
+       --system pipewire ; \
+       -g 1001 agl-driver ; \
+"
+USERADD_PARAM:${PN} = "\
+  -g 1001 -u 1001 -G video,input,pipewire -o -d /home/agl-driver -m -K PASS_MAX_DAYS=-1 agl-driver ; \
+"
index 48eca39..40818cf 100644 (file)
@@ -1,7 +1,7 @@
 [Unit]
 Description=Deploy Kuksa certificates to /home/agl-driver/.pki/
 After=local-fs.target
-Before=agl-session@agl-driver.service
+Before=multi-user.target
 ConditionPathExists=!/home/agl-driver/.pki
 
 [Service]
index 2426c40..b2fb403 100644 (file)
@@ -29,4 +29,4 @@ do_install() {
 
 FILES:${PN} += "${systemd_system_unitdir} ${sbindir}"
 
-RDEPENDS:${PN} += "nss agl-session kuksa-val-certificates-client bash"
+RDEPENDS:${PN} += "nss agl-users kuksa-val-certificates-client bash"
index d96c738..de34e0a 100644 (file)
@@ -6,9 +6,11 @@ After=agl-compositor.service
 
 # Since we are part of the agl session, make sure we are started before
 # it is complete.
-Before=agl-session.target
+Before=graphical.target
 
 [Service]
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/cluster-dashboard
 
 Restart=always
@@ -17,4 +19,4 @@ StandardOutput=journal
 StandardError=journal
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index dd46338..1404f67 100644 (file)
@@ -26,14 +26,14 @@ SRCREV  = "137144c447d8adb618f5acbcbafd65f50264d6eb"
 
 S  = "${WORKDIR}/git"
 
-inherit pkgconfig cmake_qt5
+inherit pkgconfig cmake_qt5 systemd
 
 CLUSTER_DEMO_VISS_HOSTNAME ??= "192.168.10.2"
 
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
 do_install:append() {
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    install -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
-    ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 
     # VIS authorization token file for KUKSA.val should ideally not
     # be readable by other users, but currently that's not doable
@@ -45,8 +45,6 @@ do_install:append() {
     install -m 0644 ${WORKDIR}/cluster-dashboard.token ${D}${sysconfdir}/xdg/AGL/cluster-dashboard/
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     qtwayland \
     qtbase-qmlplugins \
index 166a504..161e665 100644 (file)
@@ -27,8 +27,6 @@ do_install:append() {
     install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     qtquickcontrols \
     qtquickcontrols-qmlplugins \
index e544e25..bf48afb 100644 (file)
@@ -6,9 +6,11 @@ After=agl-compositor.service
 
 # Since we are part of the agl session, make sure we are started before
 # it is complete.
-Before=agl-session.target
+Before=graphical.target
 
 [Service]
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/xdg-cluster-receiver
 
 Restart=always
@@ -17,4 +19,4 @@ StandardOutput=journal
 StandardError=journal
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 59d19da..c9842ff 100644 (file)
@@ -21,16 +21,14 @@ SRCREV  = "ce90cf8dd26d596d65e222a94e64aa51e1c33298"
 
 S  = "${WORKDIR}/git"
 
-inherit cmake pkgconfig
+inherit cmake pkgconfig systemd
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
 
 do_install:append() {
-    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     gstreamer1.0-plugins-base \
     gstreamer1.0-plugins-good \
index bc328f9..e3e1b95 100644 (file)
@@ -6,9 +6,11 @@ After=agl-compositor.service
 
 # Since we are part of the agl session, make sure we are started before
 # it is complete.
-Before=agl-session.target
+Before=graphical.target
 
 [Service]
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/qt-cluster-receiver
 
 Restart=always
@@ -17,4 +19,4 @@ StandardOutput=journal
 StandardError=journal
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 8d8908c..d50e9dd 100644 (file)
@@ -23,18 +23,19 @@ SRCREV  = "b5622ce91307589b03ad5d903214b47ff2277e48"
 
 S  = "${WORKDIR}/git"
 
-inherit cmake_qt5 pkgconfig
+inherit cmake_qt5 pkgconfig systemd
 
 do_install:append() {
     # Only install unit, do not enable it by default
-    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     qtwayland \
     gstreamer1.0-plugins-base \
     gstreamer1.0-plugins-good \
     gstreamer1.0-plugins-bad \
 "
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
index b79092e..21082e7 100644 (file)
@@ -3,10 +3,12 @@ Requires=agl-compositor.service
 After=agl-compositor.service
 
 [Service]
+User=agl-driver
 EnvironmentFile=/etc/default/flutter
 EnvironmentFile=-/etc/default/flutter-cluster-dashboard
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter_cluster_dashboard/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --j=/usr/share/flutter/flutter-cluster-dashboard.json
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index b307649..b7d9c4b 100644 (file)
@@ -26,16 +26,16 @@ FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter"
 
 OPENROUTE_API_KEY ??= "YOU_NEED_TO_SET_IT_IN_LOCAL_CONF"
 
-inherit flutter-app update-alternatives
+inherit flutter-app update-alternatives systemd
 
 CLUSTER_DEMO_VISS_HOSTNAME ??= "192.168.10.2"
 
 APP_CONFIG = "flutter_cluster_dashboard_on_bg.json"
 
+SYSTEMD_SERVICE:${PN} = "flutter-cluster-dashboard.service"
+
 do_install:append() {
-    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 
     install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json
 
@@ -50,8 +50,9 @@ do_install:append() {
 
 ALTERNATIVE_LINK_NAME[flutter-cluster-dashboard.yaml] = "${sysconfdir}/xdg/AGL/${BPN}.yaml"
 
-FILES:${PN} += "${datadir} ${systemd_user_unitdir} ${sysconfdir}/default/"
-RDEPENDS:${PN} += "flutter-auto agl-flutter-env"
+FILES:${PN} += "${datadir} ${sysconfdir}/default/"
+
+RDEPENDS:${PN} += "flutter-auto agl-flutter-env liberation-fonts"
 
 PACKAGE_BEFORE_PN += "${PN}-conf ${PN}-conf-demo"
 
diff --git a/recipes-demo/flutter-gallery/flutter-gallery_agldemo.inc b/recipes-demo/flutter-gallery/flutter-gallery_agldemo.inc
deleted file mode 100644 (file)
index 4a7d365..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-inherit agl-app
-
-AGL_APP_TEMPLATE = "agl-app-flutter"
-AGL_APP_ID = "gallery"
-AGL_APP_NAME = "Gallery"
diff --git a/recipes-demo/flutter-gallery/flutter-gallery_git.bbappend b/recipes-demo/flutter-gallery/flutter-gallery_git.bbappend
deleted file mode 100644 (file)
index 5e55224..0000000
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'flutter-gallery_agldemo.inc', '', d)}
index a57fc5c..6a1eabe 100644 (file)
@@ -3,10 +3,12 @@ Requires=agl-compositor.service
 After=agl-compositor.service
 
 [Service]
+User=agl-driver
 EnvironmentFile=/etc/default/flutter
 EnvironmentFile=-/etc/default/flutter-homescreen
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/flutter-auto --b=/usr/share/flutter/flutter_homescreen/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --j=/usr/share/flutter/flutter-homescreen.json --xdg-shell-app-id=homescreen
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 0bd1ae1..62ea1e1 100644 (file)
@@ -20,14 +20,14 @@ FLUTTER_APPLICATION_INSTALL_PREFIX = "/flutter"
 
 FLUTTER_BUILD_ARGS = "bundle -v"
 
-inherit flutter-app
+inherit flutter-app systemd
 
 APP_CONFIG = "${BPN}.json"
 
+SYSTEMD_SERVICE:${PN} = "flutter-homescreen.service"
+
 do_install:append() {
-    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_user_unitdir}/${BPN}.service
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    ln -s ../${BPN}.service ${D}${systemd_user_unitdir}/agl-session.target.wants/${BPN}.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 
     install -D -m 0644 ${WORKDIR}/${APP_CONFIG} ${D}${datadir}/flutter/${BPN}.json
 
@@ -35,5 +35,5 @@ do_install:append() {
     install -m 0644 ${WORKDIR}/homescreen_config.yaml ${D}${sysconfdir}/xdg/AGL/
 }
 
-FILES:${PN} += "${datadir} ${systemd_user_unitdir} ${sysconfdir}/xdg/AGL"
+FILES:${PN} += "${datadir} ${sysconfdir}/xdg/AGL"
 RDEPENDS:${PN} += "flutter-auto agl-flutter-env"
index 7b765c7..d35f52a 100644 (file)
@@ -1,12 +1,15 @@
 [Unit]
 Requires=agl-compositor.service
 After=agl-compositor.service
+Before=graphical.target
 
 [Service]
 Type=simple
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 EnvironmentFile=-/etc/default/homescreen
 ExecStart=/usr/bin/homescreen
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 7fbd55e..e888dfc 100644 (file)
@@ -29,16 +29,16 @@ SRCREV = "c9ae3bc5a102caad6d8040cd268a64295654e162"
 
 S = "${WORKDIR}/git"
 
-inherit meson systemd pkgconfig
+inherit meson pkgconfig systemd
 
 PATH:prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:"
 
 OE_QMAKE_CXXFLAGS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', '' , '-DQT_NO_DEBUG_OUTPUT', d)}"
 
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
 do_install:append() {
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    install -m0644 ${WORKDIR}/homescreen.service ${D}${systemd_user_unitdir}/homescreen.service
-    ln -s ../homescreen.service ${D}${systemd_user_unitdir}/agl-session.target.wants/homescreen.service
+    install -D -m0644 ${WORKDIR}/homescreen.service ${D}${systemd_system_unitdir}/homescreen.service
 
     # Currently using default global client and CA certificates
     # for KUKSA.val SSL, installing app specific ones would go here.
@@ -52,8 +52,6 @@ do_install:append() {
     install -m 0644 ${WORKDIR}/homescreen.token ${D}${sysconfdir}/xdg/AGL/homescreen/
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     libqtappfw \
     applaunchd \
index b142c4e..4cc4424 100644 (file)
@@ -5,9 +5,11 @@ After=WebAppMgr.service dbus.service
 
 [Service]
 Type=simple
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStartPre=sleep 5
 ExecStart=/usr/bin/WebAppMgr --appid=homescreen --app-install-dir=/usr/lib/wam_apps/html5-homescreen/
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 463aa56..c03aee4 100644 (file)
@@ -4,42 +4,42 @@ SECTION     = "apps"
 LICENSE     = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
 
-PV      = "1.0+git${SRCPV}"
-S       = "${WORKDIR}/git"
-B       = "${WORKDIR}/build"
-
 SRC_URI = " \
-  git://gerrit.automotivelinux.org/gerrit/apps/html5-homescreen;protocol=https;branch=master \
-  file://homescreen.service \
+    git://gerrit.automotivelinux.org/gerrit/apps/html5-homescreen;protocol=https;branch=master \
+    file://homescreen.service \
 "
 SRCREV = "e85c42ae77592afdb72df8e8d4f27e0e7ad17bb9"
 
-inherit pythonnative
+PV      = "1.0+git${SRCPV}"
+S       = "${WORKDIR}/git"
+B       = "${WORKDIR}/build"
+
+inherit pythonnative systemd
 
 DEPENDS = "nodejs-native"
 
 do_compile[network] = "1"
 do_compile() {
-  cd ${S}
-  rm -rf package node_modules package-lock.json
-  npm install
-  npm run build
+    cd ${S}
+    rm -rf package node_modules package-lock.json
+    npm install
+    npm run build
 }
 
 WAM_APPLICATIONS_DIR = "${libdir}/wam_apps"
 
+SYSTEMD_SERVICE:${PN} = "homescreen.service"
+
 do_install() {
-  install -d ${D}${WAM_APPLICATIONS_DIR}/${PN}
-  cp -R --no-dereference --preserve=mode,links ${S}/dist/* ${D}${WAM_APPLICATIONS_DIR}/${PN}
-  install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-  install -m 0644 ${WORKDIR}/homescreen.service ${D}${systemd_user_unitdir}/homescreen.service
-  ln -s ../homescreen.service ${D}${systemd_user_unitdir}/agl-session.target.wants/homescreen.service
+    install -d ${D}${WAM_APPLICATIONS_DIR}/${PN}
+    cp -R --no-dereference --preserve=mode,links ${S}/dist/* ${D}${WAM_APPLICATIONS_DIR}/${PN}
+    install -D -m 0644 ${WORKDIR}/homescreen.service ${D}${systemd_system_unitdir}/homescreen.service
 }
 
 FILES:${PN} = " \
-  ${WAM_APPLICATIONS_DIR}/${PN} \
-  ${systemd_user_unitdir} \
+    ${WAM_APPLICATIONS_DIR}/${PN} \
+    ${systemd_system_unitdir} \
 "
 
-RCONFLICTS:${PN} = "homescreen"
+RCONFLICTS:${PN} = "homescreen flutter-homescreen"
 RDEPENDS:${PN} = "applaunchd html5-background"
index 71319fb..f4f722f 100644 (file)
@@ -38,5 +38,5 @@ do_install() {
 
 FILES:${PN} = "${WAM_APPLICATIONS_DIR}/${PN}"
 
-RCONFLICTS:${PN} = "launcher"
+RCONFLICTS:${PN} = "launcher flutter-homescreen"
 RDEPENDS:${PN} = "applaunchd"
index 7b3b172..882d13a 100644 (file)
@@ -4,8 +4,10 @@ After=homescreen.service
 
 [Service]
 Type=simple
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/launcher
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index d9e959b..c46a4a1 100644 (file)
@@ -32,14 +32,12 @@ inherit qmake5 systemd pkgconfig
 
 PATH:prepend = "${STAGING_DIR_NATIVE}${OE_QMAKE_PATH_QT_BINS}:"
 
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
 do_install:append() {
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    install -m0644 ${WORKDIR}/launcher.service ${D}${systemd_user_unitdir}/launcher.service
-    ln -s ../launcher.service ${D}${systemd_user_unitdir}/agl-session.target.wants/launcher.service
+    install -D -m0644 ${WORKDIR}/launcher.service ${D}${systemd_system_unitdir}/launcher.service
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     libqtappfw \
     applaunchd \
index cc04000..fb77843 100644 (file)
@@ -4,8 +4,10 @@ After=agl-compositor.service
 
 [Service]
 Type=simple
+User=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/tbtnavi
 Restart=on-failure
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 9da3682..22a8773 100644 (file)
@@ -33,10 +33,10 @@ S = "${WORKDIR}/git"
 
 inherit qmake5 systemd pkgconfig
 
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
 do_install:append() {
-    install -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    install -m0644 ${WORKDIR}/tbtnavi.service ${D}${systemd_user_unitdir}/tbtnavi.service
-    ln -s ../tbtnavi.service ${D}${systemd_user_unitdir}/agl-session.target.wants/tbtnavi.service
+    install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
 
     # Currently using default global client and CA certificates
     # for KUKSA.val SSL, installing app specific ones would go here.
@@ -50,8 +50,6 @@ do_install:append() {
     install -m 0644 ${WORKDIR}/tbtnavi.token ${D}${sysconfdir}/xdg/AGL/tbtnavi/
 }
 
-FILES:${PN} += " ${systemd_user_unitdir}"
-
 RDEPENDS:${PN} += " \
     qtlocation \
     ondemandnavi-config \
index 95b1fe0..d19c529 100644 (file)
@@ -5,7 +5,8 @@ After=native-shell-client.service
 [Service]
 Type=simple
 ExecStart=/usr/sbin/agl-qemu-runner.sh %i
-Restart=on-failure
+#Restart=on-failure
+Restart=no
 
 [Install]
 WantedBy=multi-user.target
index a34c414..390edc8 100644 (file)
@@ -18,4 +18,4 @@ FILES:${PN} = " \
     ${sysconfdir}/systemd/system/agl-app@${AGL_APP_ID}.service.d \
 "
 
-RDEPENDS:${PN} = "weston"
+RDEPENDS:${PN} = "weston-terminal"
diff --git a/recipes-graphics/wayland/weston-terminal-conf/org.freedesktop.weston.wayland-terminal.desktop b/recipes-graphics/wayland/weston-terminal-conf/org.freedesktop.weston.wayland-terminal.desktop
deleted file mode 100644 (file)
index 6c46287..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Weston Terminal
-Comment=Terminal Emulator
-GenericName=Terminal Emulator
-Exec=weston-terminal
-Icon=utilities-terminal
-Terminal=false
-Type=Application
-Categories=System;TerminalEmulator;
-StartupNotify=true
diff --git a/recipes-graphics/wayland/weston-terminal-conf/weston-terminal.desktop b/recipes-graphics/wayland/weston-terminal-conf/weston-terminal.desktop
deleted file mode 100644 (file)
index d1cb2c8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Weston Terminal (systemd)
-Comment=Terminal Emulator
-GenericName=Terminal Emulator
-Exec=weston-terminal
-Icon=utilities-terminal
-Terminal=false
-Type=Application
-Categories=System;TerminalEmulator;
-DBusActivatable=true
-StartupNotify=true
index bf3820a..fc3cc51 100644 (file)
@@ -2,7 +2,7 @@ SUMMARY = "Baseline Flutter Image for Release"
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-weston.inc
+require recipes-platform/images/agl-image-compositor.bb
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
@@ -21,12 +21,9 @@ IMAGE_KUKSA_PACKAGES = " \
 "
 
 # generic
-IMAGE_INSTALL:append = "\
-    agl-compositor \
-    agl-compositor-init \
+IMAGE_INSTALL += "\
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
     \
-    packagegroup-agl-profile-graphical \
     packagegroup-agl-networking \
     cluster-receiver \
     \
@@ -35,7 +32,7 @@ IMAGE_INSTALL:append = "\
     "
 
 # Flutter
-IMAGE_INSTALL:append = "\
+IMAGE_INSTALL += "\
     flutter-cluster-dashboard \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "flutter-cluster-dashboard-conf-demo", "flutter-cluster-dashboard-conf", d)} \
     cluster-demo-config-flutter \
index 8a3b9a7..f0b04a6 100644 (file)
@@ -2,7 +2,7 @@ DESCRIPTION = "AGL Cluster Demo Platform image currently contains a simple clust
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-boot.inc
+require recipes-platform/images/agl-image-compositor.bb
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
@@ -11,7 +11,7 @@ inherit features_check
 REQUIRED_DISTRO_FEATURES = "wayland"
 
 # add packages for cluster demo platform (include demo apps) here
-IMAGE_INSTALL:append = " \
+IMAGE_INSTALL += " \
     packagegroup-agl-cluster-demo-platform \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "cluster-demo-config", "", d)} \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "weston-ini-conf-landscape-inverted", "weston-ini-conf-landscape", d)} \
index a9da976..69dee2d 100644 (file)
@@ -1,23 +1,11 @@
 DESCRIPTION = "AGL Cluster Demo Qtwayland Compositor image currently contains a \
-simple cluster interface and some AGL service."
+simple cluster interface."
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-boot.inc
+require recipes-platform/images/agl-image-weston.bb
 
 IMAGE_FEATURES += "splash package-management ssh-server-dropbear"
 
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-# add packages for cluster demo qtcompositor
-IMAGE_INSTALL:append = " \
-    packagegroup-agl-cluster-demo-qtcompositor \
-"
-
-# NOTE: This should be revisited after upgrading to hardknott or later,
-#       as it may no longer be required.  However, since Wayland is not
-#       being used, the new "weston" image feature may not be a viable
-#       option.
-SYSTEMD_DEFAULT_TARGET = "graphical.target"
+# Add packages for qtcompositor demo
+IMAGE_INSTALL += "cluster-gauges-qtcompositor"
diff --git a/recipes-platform/images/agl-image-graphical-html5.bb b/recipes-platform/images/agl-image-graphical-html5.bb
deleted file mode 100644 (file)
index c25a927..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "An image containing all packages required to run web applications"
-
-require recipes-platform/images/agl-image-minimal.inc
-
-IMAGE_FEATURES += "splash"
-
-IMAGE_FEATURES += "${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'ssh-server-dropbear' , '', d)}"
-
-inherit features_check
-
-REQUIRED_DISTRO_FEATURES = "wayland"
-
-
-LICENSE = "MIT"
-
-IMAGE_INSTALL:append = "\
-    packagegroup-agl-profile-graphical-html5 \
-    "
-
diff --git a/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb b/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb
deleted file mode 100755 (executable)
index 596ac80..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Cross SDK of Full AGL Distribution for IVI 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-graphical-qt5.bb
-require recipes-platform/images/agl-image-weston.inc
-
-
-LICENSE = "MIT"
-
-require recipes-platform/images/agl-image-minimal-crosssdk.inc
-
-# 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 "
-
-# Add qtwaylandscanner to the SDK
-TOOLCHAIN_HOST_TASK:append = " nativesdk-qtwayland-tools "
-
-
-inherit populate_sdk populate_sdk_qt5
-
-# 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
index 2f722b2..be00883 100644 (file)
@@ -1,20 +1,11 @@
-require recipes-platform/images/agl-image-minimal-crosssdk.inc
+require agl-image-ivi.bb
 
-require recipes-platform/images/agl-image-minimal.inc
+SUMMARY = "Cross SDK of minimal AGL Distribution for IVI profile"
 
-IMAGE_INSTALL:append = "\
-    packagegroup-agl-image-ivi \
-    packagegroup-agl-ivi-services \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'packagegroup-pipewire', '', d)} \
-    can-utils \
-    iproute2 \
-    "
+DESCRIPTION = "SDK image for minimal AGL Distribution for IVI profile. \
+It includes the full toolchain, plus development headers and libraries \
+to form a standalone cross SDK."
 
-IMAGE_FEATURES += "splash package-management ssh-server-openssh"
+inherit agl-crosssdk
 
-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
+require agl-ivi-crosssdk.inc
index b5cf0a5..4176651 100644 (file)
@@ -4,22 +4,16 @@ DESCRIPTION = "Basic image for baseline of AGL Distribution for IVI profile."
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-weston.inc
+require recipes-platform/images/agl-image-compositor.bb
 
-IMAGE_INSTALL:append = "\
+IMAGE_INSTALL += " \
     packagegroup-agl-image-ivi \
     packagegroup-agl-ivi-services \
     ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-agl-ivi-services-devel' , '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'packagegroup-pipewire', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'wireplumber-config-agl wireplumber-policy-config-agl', '', d)} \
     can-utils \
     iproute2 \
     "
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
-# NOTE: In hardknott or later this can be replaced by adding "weston"
-#       to IMAGE_FEATURES.
-SYSTEMD_DEFAULT_TARGET = "graphical.target"
-
 
diff --git a/recipes-platform/images/agl-ivi-crosssdk.inc b/recipes-platform/images/agl-ivi-crosssdk.inc
new file mode 100644 (file)
index 0000000..551c034
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# Common IVI SDK configuration
+#
+# Only host tool additions should done here
+#
+
+# 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 += "nativesdk-wayland nativesdk-wayland-dev"
+
+TOOLCHAIN_HOST_TASK += "nativesdk-perl-modules"
+
+# add grpc for building natively for grpc_cpp_plugin
+TOOLCHAIN_HOST_TASK += "nativesdk-grpc nativesdk-grpc-dev"
+
+# Add gcc-sanitizers to support building applications using the SDK with
+# AddressSanitizer support to detect use-after-frees along with other
+# memory issue.
+TOOLCHAIN_TARGET_TASK += "gcc-sanitizers"
index 3e3d478..c9ed07a 100644 (file)
@@ -1,50 +1,16 @@
 require agl-ivi-demo-platform.bb
 
-SUMMARY = "Cross SDK of Full AGL Distribution for IVI profile"
+SUMMARY = "Cross SDK of demo AGL Distribution for IVI 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."
+It includes the full toolchain, plus development headers and libraries \
+for everything in the demo platform to form a standalone cross SDK."
 
-require recipes-platform/images/agl-image-minimal-crosssdk.inc
+inherit agl-crosssdk
 
-# 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"
+require agl-ivi-crosssdk.inc
 
-TOOLCHAIN_HOST_TASK:append = " nativesdk-perl-modules "
+inherit populate_sdk_qt5
 
 # Add qtwaylandscanner to the SDK
-TOOLCHAIN_HOST_TASK:append = " nativesdk-qtwayland-tools "
-
-# add grpc for building natively for grpc_cpp_plugin
-TOOLCHAIN_HOST_TASK:append = " nativesdk-grpc nativesdk-grpc-dev "
-# 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 populate_sdk populate_sdk_qt5
-
-# 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
-
-# Add gcc-sanitizers to support building applications using the SDK with
-# AddressSanitizer support to detect use-after-frees along with other
-# memory issue.
-TOOLCHAIN_TARGET_TASK += "gcc-sanitizers"
-
-
-TOOLCHAIN_HOST_TASK += " \
-    nativesdk-lua \
-"
-
-# Required dependencies for app and test builds
-TOOLCHAIN_TARGET_TASK += " \
-    lua-dev \
-    lua-staticdev \
-"
+TOOLCHAIN_HOST_TASK += "nativesdk-qtwayland-tools"
index f385c1e..85f892f 100644 (file)
@@ -6,7 +6,7 @@ require agl-demo-features.inc
 require agl-demo-container-guest-integration.inc
 
 # add packages for demo platform (include demo apps) here
-IMAGE_INSTALL:append = " \
+IMAGE_INSTALL += " \
     packagegroup-agl-demo-platform-flutter \
     weston-ini-conf-flutter \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "weston-terminal-conf", d)} \
index dc82ce4..85d2ca0 100644 (file)
@@ -6,6 +6,6 @@ DESCRIPTION = "Contains the web runtime and sample web apps"
 require agl-demo-container-guest-integration.inc
 
 # add packages for demo platform (include demo apps) here
-IMAGE_INSTALL:append = " \
+IMAGE_INSTALL += " \
     packagegroup-agl-demo-platform-html5 \
 "
index f5fcad9..a07fa2f 100644 (file)
@@ -1,13 +1,12 @@
 require agl-image-ivi.bb
 
-DESCRIPTION = "AGL Demo Platform image currently contains a simple HMI and \
-demos."
+DESCRIPTION = "AGL Demo Platform image currently contains a simple HMI and demos."
 
 require agl-demo-features.inc
 require agl-demo-container-guest-integration.inc
 
 # add packages for demo platform (include demo apps) here
-IMAGE_INSTALL:append = " \
+IMAGE_INSTALL += " \
     packagegroup-agl-demo-platform \
     ${@bb.utils.contains("AGL_FEATURES", "agl-demo-preload", "", "weston-terminal-conf", d)} \
 "
index 378ea83..4337ec0 100644 (file)
@@ -2,13 +2,12 @@ DESCRIPTION = "AGL KVM+QEMU Demo Platform image."
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-weston.inc
+require recipes-platform/images/agl-image-compositor.bb
 
 IMAGE_FEATURES += "splash package-management ssh-server-openssh"
 
 # Add packages for KVM+QEMU demo platform here
-IMAGE_INSTALL:append = " \
-    packagegroup-agl-image-minimal \
+IMAGE_INSTALL += " \
     packagegroup-agl-core-connectivity \
     kernel-image \
     agl-compositor \
index b8a9961..7a113b6 100644 (file)
@@ -2,12 +2,12 @@ DESCRIPTION = "AGL Telematics Demo Platform image."
 
 LICENSE = "MIT"
 
-require recipes-platform/images/agl-image-boot.inc
+require recipes-platform/images/agl-image-minimal.bb
 
 inherit features_check
 
 REQUIRED_DISTRO_FEATURES = "3g"
 
-IMAGE_INSTALL:append = " \
+IMAGE_INSTALL += " \
     packagegroup-agl-telematics-demo-platform \
 "
index c414adf..4cd03b6 100644 (file)
@@ -12,7 +12,6 @@ PACKAGES = "\
 ALLOW_EMPTY:${PN} = "1"
 
 RDEPENDS:${PN} += "\
-    packagegroup-agl-profile-cluster-qt5 \
     packagegroup-agl-ttf-fonts \
     packagegroup-agl-source-han-sans-ttf-fonts \
     packagegroup-agl-networking \
index 71c2d17..6ae16d4 100644 (file)
@@ -12,7 +12,6 @@ PACKAGES = "\
 
 RDEPENDS:${PN} += "\
     packagegroup-agl-image-ivi \
-    packagegroup-agl-profile-graphical-qt5 \
     packagegroup-agl-demo \
     "
 
index 1f1984d..7ea23e7 100644 (file)
@@ -12,7 +12,6 @@ PACKAGES = "\
 
 RDEPENDS:${PN} += "\
     packagegroup-agl-image-ivi \
-    packagegroup-agl-profile-graphical-html5 \
     packagegroup-agl-demo \
     "
 
@@ -32,6 +31,7 @@ AGL_APPS = " \
     "
 
 RDEPENDS:${PN}:append = " \
+    virtual/webruntime \
     weston-ini-conf-landscape-no-activate \
     ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'unzip' , '', d)} \
     qtquickcontrols2-agl \
index c490042..f0e3a22 100644 (file)
@@ -12,8 +12,6 @@ PACKAGES = "\
 
 RDEPENDS:${PN} += "\
     packagegroup-agl-image-ivi \
-    packagegroup-agl-profile-graphical-qt5 \
-    packagegroup-hmi-framework \
     packagegroup-agl-demo \
     "
 
@@ -31,6 +29,7 @@ AGL_APPS = " \
 
 RDEPENDS:${PN}:append = " \
     weston-ini-conf-no-activate \
+    homescreen \
     launcher \
     qtquickcontrols2-agl \
     qtquickcontrols2-agl-style \
index 6b7e523..02926d3 100644 (file)
@@ -38,5 +38,4 @@ RDEPENDS:${PN} += " \
     iproute2 \
     ${DEMO_PLATFORM_CONF} \
     ${TTF_FONTS} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'webruntime', 'virtual/webruntime', '', d)} \
     "
diff --git a/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bbappend b/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bbappend
deleted file mode 100644 (file)
index aa401a7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'packagegroup-agl-graphical-weston_agldemo.inc', '', d)}
diff --git a/recipes-platform/packagegroups/packagegroup-agl-graphical-weston_agldemo.inc b/recipes-platform/packagegroups/packagegroup-agl-graphical-weston_agldemo.inc
deleted file mode 100644 (file)
index 2b91c17..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-RDEPENDS:${PN}:remove = "weston-init"
-
-RDEPENDS:${PN} += " \
-                  agl-compositor-init \
-                  "
index ea165ef..c3d6f57 100644 (file)
@@ -18,6 +18,9 @@ RDEPENDS:${PN} += "\
     packagegroup-agl-ivi-connectivity \
     packagegroup-agl-ivi-graphics \
     packagegroup-agl-ivi-multimedia \
+    packagegroup-agl-ivi-multimedia-hardware \
     packagegroup-agl-ivi-navigation \
+    packagegroup-agl-ivi-identity \
+    packagegroup-agl-ivi-services \
     "
 
diff --git a/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bbappend b/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bbappend
deleted file mode 100644 (file)
index a80d9de..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-RDEPENDS:${PN} += " \
-       packagegroup-agl-ivi-identity \
-       packagegroup-agl-ivi-services \
-"
index c81aa80..3cd1637 100644 (file)
@@ -1,7 +1,11 @@
+SUMMARY = "The middlewares for AGL IVI profile"
+DESCRIPTION = "The set of packages required for identity services"
+LICENSE = "MIT"
+
 inherit packagegroup
 
+ALLOW_EMPTY:${PN} = "1"
+
 RDEPENDS:${PN} += "\
 "
 
-LICENSE = "MIT"
-
diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia-hardware.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia-hardware.bb
new file mode 100644 (file)
index 0000000..e52e8ef
--- /dev/null
@@ -0,0 +1,21 @@
+SUMMARY = "The middlewares for AGL IVI profile"
+DESCRIPTION = "Hardware-specific packages required by Multimedia Subsystem"
+LICENSE = "MIT"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+inherit packagegroup
+
+PACKAGES = "\
+    packagegroup-agl-ivi-multimedia-hardware \
+    "
+
+ALLOW_EMPTY:${PN} = "1"
+
+RDEPENDS:${PN} = ""
+
+RDEPENDS:${PN}:append:rcar-gen3 = "\
+    ${@bb.utils.contains('MACHINE_FEATURES', 'multimedia', 'packagegroup-multimedia-kernel-modules', '', d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'multimedia', 'packagegroup-multimedia-libs', '', d)} \
+    ${@bb.utils.contains('MACHINE_FEATURES', 'multimedia', 'packagegroup-gstreamer1.0-plugins', '', d)} \
+    "
index dc60e9e..8865a9f 100644 (file)
@@ -10,18 +10,16 @@ PACKAGES = "\
 
 ALLOW_EMPTY:${PN} = "1"
 
+PIPEWIRE_PACKAGES = " \
+    packagegroup-pipewire \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'packagegroup-pipewire-tools alsa-utils', '', d)} \
+    wireplumber-config-agl \
+    wireplumber-policy-config-agl \
+    "
+
 RDEPENDS:${PN} += "\
+    ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', '${PIPEWIRE_PACKAGES}', '', d)} \
     gstreamer1.0-plugins-base-meta \
     gstreamer1.0-plugins-good-meta \
     mpd \
     "
-
-# for now: enable here for the AGL IVI demo (image-ivi and demo-platform)
-# tbd: change based on usage in profiles
-PIPEWIRE = "\
-    ${@bb.utils.contains('DISTRO_FEATURES', 'pipewire', 'packagegroup-pipewire', '', d)}\
-    "
-
-RDEPENDS:${PN} += "\
-    ${PIPEWIRE} \
-    "
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb
deleted file mode 100644 (file)
index 1cf2093..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster profile"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-cluster-qt5 \
-    profile-cluster-qt5-wayland \
-    profile-cluster-qt5 \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-image-boot \
-    packagegroup-agl-core-security \
-    packagegroup-agl-graphical-weston \
-"
-
-RDEPENDS:profile-cluster-qt5-wayland = "${PN}"
-RDEPENDS:profile-cluster-qt5 = "profile-cluster-qt5-wayland"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb
deleted file mode 100644 (file)
index 0539ae1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "The middleware for AGL Qt5 based cluster qtcompositor"
-DESCRIPTION = "The set of packages required for AGL Qt5 based Cluster Demo Qtcompositor Distribution"
-LICENSE = "MIT"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-cluster-qtcompositor \
-    profile-cluster-qt5-egl \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-image-boot \
-    packagegroup-agl-core-security \
-    packagegroup-agl-core-connectivity \
-"
-
-QT_LITE = " \
-    qtbase \
-    qtdeclarative \
-    qtwayland \
-    qtgraphicaleffects-qmlplugins \
-    qtsvg-plugins \
-"
-
-RDEPENDS:${PN}:append = " \
-    ${QT_LITE} \
-"
-
-RDEPENDS:profile-cluster-qt5-egl = "${PN}"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb
deleted file mode 100644 (file)
index 8b1099f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The middleware for AGL cluster profile"
-DESCRIPTION = "The set of packages required for AGL Cluster Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-cluster \
-    profile-cluster \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-image-boot \
-    packagegroup-agl-core-security \
-    packagegroup-agl-graphical-weston \
-"
-
-RDEPENDS:profile-cluster = "${PN}"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb
deleted file mode 100644 (file)
index 62c30ea..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "AGL web runtime profile"
-DESCRIPTION = "The full set of packages required for AGL web runtime"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-graphical-html5 \
-    profile-graphical-html5 \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-profile-graphical \
-"
-
-RDEPENDS:${PN} += "\
-    wam \
-    "
-
-RDEPENDS:profile-graphical-html5 = "${PN}"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb
deleted file mode 100644 (file)
index 9f4e7f4..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "The middlewares for AGL IVI profile"
-DESCRIPTION = "The set of packages required for AGL Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-graphical-qt5 \
-    profile-graphical-qt5 \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-profile-graphical \
-"
-
-RDEPENDS:${PN} += "\
-    "
-
-RDEPENDS:profile-graphical-qt5 = "${PN}"
diff --git a/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb b/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb
deleted file mode 100644 (file)
index 4377dbb..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "The middleware for AGL telematics profile"
-DESCRIPTION = "The set of packages required for AGL Telematics Distribution"
-LICENSE = "MIT"
-
-inherit packagegroup
-
-PACKAGES = "\
-    packagegroup-agl-profile-telematics \
-    profile-telematics \
-    "
-
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-image-boot \
-    packagegroup-agl-core-security \
-    ${@bb.utils.contains('VIRTUAL-RUNTIME_net_manager','connman','connman connman-client','',d)} \
-    ${@bb.utils.contains("DISTRO_FEATURES", "3g", "libqmi", "", d)} \
-    can-utils \
-"
-
-RDEPENDS:profile-telematics = "${PN}"
index d598de4..96ad713 100644 (file)
@@ -9,24 +9,10 @@ PACKAGES = "\
     packagegroup-agl-telematics-demo-platform \
     "
 
-ALLOW_EMPTY:${PN} = "1"
-
-RDEPENDS:${PN} += "\
-    packagegroup-agl-profile-telematics \
-    "
-
-AGL_APPS = " \
-    "
-
-AGL_APIS = " \
-    "
-
 RDEPENDS:${PN}:append = " \
     gpsd \
     sw-gpsd-udev-conf \
     usb-can-udev-conf \
     simple-can-simulator \
     ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'ofono-tests gps-utils' , '', d)} \
-    ${AGL_APPS} \
-    ${AGL_APIS} \
 "
diff --git a/recipes-platform/packagegroups/packagegroup-hmi-framework.bb b/recipes-platform/packagegroups/packagegroup-hmi-framework.bb
deleted file mode 100644 (file)
index facd182..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "The software for the AGL hmi framework 2017"
-DESCRIPTION = "A set of packages belong to the hmi framework 2017"
-
-LICENSE = "MIT"
-
-# need to bump manually due to:
-# - nothing provides libqthomescreenwrapper0 needed by packagegroup-hmi-framework-1.0-r0.noarch
-PR = "2"
-
-inherit packagegroup
-
-PROVIDES = "${PACKAGES}"
-PACKAGES = "\
-    packagegroup-hmi-framework \
-    packagegroup-hmi-framework-devel \
-    "
-
-RDEPENDS:${PN} = " \
-  homescreen \
-  "
index 0dfe971..ca9a478 100644 (file)
@@ -14,7 +14,7 @@
 Description="WebAppMgr is responsible for running web apps and manage their lifecycle"
 After=agl-compositor.service
 Requires=agl-compositor.service
-Before=agl-session.target
+Before=graphical.target
 BindTo=agl-compositor.service
 
 [Service]
@@ -22,10 +22,11 @@ Type=simple
 UMask=0077
 OOMScoreAdjust=-1000
 EnvironmentFile=-/etc/default/WebAppMgr.env
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
 ExecStart=/usr/bin/WebAppMgr --use-gl=egl --enable-features=UseOzonePlatform --ozone-platform=wayland --no-sandbox --use-viz-fmp-with-timeout=0 --in-process-gpu --remote-debugging-port=9998 --user-data-dir="/home/%u/wamdata" --webos-wam --agl-shell-appid=homescreen --disable-gpu-vsync --ignore-gpu-blocklist
 ExecStop=pkill -U %U WebAppMgr
 Restart=on-failure
 RestartSec=50
 
 [Install]
-WantedBy=agl-session.target
+WantedBy=graphical.target
index 4b640d5..0f2087c 100644 (file)
@@ -3,51 +3,43 @@ AUTHOR = "Jani Hautakangas <jani.hautakangas@lge.com>"
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
-inherit cmake pkgconfig
-
 DEPENDS = "glib-2.0 jsoncpp boost chromium protobuf protobuf-native grpc grpc-native"
 
+SRC_URI = "\
+    git://github.com/igalia/${BPN}.git;branch=@58.agl;protocol=https \
+    file://WebAppMgr.service \
+    file://WebAppMgr.env \
+"
+SRCREV = "4fbd6e648913bcf0fba63e4460eb44242c11f71b"
+
+PV = "ose58.agl"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig systemd
+
 EXTRA_OECMAKE = "\
     -DCMAKE_BUILD_TYPE=Release \
     -DCMAKE_INSTALL_PREFIX=${prefix} \
     -DPLATFORM_NAME=${@'${DISTRO}'.upper().replace('-', '_')} \
     -DCHROMIUM_SRC_DIR=${STAGING_INCDIR}/chromium"
 
-PR="r0"
-
-PROVIDES += "virtual/webruntime"
-RPROVIDES:${PN} += "virtual/webruntime"
-
-# Disable some of securit_flags
+# Disable some of security flags
 # Disable D_FORTIFY_SOURCE=2 and -fstack-protector-strong
 # Refer conf/distro/include/security_flags.inc in meta-webos/conf/distro/include/webos.inc
 lcl_maybe_fortify = ""
 SECURITY_STACK_PROTECTOR = ""
 
-SRC_URI = "\
-    git://github.com/igalia/${BPN}.git;branch=@58.agl;protocol=https \
-    file://WebAppMgr.service \
-    file://WebAppMgr.env \
-"
-S = "${WORKDIR}/git"
-SRCREV = "4fbd6e648913bcf0fba63e4460eb44242c11f71b"
-
-PV = "ose58.agl"
+SYSTEMD_SERVICE:${PN} = "WebAppMgr.service"
 
 do_install:append() {
     install -v -d ${D}${sysconfdir}/wam
     install -v -m 644 ${S}/files/launch/security_policy.conf ${D}${sysconfdir}/wam/security_policy.conf
-    install -v -d ${D}${systemd_user_unitdir}
-    install -v -m 644 ${WORKDIR}/WebAppMgr.service ${D}${systemd_user_unitdir}/WebAppMgr.service
-    install -v -d ${D}${sysconfdir}/default/
-    install -v -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env
+    install -v -D -m 644 ${WORKDIR}/WebAppMgr.service ${D}${systemd_system_unitdir}/WebAppMgr.service
+    install -v -D -m 644 ${WORKDIR}/WebAppMgr.env ${D}${sysconfdir}/default/WebAppMgr.env
     ln -snf WebAppMgr ${D}${bindir}/web-runtime
-    install -v -d ${D}${systemd_user_unitdir}/agl-session.target.wants
-    ln -sf ../WebAppMgr.service ${D}${systemd_user_unitdir}/agl-session.target.wants/
 }
 
-FILES:${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so ${systemd_user_unitdir}"
-
 CXXFLAGS:append:agl-devel = " -DAGL_DEVEL"
 
 do_install:append:agl-devel() {
@@ -56,3 +48,9 @@ do_install:append:agl-devel() {
     touch ${D}${localstatedir}/agl-devel/preferences/debug_system_apps
     touch ${D}${localstatedir}/agl-devel/preferences/devmode_enabled
 }
+
+FILES:${PN} += "${sysconfdir}/init ${sysconfdir}/wam ${libdir}/webappmanager/plugins/*.so"
+
+PROVIDES += "virtual/webruntime"
+RPROVIDES:${PN} += "virtual/webruntime"
+