aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-demo-control-panel/recipes-demo
diff options
context:
space:
mode:
authorJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-07-04 14:44:46 +0000
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2024-07-24 09:14:03 +0000
commit94a19893064724d89893252735883cdb0415835f (patch)
tree4bff24f56fd4b235870307e7834d67576038a9e5 /meta-agl-demo-control-panel/recipes-demo
parentca836399d23e92f20d7ccc02122ab029e695cc6b (diff)
Move agl-demo-control-panel into own layer and feature during qt6 migration
This creates a temporary sublayer for the demo control panel until meta-agl-demo itself is migrated to qt6. Bug-AGL: SPEC-5195 Change-Id: I07f97385600fb695e182b11c528225d5510185d9 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/30067
Diffstat (limited to 'meta-agl-demo-control-panel/recipes-demo')
-rw-r--r--meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/agl-demo-control-panel_git.bb85
-rw-r--r--meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/files/agl-demo-control-panel.service16
2 files changed, 101 insertions, 0 deletions
diff --git a/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/agl-demo-control-panel_git.bb b/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/agl-demo-control-panel_git.bb
new file mode 100644
index 000000000..d28628264
--- /dev/null
+++ b/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/agl-demo-control-panel_git.bb
@@ -0,0 +1,85 @@
+SUMMARY = "AGL demo control panel"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=685e0faaaec2c2334cf8159ca6bd2975"
+
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-demo-control-panel;protocol=https;branch=${AGL_BRANCH} \
+ file://agl-demo-control-panel.service \
+"
+SRCREV = "25d451d87046a1cfbf7ac3cd47c2303fd29a22c5"
+S = "${WORKDIR}/git"
+
+inherit systemd allarch update-alternatives
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ # There's no provision for a Pythonic install into /usr/lib, so dump
+ # into a directory /usr/libexec.
+ install -d ${D}${libexecdir}/${BPN}
+ cp -drv ${S}/* ${D}${libexecdir}/${BPN}
+
+ # Remove stray shell script from Docker container build support to
+ # avoid QA complaints
+ rm -rf ${D}${libexecdir}/${BPN}/docker
+
+ install -D -m 0644 ${WORKDIR}/${BPN}.service ${D}${systemd_system_unitdir}/${BPN}.service
+
+ # Install conf file
+ install -d ${D}${sysconfdir}/agl-demo-control-panel
+ install -m 0644 ${S}/extras/config.ini ${D}${sysconfdir}/agl-demo-control-panel/config.ini.default
+ sed 's/ip = localhost/ip = 192.168.10.2/' ${S}/extras/config.ini > \
+ ${D}${sysconfdir}/agl-demo-control-panel/config.ini.demo
+ sed -e 's/hvac-enabled = true/hvac-enabled = false/' \
+ -e 's/steering-wheel-enabled = true/steering-wheel-enabled = false/' \
+ ${S}/extras/config.ini > \
+ ${D}${sysconfdir}/agl-demo-control-panel/config.ini.gateway-demo
+}
+
+# For now generate resource wrapper on first boot, as it looks non-trivial
+# to get python3-pyqt5-native working to run pyrcc5 during build.
+pkg_postinst_ontarget:${PN} () {
+ /usr/bin/pyrcc5 -o ${libexecdir}/${BPN}/res_rc.py ${libexecdir}/${BPN}/assets/res.qrc
+ true
+}
+
+ALTERNATIVE_LINK_NAME[agl-demo-control-panel.ini] = "${sysconfdir}/agl-demo-control-panel/config.ini"
+
+RDEPENDS:${PN} += " \
+ ${PN}-conf \
+ python3 \
+ python3-modules \
+ python3-packaging \
+ python3-can \
+ python3-pyqt6 \
+ python3-pyside6 \
+ agl-users \
+ weston \
+"
+
+PACKAGE_BEFORE_PN += "${PN}-conf"
+FILES:${PN}-conf += "${sysconfdir}/agl-demo-control-panel/config.ini.default"
+RDEPENDS:${PN}-conf = "${PN}"
+RPROVIDES:${PN}-conf = "agl-demo-control-panel.ini"
+ALTERNATIVE:${PN}-conf = "agl-demo-control-panel.ini"
+ALTERNATIVE_TARGET_${PN}-conf = "${sysconfdir}/agl-demo-control-panel/config.ini.default"
+
+PACKAGE_BEFORE_PN += "${PN}-conf-demo"
+FILES:${PN}-conf-demo += "${sysconfdir}/agl-demo-control-panel/config.ini.demo"
+RDEPENDS:${PN}-conf-demo = "${PN}"
+RPROVIDES:${PN}-conf-demo = "agl-demo-control-panel.ini"
+ALTERNATIVE:${PN}-conf-demo = "agl-demo-control-panel.ini"
+ALTERNATIVE_TARGET_${PN}-conf-demo = "${sysconfdir}/agl-demo-control-panel/config.ini.demo"
+ALTERNATIVE_PRIORITY_${PN}-conf-demo = "20"
+
+PACKAGE_BEFORE_PN += "${PN}-conf-gateway-demo"
+FILES:${PN}-conf-gateway-demo += "${sysconfdir}/agl-demo-control-panel/config.ini.gateway-demo"
+RDEPENDS:${PN}-conf-gateway-demo = "${PN}"
+RPROVIDES:${PN}-conf-gateway-demo = "agl-demo-control-panel.ini"
+ALTERNATIVE:${PN}-conf-gateway-demo = "agl-demo-control-panel.ini"
+ALTERNATIVE_TARGET_${PN}-conf-gateway-demo = "${sysconfdir}/agl-demo-control-panel/config.ini.gateway-demo"
+ALTERNATIVE_PRIORITY_${PN}-conf-gateway-demo = "30"
diff --git a/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/files/agl-demo-control-panel.service b/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/files/agl-demo-control-panel.service
new file mode 100644
index 000000000..5780bdfa4
--- /dev/null
+++ b/meta-agl-demo-control-panel/recipes-demo/agl-demo-control-panel/files/agl-demo-control-panel.service
@@ -0,0 +1,16 @@
+[Unit]
+Requires=weston.service
+After=weston.service
+Before=graphical.target
+
+[Service]
+Type=simple
+User=agl-driver
+Group=agl-driver
+Environment=XDG_RUNTIME_DIR=/run/user/1001/
+Environment=WAYLAND_DISPLAY=wayland-1
+ExecStart=/usr/bin/python3 /usr/libexec/agl-demo-control-panel/main.py
+Restart=on-failure
+
+[Install]
+WantedBy=graphical.target