SrpmToGitTry

Материал из ALT Linux Wiki
Версия от 10:35, 31 мая 2019; Sb (обсуждение | вклад) (источник неправильного написания названия дистрибутива (в том числе и в википедии))

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

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

1. В ~/.ssh/config добавляем (внимание: из git выделили gitery, см. 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). Можно использовать текущий каталог разработки (наверное?).

$ mkdir pakname
$ cd pakname

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

$ ssh git.alt init-db pakname 

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

$ git init

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

$ git remote add origin git.alt:packages/pakname.git

Здесь pakname - имя репозитория, выбранное нами ранее.

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

 gear-srpmimport path-to/pakname.srpm

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

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

$ gear-create-tag

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

$ git push
$ git push --tags

10. Если всё ОК, запрашиваем сборку:

$ ssh git.alt build pakname pakname-version

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

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

$ ssh git.alt task ls


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

$ git push
$ ssh git.alt build pakname pakname-version


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

 $git commit -a

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

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

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