Created attachment 16899 [details] Снимок проблемы Версия пакета: 0.5.15lorg2-alt88 Эмулятор терминала: Konsole (23.08.5-alt1) Размер шрифта и разрешение экрана не играют роли. Команда для воспроизведения (с правами root): apt-get remove libpcre2
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 по умолчанию, признать, что мы не готовы к таким продвинутым технологиям. Прошу мейнтейнера выссказаться.
apt-0.5.15lorg2-alt91 -> sisyphus: Tue Apr 08 2025 Ivan Zakharyaschev <imz@altlinux> 0.5.15lorg2-alt91 - Fixes for ShowEssential output (showing the essential to-be-removed packages): + Applied a trick to fix a bad case of columnar output (thx iv@). (ALT#51546) + Restored a missing space in its translated output (be, ja, ru). - New sample configs in apt.conf.d: + 01-Debug-pkgMarkInstall.conf: the common options for bug reports (ALT#49565) + 01-Debug-Acquire.conf: for debugging fetching and connections + 01-UI.conf: to turn off the columnar output from 0.5.15lorg2-alt88 in the UI
(Ответ для Ivan A. Melnikov на комментарий #1) > ShowEssential оказывается передаёт List с пробелами. Я думал, что такое > невозможно: ведь тогда VersionList будет выдан криво. Но разработчики Запишу сюда, что есть случаи, когда всё же криво и в режиме APT::Get::Show-Versions=yes, и в нашем APT::Get::List-Columns=yes -- список replaced. (В конце пример.) > оригинального apt'а оригинальны и хитры: они не заполняют VersionList в > ShowEssential, оставляя его закомментированным с тремя знаками вопроса: > > //VersionsList += string(Cache[I].CurVersion) + "\n"; ??? > > Это можно использовать, чтобы по традиции запилить минимально инвазивный > костыль: > Я проверял, работает. Назовём его вариант номер 0. > > Есть и другие варианты решения проблемы: > 1. попытаться как-то подетектить круглые скобочки в List и разбить список по > ним; ну можно. Думаю написать (чтобы пробел перед скобкой не считать за пробел, и пропускать всё до парной скобки) > 2. бекпортировать с апстрима то, что они сделали с ShowList (они его > превратили в template); Пример: ]# apt-get install ghc9.6-package-base Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: ghc9.6-package-array ghc9.6-package-containers ghc9.6-package-filepath ghc9.6-package-ghc-heap ghc9.6-package-parsec ghc9.6-package-template-haskell ghc9.6-package-time ghc9.6-package-xhtml ghc9.6-package-binary ghc9.6-package-deepseq ghc9.6-package-ghc-bignum ghc9.6-package-ghc-prim ghc9.6-package-pretty ghc9.6-package-terminfo ghc9.6-package-transformers rpm-macros-ghc9.6-common ghc9.6-package-bytestring ghc9.6-package-exceptions ghc9.6-package-ghc-boot-th ghc9.6-package-mtl ghc9.6-package-stm ghc9.6-package-text ghc9.6-package-unix The following packages will be upgraded rpm-macros-ghc9.6-common The following packages will be REPLACED: ghc9.6-array ghc9.6-bytestring ghc9.6-exceptions ghc9.6-ghc-boot-th ghc9.6-mtl ghc9.6-stm ghc9.6-text ghc9.6-unix (by (by (by (by (by (by (by (by ghc9.6-package-array) ghc9.6-package-bytestring) ghc9.6-package-exceptions) ghc9.6-package-ghc-boot-th) ghc9.6-package-mtl) ghc9.6-package-stm) ghc9.6-package-text) ghc9.6-package-unix) ghc9.6-base ghc9.6-containers ghc9.6-filepath ghc9.6-ghc-heap ghc9.6-parsec ghc9.6-template-haskell ghc9.6-time ghc9.6-xhtml (by (by (by (by (by (by (by (by ghc9.6-package-base) ghc9.6-package-containers) ghc9.6-package-filepath) ghc9.6-package-ghc-heap) ghc9.6-package-parsec) ghc9.6-package-template-haskell) ghc9.6-package-time) ghc9.6-package-xhtml) ghc9.6-binary ghc9.6-deepseq ghc9.6-ghc-bignum ghc9.6-ghc-prim ghc9.6-pretty ghc9.6-terminfo ghc9.6-transformers (by (by (by (by (by (by (by ghc9.6-package-binary) ghc9.6-package-deepseq) ghc9.6-package-ghc-bignum) ghc9.6-package-ghc-prim) ghc9.6-package-pretty) ghc9.6-package-terminfo) ghc9.6-package-transformers) The following packages will be REMOVED: ghc9.6 ghc9.6-Cabal-syntax ghc9.6-common ghc9.6-ghc ghc9.6-ghc-boot ghc9.6-ghci ghc9.6-hpc ghc9.6-process ghc9.6-Cabal ghc9.6-base-devel ghc9.6-directory ghc9.6-ghc-bignum-devel ghc9.6-ghc-prim-devel ghc9.6-haskeline ghc9.6-libiserv The following NEW packages will be installed: ghc9.6-package-array ghc9.6-package-bytestring ghc9.6-package-exceptions ghc9.6-package-ghc-boot-th ghc9.6-package-mtl ghc9.6-package-stm ghc9.6-package-text ghc9.6-package-unix ghc9.6-package-base ghc9.6-package-containers ghc9.6-package-filepath ghc9.6-package-ghc-heap ghc9.6-package-parsec ghc9.6-package-template-haskell ghc9.6-package-time ghc9.6-package-xhtml ghc9.6-package-binary ghc9.6-package-deepseq ghc9.6-package-ghc-bignum ghc9.6-package-ghc-prim ghc9.6-package-pretty ghc9.6-package-terminfo ghc9.6-package-transformers 1 upgraded, 23 newly installed, 23 replaced, 15 removed and 1889 not upgraded. Need to get 6410kB of archives. After unpacking 658MB disk space will be freed. Do you want to continue? [Y/n] n Abort. # rpm -q apt apt-0.5.15lorg2-alt100.x86_64 # apt-get -o APT::Get::Show-Versions=yes install ghc9.6-package-base Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: ghc9.6-package-array (0.5.8.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-binary (0.8.9.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-bytestring (0.11.5.4-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-containers (0.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-deepseq (1.4.8.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-exceptions (0.10.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-filepath (1.4.301.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-bignum (1.3-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-boot-th (9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-heap (9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-prim (0.10.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-mtl (2.3.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-parsec (3.1.16.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-pretty (1.1.3.6-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-stm (2.5.1.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-template-haskell (2.20.0.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-terminfo (0.4.1.6-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-text (2.0.2-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-time (1.12.2-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-transformers (0.6.1.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-unix (2.8.6.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-xhtml (3000.2.2.1-alt2:sisyphus+414302.200.2.2@1775496205) rpm-macros-ghc9.6-common (9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) The following packages will be upgraded rpm-macros-ghc9.6-common (p11+383990.200.3.1@1750711102 => 9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) The following packages will be REPLACED: ghc9.6-array (9.6.6-alt3:p11+383990.200.3.1@1750711102) (by (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-array) (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) (0.5.6.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-base (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) (by (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-base) (0.8.9.1-alt3:p11+383990.200.3.1@1750711102) (0.11.5.3-alt3:p11+383990.200.3.1@1750711102) ghc9.6-binary (9.6.6-alt3:p11+383990.200.3.1@1750711102) (by (0.6.7-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-binary) (1.4.8.1-alt3:p11+383990.200.3.1@1750711102) (1.3.8.5-alt3:p11+383990.200.3.1@1750711102) ghc9.6-bytestring (0.10.7-alt3:p11+383990.200.3.1@1750711102) (by (1.4.300.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-bytestring) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (1.3-alt3:p11+383990.200.3.1@1750711102) ghc9.6-containers (1.3-alt3:p11+383990.200.3.1@1750711102) (by (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-containers) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-deepseq (0.10.0-alt3:p11+383990.200.3.1@1750711102) (by (0.10.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-deepseq) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (0.8.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-exceptions (0.6.2.0-alt3:p11+383990.200.3.1@1750711102) (by (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-exceptions) (2.3.1-alt3:p11+383990.200.3.1@1750711102) (3.1.16.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-filepath (1.1.3.6-alt3:p11+383990.200.3.1@1750711102) (by (1.6.19.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-filepath) (2.5.1.0-alt3:p11+383990.200.3.1@1750711102) (2.20.0.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-bignum (0.4.1.6-alt3:p11+383990.200.3.1@1750711102) (by (2.0.2-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-ghc-bignum) (1.12.2-alt3:p11+383990.200.3.1@1750711102) (0.6.1.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-boot-th (2.8.4.0-alt3:p11+383990.200.3.1@1750711102) (by (3000.2.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-ghc-boot-th) () (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-heap (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) (by (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-ghc-heap) (0.5.6.0-alt3:p11+383990.200.3.1@1750711102) (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-prim (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) (by (0.8.9.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-ghc-prim) (0.11.5.3-alt3:p11+383990.200.3.1@1750711102) (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-mtl (0.6.7-alt3:p11+383990.200.3.1@1750711102) (by (1.4.8.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-mtl) (1.3.8.5-alt3:p11+383990.200.3.1@1750711102) (0.10.7-alt3:p11+383990.200.3.1@1750711102) ghc9.6-parsec (1.4.300.1-alt3:p11+383990.200.3.1@1750711102) (by (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-parsec) (1.3-alt3:p11+383990.200.3.1@1750711102) (1.3-alt3:p11+383990.200.3.1@1750711102) ghc9.6-pretty (9.6.6-alt3:p11+383990.200.3.1@1750711102) (by (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-pretty) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (0.10.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-stm (0.10.0-alt3:p11+383990.200.3.1@1750711102) (by (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-stm) (0.8.2.1-alt3:p11+383990.200.3.1@1750711102) (0.6.2.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-template-haskell (9.6.6-alt3:p11+383990.200.3.1@1750711102) (by (2.3.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-template-haskell) (3.1.16.1-alt3:p11+383990.200.3.1@1750711102) (1.1.3.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-terminfo (1.6.19.0-alt3:p11+383990.200.3.1@1750711102) (by (2.5.1.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-terminfo) (2.20.0.0-alt3:p11+383990.200.3.1@1750711102) (0.4.1.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-text (2.0.2-alt3:p11+383990.200.3.1@1750711102) (by (1.12.2-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-text) (0.6.1.0-alt3:p11+383990.200.3.1@1750711102) (2.8.4.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-time (3000.2.2.1-alt3:p11+383990.200.3.1@1750711102) (by () ghc9.6-package-time) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-transformers (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) (by (0.5.6.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-transformers) (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-unix (0.8.9.1-alt3:p11+383990.200.3.1@1750711102) (by (0.11.5.3-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-unix) (9.6.6-alt3:p11+383990.200.3.1@1750711102) (0.6.7-alt3:p11+383990.200.3.1@1750711102) ghc9.6-xhtml (1.4.8.1-alt3:p11+383990.200.3.1@1750711102) (by (1.3.8.5-alt3:p11+383990.200.3.1@1750711102) ghc9.6-package-xhtml) (0.10.7-alt3:p11+383990.200.3.1@1750711102) The following packages will be REMOVED: ghc9.6 (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-Cabal (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-Cabal-syntax (3.10.3.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-base-devel (0.5.6.0-alt3:p11+383990.200.3.1@1750711102) ghc9.6-common (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-directory (4.18.2.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc (0.8.9.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-bignum-devel (0.11.5.3-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-boot (9.6.6-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghc-prim-devel (0.6.7-alt3:p11+383990.200.3.1@1750711102) ghc9.6-ghci (1.4.8.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-haskeline (1.3.8.5-alt3:p11+383990.200.3.1@1750711102) ghc9.6-hpc (0.10.7-alt3:p11+383990.200.3.1@1750711102) ghc9.6-libiserv (1.4.300.1-alt3:p11+383990.200.3.1@1750711102) ghc9.6-process (9.6.6-alt3:p11+383990.200.3.1@1750711102) The following NEW packages will be installed: ghc9.6-package-array (0.5.8.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-base (4.18.3.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-binary (0.8.9.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-bytestring (0.11.5.4-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-containers (0.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-deepseq (1.4.8.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-exceptions (0.10.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-filepath (1.4.301.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-bignum (1.3-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-boot-th (9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-heap (9.6.7-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-ghc-prim (0.10.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-mtl (2.3.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-parsec (3.1.16.1-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-pretty (1.1.3.6-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-stm (2.5.1.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-template-haskell (2.20.0.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-terminfo (0.4.1.6-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-text (2.0.2-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-time (1.12.2-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-transformers (0.6.1.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-unix (2.8.6.0-alt2:sisyphus+414302.200.2.2@1775496205) ghc9.6-package-xhtml (3000.2.2.1-alt2:sisyphus+414302.200.2.2@1775496205) 1 upgraded, 23 newly installed, 23 replaced, 15 removed and 1889 not upgraded. Need to get 6410kB of archives. After unpacking 658MB disk space will be freed. Do you want to continue? [Y/n] n Abort.