Watch: различия между версиями
(→Ссылки) |
м (уточнения по созданию watch-файлов) |
||
Строка 10: | Строка 10: | ||
$ srpmnmu --uupdate /path/to/name-version-rel.src.rpm | $ srpmnmu --uupdate /path/to/name-version-rel.src.rpm | ||
=== Добавление watch файла === | === Добавление watch-файла === | ||
Для работы watch файл должен быть упакован в пакет (прописан в спеке) | Для работы watch файл должен быть создан либо позаимствован и упакован в пакет (прописан в спеке): | ||
... | ... | ||
Source100: %name.watch | Source100: %name.watch | ||
Строка 20: | Строка 20: | ||
Если это не так, например, .watch файл указывает на Source3:, | Если это не так, например, .watch файл указывает на Source3:, | ||
то надо паковать .watch файл как %name.source3.watch | то надо паковать .watch файл как %name.source3.watch | ||
При создании watch-файлов следует руководствоваться [http://wiki.debian.org/debian/watch/ документацией Debian]; для проектов, размещенных на SourceForge, можно воспользоваться [http://lintian.debian.org/tags/debian-watch-file-should-use-sf-redirector.html особым форматом записи] (применяет редиректор на qa.debian.org с целью предоставления неизменного интерфейса к порой изменяющейся схеме SF): | |||
<pre>version=3 | |||
http://sf.net/<project>/<tar-name>-(.+)\.tar\.gz</pre> | |||
=== Обновление src.rpm === | === Обновление src.rpm === | ||
Строка 34: | Строка 38: | ||
$ srpmnmu --uupdate flashrom-0.9.4-alt1.src.rpm | $ srpmnmu --uupdate flashrom-0.9.4-alt1.src.rpm | ||
uupdate: version 0.9.4 is up to date. | uupdate: version 0.9.4 is up to date. | ||
Пример работы со спек-файлом: | Пример работы со спек-файлом: | ||
Строка 73: | Строка 76: | ||
рядом со спек файлом и watch файл (уже можно работать | рядом со спек файлом и watch файл (уже можно работать | ||
с помощью rpm-uscan; готовый watch файл можно поискать | с помощью rpm-uscan; готовый watch файл можно поискать | ||
в Debian либо написать самому | в Debian либо написать самому согласно [http://wiki.debian.org/debian/watch/ документации]. | ||
http://wiki.debian.org/debian/watch/ | |||
Также владельцам обновляемых из тарбола gear репозиториев | Также владельцам обновляемых из тарбола gear репозиториев |
Версия от 13:48, 9 мая 2012
Использование watch файлов в ALT Linux
В новой версии утилиты srpmnmu, идущей с perl-RPM-Source-Editor >= 0.71, доступно автообновление src.rpm пакетов с помощью опции --uupdate. (два uu, поскольку так называется соответствующая утилита в Debian).
Пример вызова: $ srpmnmu --uupdate /path/to/name-version-rel.src.rpm
Добавление watch-файла
Для работы watch файл должен быть создан либо позаимствован и упакован в пакет (прописан в спеке):
... Source100: %name.watch ...
По умолчанию подразумевается, что .watch файл указывает на Source(0):.
Если это не так, например, .watch файл указывает на Source3:, то надо паковать .watch файл как %name.source3.watch
При создании watch-файлов следует руководствоваться документацией Debian; для проектов, размещенных на SourceForge, можно воспользоваться особым форматом записи (применяет редиректор на qa.debian.org с целью предоставления неизменного интерфейса к порой изменяющейся схеме SF):
version=3 http://sf.net/<project>/<tar-name>-(.+)\.tar\.gz
Обновление src.rpm
$ srpmnmu --uupdate /path/to/name-version-rel.src.rpm
$ rpm -i /path/to/name-version-rel.src.rpm $ srpmnmu -i --uupdate name.spec $ diff -u name.spec~ name.spec $ rpmbuild -bs --nodeps name.spec (or hashertarbuild -bs name.spec) $ srpmnmu --uupdate flashrom.spec uupdate: new version 0.9.4 Записан: flashrom-0.9.4-alt1.src.rpm $ srpmnmu --uupdate flashrom-0.9.4-alt1.src.rpm uupdate: version 0.9.4 is up to date.
Пример работы со спек-файлом:
$ rpm -i /path/to/name-version-rel.src.rpm $ srpmnmu -i --uupdate name.spec $ diff -u name.spec~ name.spec ### (смотрим, чего там робот наменял) $ rpmbuild -bs --nodeps name.spec (or hashertarbuild -bs name.spec)
Обновление gear-репозитария
TODO утилитой rpm-uscan.
В Сизифе и t6 появилась новая утилита rpm-uscan, которая представляет собой форк Debian'овской утилиты uscan, адаптированный к работе в rpm окружении и с поддержкой gear-репозиториев.
Ее можно использовать для проверки наличия новых версий, и их загрузки (с опцией --download).
Изменено поведение опции --repack (переупаковывает архив в несжатый tar), добавлена опция --any-archive (ищет всевозможные форматы архивов; полезна, если в watch файле был прописан tar.gz, а апстрим в новом релизе переехал на tar.xz.
В git/gear-репозитории rpm-uscan можно запускать совсем без опций -- она самостоятельно найдет watch файл и узнает текущую версию.
автообновление gear репозитория по watch файлу сейчас в разработке, предполагается, что эта возможность будет интегрирована в cronbuild а также доступна в виде отдельной утилиты gear-uupdate.
Тем временем владельцам обновляемых из тарбола gear репозиториев имеет смысл класть в gear репозиторий рядом со спек файлом и watch файл (уже можно работать с помощью rpm-uscan; готовый watch файл можно поискать в Debian либо написать самому согласно документации.
Также владельцам обновляемых из тарбола gear репозиториев имеет смысл установить утилиту gear-rules-verify из пакета perl-Gear-Rules >= 0.04 и посмотреть, не ругает ли она их gear репозиторий.
I: перспективы автоматизации с помощью .watch файлов.
В текущем виде uupdate-like автоматизация не совсем полная, так как хоть она и снимает с майнтайнера часть рутинной работы, никуда не девается необходимость сличать исходники, не появились ли у пакета новые сборочные зависимости.
Поэтому в перспективе я еще хочу как опцию прикрутить к обновлению анализаторы кода, которые будут читать configure.ac и т.д. и добавлять в BuildRequires: все то, чего там, по их мнению, не хватает для новой версии.
С этими анализаторами я в перспективе хочу развернуть на watch.altlinux.org автосборщик, который будет следить за пакетами с watch файлами, и при выходе новой версии отправлять на test-only новый пакет.