Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package plymouth for openSUSE:Factory checked in at 2022-05-08 21:52:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/plymouth (Old) and /work/SRC/openSUSE:Factory/.plymouth.new.1538 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "plymouth" Sun May 8 21:52:06 2022 rev:100 rq:975515 version:0.9.5~git20220412.e960111 Changes: -------- --- /work/SRC/openSUSE:Factory/plymouth/plymouth.changes 2022-04-22 21:52:34.270690926 +0200 +++ /work/SRC/openSUSE:Factory/.plymouth.new.1538/plymouth.changes 2022-05-08 21:52:08.211446847 +0200 @@ -1,0 +2,7 @@ +Sat Apr 30 05:36:09 UTC 2022 - Cliff Zhao <[email protected]> + +- Add plymouth-log-on-default.patch: Enable plymouth log by default, + help to resolve random appear problems (bsc#1193736). +- Pick back patch information for label-ft. + +------------------------------------------------------------------- New: ---- plymouth-log-on-default.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ plymouth.spec ++++++ --- /var/tmp/diff_new_pack.Q14Cgw/_old 2022-05-08 21:52:09.991449087 +0200 +++ /var/tmp/diff_new_pack.Q14Cgw/_new 2022-05-08 21:52:09.995449092 +0200 @@ -48,6 +48,8 @@ Patch7: plymouth-quiet-dracut-build-info.patch # PATCH-FIX-OPENSUSE plymouth-watermark-config.patch bsc#1189613 [email protected] -- Add two-step water mark config support. Patch9: plymouth-watermark-config.patch +# PATCH-FIX-OPENSUSE plymouth-log-on-default.patch bsc#1193736 [email protected] -- Enable plymouth log by default, help to resolve random appear problems. +Patch10: plymouth-log-on-default.patch # PATCH-FIX-UPSTREAM 0001-Add-label-ft-plugin.patch boo#959986 [email protected] -- add ability to output text in initrd needed for encryption. Patch1000: 0001-Add-label-ft-plugin.patch # PATCH-FIX-UPSTREAM 0002-Install-label-ft-plugin-into-initrd-if-available.patch boo#959986 [email protected] -- add ability to output text in initrd needed for encryption. ++++++ 0001-Add-label-ft-plugin.patch ++++++ --- /var/tmp/diff_new_pack.Q14Cgw/_old 2022-05-08 21:52:10.019449122 +0200 +++ /var/tmp/diff_new_pack.Q14Cgw/_new 2022-05-08 21:52:10.019449122 +0200 @@ -1,3 +1,25 @@ +From 04fd53750abc1f792ab6d5bdf7416bd7c42451b2 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <[email protected]> +Date: Mon, 25 Jan 2016 08:58:03 +0100 +Subject: [PATCH 1/2] Add label-ft plugin + +This adds a FreeType-based label plugin with minimal dependencies. +Is is a replacement for the label plugin, except that it lacks support for +Unicode and different fonts families. +It's purpose is to be included in the initrd, which isn't easily possible +with the label plugin due to it's massive dependency list. + +Signed-off-by: Fabian Vogt <[email protected]> +--- + configure.ac | 10 + + src/libply-splash-graphics/ply-label.c | 5 + + src/plugins/controls/Makefile.am | 6 +- + src/plugins/controls/label-ft/Makefile.am | 22 ++ + src/plugins/controls/label-ft/plugin.c | 501 ++++++++++++++++++++++++++++++ + 5 files changed, 543 insertions(+), 1 deletion(-) + create mode 100644 src/plugins/controls/label-ft/Makefile.am + create mode 100644 src/plugins/controls/label-ft/plugin.c + diff -Nura plymouth-0.9.5+git20200921+20778f2/configure.ac plymouth-0.9.5+git20200921+20778f2_new/configure.ac --- plymouth-0.9.5+git20200921+20778f2/configure.ac 2020-10-05 21:49:25.578220035 +0800 +++ plymouth-0.9.5+git20200921+20778f2_new/configure.ac 2020-10-05 22:07:57.754186183 +0800 ++++++ 0002-Install-label-ft-plugin-into-initrd-if-available.patch ++++++ --- /var/tmp/diff_new_pack.Q14Cgw/_old 2022-05-08 21:52:10.031449137 +0200 +++ /var/tmp/diff_new_pack.Q14Cgw/_new 2022-05-08 21:52:10.031449137 +0200 @@ -1,3 +1,15 @@ +From 2c4145e4b7e146541ba8e33aee5e0125423d97bc Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <[email protected]> +Date: Wed, 20 Jan 2016 14:03:18 +0100 +Subject: [PATCH 2/2] Install label-ft plugin into initrd, if available + +It is small and useful enough to include it by default. + +Signed-off-by: Fabian Vogt <[email protected]> +--- + scripts/plymouth-populate-initrd.in | 9 +++++++++ + 1 file changed, 9 insertions(+) + diff -Nura plymouth-0.9.5+git20200921+20778f2/scripts/plymouth-populate-initrd.in plymouth-0.9.5+git20200921+20778f2_new/scripts/plymouth-populate-initrd.in --- plymouth-0.9.5+git20200921+20778f2/scripts/plymouth-populate-initrd.in 2020-10-05 23:05:13.055563514 +0800 +++ plymouth-0.9.5+git20200921+20778f2_new/scripts/plymouth-populate-initrd.in 2020-10-05 23:08:35.098420945 +0800 ++++++ 0003-fix_null_deref.patch ++++++ --- /var/tmp/diff_new_pack.Q14Cgw/_old 2022-05-08 21:52:10.043449152 +0200 +++ /var/tmp/diff_new_pack.Q14Cgw/_new 2022-05-08 21:52:10.047449157 +0200 @@ -1,3 +1,20 @@ +From 99ee02fe20ae53323fe5756416e6a7d96a3baf8a Mon Sep 17 00:00:00 2001 +From: Fabian Vogt <[email protected]> +Date: Thu, 21 Jan 2016 10:39:21 +0100 +Subject: [PATCH 1/3] ply-label: Don't crash if label plugin fails + +The label plugin's create_control function can return NULL if allocation +failed, for example, but ply-label.c ignores that and uses the NULL control, +causing various SEGVs. + +Signed-off-by: Fabian Vogt <[email protected]> +--- + src/libply-splash-graphics/ply-label.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +Index: plymouth-0.9.2/src/libply-splash-graphics/ply-label.c +=================================================================== + diff -Nura plymouth-0.9.5+git20200921+20778f2/src/libply-splash-graphics/ply-label.c plymouth-0.9.5+git20200921+20778f2_new/src/libply-splash-graphics/ply-label.c --- plymouth-0.9.5+git20200921+20778f2/src/libply-splash-graphics/ply-label.c 2020-10-05 23:11:23.011964608 +0800 +++ plymouth-0.9.5+git20200921+20778f2_new/src/libply-splash-graphics/ply-label.c 2020-10-05 23:17:39.139340680 +0800 ++++++ plymouth-log-on-default.patch ++++++ diff -Nura plymouth-0.9.5~git20220412.e960111/src/libply/ply-buffer.c plymouth-0.9.5~git20220412.e960111_new/src/libply/ply-buffer.c --- plymouth-0.9.5~git20220412.e960111/src/libply/ply-buffer.c 2022-04-15 16:39:24.000000000 +0800 +++ plymouth-0.9.5~git20220412.e960111_new/src/libply/ply-buffer.c 2022-05-07 12:10:27.891589631 +0800 @@ -46,6 +46,10 @@ #define PLY_BUFFER_MAX_BUFFER_CAPACITY (255 * 4096) #endif +#ifndef PLY_BUFFER_MAX_LOG_BUFFER_CAPACITY +#define PLY_BUFFER_MAX_LOG_BUFFER_CAPACITY (1024 * 4096) +#endif + struct _ply_buffer { char *data; @@ -67,6 +71,20 @@ return true; } +static bool +ply_buffer_increase_log_capacity (ply_buffer_t *buffer) +{ + assert (buffer != NULL); + + if ((buffer->capacity * 2) > PLY_BUFFER_MAX_LOG_BUFFER_CAPACITY) + return false; + + buffer->capacity *= 2; + + buffer->data = realloc (buffer->data, buffer->capacity); + return true; +} + void ply_buffer_remove_bytes (ply_buffer_t *buffer, size_t bytes_to_remove) @@ -195,6 +213,36 @@ ply_buffer_remove_bytes (buffer, length); } + assert (buffer->size + length < buffer->capacity); + + memcpy (buffer->data + buffer->size, + bytes, length); + + buffer->size += length; + buffer->data[buffer->size] = '\0'; +} + +void +ply_buffer_append_log_bytes (ply_buffer_t *buffer, + const void *bytes_in, + size_t length) +{ + assert (buffer != NULL); + assert (bytes_in != NULL); + assert (length != 0); + + const uint8_t *bytes = bytes_in; + + if (length > PLY_BUFFER_MAX_BUFFER_CAPACITY) { + bytes += length - (PLY_BUFFER_MAX_BUFFER_CAPACITY - 1); + length = (PLY_BUFFER_MAX_BUFFER_CAPACITY - 1); + } + + while ((buffer->size + length) >= buffer->capacity) { + if (!ply_buffer_increase_log_capacity (buffer)) + ply_buffer_remove_bytes (buffer, length); + } + assert (buffer->size + length < buffer->capacity); memcpy (buffer->data + buffer->size, diff -Nura plymouth-0.9.5~git20220412.e960111/src/libply/ply-buffer.h plymouth-0.9.5~git20220412.e960111_new/src/libply/ply-buffer.h --- plymouth-0.9.5~git20220412.e960111/src/libply/ply-buffer.h 2022-04-15 16:39:24.000000000 +0800 +++ plymouth-0.9.5~git20220412.e960111_new/src/libply/ply-buffer.h 2022-05-07 12:10:27.892589638 +0800 @@ -34,7 +34,10 @@ void ply_buffer_append_bytes (ply_buffer_t *buffer, const void *bytes, size_t number_of_bytes); - +void ply_buffer_append_log_bytes (ply_buffer_t *buffer, + const void *bytes, + size_t length); + void ply_buffer_append_from_fd (ply_buffer_t *buffer, int fd); #define ply_buffer_append(buffer, format, args ...) \ diff -Nura plymouth-0.9.5~git20220412.e960111/src/main.c plymouth-0.9.5~git20220412.e960111_new/src/main.c --- plymouth-0.9.5~git20220412.e960111/src/main.c 2022-04-15 16:39:24.000000000 +0800 +++ plymouth-0.9.5~git20220412.e960111_new/src/main.c 2022-05-07 12:10:27.892589638 +0800 @@ -1225,8 +1225,7 @@ } /* do not let any tty opened where we could write after deactivate */ - if (ply_kernel_command_line_has_argument ("plymouth.debug")) - ply_logger_close_file (ply_logger_get_error_default ()); + ply_logger_close_file (ply_logger_get_error_default ()); } @@ -1854,71 +1853,39 @@ } static void -check_verbosity (state_t *state) +initialize_debug (state_t *state) { - char *stream; - ply_trace ("checking if tracing should be enabled"); + if (!ply_is_tracing ()) + ply_toggle_tracing (); - if (!debug_buffer_path) - debug_buffer_path = ply_kernel_command_line_get_key_value ("plymouth.debug=file:"); - - stream = ply_kernel_command_line_get_key_value ("plymouth.debug=stream:"); - if (stream != NULL || debug_buffer_path != NULL || - ply_kernel_command_line_has_argument ("plymouth.debug")) { - int fd; - - ply_trace ("tracing should be enabled!"); - if (!ply_is_tracing ()) - ply_toggle_tracing (); - - if (debug_buffer == NULL) - debug_buffer = ply_buffer_new (); - - if (stream != NULL) { - ply_trace ("streaming debug output to %s instead of screen", stream); - fd = open (stream, O_RDWR | O_NOCTTY | O_CREAT, 0600); - - if (fd < 0) - ply_trace ("could not stream output to %s: %m", stream); - else - ply_logger_set_output_fd (ply_logger_get_error_default (), fd); - free (stream); - } else { - const char *device; - char *file; - - device = state->default_tty; + if (debug_buffer == NULL) + debug_buffer = ply_buffer_new (); - ply_trace ("redirecting debug output to %s", device); - - if (strncmp (device, "/dev/", strlen ("/dev/")) == 0) - file = strdup (device); - else - asprintf (&file, "/dev/%s", device); - - fd = open (file, O_RDWR | O_APPEND); + char *stream = ply_kernel_command_line_get_key_value ("plymouth.debug=stream:"); + if (stream != NULL) + { + int fd = open (stream, O_RDWR | O_NOCTTY | O_CREAT, 0600); + if (fd < 0) + ply_trace ("could not stream output to %s: %m", stream); + else + ply_logger_set_output_fd (ply_logger_get_error_default (), fd); + free (stream); + } - if (fd < 0) - ply_trace ("could not redirected debug output to %s: %m", device); - else - ply_logger_set_output_fd (ply_logger_get_error_default (), fd); + if (!debug_buffer_path) + debug_buffer_path = ply_kernel_command_line_get_key_value ("plymouth.debug=file:"); - free (file); - } - } else { - ply_trace ("tracing shouldn't be enabled!"); + if (debug_buffer_path == NULL) + { + if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || state->mode == PLY_BOOT_SPLASH_MODE_REBOOT) + debug_buffer_path = strdup (PLYMOUTH_LOG_DIRECTORY "/plymouth-shutdown-debug.log"); + else + debug_buffer_path = strdup (PLYMOUTH_LOG_DIRECTORY "/plymouth-debug.log"); } - if (debug_buffer != NULL) { - if (debug_buffer_path == NULL) { - if (state->mode == PLY_BOOT_SPLASH_MODE_SHUTDOWN || - state->mode == PLY_BOOT_SPLASH_MODE_REBOOT) - debug_buffer_path = strdup (PLYMOUTH_LOG_DIRECTORY "/plymouth-shutdown-debug.log"); - else - debug_buffer_path = strdup (PLYMOUTH_LOG_DIRECTORY "/plymouth-debug.log"); - } - + if (debug_buffer != NULL) + { ply_logger_add_filter (ply_logger_get_error_default (), (ply_logger_filter_handler_t) on_error_message, @@ -2007,7 +1974,7 @@ } } - check_verbosity (state); + initialize_debug (state); check_logging (state); ply_trace ("source built on %s", __DATE__); @@ -2033,7 +2000,7 @@ const void *bytes, size_t number_of_bytes) { - ply_buffer_append_bytes (debug_buffer, bytes, number_of_bytes); + ply_buffer_append_log_bytes (debug_buffer, bytes, number_of_bytes); } static void @@ -2156,7 +2123,7 @@ bool should_help = false; bool no_boot_log = false; bool no_daemon = false; - bool debug = false; + bool debug = true; bool ignore_serial_consoles = false; bool attach_to_session; ply_daemon_handle_t *daemon_handle = NULL; ++++++ plymouth-only_use_fb_for_cirrus_bochs.patch ++++++ --- /var/tmp/diff_new_pack.Q14Cgw/_old 2022-05-08 21:52:10.099449223 +0200 +++ /var/tmp/diff_new_pack.Q14Cgw/_new 2022-05-08 21:52:10.103449228 +0200 @@ -1,3 +1,14 @@ +From: Fabian Vogt <[email protected]> +Subject: force fb for cirrus and bochs, force drm otherwise +References: bsc#888590, bsc#980750 + +DRM does not work well with cirrus and bochs (no display) but the framebuffer driver +prevents DRM drivers from loading. +As we need to support cirrus for libvirt and bochs for QEMU, we cannot just remove support for frame-buffer. + +Index: plymouth-0.9.3+git20180807.7663b0c/src/libply-splash-core/ply-device-manager.c +=================================================================== + diff -Nura plymouth-0.9.5~git20220412.e960111/src/libply-splash-core/ply-device-manager.c plymouth-0.9.5~git20220412.e960111_new/src/libply-splash-core/ply-device-manager.c --- plymouth-0.9.5~git20220412.e960111/src/libply-splash-core/ply-device-manager.c 2022-04-15 16:39:24.000000000 +0800 +++ plymouth-0.9.5~git20220412.e960111_new/src/libply-splash-core/ply-device-manager.c 2022-04-18 16:33:00.126364096 +0800
