[devel] rpm: LZMA payload compression

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Май 24 18:21:14 MSD 2008


Я портировал SuSE патчи для LZMA сжатия payload (cpio архива)
в rpm пакетах.  (Портировал -- громоке слово, код править не пришлось.)

Это имеет следующие особенности.

1) Собрана статическая библиотека liblzma.a из
git://ctrl.tukaani.org/lzma-utils.git.  Код этой библиотеки производит
хорошее впечателение, но разработчики пишут о том, что API ещё не
заморожен (а при использовании этой библиотеки создаются non-opaque
структуры, что усложняет контроль бинарной совместимости).  Чтобы
не облажаться, librpmio.so пока будет включать в себя копию liblzma.a.

2) Для Сизифа по умолчанию будет включен режим сжатия w2.lzdio,
как для _source_payload, так и для _binary_payload (вероятно,
сизифовская сборка после проверки будет отправлена в branch 4.1).
В branch 4.0 будет отправлена сборка с поддежкой lzdio, но
сжатие будет по умолчанию выключено (останется w9.gzdio).
В обоих случаях сам rpm будет собран с w9.gzdio, чтобы его
можно было обновить предыдущим rpm'ом без поддержки lzdio.

3) Выбранный уровень сжатия 2 обеспечивает высокую скорость сжатия
(быстрее, чем у w9.bzdio, но несколько медленнее, чем у w9.gzdio)
и степень сжатия, сравнимую с w9.bzdio (иногда -- несколько лучше).
Следующий уровень сжатия 3 по скорости уже заметно проигрывает bzdio
(хотя и жмёт несколько лучше).  Скорость разжатия не зависит от уровня
сжатия (разжимает примерно в 3 раза медленнее, чем gzip, но при этом
в 3-4 раза быстрее, чем bzip2).

3) У пакетов, собранных со сжатием lzdio, появится зависимость
rpmlib(PayloadIsLzma) <= 4.4.2-1.  apt разрешает эту зависимость
через librpm, доступный ему в хост-системе.  Но практике это означает,
что a) до установки любого пакета с lzdio сжатем нужно (отдельной
транзакцией) обновить сам rpm; б) для сборки пакетов хешером
в хост-системе должен стоять rpm с поддержкой lzdio.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080524/2a751b47/attachment-0002.bin>


Подробная информация о списке рассылки Devel