systemd/0009-pid1-handle-console-specificities-weirdness-for-s390.patch
Franck Bui 94f1d69402 - Upgrade to v255.3 (commit 96edf7ad1866172b994cafb4df49e27d68ce8e87)
See https://github.com/openSUSE/systemd/blob/SUSE/v255/NEWS for details.
  - This includes the following bug fixes:
    - commit 6e10405aa25fe5e76b740d9ec59730e3f4470c7a (bsc#1219766)
  - The following patches have been rebased:
    - 0002-rc-local-fix-ordering-startup-for-etc-init.d-boot.lo.patch
    - 0008-sysv-generator-translate-Required-Start-into-a-Wants.patch
    - 0009-pid1-handle-console-specificities-weirdness-for-s390.patch
    - 5001-Revert-udev-update-devlink-with-the-newer-device-nod.patch
    - 5002-Revert-udev-revert-workarounds-for-issues-caused-by-.patch
  - The following patches have been removed since they're part of v255:
    - 5003-cgroup-rename-TasksMax-structure-to-CGroupTasksMax.patch
    - 5004-bus-print-properties-ignore-CGROUP_LIMIT_MAX-for-Mem.patch
    - 5005-bus-print-properties-prettify-more-unset-properties.patch
  - systemd-boot has been added to the list of the dependencies of the
    systemd-testsuite package as the installation of the bootloader is now
    tested.
  - the following patches have been backported on top of v255.3:
    96edf7ad18 service: Demote log level of NotifyAccess= messages to debug (bsc#1210113 jsc#PED-6214)
    fdde7f26d6 vconsole-setup: don't fail if the only found vc is already used by plymouth (bsc#1218618)
    f96c587d41 rules: set up tty permissions and group for /dev/hvc* nodes (bsc#1218137)
    63a41b8899 vconsole-setup: remember the correct error value when open_terminal() fails
    f51a2e038c vconsole-setup: handle the case where the vc is in KD_GRAPHICS mode more gracefully (bsc#1215282)
    15025a04c4 test: make sure to install the filesystem package in the test image on SUSE
    06fecfb635 test: make sure that sd-boot is installed before testing bootctl
    1e8788ea68 test: install systemd-boot in openSUSE test images
    6e2875ad43 test/test-shutdown.py: optionally display the test I/Os in a dedicated log file
    4be1a801b4 test-69: send SIGTERM to ask systemd-nspawn to properly stop the container
    7bdab7b7c7 man: Document ranges for distributions config files and local config files
    3f12a6c22f test: systemd-update-utmp is optional

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1497
2024-02-23 16:24:26 +00:00

60 lines
2.0 KiB
Diff

From 745ab2ac0f5424b0c04d9c38234bb9babcbd90ef Mon Sep 17 00:00:00 2001
From: Franck Bui <fbui@suse.com>
Date: Fri, 10 Jun 2016 15:19:57 +0200
Subject: [PATCH] pid1: handle console specificities/weirdness for s390 arch
The 3270 console on S/390 can do color but not the 3215 console.
Partial forward port of
0001-On_s390_con3270_disable_ANSI_colour_esc.patch from SLE12-SP1. A
bunch of the previous code has been dropped since some changes
imported from upsteam made them uneeded.
The remaining bits are probably hackish but at least they are now
minimal.
It was an attempt to address bnc#860937. And yes turning the console
color mode off by passing $TERM=dumb via the kernel command line would
have been much more easier and enough.
This is actually implemented by recent systemd. There's also another
command line option: systemd.log_color=off.
See also a short discussion which happened on @systemd-maintainers
whose $subject is "[PATCH] support conmode setting on command line".
[fbui: fixes bsc#860937]
---
src/basic/terminal-util.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c
index 3355b749cc..e96b053217 100644
--- a/src/basic/terminal-util.c
+++ b/src/basic/terminal-util.c
@@ -784,7 +784,20 @@ bool tty_is_vc_resolve(const char *tty) {
}
const char *default_term_for_tty(const char *tty) {
- return tty && tty_is_vc_resolve(tty) ? "linux" : "vt220";
+ if (tty && tty_is_vc_resolve(tty))
+ return "linux";
+
+#if defined (__s390__) || defined (__s390x__)
+ if (tty && tty_is_console(tty)) {
+ _cleanup_free_ char *mode = NULL;
+
+ /* Simply return "dumb" in case of OOM. */
+ (void) proc_cmdline_get_key("conmode", 0, &mode);
+ (void) proc_cmdline_value_missing("conmode", mode);
+ return streq_ptr(mode, "3270") ? "ibm327x" : "dumb";
+ }
+#endif
+ return "vt220";
}
int fd_columns(int fd) {
--
2.35.3