Repocop/RepairMiniHOWTO

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

(Различия между версиями)
Перейти к: навигация, поиск
(Создаем песочницу с repocop)
(Запускаем repocop)
Строка 68: Строка 68:
есть только такие записи.
есть только такие записи.
-
После окончания работы генератора в папке <tt>OUT</tt> будут исправленные srpm'ки.
+
После окончания работы генератора в папке <tt>OUT</tt> будут исправленные sкс.rpm.
Выходим, сразу отмонтируем Sisyphus, чтобы его не потерло при попытке следующей пересборки
Выходим, сразу отмонтируем Sisyphus, чтобы его не потерло при попытке следующей пересборки
Строка 75: Строка 75:
Смотрим, собираем, заливаем в incoming.
Смотрим, собираем, заливаем в incoming.
 +
 +
Примечание: особенность текущего генератора в том, что он создает новый
 +
src.rpm в случае, если ожидалось, что патч генератор исправит пакет.
 +
Однако иногда патч генератору не удается исправить пакет, поэтому
 +
может случиться такая ситуация, что сгенерировано пакетов больше, чем есть патчей на
 +
[http://repocop.altlinux.org repocop.altlinux.org].
== Enjoy! ==
== Enjoy! ==

Версия 19:00, 17 ноября 2008


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

Содержание


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

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

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

Проверьте, что в сизифе должны быть repocop >= 0.07-alt21 и repocop-unittest >= 0.14.

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

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

Создаем песочницу с repocop

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

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

Создаем песочницу

hsh --initroot-only --packager='<ваш packager email>' <опции hasher для вашего Сизифа>
export hasher=</path/to/your/hasher>

Переменная $hasher нам будет в последующем нужна для того, чтобы приведенный ниже код был полностью рабочим и его можно было копировать в консоль и сразу запускать.

копируем туда базу repocop

cp repocop-data-current.tar.gz $hasher/chroot/tmp/

и разворачиваем ее внутри песочницы в ~/.repocop:

hsh-run tar xzf /tmp/repocop-data-current.tar.gz

Устанавливаем в песочницу repocop

hsh-install repocop-tools repocop-unittest

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

hsh-install `$hasher/chroot/usr/bin/repocop-tools-ls-rpmbuild-bs-environment -c $hasher/chroot/usr/src/.repocop`

Еще внутри песочницы нужно дать доступ к свежему Сизифу. Создаем точку монтирования

hsh-run mkdir /usr/src/Sisyphus

и монтируем туда Сизиф (если ядро поддерживает read-only bind, лучше монтировать с ro):

sudo mount --bind /var/ftp/pub/Linux/ALT/Sisyphus $hasher/chroot/usr/src/Sisyphus

Проверяем и при необходимости правим в песочнице /usr/src/.rpmmacros так, чтобы там был правильный %packager.

песочница к запуску репокопа готова.

Запускаем repocop

hsh-shell 
cd ~
repocop-fix-srpm --include-packager='viy,emacs,java' \
 --packager='Igor Vlasenko <viy@altlinux.ru>' \
 --outdir=OUT --acl-file /usr/src/Sisyphus/files/list/list.src.classic \
 /usr/src/Sisyphus/files/noarch/RPMS /usr/src/Sisyphus/files/x86_64/RPMS /usr/src/Sisyphus/files/SRPMS

Вместо viy,emacs,java укажите ваш ник и любимые группы, в которые вы входите.

Заметим, что здесь нужно указывать /usr/src/Sisyphus/files/x86_64/RPMS, а не /usr/src/Sisyphus/files/i586/RPMS, поскольку в загруженной с repocop.altlinux.org базе данных есть только такие записи.

После окончания работы генератора в папке OUT будут исправленные sкс.rpm.

Выходим, сразу отмонтируем Sisyphus, чтобы его не потерло при попытке следующей пересборки

sudo umount $hasher/chroot/usr/src/Sisyphus

и копируем полученные src.rpm из песочницы.

Смотрим, собираем, заливаем в incoming.

Примечание: особенность текущего генератора в том, что он создает новый src.rpm в случае, если ожидалось, что патч генератор исправит пакет. Однако иногда патч генератору не удается исправить пакет, поэтому может случиться такая ситуация, что сгенерировано пакетов больше, чем есть патчей на repocop.altlinux.org.

Enjoy!

 
Личные инструменты