summaryrefslogtreecommitdiffstats
path: root/meta-agl-core
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-core')
-rw-r--r--meta-agl-core/SECURITY.md19
-rw-r--r--meta-agl-core/conf/distro/poky-agl.conf8
-rw-r--r--meta-agl-core/conf/layer.conf4
-rw-r--r--meta-agl-core/conf/templates/base/bblayers.conf.sample4
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_aglcore.inc10
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch47
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_%.bbappend1
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_aglcore.inc14
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_%.bbappend (renamed from meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_%.bbappend)0
-rw-r--r--meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_aglcore.inc12
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init-pipewire.bb42
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-pipewire.conf3
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-stream-pipewire.service29
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb5
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg1
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-backend-Add-weston_get_backend_type.patch79
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc7
18 files changed, 201 insertions, 86 deletions
diff --git a/meta-agl-core/SECURITY.md b/meta-agl-core/SECURITY.md
new file mode 100644
index 000000000..a3c80fdd3
--- /dev/null
+++ b/meta-agl-core/SECURITY.md
@@ -0,0 +1,19 @@
+How to Report a Potential Vulnerability?
+========================================
+
+If you would like to report a public issue (for example, one with a released
+CVE number), please report it to security AT automotivelinux DOT org
+
+If you are dealing with a not-yet released or urgent issue, please send a
+message to security AT automotivelinux DOT org, including as many details as
+possible: the layer or software module affected, the recipe and its version,
+and any example code, if available.
+
+Branches maintained with security fixes
+---------------------------------------
+
+See [https://wiki.automotivelinux.org/schedule this page]
+for detailed info regarding the policies and maintenance of Stable branches.
+
+The [https://wiki.automotivelinux.org/agl-distro/release-notes Release page]
+contains a list of all releases of Automotive Grade Linux.
diff --git a/meta-agl-core/conf/distro/poky-agl.conf b/meta-agl-core/conf/distro/poky-agl.conf
index 0810fe076..2a04b28b6 100644
--- a/meta-agl-core/conf/distro/poky-agl.conf
+++ b/meta-agl-core/conf/distro/poky-agl.conf
@@ -9,9 +9,9 @@ DISTRO_NAME = "Automotive Grade Linux"
# Release flags
-DISTRO_CODENAME = "salmon"
+DISTRO_CODENAME = "trout"
AGL_BRANCH = "master"
-AGLVERSION = "18.90.0"
+AGLVERSION = "19.90.0"
# switch devel/release
#AGLRELEASETYPE ?= "agldevelopment"
@@ -29,8 +29,8 @@ DISTRO_BRANCH_VERSION_TAG = "${DISTRO_CODENAME}/${@'${DISTRO_VERSION}'.replace('
# reproducible builds:
# Set the desired timestamps
# E.g. update for (major) releases
-export SOURCE_DATE_EPOCH = "1721815278"
-REPRODUCIBLE_TIMESTAMP_ROOTFS = "1721815278"
+export SOURCE_DATE_EPOCH = "1734348334"
+REPRODUCIBLE_TIMESTAMP_ROOTFS = "1734348334"
# SDK
diff --git a/meta-agl-core/conf/layer.conf b/meta-agl-core/conf/layer.conf
index 8047df519..a354fbe33 100644
--- a/meta-agl-core/conf/layer.conf
+++ b/meta-agl-core/conf/layer.conf
@@ -16,8 +16,8 @@ BBFILES_DYNAMIC += " \
selinux:${LAYERDIR}/dynamic-layers/meta-selinux/*/*/*.bb \
selinux:${LAYERDIR}/dynamic-layers/meta-selinux/*/*/*.bbappend \
\
- qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bb \
- qt5-layer:${LAYERDIR}/dynamic-layers/meta-qt5/*/*/*.bbappend \
+ qt6-layer:${LAYERDIR}/dynamic-layers/meta-qt6/*/*/*.bb \
+ qt6-layer:${LAYERDIR}/dynamic-layers/meta-qt6/*/*/*.bbappend \
"
LAYERSERIES_COMPAT_aglcore = "scarthgap"
diff --git a/meta-agl-core/conf/templates/base/bblayers.conf.sample b/meta-agl-core/conf/templates/base/bblayers.conf.sample
index c6a37a0b0..228c7dbda 100644
--- a/meta-agl-core/conf/templates/base/bblayers.conf.sample
+++ b/meta-agl-core/conf/templates/base/bblayers.conf.sample
@@ -42,7 +42,7 @@ AGL_META_FILESYSTEMS ?= ""
AGL_META_MULTIMEDIA ?= ""
AGL_META_VIRTUALIZATION ?= ""
AGL_META_CLANG ?= ""
-AGL_META_QT5 ?= ""
+AGL_META_QT6 ?= ""
AGL_OTHER_DEPENDENCY_LAYERS = " \
${AGL_META_NETWORKING} \
@@ -51,7 +51,7 @@ AGL_OTHER_DEPENDENCY_LAYERS = " \
${AGL_META_MULTIMEDIA} \
${AGL_META_VIRTUALIZATION} \
${AGL_META_CLANG} \
- ${AGL_META_QT5} \
+ ${AGL_META_QT6} \
"
####################
diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_aglcore.inc b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_aglcore.inc
deleted file mode 100644
index 581f5de99..000000000
--- a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_aglcore.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/qtbase:"
-
-PACKAGECONFIG_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
-
-PACKAGECONFIG_GL = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}"
-
-PACKAGECONFIG:append = " ${PACKAGECONFIG_WAYLAND}"
-
-# '-qpa wayland-egl' set wayland-egl as default of platform plugins
-PACKAGECONFIG[wayland]="-qpa wayland-egl -no-qpa-platform-guard"
diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
deleted file mode 100644
index ba8a991ed..000000000
--- a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation/0001-mapbox-update-API-url-to-match-new-schema.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 58197439eade86e7efc6fe98116c0092ea429d29 Mon Sep 17 00:00:00 2001
-From: Matt Ranostay <matt.ranostay@konsulko.com>
-Date: Tue, 10 Mar 2020 13:59:58 -0700
-Subject: [PATCH] mapbox: update API url to match new schema
-
----
- src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp | 7 ++++---
- src/plugins/geoservices/mapbox/qmapboxcommon.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-index 0b128556..bd2be6b6 100644
---- a/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-+++ b/src/plugins/geoservices/mapbox/qgeotilefetchermapbox.cpp
-@@ -88,12 +88,13 @@ QGeoTiledMapReply *QGeoTileFetcherMapbox::getTileImage(const QGeoTileSpec &spec)
- request.setRawHeader("User-Agent", m_userAgent);
-
- request.setUrl(QUrl(mapboxTilesApiPath +
-- ((spec.mapId() >= m_mapIds.size()) ? QStringLiteral("mapbox.streets") : m_mapIds[spec.mapId() - 1]) + QLatin1Char('/') +
-+ m_mapIds[m_mapIds.size() - 1] +
-+ QStringLiteral("/tiles/256/") +
- QString::number(spec.zoom()) + QLatin1Char('/') +
- QString::number(spec.x()) + QLatin1Char('/') +
- QString::number(spec.y()) +
-- ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x.")) : QLatin1String(".")) +
-- m_format + QLatin1Char('?') +
-+ ((m_scaleFactor > 1) ? (QLatin1Char('@') + QString::number(m_scaleFactor) + QLatin1String("x")) : QLatin1String("")) +
-+ QLatin1Char('?') +
- QStringLiteral("access_token=") + m_accessToken));
-
- QNetworkReply *reply = m_networkManager->get(request);
-diff --git a/src/plugins/geoservices/mapbox/qmapboxcommon.h b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-index e60c4e83..4b2ea98d 100644
---- a/src/plugins/geoservices/mapbox/qmapboxcommon.h
-+++ b/src/plugins/geoservices/mapbox/qmapboxcommon.h
-@@ -46,7 +46,7 @@
-
- QT_BEGIN_NAMESPACE
-
--static const QString mapboxTilesApiPath = QStringLiteral("http://api.tiles.mapbox.com/v4/");
-+static const QString mapboxTilesApiPath = QStringLiteral("https://api.mapbox.com/");
-
- // https://www.mapbox.com/api-documentation/#geocoding
- static const QString mapboxGeocodingApiPath = QStringLiteral("https://api.mapbox.com/geocoding/v5/mapbox.places/");
---
-2.25.0
-
diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_%.bbappend b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_%.bbappend
deleted file mode 100644
index a0d80075a..000000000
--- a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'qtlocation_aglcore.inc', '', d)}
diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_aglcore.inc b/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_aglcore.inc
deleted file mode 100644
index 60867aef0..000000000
--- a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtlocation_aglcore.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/qtlocation:"
-
-SRC_URI += "\
- file://0001-mapbox-update-API-url-to-match-new-schema.patch \
- "
-
-# Need to explicitly enable the various plugins
-PACKAGECONFIG += " \
- geoservices_osm \
- geoservices_here \
- geoservices_itemsoverlay \
- geoservices_mapbox \
- geoservices_mapboxgl \
-"
diff --git a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_%.bbappend b/meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_%.bbappend
index aab944c2f..aab944c2f 100644
--- a/meta-agl-core/dynamic-layers/meta-qt5/recipes-qt/qt5/qtbase_%.bbappend
+++ b/meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_%.bbappend
diff --git a/meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_aglcore.inc b/meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_aglcore.inc
new file mode 100644
index 000000000..aa8bf1d59
--- /dev/null
+++ b/meta-agl-core/dynamic-layers/meta-qt6/recipes-qt/qt6/qtbase_aglcore.inc
@@ -0,0 +1,12 @@
+
+QT_QPA_DEFAULT_PLATFORM = "wayland-egl"
+
+
+
+# OLD
+#FILESEXTRAPATHS:prepend := "${THISDIR}/qtbase:"
+#PACKAGECONFIG_WAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)}"
+#PACKAGECONFIG:append = " ${PACKAGECONFIG_WAYLAND}"
+# '-qpa wayland-egl' set wayland-egl as default of platform plugins
+#PACKAGECONFIG[wayland]="-qpa wayland-egl -no-qpa-platform-guard"
+#PACKAGECONFIG_GL = "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2', '', d)}"
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init-pipewire.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init-pipewire.bb
new file mode 100644
index 000000000..f1d73732a
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init-pipewire.bb
@@ -0,0 +1,42 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/agl-compositor-init:"
+
+SUMMARY = "Startup systemd unit for the AGL Wayland compositor with starting in the same time the DRM and PipeWire backends"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit systemd
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+SRC_URI = "file://agl-compositor-pipewire.conf \
+ file://agl-compositor-stream-pipewire.service \
+"
+
+S = "${WORKDIR}"
+
+AGL_KVM_REMOTE_OUTPUT_IP ?= "172.16.10.3"
+AGL_KVM_REMOTE_OUTPUT_PORT ?= "5005"
+
+do_install() {
+ sed -i -e "s,@REMOTE_OUTPUT_IP@,${AGL_KVM_REMOTE_OUTPUT_IP},g" \
+ ${WORKDIR}/agl-compositor-stream-pipewire.service
+
+ sed -i -e "s,@REMOTE_OUTPUT_PORT@,${AGL_KVM_REMOTE_OUTPUT_PORT},g" \
+ ${WORKDIR}/agl-compositor-stream-pipewire.service
+
+ install -D -p -m0644 ${WORKDIR}/agl-compositor-stream-pipewire.service ${D}${systemd_system_unitdir}/agl-compositor-stream-pipewire.service
+
+ install -d ${D}${systemd_system_unitdir}/agl-compositor.service.d
+ install -m644 ${WORKDIR}/agl-compositor-pipewire.conf ${D}/${systemd_system_unitdir}/agl-compositor.service.d/02-agl-compositor.conf
+}
+
+FILES:${PN} += "\
+ ${systemd_system_unitdir}/agl-compositor.service.d \
+ ${systemd_system_unitdir}/agl-compositor.service.d/02-agl-compositor.conf \
+ ${systemd_system_unitdir}/agl-compositor-stream-pipewire.service \
+ "
+
+RDEPENDS:${PN} = "agl-compositor-init weston-ini"
+RCONFLICTS:${PN} = "weston-init"
+
+SYSTEMD_SERVICE:${PN} = "agl-compositor-stream-pipewire.service"
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
index d8baf91f9..dc23d4281 100644
--- a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
@@ -41,7 +41,7 @@ do_install() {
fi
done
install -d ${D}${systemd_system_unitdir}/agl-compositor.service.d
- install -m644 ${WORKDIR}/agl-compositor.conf ${D}/${systemd_system_unitdir}/agl-compositor.service.d/agl-compositor.conf
+ install -m644 ${WORKDIR}/agl-compositor.conf ${D}/${systemd_system_unitdir}/agl-compositor.service.d/01-agl-compositor.conf
}
FILES:${PN} += "\
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-pipewire.conf b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-pipewire.conf
new file mode 100644
index 000000000..aba0df102
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-pipewire.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=/usr/bin/agl-compositor -Bdrm,pipewire --idle-time=0 --config /etc/xdg/weston/weston.ini
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-stream-pipewire.service b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-stream-pipewire.service
new file mode 100644
index 000000000..a01edda22
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-stream-pipewire.service
@@ -0,0 +1,29 @@
+[Unit]
+Description=Stream PipeWire output created by AGL compositor
+
+Requires=agl-compositor.service
+After=agl-compositor.service
+
+Before=graphical.target
+ConditionPathExists=/usr/bin/agl-stream-pipewire-output
+
+[Service]
+Type=simple
+EnvironmentFile=-/etc/default/agl-stream-pipewire-output
+# need to wait until receiver has its receiver client started; this might be a
+# bit controversial but this actually decreases the preceived time when we
+# start displaying frames on the receiver side. A proper solution would be
+# somehow have a way to convey when it is the best time start the stream
+ExecStartPre=sleep 10
+ExecStart=/usr/bin/agl-stream-pipewire-output @REMOTE_OUTPUT_IP@ @REMOTE_OUTPUT_PORT@
+
+User=agl-driver
+Group=agl-driver
+
+WorkingDirectory=/home/agl-driver
+
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=graphical.target
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
index 79b13df71..7a33b125d 100644
--- a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
@@ -11,7 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=fac6abe0003c4d142ff8fa1f18316df0"
DEPENDS = "wayland wayland-protocols wayland-native weston"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-compositor.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "c8ffca8f9c67114ca424b88df0740943fe7768e3"
+SRCREV = "cea35f44d1e60ed2d67c6556eba6b7777d5f66ce"
AGL_BRANCH:aglnext = "next"
SRCREV:aglnext = "${AUTOREV}"
@@ -24,6 +24,7 @@ PACKAGECONFIG ?= ""
PACKAGECONFIG[policy-rba] = "-Dpolicy-default=rba,,librba,librba rba-config"
PACKAGECONFIG[policy-deny-all] = "-Dpolicy-default=deny-all,,"
PACKAGECONFIG[grpc-proxy] = "-Dgrpc-proxy=true,-Dgrpc-proxy=false,grpc grpc-native,grpc agl-shell-grpc-server"
+PACKAGECONFIG[drm-lease] = "-Ddrm-lease=true,-Ddrm-lease=false,drm-lease-manager"
inherit meson pkgconfig python3native
@@ -37,6 +38,7 @@ LDFLAGS:append:riscv64 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
FILES:${PN} = " \
${bindir}/agl-compositor \
${bindir}/agl-screenshooter \
+ ${bindir}/agl-stream-pipewire-output \
${libdir}/agl-compositor/libexec_compositor.so.0 \
${libdir}/agl-compositor/libexec_compositor.so.${AGL_COMPOSITOR_VERSION} \
"
@@ -48,6 +50,7 @@ FILES:agl-shell-grpc-server = " \
RDEPENDS:${PN} += " \
agl-compositor-init \
xkeyboard-config \
+ bash \
"
FILES:${PN}-dev += " \
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
index 28f90752d..278db8956 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
@@ -1,5 +1,4 @@
[core]
-backend=drm-backend.so
require-input=false
idle-time=0
modules=systemd-notify.so
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-Add-weston_get_backend_type.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-Add-weston_get_backend_type.patch
new file mode 100644
index 000000000..01d5f91d6
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-backend-Add-weston_get_backend_type.patch
@@ -0,0 +1,79 @@
+From fcccf1b63dc3cbf6063238c39a31197f0d32364c Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Fri, 13 Dec 2024 17:14:44 +0200
+Subject: [PATCH] backend: Add weston_get_backend_type
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ include/libweston/libweston.h | 3 +++
+ libweston/backend.h | 5 +++++
+ libweston/compositor.c | 19 +++++++++++++++++++
+ 3 files changed, 27 insertions(+)
+
+diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h
+index 077c16b..da6200d 100644
+--- a/include/libweston/libweston.h
++++ b/include/libweston/libweston.h
+@@ -2685,6 +2685,9 @@ weston_compositor_add_screenshot_authority(struct weston_compositor *compositor,
+ int
+ weston_compositor_backends_loaded(struct weston_compositor *compositor);
+
++enum weston_compositor_backend
++weston_get_backend_type(struct weston_backend *backend);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/libweston/backend.h b/libweston/backend.h
+index 495d0a5..9b12544 100644
+--- a/libweston/backend.h
++++ b/libweston/backend.h
+@@ -120,6 +120,11 @@ struct weston_backend {
+ */
+ bool (*can_scanout_dmabuf)(struct weston_backend *backend,
+ struct linux_dmabuf_buffer *buffer);
++
++ /** Identifies a particular backend_type from one
++ * defined in weston_compositor_backend.
++ */
++ enum weston_compositor_backend backend_type;
+ };
+
+ /* weston_head */
+diff --git a/libweston/compositor.c b/libweston/compositor.c
+index 41459eb..ef1932f 100644
+--- a/libweston/compositor.c
++++ b/libweston/compositor.c
+@@ -9691,6 +9691,7 @@ weston_compositor_load_backend(struct weston_compositor *compositor,
+ return NULL;
+
+ b = wl_container_of(compositor->backend_list.next, b, link);
++ b->backend_type = backend;
+
+ /* Return the last loaded backend. */
+ return b;
+@@ -9954,3 +9955,21 @@ weston_output_finish_frame_from_timer(struct weston_output *output)
+
+ weston_output_finish_frame(output, &ts, 0);
+ }
++
++/** Retrieve the backend type of as described in enum
++ * weston_compositor_backend.
++ *
++ * Note that the backend must be loaded, with weston_compositor_load_backend
++ *
++ * \param backend weston_backend in question
++ * \returns a type of enum weston_compositor_backend
++ *
++ * \sa weston_compositor_load_backend
++ *
++ */
++WL_EXPORT enum weston_compositor_backend
++weston_get_backend_type(struct weston_backend *backend)
++{
++ assert(backend);
++ return backend->backend_type;
++}
+--
+2.43.0
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc
index 0b5dae715..f4f5e4c17 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc
+++ b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc
@@ -1,13 +1,13 @@
FILESEXTRAPATHS:append := ":${THISDIR}/weston"
-PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
-
SRC_URI:append = " \
file://0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch \
file://0001-backend-drm-don-t-leak-gem_handle_refcnt-in-drm_dest.patch \
file://0002-backend-drm-always-create-gem_handle_refcnt-hash-tab.patch \
+ file://0001-backend-Add-weston_get_backend_type.patch \
"
+WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
# Split weston-terminal out of the main package to allow installing it
# separately for use with other compositors. The icons, etc. that end
@@ -16,8 +16,9 @@ SRC_URI:append = " \
# packaged in weston-examples in addition to ivi-shell in the main
# package.
-PACKAGE_BEFORE_PN += "${PN}-data ${PN}-terminal"
+PACKAGE_BEFORE_PN += "${PN}-data ${PN}-terminal ${PN}-pipewire"
+FILES:${PN}-pipewire = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/pipewire-backend.so"
FILES:${PN}-data = "${datadir}/weston"
FILES:${PN}-terminal = "${bindir}/weston-terminal"