Bug 51546 - Неправильное форматирование списка удаляемых системных пакетов
Summary: Неправильное форматирование списка удаляемых системных пакетов
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: apt (show other bugs)
Version: unstable
Hardware: all Linux
: P5 normal
Assignee: Ivan Zakharyaschev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-09-24 14:27 MSK by 1lion23550
Modified: 2024-11-08 19:10 MSK (History)
8 users (show)

See Also:


Attachments
Снимок проблемы (133.90 KB, image/png)
2024-09-24 14:27 MSK, 1lion23550
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description 1lion23550 2024-09-24 14:27:18 MSK
Created attachment 16899 [details]
Снимок проблемы

Версия пакета: 0.5.15lorg2-alt88
Эмулятор терминала: Konsole (23.08.5-alt1)
Размер шрифта и разрешение экрана не играют роли.

Команда для воспроизведения (с правами root):
apt-get remove libpcre2
Comment 1 Ivan A. Melnikov 2024-11-08 18:43:45 MSK
ShowEssential оказывается передаёт List с пробелами. Я думал, что такое невозможно: ведь тогда VersionList будет выдан криво. Но разработчики оригинального apt'а оригинальны и хитры: они не заполняют VersionList в ShowEssential, оставляя его закомментированным с тремя знаками вопроса:

//VersionsList += string(Cache[I].CurVersion) + "\n"; ???

Это можно использовать, чтобы по традиции запилить минимально инвазивный костыль:

https://git.altlinux.org/people/iv/packages/apt.git?a=commitdiff;h=3f21b7afaed7f7bbd4abefbea7c56adeef877952

Я проверял, работает. Назовём его вариант номер 0.

Есть и другие варианты решения проблемы:
1. попытаться как-то подетектить круглые скобочки в List и разбить список по ним;
2. бекпортировать с апстрима то, что они сделали с ShowList (они его превратили в template);
3. реализовать свой ShowListEx, который будет брать List и VersionList как вектора строк; текущий ShowList реализовать в терминах ShowListEx и оставить для обратной совместимости;
4. просто поставить APT::Get::List-Columns в false по умолчанию, признать, что мы не готовы к таким продвинутым технологиям.

Прошу мейнтейнера выссказаться.