При тестировании p7zip для принятия в p10 выяснилось, что от него зависит по сборке много пакетов. Желательно от этого избавиться в пользу универсальности или /usr/bin/7zz (7-zip), поскольку p7zip это неофициальный порт. Количество зависимых (по сборке) пакетов: 86 ArxLibertatis-1.2-alt1.20200607.1 GMT-6.1.1-alt1_1 GraphicsMagick-1.3.36-alt1.1 ale-0.9.0.3-alt9 altquire-0.1.2-alt1 android-tools-10.0.0-alt2.r36 anyservice-1.6-alt1 appinstall-1.4.3-alt1 arcclock-1.2-alt1 ceph-17.2.7-alt1 checkduplicatelibrarysymbols-0.2-alt1 conky-manager-2.4-alt1 cuneiform-1.1.0-alt5 darktable-4.2.1-alt0.P10.1 dc3dd-7.2.646-alt1_9 devscripts-2.19.7-alt2 dvdauthor-0.7.2-alt4 eaglemode-0.95.0-alt1 ecryptomgr-0.9.3-alt1 eepm-3.57.6-alt1 erc-0.9.5-alt1 eterbackup-1.9-alt1 etercifs-5.6.0-alt1 etersoft-build-utils-3.0.11-alt1 far2l-2.5.3-alt1 faust-0.9.90-alt4 featherpad-0.18.0-alt1 file-roller-3.40.0-alt1 font-manager-0.8.7-alt1 fudgefont-1.4-alt1_3 giter-1.15-alt1 gluegen2-2.3.2-alt2_11jpp8 gmic-2.9.9-alt2 gnome3-40.0-alt2 inkscape-1.2.2-alt2 kde5-ark-23.08.4-alt2 kde5-set-23.08.3-alt1 korinf-2.3.0-alt1 libxine2-1.2.9-alt3 lua5.1-module-basexx-0.4.1-alt2 lua5.1-module-binaryheap-0.4-alt1 lua5.1-module-bit32-5.3.0-alt1 lua5.1-module-compat53-0.7-alt2 lua5.1-module-cqueues-20200726-alt1 lua5.1-module-fifo-0.2-alt1 lua5.1-module-http-0.3-alt1 lua5.1-module-lpeg-1.0.2-alt1_lr1 lua5.1-module-lpeg_patterns-0.5-alt1 lua5.1-module-luafilesystem-1.7.0-alt1_lr2 lua5.1-module-luaossl-20190731-alt1 lua5.1-module-luasocket-3.0rc1-alt4_lr2 lua5.1-module-mmdblua-0.2-alt1 lua5.1-module-psl-0.3-alt1 lua5.3-luarocks-2.4.2-alt7 lua5.3-module-lpeg-1.0.2-alt1_lr1 lua5.3-module-luaexpat-1.3.0-alt1 lua5.3-module-luafilesystem-1.7.0-alt1_lr2 lua5.3-module-luasec-0.8-alt1_lr1 lua5.3-module-luasocket-3.0rc1-alt4_lr2 mate-1.26.0-alt2 mate-file-archiver-1.26.1-alt1 mate-file-manager-actions-ark-2-alt1 megapixels-1.5.2-alt1.git7741389 octave-7.3.0-alt2 pdf2djvu-0.9.19-alt2 photoflare-1.6.5-alt1 php7-gmagick-2.0.6-alt3.33.rc1 php8.0-gmagick-2.0.6-alt3.30.rc1 php8.1-gmagick-2.0.6-alt3.27.rc1 php8.2-gmagick-2.0.6-alt3.16.rc1 quilt-0.66-alt2 ranger-1.9.3-alt1 razodrant-0.3-alt1 rocksndiamonds-contributions-1.2.0-alt2 rocksndiamonds-emc-2.0.0-alt3 rx-etersoft-1.4.5-alt1 scrcpy-1.21-alt1 scribus-1.5.8-alt2 slade-3.2.4-alt1 springlobby-0.271-alt1_1 springrts-105.0-alt1.1 task-edu-1.5.9-alt12 trikStudio-2022.2-alt1 usermode-fs-tools-1.3-alt1 vdr-2.2.0-alt9 woeusb-5.1.2-alt1 Использование p7zip в Сизифе немного короче: $ epm wd --short p7zip $ apt-cache whatdepends p7zip usermode-isofs-tools razodrant python3-module-ranger quilt p7zip-devel eepm-repack woeusb p7zip-standalone mate-file-archiver lua5.4-luarocks lua5.3-luarocks lua5.1-luarocks kde5-ark file-roller far2l deepin-compressor conky-manager ArxLibertatis flatpak-builder
Поскольку отказаться от использования в такой куче пакетов нереально, надо предоставить бесшовную замену, добавив в 7-zip предоставление p7zip. Некоторые нюансы: Некоторые пакеты зависят от /usr/bin/7z, потребуется симлинк Для зависящих от пакета p7zip (по имени) нужен Provides: p7zip p7zip-standalone (7za) — от него никто не зависит, можно безболезненно убрать. Что нужно в спеке 7-zip: Provides: p7zip = %version-%release Obsoletes: p7zip < 25 Provides: p7zip-standalone = %version-%release Obsoletes: p7zip-standalone < 25 И в %install: ln -s 7zz %buildroot%_bindir/7z ln -s 7zz %buildroot%_bindir/7za
Форматы, которые остались только в p7zip (через плагин Rar.so): lz4, lz5, lizard, lzip — дополнительные компрессоры (патчи p7zip-project, не от Pavlov)
https://git.altlinux.org/tasks/409483/
7-zip-26.00-alt2 -> sisyphus: Fri Feb 27 2026 Vitaly Lipatov <lav@altlinux.ru> 26.00-alt2 - Add /usr/bin/7z, /usr/bin/7za and provide p7zip (ALT bug 49730)
Переоткрываем: замена p7zip через симлинки 7z/7za -> 7zz оказалась не полностью совместимой по CLI. В bug #60427 создание ZIP/7z в Engrampa на p10 сломалось из-за передачи -l. Исправление mate-file-archiver удалило этот ключ, но совместимость legacy-команд в 7-zip остаётся вопросом. Сравнил таблицы kSwitchForms в CPP/7zip/UI/Common/ArchiveCommandLine.cpp локальных исходников p7zip 17.05 и 7-zip 26.04: 52 и 65 имён ключей. Единственный отсутствующий в новой таблице старый ключ — -l. Остальные имена сохранены; это не проверка полной совместимости аргументов и поведения. В p7zip -l влияет на следование по символическим ссылкам: global_use_lstat = !parser[NKey::kUseLStat].ThereIs; архивируется содержимое цели ссылки. Официальный 7-Zip ключ не принимает: $ 7zz a -l /tmp/p7zip-compat-probe.7z /dev/null Command Line Error: Unknown switch: -l Код возврата 7 (проверено на установленном 7zz). Предлагается рассмотреть обвязки для /usr/bin/7z и /usr/bin/7za вместо прямых симлинков; /usr/bin/7zz оставить нативным интерфейсом. Конкретная реализация пока не выбрана. Простое отбрасывание -l не гарантирует сохранения семантики p7zip, требуется проверить корректный перевод параметра и поведение ссылок. Для проверки совместимости нужны обычные файлы, ссылки на файлы/каталоги, битые ссылки, ZIP/7z, пути с пробелами и -- (после него -l может быть именем файла). Различия методов сжатия/форматов из комментария #2 не решаются простой обвязкой.
Подтверждаю на 7-zip-26.04-alt1 (Sisyphus): /usr/bin/7z и /usr/bin/7za - прямые симлинки на 7zz, и `7z a -l x.7z dir` завершается с "Unknown switch: -l" (код 7). Кроме того, различается поведение по умолчанию: p7zip без -l сохранял символические ссылки как ссылки (lstat), а 7zz по умолчанию идёт по ссылкам (сохраняет содержимое цели, на битых ссылках - предупреждения errno=2), как p7zip с -l; сохранять ссылки как ссылки 7zz умеет только с -snl. Сам p7zip из Sisyphus уже удалён, замена через Provides/Obsoletes работает. План (новая сборка 26.04-alt3): /usr/bin/7z, /usr/bin/7za (и 7zr) сделать небольшими обвязками совместимости с p7zip поверх 7zz: ключ -l (до --) убирается, это поведение 7zz по умолчанию; без -l добавляется -snl, чтобы ссылки сохранялись как ссылки, как в p7zip; явный -snl не дублируется; аргументы после -- не трогаются. /usr/bin/7zz остаётся нативным интерфейсом 7-Zip. Проверка в docker: обычные файлы, ссылки на файлы/каталоги, битые ссылки, ZIP и 7z, пути с пробелами, файл с именем -l после --. Дополнительные кодеки p7zip (lz4, lz5, lizard, lzip из комментария #2) обвязкой не решаются.