mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-01-27 12:01:38 +01:00
kmscon: Add recipe
Provide sane defaults that do not have dependencies, such as
a dummy and terminal session support and basic fbdev support.
kmsconvt@.service must be added separatly or else
do_rootfs fails with the following error:
```
do_rootfs: Postinstall scriptlets of ['kmscon'] have failed. If the intention
is to defer them to first boot, then please place them into
pkg_postinst_ontarget:${PN} (). Deferring to first boot via 'exit 1' is no
longer supported.
```
Add a small patch to fix a compiling error when using LLVM as the
preferred toolchain.
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
parent
200f48d774
commit
df2ac27812
|
|
@ -0,0 +1,40 @@
|
|||
From 03a330d486132e3798a125d26d4f10252ffd8e2d Mon Sep 17 00:00:00 2001
|
||||
From: Adam Duskett <adam.duskett@amarulasolutions.com>
|
||||
Date: Fri, 16 Jan 2026 11:35:39 +0100
|
||||
Subject: [PATCH] kmscon_conf.c: Fix llvm compilation failure
|
||||
|
||||
When building with an LLVM toolchain, the follow error occurs:
|
||||
|
||||
```
|
||||
kmscon_conf.c:757:72:
|
||||
error: expression which evaluates to zero treated as a null pointer constant
|
||||
of type 'void *' [-Werror,-Wnon-literal-null-conversion]
|
||||
CONF_OPTION(0, 0, "gpus", &conf_gpus, NULL, NULL, NULL, &conf->gpus, KMSCON_GPU_ALL),
|
||||
^~~~~~~~~~~~~~
|
||||
1 error generated.
|
||||
```
|
||||
|
||||
Fix the error by adding a cast to (void *).
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/kmscon/kmscon/pull/225]
|
||||
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
|
||||
---
|
||||
src/kmscon_conf.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/kmscon_conf.c b/src/kmscon_conf.c
|
||||
index df2e51d..9e9a839 100644
|
||||
--- a/src/kmscon_conf.c
|
||||
+++ b/src/kmscon_conf.c
|
||||
@@ -754,7 +754,7 @@ int kmscon_conf_new(struct conf_ctx **out)
|
||||
/* Video Options */
|
||||
CONF_OPTION_BOOL_FULL(0, "drm", aftercheck_drm, NULL, NULL, &conf->drm, true),
|
||||
CONF_OPTION_BOOL(0, "hwaccel", &conf->hwaccel, false),
|
||||
- CONF_OPTION(0, 0, "gpus", &conf_gpus, NULL, NULL, NULL, &conf->gpus, KMSCON_GPU_ALL),
|
||||
+ CONF_OPTION(0, 0, "gpus", &conf_gpus, NULL, NULL, NULL, &conf->gpus, (void *)KMSCON_GPU_ALL),
|
||||
CONF_OPTION_STRING(0, "render-engine", &conf->render_engine, NULL),
|
||||
CONF_OPTION_BOOL(0, "use-original-mode", &conf->use_original_mode, true),
|
||||
CONF_OPTION_STRING(0, "mode", &conf->mode, NULL),
|
||||
--
|
||||
2.52.0
|
||||
|
||||
71
meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb
Normal file
71
meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
SUMMARY = "Simple terminal emulator based on linux kernel mode setting (KMS)."
|
||||
DESCRIPTION = "\
|
||||
Kmscon is a simple terminal emulator based on linux kernel mode setting \
|
||||
(KMS). It is an attempt to replace the in-kernel VT implementation with \
|
||||
a userspace console. \
|
||||
"
|
||||
HOMEPAGE = "https://github.com/kmscon/kmscon"
|
||||
BUGTRACKER = "https://github.com/kmscon/kmscon/issues"
|
||||
CVE_PRODUCT = "kmscon"
|
||||
|
||||
SECTION = "graphics"
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=6d4602d249f8a3401040238e98367d9e"
|
||||
|
||||
DEPENDS = "\
|
||||
libtsm \
|
||||
libxkbcommon \
|
||||
udev \
|
||||
"
|
||||
|
||||
SRC_URI = "\
|
||||
git://github.com/kmscon/kmscon;branch=main;protocol=https \
|
||||
file://0001-kmscon_conf.c-Fix-llvm-compilation-failure.patch \
|
||||
"
|
||||
SRCREV = "7d46650dbb0826f9b89de42f879be879391c14fd"
|
||||
|
||||
inherit meson pkgconfig systemd
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
|
||||
|
||||
PACKAGECONFIG[backspace_sends_delete] = "-Dbackspace_sends_delete=true, -Dbackspace_sends_delete=false"
|
||||
PACKAGECONFIG[font_pango] = "-Dfont_pango=enabled, -Dfont_pango=disabled, pango"
|
||||
PACKAGECONFIG[multi_seat] = "-Dmulti_seat=enabled, -Dmulti_seat=disabled, systemd"
|
||||
PACKAGECONFIG[opengl] = "-Drenderer_gltex=enabled -Dvideo_drm3d=enabled, -Drenderer_gltex=disabled -Dvideo_drm3d=disabled, libdrm virtual/egl virtual/libgles2 virtual/libgbm"
|
||||
PACKAGECONFIG[video_drm2d] = "-Dvideo_drm2d=enabled, -Dvideo_drm2d=disabled, libdrm"
|
||||
|
||||
EXTRA_OEMESON = "\
|
||||
-Delogind=disabled \
|
||||
-Dextra_debug=false \
|
||||
-Dfont_unifont=enabled \
|
||||
-Dsession_dummy=enabled \
|
||||
-Dsession_terminal=enabled \
|
||||
-Dtests=false \
|
||||
-Dvideo_fbdev=enabled \
|
||||
"
|
||||
|
||||
SYSTEMD_SERVICE:${PN} = "kmscon.service"
|
||||
FILES:${PN} += "${systemd_system_unitdir}/kmsconvt@.service"
|
||||
|
||||
do_install:append() {
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
install -d ${D}${sysconfdir}/systemd/system
|
||||
ln -sf ${systemd_system_unitdir}/kmsconvt@.service \
|
||||
${D}${sysconfdir}/systemd/system/autovt@.service
|
||||
else
|
||||
# kmscon always installs service files.
|
||||
# If systemd and usrmerge are not in DISTRO_FEATURES, packaging errors
|
||||
# occur because service files are installed to /usr/lib/systemd/system/kmscon.service.
|
||||
rm -rf ${D}${libdir}/systemd
|
||||
fi
|
||||
|
||||
if ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'true', 'false', d)}; then
|
||||
sed -e "s@#drm@drm@g" \
|
||||
-e "s@#hwaccel@hwaccel@g" \
|
||||
-e "s@#render-engine=gltex@render-engine=gltex@g" \
|
||||
-i ${D}${sysconfdir}/kmscon/kmscon.conf
|
||||
fi
|
||||
}
|
||||
|
||||
RDEPENDS:${PN} = "xkeyboard-config"
|
||||
Loading…
Reference in New Issue
Block a user