diff options
69 files changed, 224 insertions, 531 deletions
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 index 213d88c63..000000000 --- a/recipes-config/agl-session/agl-container-guest/agl-session@.service +++ /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 index 94a0b9003..000000000 --- a/recipes-config/agl-session/agl-session_agl-container-guest-demo.inc +++ /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 ; \ -" diff --git a/recipes-config/agl-session/agl-session_%.bbappend b/recipes-config/agl-users/agl-users_%.bbappend index 118b81761..7ed894f04 100644 --- a/recipes-config/agl-session/agl-session_%.bbappend +++ b/recipes-config/agl-users/agl-users_%.bbappend @@ -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 index 000000000..cb21d079b --- /dev/null +++ b/recipes-config/agl-users/agl-users_agl-container-guest-demo.inc @@ -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 ; \ +" diff --git a/recipes-core/nss/nss-agl-driver-db/nss-agl-driver-db.service b/recipes-core/nss/nss-agl-driver-db/nss-agl-driver-db.service index 48eca3921..40818cf2b 100644 --- a/recipes-core/nss/nss-agl-driver-db/nss-agl-driver-db.service +++ b/recipes-core/nss/nss-agl-driver-db/nss-agl-driver-db.service @@ -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] diff --git a/recipes-core/nss/nss-agl-driver-db_git.bb b/recipes-core/nss/nss-agl-driver-db_git.bb index 2426c4090..b2fb40340 100644 --- a/recipes-core/nss/nss-agl-driver-db_git.bb +++ b/recipes-core/nss/nss-agl-driver-db_git.bb @@ -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" diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service index d96c738bb..de34e0a58 100644 --- a/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service +++ b/recipes-demo/cluster-dashboard/cluster-dashboard/cluster-dashboard.service @@ -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 diff --git a/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb b/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb index dd4633822..1404f6715 100644 --- a/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb +++ b/recipes-demo/cluster-dashboard/cluster-dashboard_git.bb @@ -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 \ diff --git a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service index cedad0e8a..083a1e1f1 100644 --- a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service +++ b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor.service @@ -2,7 +2,8 @@ Description=cluster-gauges-qtcompositor [Service] -Environment=XDG_RUNTIME_DIR=/run/user/0 +User=agl-driver +Environment=XDG_RUNTIME_DIR=/run/user/1001 ExecStart=/usr/bin/cluster-gauges Restart=always diff --git a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb index 166a504f3..161e66528 100644 --- a/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb +++ b/recipes-demo/cluster-gauges-qtcompositor/cluster-gauges-qtcompositor_git.bb @@ -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 \ diff --git a/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service b/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service index e544e25fc..bf48afb28 100644 --- a/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service +++ b/recipes-demo/cluster-receiver/cluster-receiver/cluster-receiver.service @@ -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 diff --git a/recipes-demo/cluster-receiver/cluster-receiver_git.bb b/recipes-demo/cluster-receiver/cluster-receiver_git.bb index 59d19da1e..c9842ff35 100644 --- a/recipes-demo/cluster-receiver/cluster-receiver_git.bb +++ b/recipes-demo/cluster-receiver/cluster-receiver_git.bb @@ -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 \ diff --git a/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service b/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service index bc328f9e5..e3e1b9520 100644 --- a/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service +++ b/recipes-demo/cluster-receiver/qt-cluster-receiver/qt-cluster-receiver.service @@ -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 diff --git a/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb b/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb index 8d8908c24..d50e9dd12 100644 --- a/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb +++ b/recipes-demo/cluster-receiver/qt-cluster-receiver_git.bb @@ -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" diff --git a/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service b/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service index b79092e28..21082e7eb 100644 --- a/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service +++ b/recipes-demo/flutter-cluster-dashboard/files/flutter-cluster-dashboard.service @@ -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 diff --git a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb index b3076494d..b7d9c4b61 100644 --- a/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb +++ b/recipes-demo/flutter-cluster-dashboard/flutter-cluster-dashboard_git.bb @@ -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 index 4a7d3652a..000000000 --- a/recipes-demo/flutter-gallery/flutter-gallery_agldemo.inc +++ /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 index 5e55224e2..000000000 --- a/recipes-demo/flutter-gallery/flutter-gallery_git.bbappend +++ /dev/null @@ -1 +0,0 @@ -require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'flutter-gallery_agldemo.inc', '', d)} diff --git a/recipes-demo/flutter-homescreen/files/flutter-homescreen.service b/recipes-demo/flutter-homescreen/files/flutter-homescreen.service index a57fc5cc5..6a1eabeab 100644 --- a/recipes-demo/flutter-homescreen/files/flutter-homescreen.service +++ b/recipes-demo/flutter-homescreen/files/flutter-homescreen.service @@ -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 diff --git a/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb b/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb index 0bd1ae19b..62ea1e176 100644 --- a/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb +++ b/recipes-demo/flutter-homescreen/flutter-homescreen_git.bb @@ -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" diff --git a/recipes-demo/homescreen/files/homescreen.service b/recipes-demo/homescreen/files/homescreen.service index 7b765c7b8..d35f52ad6 100644 --- a/recipes-demo/homescreen/files/homescreen.service +++ b/recipes-demo/homescreen/files/homescreen.service @@ -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 diff --git a/recipes-demo/homescreen/homescreen_git.bb b/recipes-demo/homescreen/homescreen_git.bb index 7fbd55e02..e888dfca8 100644 --- a/recipes-demo/homescreen/homescreen_git.bb +++ b/recipes-demo/homescreen/homescreen_git.bb @@ -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 \ diff --git a/recipes-demo/html5-homescreen/files/homescreen.service b/recipes-demo/html5-homescreen/files/homescreen.service index b142c4efe..4cc44242e 100644 --- a/recipes-demo/html5-homescreen/files/homescreen.service +++ b/recipes-demo/html5-homescreen/files/homescreen.service @@ -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 diff --git a/recipes-demo/html5-homescreen/html5-homescreen_git.bb b/recipes-demo/html5-homescreen/html5-homescreen_git.bb index 463aa56d0..c03aee496 100644 --- a/recipes-demo/html5-homescreen/html5-homescreen_git.bb +++ b/recipes-demo/html5-homescreen/html5-homescreen_git.bb @@ -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" diff --git a/recipes-demo/html5-launcher/html5-launcher_git.bb b/recipes-demo/html5-launcher/html5-launcher_git.bb index 71319fb6c..f4f722fb7 100644 --- a/recipes-demo/html5-launcher/html5-launcher_git.bb +++ b/recipes-demo/html5-launcher/html5-launcher_git.bb @@ -38,5 +38,5 @@ do_install() { FILES:${PN} = "${WAM_APPLICATIONS_DIR}/${PN}" -RCONFLICTS:${PN} = "launcher" +RCONFLICTS:${PN} = "launcher flutter-homescreen" RDEPENDS:${PN} = "applaunchd" diff --git a/recipes-demo/launcher/files/launcher.service b/recipes-demo/launcher/files/launcher.service index 7b3b172dd..882d13a1f 100644 --- a/recipes-demo/launcher/files/launcher.service +++ b/recipes-demo/launcher/files/launcher.service @@ -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 diff --git a/recipes-demo/launcher/launcher_git.bb b/recipes-demo/launcher/launcher_git.bb index d9e959b54..c46a4a182 100644 --- a/recipes-demo/launcher/launcher_git.bb +++ b/recipes-demo/launcher/launcher_git.bb @@ -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 \ diff --git a/recipes-demo/navigation/tbtnavi/tbtnavi.service b/recipes-demo/navigation/tbtnavi/tbtnavi.service index cc040009c..fb77843c0 100644 --- a/recipes-demo/navigation/tbtnavi/tbtnavi.service +++ b/recipes-demo/navigation/tbtnavi/tbtnavi.service @@ -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 diff --git a/recipes-demo/navigation/tbtnavi_git.bb b/recipes-demo/navigation/tbtnavi_git.bb index 9da368270..22a87734c 100644 --- a/recipes-demo/navigation/tbtnavi_git.bb +++ b/recipes-demo/navigation/tbtnavi_git.bb @@ -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 \ diff --git a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service index 95b1fe086..d19c529f0 100644 --- a/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service +++ b/recipes-extended/agl-qemu-runner/files/agl-qemu-runner@.service @@ -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 diff --git a/recipes-graphics/wayland/weston-terminal-conf.bb b/recipes-graphics/wayland/weston-terminal-conf.bb index a34c41485..390edc8a8 100644 --- a/recipes-graphics/wayland/weston-terminal-conf.bb +++ b/recipes-graphics/wayland/weston-terminal-conf.bb @@ -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 index 6c4628700..000000000 --- a/recipes-graphics/wayland/weston-terminal-conf/org.freedesktop.weston.wayland-terminal.desktop +++ /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 index d1cb2c889..000000000 --- a/recipes-graphics/wayland/weston-terminal-conf/weston-terminal.desktop +++ /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 diff --git a/recipes-platform/images/agl-cluster-demo-platform-flutter.bb b/recipes-platform/images/agl-cluster-demo-platform-flutter.bb index bf3820aa9..fc3cc51fc 100644 --- a/recipes-platform/images/agl-cluster-demo-platform-flutter.bb +++ b/recipes-platform/images/agl-cluster-demo-platform-flutter.bb @@ -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 \ diff --git a/recipes-platform/images/agl-cluster-demo-platform.bb b/recipes-platform/images/agl-cluster-demo-platform.bb index 8a3b9a793..f0b04a6b5 100644 --- a/recipes-platform/images/agl-cluster-demo-platform.bb +++ b/recipes-platform/images/agl-cluster-demo-platform.bb @@ -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)} \ diff --git a/recipes-platform/images/agl-cluster-demo-qtcompositor.bb b/recipes-platform/images/agl-cluster-demo-qtcompositor.bb index a9da97639..69dee2dfc 100644 --- a/recipes-platform/images/agl-cluster-demo-qtcompositor.bb +++ b/recipes-platform/images/agl-cluster-demo-qtcompositor.bb @@ -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 index c25a92750..000000000 --- a/recipes-platform/images/agl-image-graphical-html5.bb +++ /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 index 596ac80eb..000000000 --- a/recipes-platform/images/agl-image-graphical-qt5-crosssdk.bb +++ /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 diff --git a/recipes-platform/images/agl-image-ivi-crosssdk.bb b/recipes-platform/images/agl-image-ivi-crosssdk.bb index 2f722b21c..be008832b 100644 --- a/recipes-platform/images/agl-image-ivi-crosssdk.bb +++ b/recipes-platform/images/agl-image-ivi-crosssdk.bb @@ -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 diff --git a/recipes-platform/images/agl-image-ivi.bb b/recipes-platform/images/agl-image-ivi.bb index b5cf0a545..417665144 100644 --- a/recipes-platform/images/agl-image-ivi.bb +++ b/recipes-platform/images/agl-image-ivi.bb @@ -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 index 000000000..551c03437 --- /dev/null +++ b/recipes-platform/images/agl-ivi-crosssdk.inc @@ -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" diff --git a/recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb b/recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb index 3e3d478d3..c9ed07a0a 100644 --- a/recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb +++ b/recipes-platform/images/agl-ivi-demo-platform-crosssdk.bb @@ -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" diff --git a/recipes-platform/images/agl-ivi-demo-platform-flutter.bb b/recipes-platform/images/agl-ivi-demo-platform-flutter.bb index f385c1e08..85f892fc0 100644 --- a/recipes-platform/images/agl-ivi-demo-platform-flutter.bb +++ b/recipes-platform/images/agl-ivi-demo-platform-flutter.bb @@ -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)} \ diff --git a/recipes-platform/images/agl-ivi-demo-platform-html5.bb b/recipes-platform/images/agl-ivi-demo-platform-html5.bb index dc82ce4e5..85d2ca059 100644 --- a/recipes-platform/images/agl-ivi-demo-platform-html5.bb +++ b/recipes-platform/images/agl-ivi-demo-platform-html5.bb @@ -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 \ " diff --git a/recipes-platform/images/agl-ivi-demo-platform.bb b/recipes-platform/images/agl-ivi-demo-platform.bb index f5fcad912..a07fa2faa 100644 --- a/recipes-platform/images/agl-ivi-demo-platform.bb +++ b/recipes-platform/images/agl-ivi-demo-platform.bb @@ -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)} \ " diff --git a/recipes-platform/images/agl-kvm-demo-platform.bb b/recipes-platform/images/agl-kvm-demo-platform.bb index 378ea8322..4337ec025 100644 --- a/recipes-platform/images/agl-kvm-demo-platform.bb +++ b/recipes-platform/images/agl-kvm-demo-platform.bb @@ -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 \ diff --git a/recipes-platform/images/agl-telematics-demo-platform.bb b/recipes-platform/images/agl-telematics-demo-platform.bb index b8a99617c..7a113b65b 100644 --- a/recipes-platform/images/agl-telematics-demo-platform.bb +++ b/recipes-platform/images/agl-telematics-demo-platform.bb @@ -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 \ " diff --git a/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb index c414adf47..4cd03b66d 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-cluster-demo-platform.bb @@ -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 \ diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb index 71c2d17cf..6ae16d423 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-flutter.bb @@ -12,7 +12,6 @@ PACKAGES = "\ RDEPENDS:${PN} += "\ packagegroup-agl-image-ivi \ - packagegroup-agl-profile-graphical-qt5 \ packagegroup-agl-demo \ " diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb index 1f1984d84..7ea23e795 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform-html5.bb @@ -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 \ diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb index c49004251..f0e3a22e7 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-demo-platform.bb @@ -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 \ diff --git a/recipes-platform/packagegroups/packagegroup-agl-demo.bb b/recipes-platform/packagegroups/packagegroup-agl-demo.bb index 6b7e52394..02926d34e 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-demo.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-demo.bb @@ -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 index aa401a71e..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bbappend +++ /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 index 2b91c177d..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-graphical-weston_agldemo.inc +++ /dev/null @@ -1,5 +0,0 @@ -RDEPENDS:${PN}:remove = "weston-init" - -RDEPENDS:${PN} += " \ - agl-compositor-init \ - " diff --git a/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb b/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb index ea165effb..c3d6f57c6 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bb @@ -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 index a80d9de78..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-image-ivi.bbappend +++ /dev/null @@ -1,4 +0,0 @@ -RDEPENDS:${PN} += " \ - packagegroup-agl-ivi-identity \ - packagegroup-agl-ivi-services \ -" diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-identity.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-identity.bb index c81aa8072..3cd163786 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-ivi-identity.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-identity.bb @@ -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 index 000000000..e52e8ef5e --- /dev/null +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia-hardware.bb @@ -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)} \ + " diff --git a/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb index dc60e9e18..8865a9f06 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-ivi-multimedia.bb @@ -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 index 1cf20937c..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qt5.bb +++ /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 index 0539ae126..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster-qtcompositor.bb +++ /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 index 8b1099f38..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-cluster.bb +++ /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 index 62c30ea9c..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-html5.bb +++ /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 index 9f4e7f4f5..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-graphical-qt5.bb +++ /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 index 4377dbbc8..000000000 --- a/recipes-platform/packagegroups/packagegroup-agl-profile-telematics.bb +++ /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}" diff --git a/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb index d598de4ec..96ad7138e 100644 --- a/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb +++ b/recipes-platform/packagegroups/packagegroup-agl-telematics-demo-platform.bb @@ -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 index facd1827d..000000000 --- a/recipes-platform/packagegroups/packagegroup-hmi-framework.bb +++ /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 \ - " diff --git a/recipes-wam/wam/files/WebAppMgr.service b/recipes-wam/wam/files/WebAppMgr.service index 0dfe971df..ca9a47811 100644 --- a/recipes-wam/wam/files/WebAppMgr.service +++ b/recipes-wam/wam/files/WebAppMgr.service @@ -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 diff --git a/recipes-wam/wam/wam_git.bb b/recipes-wam/wam/wam_git.bb index 4b640d5d2..0f2087c65 100644 --- a/recipes-wam/wam/wam_git.bb +++ b/recipes-wam/wam/wam_git.bb @@ -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" + |