Repocop/RepairMiniHOWTO

Материал из ALT Linux Wiki


Исправляем Репокопом пакеты за 5 минут. Краткое руководство.

Предисловие.

Для исправления пакетов вам понадобится

  • локальное зеркало со свежим сизифом (Пусть это /var/ftp/pub/Linux/ALT/Sisyphus).

Убедитесь, что в нем самые свежие версии ваших пакетов.

Знакомимся с предлагаемыми патчами

Ищем свои папки на http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/ и знакомимся с предложенными патчами. Если в патчах что-то не верно, сообщаем автору. Иначе продолжаем дальше.

Готовим repocop

Скачиваем базу repocop

wget -c http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz

и разворачиваем ее в ~/.repocop:

cd ~
tar xzf repocop-data-current.tar.gz

Устанавливаем repocop

apt-get install repocop-tools repocop-unittest

При желании можно установить пакеты, необходимые для нормального выполнения произвольного rpmbuild -bs :

apt-get install `/usr/bin/repocop-tools-ls-rpmbuild-bs-environment`

Заметим, что в Сизифе иногда может быть сломана установка каких-то пакетов из списка, созданного командой

/usr/bin/repocop-tools-ls-rpmbuild-bs-environment

В таком случае, предварительно сохраните список в файл, отредактируйте его вручную и установите пакеты из отредактированного списка.

Заметим, что пакеты с макросами устанавливать не обязательно. Если команда rpmbuild -bs завершилась неудачей, repocop создаст tar архив в формате hasher, который можно пересобрать в hasher и получить обычный src.rpm пакет.

Запускаем repocop

repocop-fix-srpm --include-packager='viy,emacs,java' --packager='Igor Vlasenko <viy@altlinux.ru>' --outdir=./OUT /path/to/Sisyphus/files/SRPMS

Если вы список пакетов формировали вручную, то фильтр --include-packager указывать не нужно. Иначе вместо viy,emacs,java укажите ваш ник и любимые группы, в которые вы входите.

После окончания работы генератора исправленные src.rpm с увеличенным релизом будут лежать в папке ./OUT.

Смотрим, пересобираем, тестируем, отправляем на сборку в Sisyphus.

Enjoy!

Примечания

Желательно сравнить число патчей и число сгенерированных пакетов, поскольку может случиться, что сгенерировано больше пакетов, чем есть патчей на http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/.

Особенность текущего генератора src.rpm в том, что он создает новый src.rpm в случае, когда для ошибки существует патч генератор. Однако иногда патч генератору не удается исправить пакет, и тогда полученный пакет по сути не будет содержать изменений. Хотя и вреда от него не должно быть.