Добавлено многопоточное сжатие XZ в RPM 5

В тестингах ROSA 2016.1 RPM 5, наученный упаковывать .rpm и .src.rpm, используя многопоточное сжатие xz.

Сжатие .src.rpm переведено с gzip на xz по умолчанию.
Сжатием .rpm был xz, он и остался, но стал многопоточным по умолчанию.

Пример проверки использованного в пакете сжатия:

# rpm -qp --qf '%{PAYLOADCOMPRESSOR}\n' rpm-5.4.10-82.src.rpm
xz

Настройка многопоточного сжатия производится записыванием параметров в файл /etc/rpm/macros, которые переопределят параметры по умолчанию из файла /usr/lib/rpm/macros.d/mandriva

Новая стандартная конфигурация в /usr/lib/rpm/macros.d/mandriva такая:
%_binary_payload w6T.xzdio
%_source_payload w2T.xzdio

%_binary_payload — настройка сжатия .src.rpm
%_source_payload — настройка сжатия .rpm

Примеры:
%_binary_payload w6T2.xzdio — сжимать .rpm с помощью XZ на уровне упаковки 6 в 2+1=3 потока
%_binary_payload w9T0.xzdio — сжимать .rpm с помощью XZ на уровне упаковки 9 в 0+1=1 поток
%_binary_payload w6T.xzdio — сжимать .rpm с помощью XZ на уровне упаковки 6 в максимальное количество потоков по числу ядер процессора.
Про уровни упаковки см. в man xz.

.src.rpm решили сжимать xz на уровне 2 вместо стандартного 6, т.к. идет пересжатие уже сжатых тарболлов, и 2 оказалось оптимальнее по скорости и потреблению памяти.

(чтобы удостовериться, что именно n+1, см. код: https://abf.io/import/rpm/blob/rosa2016.1/rpm-5.4.10-Multithreaded-XZ.patch#lc-55 )

https://bugzilla.rosalinux.ru/show_bug.cgi?id=9608
Патчи, добавшие эти изменения:
* https://abf.io/import/rpm/blob/rosa2016.1/rpm-5.4.10-Multithreaded-XZ.patch
* https://abf.io/import/rpm/blob/rosa2016.1/rpm-5.4.10-Use-multithreaded-XZ-by-default-for-both-binary-and-.patch
* https://abf.io/import/rpm/blob/rosa2016.1/rpm-5.4.10-multithreaded-xz-memlimit.patch

Сборки нового RPM для тех, кто не пользуется тестовыми репозиториями rosa2016.1:
https://abf.io/build_lists/2956123
https://abf.io/build_lists/2956124

В качестве бенчмарка по упаковке нескольких гигабайтов в RPM предлагается использовать https://gitlab.com/nixtux-packaging/appimage2pkg .

Отправить ответ

avatar
  Subscribe  
Сообщать по почте