Created attachment 22017 [details] Запуск под bash -x Версия пакета: plymouth-26.134.222-alt1 После выполнения `plymouth-set-default-theme --reset` попытка установить новую тему командой `plymouth-set-default-theme <имя>` завершается без ошибок, но ключ `Theme=` фактически не записывается в `/etc/plymouth/plymouthd.conf`. В результате тема сбрасывается на `text`. Шаги воспроизведения: 1) plymouth-set-default-theme --reset 2) plymouth-set-default-theme bgrt-alt 3) cat /etc/plymouth/plymouthd.conf # Строка Theme= отсутствует 4) plymouth-set-default-theme # Возвращает "text" вместо "bgrt-alt" Ожидаемый результат: Запись `Theme=bgrt-alt` должна появиться под секцией `[Daemon]` в файле `/etc/plymouth/plymouthd.conf`. Фактический результат: ``` # plymouth-set-default-theme --reset # cat /etc/plymouth/plymouthd.conf # Administrator customizations go in this file [Daemon] # plymouth-set-default-theme bgrt-alt # echo $? 0 # cat /etc/plymouth/plymouthd.conf # Administrator customizations go in this file [Daemon] ``` Исправление: ``` --- a/usr/sbin/plymouth-set-default-theme +++ b/usr/sbin/plymouth-set-default-theme @@ -138,9 +138,8 @@ function read_or_set_file_ini_value () if [[ $CONFIG_VALUE_LINE_NUMBER == 0 ]]; then - CONFIG_FILE_LINE_COUNT=$(( $INI_SEGMENT_LINE_NUMBER + 1 )) - sed -i "$CONFIG_FILE_LINE_COUNT i $CONFIG_FILE_VALUE_NAME=$CONFIG_FILE_VALUE_NEW_VALUE" "$CONFIG_FILE_PATH" + sed -i "${INI_SEGMENT_LINE_NUMBER}a\\${CONFIG_FILE_VALUE_NAME}=${CONFIG_FILE_VALUE_NEW_VALUE}" "$CONFIG_FILE_PATH" else - sed -ie "${CONFIG_VALUE_LINE_NUMBER}s/.*/$CONFIG_FILE_VALUE_NAME=$CONFIG_FILE_VALUE_NEW_VALUE/" "$CONFIG_FILE_PATH" + sed -i "${CONFIG_VALUE_LINE_NUMBER}s|.*|${CONFIG_FILE_VALUE_NAME}=${CONFIG_FILE_VALUE_NEW_VALUE}|" "$CONFIG_FILE_PATH" fi fi ``` Патч и запуск под bash -x до исправления во вложении.
Created attachment 22018 [details] Патч
Vladislav Glinkin, спасибо. С первой заменой понятно, 3-й строчки нет, вот sed и не меняет. Поэтому вы меняете замену на добавление строки. А вторую строчку меняете по какой причине?
(Ответ для Антон Мидюков на комментарий #2) > Vladislav Glinkin, спасибо. > С первой заменой понятно, 3-й строчки нет, вот sed и не меняет. Поэтому вы > меняете замену на добавление строки. > А вторую строчку меняете по какой причине? С исправлением работы установки темы будет другая проблема: `sed -ie` создаёт бэкап-файл `plymouthd.confe` из-за неверной интерпретации флага `-e` как суффикса бэкапа. ``` # plymouth-set-default-theme bgrt-alt # plymouth-set-default-theme details # ls /etc/plymouth/plymouthd.conf* /etc/plymouth/plymouthd.conf /etc/plymouth/plymouthd.confe ``` Ну а разделитель - дело вкуса.
(Ответ для Vladislav Glinkin на комментарий #3) > (Ответ для Антон Мидюков на комментарий #2) > > Vladislav Glinkin, спасибо. > > С первой заменой понятно, 3-й строчки нет, вот sed и не меняет. Поэтому вы > > меняете замену на добавление строки. > > А вторую строчку меняете по какой причине? > > С исправлением работы установки темы будет другая проблема: > `sed -ie` создаёт бэкап-файл `plymouthd.confe` из-за неверной интерпретации > флага `-e` как суффикса бэкапа. > > ``` > # plymouth-set-default-theme bgrt-alt > # plymouth-set-default-theme details > # ls /etc/plymouth/plymouthd.conf* > /etc/plymouth/plymouthd.conf /etc/plymouth/plymouthd.confe > ``` > > Ну а разделитель - дело вкуса. Так достаточно же написать -i -e
Завёл issue в апстриме: https://gitlab.freedesktop.org/plymouth/plymouth/-/work_items/348 К сожалению, мне там не дают сделать merge-request.
(Ответ для Антон Мидюков на комментарий #5) > Завёл issue в апстриме: > https://gitlab.freedesktop.org/plymouth/plymouth/-/work_items/348 > > К сожалению, мне там не дают сделать merge-request. Один из разработчиков сделал merge request: https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/488 Разработчик решил добавлять новую строку, когда её не хватает.
plymouth-1:26.134.222-alt2 -> sisyphus: Fri Aug 21 2026 Anton Midyukov <antohami@altlinux> 1:26.134.222-alt2 - Add upstream fix: + plymouth-set-default-theme: Add lines to the config file when a new line needs to be added (Closes: 60173).