Gear/Справочник: различия между версиями

Материал из ALT Linux Wiki
м (→‎Назначение: пакетированием -> данными для сборки пакета)
 
(не показана 21 промежуточная версия 7 участников)
Строка 1: Строка 1:
[[Категория:Sisyphus]]
[[Категория:Devel]]
[[Категория:Справочники]]
[[Категория:Справочники]]
{{Stub}}
{{Stub}}
{{DISPLAYTITLE:gear/Справочник}}


== Назначение ==
== Назначение ==


<tt>gear</tt> - инструмент для управления <tt>git</tt>-репозиториями с исходным кодом и пакетированием. <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>git</tt>-репозиторий, содержащий файл <tt>.gear/rules</tt>. Этот файл (плюс несколько вспомогательных) описывают правила сборки содержимого <tt>git</tt>-репозитория в пакет формата <tt>pkg.tar</tt> или <tt>src.rpm</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>tar</tt> формат для хранения пакета с исходным кодом, аналогичный <tt>src.rpm</tt>, но не требующий запуска <tt>rpmbuild</tt> для создания. [[hasher]] умеет собирать пакеты в формате <tt>pkg.tar</tt>.
<tt>pkg.tar</tt> это основанный на <tt>tar</tt> формат для хранения пакета с исходным кодом, аналогичный <tt>src.rpm</tt>, но не требующий запуска <tt>rpmbuild</tt> для создания. [[hasher]] умеет собирать пакеты в формате <tt>pkg.tar</tt>.


== Содержимое ==
== Содержимое ==


<tt>gear</tt> состоит из набора утилит, помогающих осуществлять несколько различных деятельностей:
<tt>gear</tt> состоит из набора утилит, помогающих осуществлять несколько различных действий:
# Импорт пакетов с исходным кодом в <tt>gear</tt>-репозиторий:
# Импорт пакетов с исходным кодом в <tt>gear</tt>-репозиторий:
#* <tt>gear-srpmimport(1)</tt>.
#* <tt>gear-srpmimport(1)</tt>.
# Обновление исходного кода в <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(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>,
Строка 41: Строка 42:


Дополнительно имеются две утилиты
Дополнительно имеются две утилиты
* <tt>gear-hsh-build(1)</tt> — высокоуровневая обёртка вокруг <tt>gear(1)</tt>, собирающая с помощью [[hasher]] несколько <tt>gear</tt>-репозиториев и укладывающая их в локальный APT-репозиторий,
* <tt>gear-hsh-build(1)</tt> высокоуровневая обёртка вокруг <tt>gear(1)</tt>, собирающая с помощью [[hasher]] несколько <tt>gear</tt>-репозиториев и укладывающая результирующие пакеты в локальный APT-репозиторий,
* <tt>gear-buildreq(1)</tt> — утилита для запука [[buildreq]] на содержимом <tt>gear</tt>-репозитория.
* <tt>gear-buildreq(1)</tt> утилита для запуска [[buildreq]] на содержимом <tt>gear</tt>-репозитория.


Утилиты экспортирования и сборки пакетов, а также <tt>gear-buildreq(1)</tt> являются простыми обёртками над низкоуровневой командой <tt>gear(1)</tt>.
Утилиты экспортирования и сборки пакетов, а также <tt>gear-buildreq(1)</tt> являются простыми обёртками над низкоуровневой командой <tt>gear(1)</tt>.


== Правила <tt>.gear/rules</tt> ==
== Правила <tt>.gear/rules</tt> ==
См. <tt>gear-rules(5)</tt> и [[Руководство по gear]].


== Управление <tt>gear</tt>-тэгами ==
== Управление <tt>gear</tt>-тэгами ==
''викифицировать:''


<raorn> gear-update-tag<br>
* {{Main|Gear/tags}}
<raorn> коммитишь<br>
<raorn> gear --hasher<br>
<raorn> gear-create-tag<br>
<raorn> git push<br>
<mike> http://www.altlinux.org/Gear/geartags?<br>
<raorn> .gear/tags<br>
<raorn> угу, оно


== Особенности написания <tt>.spec</tt>-файлов ==
== Особенности написания <tt>.spec</tt>-файлов ==
{{main|spec}}
{{Category navigation|title=gear|category=gear|sortkey={{SUBPAGENAME}}}}

Текущая версия от 18:06, 11 апреля 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Назначение

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 состоит из набора утилит, помогающих осуществлять несколько различных действий:

  1. Импорт пакетов с исходным кодом в gear-репозиторий:
    • gear-srpmimport(1).
  2. Обновление исходного кода в gear-репозитории:
    • gear-update(1),
    • gear-merge(1) — утилита для автоматизации merge разных бранчей.
  3. Управление changelog (как в spec-файле, так и git-ового) в gear-репозитории:
  4. Поддержание git-тэгов в gear-репозитории:
    • gear-create-tag(1) — обёртка вокруг git tag. Создаёт тэг заданного вида (по умолчанию <VERSION>-<RELEASE>) и с заданным сообщением.
    • gear-update-tag(1) — утилита для поддержания .gear/tags
  5. Экспортирование и сборка 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-тэгами

Основная статья: Gear/tags


Особенности написания .spec-файлов

Основная статья: spec