Зависимости в RPM. Автоматически и вручную проставляемые Requires и Provides. Общая концепция

В системе зависимостей RPM-пакетов есть 2 основные сущности:

  • Provides — предоставляемые пакетом «возможности»,
  • Requires — зависимости пакета — какие «возможности» нужны для работы этого пакета.


В этой статье рассмотрим их общую концепцию. Это актуально и для пользователей, и для сборщиков пакетов. Рассматривать будем на примере дистрибутива ROSA 12 (rosa2021.1).
Читать далее Зависимости в RPM. Автоматически и вручную проставляемые Requires и Provides. Общая концепция

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

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

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

Пример проверки использованного в пакете сжатия:
Читать далее Добавлено многопоточное сжатие XZ в RPM 5

Автоматизация пересборки зависимых пакетов при обновлении библиотек в Росе

(Эта статья будет дописываться) Как составить список пакетов для пересборки, смотрите статью №698. Нужно сделать текстовый файл с построчным списком пакетов. Предположим, что этот файл называется krb5.list .
Читать далее Автоматизация пересборки зависимых пакетов при обновлении библиотек в Росе

Какие исходные пакеты нужно пересобрать в Росе при обновлении библиотеки до новой мажорной версии

$ ( for i in $(urpmq --whatrequires libllvm6.0); do urpmq --sourcerpm "$i" | awk -F ': ' '{print $2}' | rev | cut -d '-' -f 3- | rev ; done ) | sort | uniq
ldc
lld
llvm
mesa

Более быстро работающий вариант, но ничего не выдает, если у хотя бы одного из пакетов в списке нет обратных зависимостей:
urpmq --whatrequires --sourcerpm lib64krb5_3 lib64kdb5_8 lib64kadm5srv_mit10 lib64kadm5clnt_mit10 lib64krad0 lib64krb5support0 lib64k5crypto3 lib64gssrpc4 lib64gssapi_krb5 | awk -F ': ' '{print $2}' | rev | cut -d '-' -f 3- | rev | sort -u

Обратите внимание, что при обновлении мажорной версии библиотеки, например, когда было lib64kdb5_8, а стало lib64kdb5_9, обратные зависимости нужно искать у старой версии, lib64kdb5_8.

Макрос %clang_gcc_wrapper в ROSA. Сборка RPM-пакетов компилятором Clang вместо GCC.

Начиная с версии 6.0.1-3 пакета llvm/clang в дистрибутиве ROSA Fresh есть макрос %clang_gcc_wrapper.
Читать далее Макрос %clang_gcc_wrapper в ROSA. Сборка RPM-пакетов компилятором Clang вместо GCC.

QWinFF PPA

Сделал PPA с аудио-видео конвертером QWinFF (графический интерфейс для FFmpeg)
https://launchpad.net/~mikhailnov/+archive/ubuntu/qwinff/
Пока собрано только для amd64 (x86_64) почему-то.
Исходники сборки пакета здесь: https://github.com/mikhailnov/qwinff/tree/master/debian

Сравниваем рецепты сборки пакетов в Haiku и Arch Linux.

Возьмем Audacity.

Haiku: https://github.com/haikuports/haikuports/blob/master/media-sound/audacity/audacity-2.1.2.recipe
Arch: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/audacity
Читать далее Сравниваем рецепты сборки пакетов в Haiku и Arch Linux.

Вызов LibreOffice в chroot

Для сборки deb-пакета Wirec я использую вызов LibreOffice внутри Makefile, чтобы конвертировать картинку из ODG в SVG. При запуске локально все работало, однако при попытке собрать deb-пакет на Launchpad, то есть при сборке в chroot, возникла ошибка:

libreoffice --convert-to svg --outdir /<>/debian/wirec///usr/share/icons desktop/wirec.odg
javaldx failed!
Warning: failed to read path from javaldx

После исправления Makefile был таким:
Читать далее Вызов LibreOffice в chroot