Bug 55977 - remove-old-kernels не предлагает удалить ядра, которых нет в репозитории
Summary: remove-old-kernels не предлагает удалить ядра, которых нет в репозитории
Status: CLOSED MOVED
Alias: None
Product: Sisyphus
Classification: Development
Component: update-kernel (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-09-14 14:01 MSK by Антон Мидюков
Modified: 2025-10-01 02:24 MSK (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Антон Мидюков 2025-09-14 14:01:40 MSK
remove-old-kernels не предлагает удалить ядра с другими flavour, которых нет в репозитории.
Исключением должно быть только запущенное ядро.
Это необходимо сделать, так как теперь происходит автоматический переход с flavour_pre на flavour_next при исчезновении из репозитория flavour_pre. Недопустимо накопление старых неподдерживаемых flavour_pre в системе.
Comment 1 Vitaly Chikunov 2025-09-14 16:01:21 MSK
remove-old-kernels -A?
Comment 2 Leonid Krivoshein 2025-09-14 16:13:22 MSK
(In reply to Vitaly Chikunov from comment #1)
> remove-old-kernels -A?
Не работает. Последние ядра других флейворов не удаляются даже с -b -A.
Comment 3 Vitaly Chikunov 2025-09-14 16:16:41 MSK
Баг что не работает опция -A?
Comment 4 Leonid Krivoshein 2025-09-14 16:21:30 MSK
Сейчас в c10f2 после переключения на 6.12 работает только такой сценарий:

# remove-old-kernels -a -B
# rpm -e kernel-image-un-def $(env LANG=C rpm -e kernel-image-un-def 2>&1 |
  grep kernel-modules |awk '{print $8}')

По-моему, баг должен быть о том, что нужно удалять ядра всех флейворов (с -a) или указанных (-t), кроме текущего, если мы загрузились на численно более свежей версии, независимо от того, что там лежит или не лежит в репозитории.
Comment 5 Leonid Krivoshein 2025-09-14 16:24:21 MSK
(In reply to Vitaly Chikunov from comment #3)
> Баг что не работает опция -A?
Пробовал разные регистры, и --all, не работает.
Comment 6 Vitaly Chikunov 2025-09-14 16:24:49 MSK
В примере не опция -A.
Comment 7 Leonid Krivoshein 2025-09-14 16:39:49 MSK
(In reply to Leonid Krivoshein from comment #5)
> (In reply to Vitaly Chikunov from comment #3)
> > Баг что не работает опция -A?
> Пробовал разные регистры, и --all, не работает.
Сейчас перепроверил с -A, не обновляя пакетной базы, т.е. без dist-upgrade, всё работает. Возможно я натыкался на регрессию. Сейчас ещё раз перепроверю полное обновление.
Comment 8 Vitaly Chikunov 2025-09-14 16:52:58 MSK
-a -A -B запутывают я согласен что изъян UI/UX. Вроде опции осмысленные, если их понять, но когда "через месяц" забываешь, то уже не понятно что передавать и многие передают наугад.

-B вообще не надо использовать никогда, надо её убрать.
Comment 9 Leonid Krivoshein 2025-09-14 16:54:37 MSK
Почему-то не работают:

-t un-def
-B -t un-def
-a
-B -a

С -A работает, видимо был невнимателен.
Comment 10 Vitaly Chikunov 2025-09-14 18:38:11 MSK
(Продолжение про UI/UX): у -t тоже смысл меняется, это не то ядро которое мы хотим удалить а то которое хотим оставить. В общем эти утилиты это полная катастрофа.
Comment 11 Антон Мидюков 2025-09-14 21:06:27 MSK
(Ответ для Leonid Krivoshein на комментарий #4)
> Сейчас в c10f2 после переключения на 6.12 работает только такой сценарий:
> 
> # remove-old-kernels -a -B
> # rpm -e kernel-image-un-def $(env LANG=C rpm -e kernel-image-un-def 2>&1 |
>   grep kernel-modules |awk '{print $8}')
> 
> По-моему, баг должен быть о том, что нужно удалять ядра всех флейворов (с
> -a) или указанных (-t), кроме текущего, если мы загрузились на численно
> более свежей версии, независимо от того, что там лежит или не лежит в
> репозитории.

Нет. Я написал конкретный use case - предлагать по дефолту к удалению ядра с flavour'ами, которых нет в репозитории, помимо старых версий текущего flavour'а. И объяснил чем это вызвано.
Comment 12 Антон Мидюков 2025-09-14 21:07:18 MSK
(Ответ для Vitaly Chikunov на комментарий #1)
> remove-old-kernels -A?

Я предлагаю изменить дефолт.
Comment 13 Vitaly Chikunov 2025-09-23 10:11:31 MSK
Тестовое задание 395606
Comment 14 Антон Мидюков 2025-09-26 13:01:20 MSK
(Ответ для Vitaly Chikunov на комментарий #13)
> Тестовое задание 395606

Я попробовал. Цифровые и un-def удаляет, когда их нет в репозитории, сколько ядрам дней значения не имеет, текущее загруженное ядро не трогает, другие flavour'ы не трогает. Так что в целом то, что требовалось.
Comment 15 Vitaly Chikunov 2025-09-26 13:04:17 MSK
Надо заревьювить код, но так как это никто другой не будет делать надо самому забыть.
Comment 16 Leonid Krivoshein 2025-09-27 03:15:27 MSK
(In reply to Vitaly Chikunov from comment #15)
> Надо заревьювить код, но так как это никто другой не будет делать надо
> самому забыть.
Я смотрел его сразу мельком, одна опечатка с опцией -B есть -- вместо ;; в конце кейса ;& такое вот. https://git.altlinux.org/tasks/395606/gears/300/git?p=git;a=commitdiff;h=9ed6ec543269468962f6578a9e0c3e120a7c3d92
Comment 17 Vitaly Chikunov 2025-09-27 03:28:43 MSK
Спасибо, но это валидный код в bash.
Comment 18 Repository Robot 2025-09-27 04:28:25 MSK
update-kernel-1.21-alt1 -> sisyphus:

Thu Sep 25 2025 Vitaly Chikunov <vt@altlinux> 1.21-alt1
- remove-old-kernels: Remove flavours deleted from the repository (ALT#55977).
- remove-old-kernels: Treat stable kernels as single flavour.
Comment 19 Vitaly Chikunov 2025-10-01 02:22:10 MSK
Да, энный блин комом, и в логике оказался таки баг, 6.16 не удалилось при релизе 6.17, так как внутри latest псевдо-флейвора ядра обрабатываются как -a (даже при передаче -A).
Comment 20 Vitaly Chikunov 2025-10-01 02:24:38 MSK
REOPEN то я зря нажал так как это уже не проблема удаления EOL ядер.