SrpmToGitTry: различия между версиями

Материал из ALT Linux Wiki
мНет описания правки
(9.5: "test your build" (also minor formatting))
 
(не показаны 3 промежуточные версии 3 участников)
Строка 1: Строка 1:
== Как собрать пакет на git.alt, если есть srpm или tgz+spec. ==
== Как собрать пакет на git.alt, если есть srpm или tgz+spec. ==


Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член AltLinux Team и Вам выданы ssh- и gpg-ключи.
Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член Alt Linux Team (или как минимум добрались до п.2.3 регламента) и Вам выданы ssh- и gpg-ключи.


1.  В ~/.ssh/config добавляем:
1.  В ~/.ssh/config добавляем сервера gitery и gyle и настраиваем git config. Как это делать - см. [[Git.alt/Справочник#SSH-доступ]].
 
Host git.alt
  HostName git.altlinux.org
  Port 222
  User git_NAME
  IdentityFile ~/.ssh/id_dsa.alt
 
Где NAME - выданное при регистрации имя, а ~/.ssh/id_dsa.alt - сгенерированный при регистрации публичный ssh-ключ.
 
1a. Далее выполняем:
$ git config --global user.signingkey "user@altlinux.org"
$ git config --global user.email "user@altlinux.org"
$ git config --global user.name "Vasilij Pupkin"
 
Здесь user@altlinux.org - идентификатор gpg-ключа для подписи, сгенерированный при регистрации, "Vasilij Pupkin" - Ваше имя и фамилия.


2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?).
2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?).
Строка 25: Строка 10:


3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать.
3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать.
  $ ssh git.alt init-db pakname  
  $ ssh gitery init-db pakname  


4. Инициализируем git локально:
4. Инициализируем git локально:
Строка 32: Строка 17:
5. Теперь нужно настроить git:
5. Теперь нужно настроить git:


  $ git remote add origin git.alt:packages/pakname.git
  $ git remote add origin ssh://gitery:/people/$USER/packages/$PAKNAME.git


Здесь pakname - имя репозитория, выбранное нами ранее.
Здесь $USER - наше имя (без префикса "alt_"), а $PAKNAME - имя репозитория, выбранное нами ранее.


7. Теперь надо подготовить содержимое каталога. '''Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты.'''
7. Теперь надо подготовить содержимое каталога. '''Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты.'''
Строка 43: Строка 28:
8. Добавляем тег к сборке:
8. Добавляем тег к сборке:
  $ gear-create-tag
  $ gear-create-tag
P.S. Он может сказать "fatal: tag '....' already exists", тогда просто пропускаем этот шаг; похоже, gear-srpmimport это делает автоматически


9. Отправляем изменения на сервер
9. Отправляем изменения на сервер
Строка 48: Строка 34:
  $ git push --tags
  $ git push --tags


10. Если всё ОК, запрашиваем сборку:
9,5. Если сомневаемся, можно проверить, всё ли хорошо собирается:
  $ ssh git.alt build pakname pakname-version
$ gear-hsh
 
10. Если всё ОК, запрашиваем сборку (если у нас есть доступ к gyle):
  $ ssh gyle build pakname pakname-version


Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега.
Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега.


11. Теперь можно посмотреть статус Ваших сборок:
11. Теперь можно посмотреть статус Ваших сборок:
  $ ssh git.alt task ls
  $ ssh gyle task ls
 


Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10.
Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10.
  $ git push
  $ git push
  $ ssh git.alt build pakname pakname-version
  $ ssh gyle build pakname pakname-version
 


Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить:
Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить:
   $git commit -a
   $ git commit -a


Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл.
Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл.

Текущая версия от 20:22, 9 марта 2022

Как собрать пакет на git.alt, если есть srpm или tgz+spec.

Вводная - Вы хотите собрать пакет в git.alt, имея отлаженный в hasher srpm-пакет или spec и архив tgz. Что делать? Предполагается, что Вы член Alt Linux Team (или как минимум добрались до п.2.3 регламента) и Вам выданы ssh- и gpg-ключи.

1. В ~/.ssh/config добавляем сервера gitery и gyle и настраиваем git config. Как это делать - см. Git.alt/Справочник#SSH-доступ.

2. Создаём каталог, где будет всё происходить (здесь - pakname). Можно использовать текущий каталог разработки (наверное?).

$ mkdir pakname
$ cd pakname

3. Создаём репозиторий на git.alt - на один пакет (spec) один репозиторий. В данном случае имя репозитория = имя пакета. Наверное, лучше всего всегда так делать.

$ ssh gitery init-db pakname 

4. Инициализируем git локально:

$ git init

5. Теперь нужно настроить git:

$ git remote add origin ssh://gitery:/people/$USER/packages/$PAKNAME.git

Здесь $USER - наше имя (без префикса "alt_"), а $PAKNAME - имя репозитория, выбранное нами ранее.

7. Теперь надо подготовить содержимое каталога. Я до сих пор не уверен, что делаю всё верно, пусть старшие товарищи опишут здесь возможные правильные варианты. Я делал так:

 gear-srpmimport path-to/pakname.srpm

При этом у меня был проверенный заранее в хешере srpm.

8. Добавляем тег к сборке:

$ gear-create-tag

P.S. Он может сказать "fatal: tag '....' already exists", тогда просто пропускаем этот шаг; похоже, gear-srpmimport это делает автоматически

9. Отправляем изменения на сервер

$ git push
$ git push --tags

9,5. Если сомневаемся, можно проверить, всё ли хорошо собирается:

$ gear-hsh

10. Если всё ОК, запрашиваем сборку (если у нас есть доступ к gyle):

$ ssh gyle build pakname pakname-version

Здесь pakname - имя репозитория (=имя пакета), а pakname-version - имя тега.

11. Теперь можно посмотреть статус Ваших сборок:

$ ssh gyle task ls

Если сборка не удалась, Вы обновили исходники и уверены, что уж теперь-то всё получится, выполните пп. 9-10.

$ git push
$ ssh gyle build pakname pakname-version

Если Вы подготовили новую версию пакета, новые изменения надо сначала закоммитить:

 $ git commit -a

Затем выполните пп. 8-10, указав новый тег версии, который должен быть больше старой версии. Не забудьте внести изменения в spec-файл. Теги старой версии (до commit) не наследуются, поэтому сначала убедитесь, что все изменения внесены, сделайте commit и только потом создавайте тег.

Если Вы хотите собрать другой пакет, выполните пп. 2-10.

Хорошо бы сюда вставить ссылки на Git.alt/Справочник, Git.alt/Краткое_руководство, hasher и другие полезные вещи.