Nov. 5th, 2021

vitus_wagner: My photo 2005 (Default)

Есть такая библиотека для сжатия данных libzstd. В общем, неплохой алгоритм, и даже уже не новый, почти во всех дистрибутивах из коробки есть.

А есть формат пакета deb. Мне всегда в Debian нравилось то, что для того, чтобы распаковать deb-пакет, не нужна debian-подобная система. Будь у тебя хоть freebsd, хоть solaris, там обязательно есть ar, архиватор, которым делают статические библиотеки для C, и им можно разобрать deb на data.tar.xz и control.tar.xz (вернее. необязательно .xz, когда-то был .gz, а сейчас поддерживается еще штуки четыре варианта алгоритмов сжатия).

К сожалению как выясняется, поддерживаются эти алгоритмы в dpkg в C-шном коде. Поэтому когда Ubuntu решила добавить в этот список zstd, и не просто добавить, а сделать его алгоритмом по умолчанию, dpkg из Debian перестал понимать пакеты из свежей ubuntu. Причем в самой убунту поддержка zstd появилась уже года 4 как. А вот пропихнуть её обратно в Debian не пропихнули.

То есть dpkg из ubuntu 18.04 deb из 21.10 распаковывает, а dpkg из вышедшего несколько месяцев назад Debian bullseye - нет.

На самом деле в dpkg есть возможность поддержки алгоритма компрессии и посредством вызовов функций из библиотеки и посредством вызова внешней прошраммы декомпрессора (в данном случае zstd), благо с незапамятных времен (с прошлого века это точно) все программы компрессоры имеют совместимый интерфейс. Что bzip2, что lzma, что lz4 - все рассчитаны на то, что их будут использовать с теми же ключами, что и gzip.

Но вот дописать записть в массив, отображающий расширение файла на набор функций написать сами эти функции, вызвав уже имеющиеся функции вызова внешней программы с правильным именем программы - потребовалось. Ну нет бы это в какой-нибудь текстовый конфиг вынести.

Да, и reprepro тоже патчить пришлось. Вот приспичило авторам этой программы самим лезть внутрь deb-файла, не полагаясь на dpkg.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

July 2025

S M T W T F S
  12345
6789 1011 12
13141516 17 1819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 18th, 2025 01:35 pm
Powered by Dreamwidth Studios