Provide sane defaults that do not have dependencies, such as
a dummy and terminal session support and basic fbdev support.

[email protected] 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 <[email protected]>
---
v1 -> v2: add tag=v${PV} to the SRC_URI
v2 -> v3: Add a small patch to fix LLVM compiling errors

 ..._conf.c-Fix-llvm-compilation-failure.patch | 40 +++++++++++
 .../recipes-graphics/kmscon/kmscon_9.2.1.bb   | 66 +++++++++++++++++++
 2 files changed, 106 insertions(+)
 create mode 100644 
meta-oe/recipes-graphics/kmscon/files/0001-kmscon_conf.c-Fix-llvm-compilation-failure.patch
 create mode 100644 meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb

diff --git 
a/meta-oe/recipes-graphics/kmscon/files/0001-kmscon_conf.c-Fix-llvm-compilation-failure.patch
 
b/meta-oe/recipes-graphics/kmscon/files/0001-kmscon_conf.c-Fix-llvm-compilation-failure.patch
new file mode 100644
index 0000000000..0806f9bb04
--- /dev/null
+++ 
b/meta-oe/recipes-graphics/kmscon/files/0001-kmscon_conf.c-Fix-llvm-compilation-failure.patch
@@ -0,0 +1,40 @@
+From 03a330d486132e3798a125d26d4f10252ffd8e2d Mon Sep 17 00:00:00 2001
+From: Adam Duskett <[email protected]>
+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 <[email protected]>
+---
+ 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
+
diff --git a/meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb 
b/meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb
new file mode 100644
index 0000000000..925bebee81
--- /dev/null
+++ b/meta-oe/recipes-graphics/kmscon/kmscon_9.2.1.bb
@@ -0,0 +1,66 @@
+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}/[email protected]"
+
+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}/[email protected] \
+            ${D}${sysconfdir}/systemd/system/[email protected]
+    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"
-- 
2.52.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#123531): 
https://lists.openembedded.org/g/openembedded-devel/message/123531
Mute This Topic: https://lists.openembedded.org/mt/117295606/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to