Summary: | Неправильное форматирование списка удаляемых системных пакетов | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | 1lion23550 | ||||
Component: | apt | Assignee: | Ivan Zakharyaschev <imz> | ||||
Status: | NEW --- | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P5 | CC: | boyarsh, glebfm, imz, iv, ldv, liannnix, placeholder, sin | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
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 по умолчанию, признать, что мы не готовы к таким продвинутым технологиям. Прошу мейнтейнера выссказаться. |
Created attachment 16899 [details] Снимок проблемы Версия пакета: 0.5.15lorg2-alt88 Эмулятор терминала: Konsole (23.08.5-alt1) Размер шрифта и разрешение экрана не играют роли. Команда для воспроизведения (с правами root): apt-get remove libpcre2