Добавлено многопоточное сжатие 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.

Получаем список коммитов, добавляющих нужный функционал, которые нужно бекпортировать

Сначала ищем, в каких файлах есть нужная строка:
$ grep -inHr BIND_LDAP_SO

install/share/bind.named.conf.template:52:dyndb "ipa" "$BIND_LDAP_SO" {
ipaplatform/base/paths.py:194:    BIND_LDAP_SO = "/usr/lib/bind/ldap.so"
ipaplatform/base/paths.py:201:    BIND_LDAP_SO_64 = "/usr/lib64/bind/ldap.so"
ipaplatform/redhat/paths.py:38:        BIND_LDAP_SO = BasePathNamespace.BIND_LDAP_SO_64
ipaserver/install/bindinstance.py:815:            BIND_LDAP_SO=paths.BIND_LDAP_SO,

Теперь составляем список коммитов, добавлявших эти строки:
$ ( for i in install/share/bind.named.conf.template ipaplatform/base/paths.py ipaplatform/redhat/paths.py ipaserver/install/bindinstance.py ; do git blame $i | grep BIND_LDAP_SO ; done ) | awk '{print $1}' | sort | uniq
4d2ef43f28
e8a2abd548

Превращаем нужные коммиты в файлы-патчи:
$ git format-patch -1 4d2ef43f28

Удалить программу в ROSA Fresh

Сначала узнаем пакет, которому принадлежит основной исполняемый файл docky:
urpmf $(which docky)
Эта команда выполнит команду which docky и подставит в первую команду результат ее выполнения.
urpmf в ответ выдаст название пакета, которому принадлежит основной исполняемый файл docky. Удаляем этот пакет: sudo urpme docky, где вместо docky обнаруженное название пакета, которое в данном случае наверняка будет одноименным.
Т.к. при установке docky в качестве зависимостей были подтянуты другие пакеты, но после удаления docky они останутся, они станут сиротами. Сирота — это пакет, автоматически подтянутый как зависимость, но затем ставший ненужным, когда удалили то, ради чего он ставился.
Команда
sudo urpme --auto-orphans
Но по моим наблюдениям работа этой команды в Росе нестабильна.