Repocop/RepairMiniHOWTO
Материал из ALT Linux Wiki
(→Запускаем repocop) |
|||
(81 промежуточная версия не показана) | |||
Строка 1: | Строка 1: | ||
[[Категория:Sisyphus]] | [[Категория:Sisyphus]] | ||
[[Категория:Devel]] | [[Категория:Devel]] | ||
+ | [[Категория:Repocop]] | ||
+ | {{Category navigation|title=Repocop|category=Repocop}} | ||
= Исправляем Репокопом пакеты за 5 минут. Краткое руководство. = | = Исправляем Репокопом пакеты за 5 минут. Краткое руководство. = | ||
Строка 10: | Строка 12: | ||
* локальное зеркало со свежим сизифом (Пусть это <tt>/var/ftp/pub/Linux/ALT/Sisyphus</tt>). | * локальное зеркало со свежим сизифом (Пусть это <tt>/var/ftp/pub/Linux/ALT/Sisyphus</tt>). | ||
- | + | Убедитесь, что в нем самые свежие версии ваших пакетов. | |
- | + | ||
- | + | ||
* Свежая [http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz база repocop] <div style="display: inline; color: red;">(более 100 Mb)</div>. | * Свежая [http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz база repocop] <div style="display: inline; color: red;">(более 100 Mb)</div>. | ||
- | |||
== Знакомимся с предлагаемыми патчами == | == Знакомимся с предлагаемыми патчами == | ||
Строка 21: | Строка 20: | ||
[http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/ http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/] | [http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/ 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 | wget -c http://repocop.altlinux.org/pub/repocop/data/repocop-data-current.tar.gz | ||
+ | и разворачиваем ее в <code>~/.repocop</code>: | ||
+ | cd ~ | ||
+ | tar xzf repocop-data-current.tar.gz | ||
- | + | Устанавливаем repocop | |
- | + | apt-get install repocop-tools repocop-unittest | |
- | + | При желании можно установить пакеты, необходимые для нормального выполнения произвольного <code>rpmbuild -bs</code> : | |
- | + | apt-get install `/usr/bin/repocop-tools-ls-rpmbuild-bs-environment` | |
+ | Заметим, что в Сизифе иногда может быть сломана установка каких-то пакетов из списка, созданного командой | ||
+ | /usr/bin/repocop-tools-ls-rpmbuild-bs-environment | ||
+ | В таком случае, предварительно сохраните список в файл, отредактируйте его вручную и установите пакеты из отредактированного списка. | ||
- | + | Заметим, что пакеты с макросами устанавливать не обязательно. Если команда <code>rpmbuild -bs</code> завершилась неудачей, | |
- | + | 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 | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | Если вы список пакетов формировали вручную, то фильтр <code>--include-packager</code> указывать не нужно. | |
+ | Иначе вместо viy,emacs,java укажите ваш ник и любимые группы, в которые вы входите. | ||
- | + | После окончания работы генератора исправленные src.rpm с увеличенным релизом будут лежать в папке <tt>./OUT</tt>. | |
- | + | ||
- | + | Смотрим, пересобираем, тестируем, отправляем на сборку в Sisyphus. | |
- | + | ||
- | + | ||
- | + | == Enjoy! == | |
- | + | ||
- | + | ||
- | + | == Примечания == | |
+ | Желательно сравнить число патчей и число сгенерированных пакетов, поскольку | ||
+ | может случиться, что сгенерировано больше пакетов, чем есть патчей на | ||
+ | http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/. | ||
- | + | Особенность текущего генератора src.rpm в том, что он создает новый | |
- | + | src.rpm в случае, когда для ошибки существует патч генератор. | |
+ | Однако иногда патч генератору не удается исправить пакет, и тогда полученный | ||
+ | пакет по сути не будет содержать изменений. Хотя и вреда от него не должно быть. |
Текущая версия на 17:37, 10 ноября 2011
Исправляем Репокопом пакеты за 5 минут. Краткое руководство.
Содержание |
Предисловие.
Для исправления пакетов вам понадобится
- локальное зеркало со свежим сизифом (Пусть это /var/ftp/pub/Linux/ALT/Sisyphus).
Убедитесь, что в нем самые свежие версии ваших пакетов.
- Свежая база repocop (более 100 Mb).
Знакомимся с предлагаемыми патчами
Ищем свои папки на 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 в случае, когда для ошибки существует патч генератор. Однако иногда патч генератору не удается исправить пакет, и тогда полученный пакет по сути не будет содержать изменений. Хотя и вреда от него не должно быть.