Gear/Справочник: различия между версиями
м (→Правила .gear/rules: по-хорошему бы на вики описать хотя бы основное...) |
м (→Назначение: пакетированием -> данными для сборки пакета) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 5: | Строка 5: | ||
== Назначение == | == Назначение == | ||
<tt>gear</tt> | <tt>gear</tt> — инструмент для <tt>[[git]]</tt>-репозиториев с исходным кодом и данными для сборки пакета. <tt>gear</tt> поддерживает полный цикл организации репозиториев: | ||
* Создание репозитория или импорт существующих <tt>src.rpm</tt>-пакетов, | * Создание репозитория или импорт существующих <tt>src.rpm</tt>-пакетов, | ||
* Обновление upstream-кода в репозиториях, | * Обновление upstream-кода в репозиториях, | ||
* Наложение патчей и пакетирование, | * Наложение патчей и пакетирование, | ||
* Экспорт <tt>pkg.tar</tt> и <tt>src.rpm</tt>, сборка бинарных RPM-пакетов. | * Экспорт <tt>pkg.tar</tt> и <tt>src.rpm</tt>, сборка бинарных RPM-пакетов. | ||
В задачи <tt>gear</tt> не входит взаимодействие с [[git.alt]], транспортный уровень обеспечивается самим <tt>git</tt>. | |||
== Принцип функционирования == | == Принцип функционирования == | ||
<tt>gear</tt>-репозиторий | <tt>gear</tt>-репозиторий — это <tt>git</tt>-репозиторий, содержащий файл <tt>.gear/rules</tt>. Этот файл (плюс несколько вспомогательных) описывают правила сборки содержимого <tt>git</tt>-репозитория в пакет формата <tt>pkg.tar</tt> или <tt>src.rpm</tt>. | ||
<tt>pkg.tar</tt> | <tt>pkg.tar</tt> — это основанный на <tt>tar</tt> формат для хранения пакета с исходным кодом, аналогичный <tt>src.rpm</tt>, но не требующий запуска <tt>rpmbuild</tt> для создания. [[hasher]] умеет собирать пакеты в формате <tt>pkg.tar</tt>. | ||
== Содержимое == | == Содержимое == | ||
Строка 24: | Строка 26: | ||
# Обновление исходного кода в <tt>gear</tt>-репозитории: | # Обновление исходного кода в <tt>gear</tt>-репозитории: | ||
#* <tt>gear-update(1)</tt>, | #* <tt>gear-update(1)</tt>, | ||
#* <tt>gear-merge(1)</tt> | #* <tt>gear-merge(1)</tt> — утилита для автоматизации merge разных бранчей. | ||
# Управление changelog (как в spec-файле, так и <tt>git</tt>-ового) в <tt>gear-репозитории</tt>: | # Управление changelog (как в spec-файле, так и <tt>git</tt>-ового) в <tt>gear-репозитории</tt>: | ||
#* <tt>[[Gear/changelog|gear-changelog(1)]]</tt>, | #* <tt>[[Gear/changelog|gear-changelog(1)]]</tt>, | ||
#* <tt>gear-commit(1)</tt>. | #* <tt>gear-commit(1)</tt>. | ||
# Поддержание <tt>git</tt>-тэгов в <tt>gear</tt>-репозитории: | # Поддержание <tt>git</tt>-тэгов в <tt>gear</tt>-репозитории: | ||
#* <tt>gear-create-tag(1)</tt> | #* <tt>gear-create-tag(1)</tt> — обёртка вокруг <tt>git tag</tt>. Создаёт тэг заданного вида (по умолчанию <VERSION>-<RELEASE>) и с заданным сообщением. | ||
#* <tt>gear-update-tag(1)</tt> | #* <tt>gear-update-tag(1)</tt> — утилита для поддержания <tt>.gear/tags</tt> | ||
# Экспортирование и сборка RPM-пакетов из <tt>gear</tt>-репозитория: | # Экспортирование и сборка RPM-пакетов из <tt>gear</tt>-репозитория: | ||
#* <tt>gear(1)</tt>, | #* <tt>gear(1)</tt>, | ||
Строка 46: | Строка 48: | ||
== Правила <tt>.gear/rules</tt> == | == Правила <tt>.gear/rules</tt> == | ||
См. <tt>gear-rules(5)</tt>. | См. <tt>gear-rules(5)</tt> и [[Руководство по gear]]. | ||
== Управление <tt>gear</tt>-тэгами == | == Управление <tt>gear</tt>-тэгами == | ||
Строка 53: | Строка 55: | ||
== Особенности написания <tt>.spec</tt>-файлов == | == Особенности написания <tt>.spec</tt>-файлов == | ||
{{main|spec}} | |||
{{Category navigation|title=gear|category=gear|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=gear|category=gear|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 18:06, 11 апреля 2023
Назначение
gear — инструмент для git-репозиториев с исходным кодом и данными для сборки пакета. gear поддерживает полный цикл организации репозиториев:
- Создание репозитория или импорт существующих src.rpm-пакетов,
- Обновление upstream-кода в репозиториях,
- Наложение патчей и пакетирование,
- Экспорт pkg.tar и src.rpm, сборка бинарных RPM-пакетов.
В задачи gear не входит взаимодействие с git.alt, транспортный уровень обеспечивается самим git.
Принцип функционирования
gear-репозиторий — это git-репозиторий, содержащий файл .gear/rules. Этот файл (плюс несколько вспомогательных) описывают правила сборки содержимого git-репозитория в пакет формата pkg.tar или src.rpm.
pkg.tar — это основанный на tar формат для хранения пакета с исходным кодом, аналогичный src.rpm, но не требующий запуска rpmbuild для создания. hasher умеет собирать пакеты в формате pkg.tar.
Содержимое
gear состоит из набора утилит, помогающих осуществлять несколько различных действий:
- Импорт пакетов с исходным кодом в gear-репозиторий:
- gear-srpmimport(1).
- Обновление исходного кода в gear-репозитории:
- gear-update(1),
- gear-merge(1) — утилита для автоматизации merge разных бранчей.
- Управление changelog (как в spec-файле, так и git-ового) в gear-репозитории:
- gear-changelog(1),
- gear-commit(1).
- Поддержание git-тэгов в gear-репозитории:
- gear-create-tag(1) — обёртка вокруг git tag. Создаёт тэг заданного вида (по умолчанию <VERSION>-<RELEASE>) и с заданным сообщением.
- gear-update-tag(1) — утилита для поддержания .gear/tags
- Экспортирование и сборка RPM-пакетов из gear-репозитория:
- gear(1),
- gear-rpm(1),
- gear-hsh(1),
- gear-remote(1),
- gear-remote-rpm(1),
- gear-remote-hsh(1).
Дополнительно имеются две утилиты
- gear-hsh-build(1) — высокоуровневая обёртка вокруг gear(1), собирающая с помощью hasher несколько gear-репозиториев и укладывающая результирующие пакеты в локальный APT-репозиторий,
- gear-buildreq(1) — утилита для запуска buildreq на содержимом gear-репозитория.
Утилиты экспортирования и сборки пакетов, а также gear-buildreq(1) являются простыми обёртками над низкоуровневой командой gear(1).
Правила .gear/rules
См. gear-rules(5) и Руководство по gear.
Управление gear-тэгами
Особенности написания .spec-файлов