]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
systemd: add osc-context PACKAGECONFIG
authorChen Qi <Qi.Chen@windriver.com>
Wed, 15 Apr 2026 08:29:49 +0000 (16:29 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 23 Apr 2026 09:48:55 +0000 (10:48 +0100)
Add a new PACKAGECONFIG to give users the choice of whether to
have /etc/profile.d/80-systemd-osc-context.sh file or not.

This is because the /etc/profile.d/80-systemd-osc-context.sh[1] is setting
PS0 with OSC 3008 standard[2]. If a terminal (e.g., minicom) cannot
deal with this OSC 3008 standard, it will just output the whole contents.
This is quite annoying. See example output below:

  3008;start=9c578e41-1a0f-4b47-9a87-ab22adebe376;machineid=cc467af9bedc4d98a437e5d744928301;...

Below are steps of how to reproduce the issue with qemu:
1. IMAGE_INSTALL:append = " bash"
2. bitbake core-image-minimal
3. runqemu snapshot kvm nographic qemuparams="-serial pty"
4. minicom -D /dev/pts/X -b 115200 (/dev/pts/X is the one printed in the step 3)
5. [In minicom] type any command or just type "Enter" key

A new PR is also created for systemd upstream:
  https://github.com/systemd/systemd/pull/41647
If systemd accepts the PR, we can then use the new option. Otherwise, we'll need
to keep the way it is now.

[1] https://github.com/systemd/systemd/commit/dadbb34919abd3fefeb5b8ccc9794da9398a2503
[2] https://uapi-group.org/specifications/specs/osc_context/

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-core/systemd/systemd_259.5.bb

index 3d63b0eefe74c3ea8685248b5e6bd92f16ee8400..f3ec0edae7206b1b6557f8cba587179120d9bc29 100644 (file)
@@ -66,6 +66,7 @@ PACKAGECONFIG ??= " \
     nss \
     nss-mymachines \
     nss-resolve \
+    osc-context \
     quotacheck \
     randomseed \
     resolved \
@@ -160,6 +161,7 @@ PACKAGECONFIG[no-ntp-fallback] = "-Dntp-servers="
 PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false,,libnss-systemd"
 PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=enabled,-Dnss-mymachines=disabled"
 PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=enabled,-Dnss-resolve=disabled,,libnss-resolve"
+PACKAGECONFIG[osc-context] = ",,,"
 PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false"
 PACKAGECONFIG[openssl] = "-Dopenssl=enabled,-Dopenssl=disabled,openssl"
 PACKAGECONFIG[p11kit] = "-Dp11kit=enabled,-Dp11kit=disabled,p11-kit"
@@ -272,6 +274,13 @@ do_install() {
                find ${D} -name \*getty-generator\* -delete
        fi
 
+       if ! ${@bb.utils.contains('PACKAGECONFIG', 'osc-context', 'true', 'false', d)}; then
+               # Ensure there's no /etc/profile.d/80-systemd-osc-context.sh.
+               # Some programs such as minicom does not support this OSC 3008 standard.
+               rm -f ${D}${sysconfdir}/profile.d/80-systemd-osc-context.sh
+               rm -f ${D}${nonarch_libdir}/tmpfiles.d/20-systemd-osc-context.conf
+       fi
+
        # Provide support for initramfs
        [ ! -e ${D}/init ] && ln -s ${nonarch_libdir}/systemd/systemd ${D}/init
        [ ! -e ${D}/${base_sbindir}/udevd ] && ln -s ${nonarch_libdir}/systemd/systemd-udevd ${D}/${base_sbindir}/udevd