Git.alt/Путь пакета в сизиф: различия между версиями

Материал из ALT Linux Wiki
 
м (Исправлена опечатка, обновлена на актуальную команда для добавления удаленного репозитория)
 
(не показана 21 промежуточная версия 6 участников)
Строка 1: Строка 1:
[[Категория:Неоконченные страницы]]
[[Категория:Неоконченные страницы]]
[[Категория:Git.alt]]
[[Категория:Git.alt]]
[[Категория:Руководства]]
   
   
Дано:
Дано:
# Имеем самосборный guake-0.4.0-alt0.2.src.rpm
# Имеем самосборный подписанный guake-0.4.0-alt0.2.src.rpm
# Умеем собирать в ~/RPM
# Умеем собирать в ~/RPM
# Умеем собирать в hasher
# Умеем собирать в hasher
Строка 13: Строка 14:
Как можно быстрее протолкнуть пакет в сизиф.
Как можно быстрее протолкнуть пакет в сизиф.


==  Вариант первый: быстрый и маргинальный. ==
== Предварительно ==
; [[Справочник по git.alt#SSH-доступ|Cконфигурируем ssh]]
$ cat .ssh/config
UseRoaming no
# Управление git
  Host    git.alt
    HostName gitery.altlinux.org
    Port 222
    User alt_USERNAME
# girar - сборочница gear
Host girar
    HostName gyle.altlinux.org
    Port 222
    User alt_USERNAME


> Как можно быстрее протолкнуть пакет в сизиф.
==  Вариант первый: быстрый и маргинальный ==
  $ rsync -vP guake-0.4.0-alt0.2.src.rpm git.alt:
 
  $ ssh git.alt build srpm guake-0.4.0-alt0.2.src.rpm
: Как можно быстрее протолкнуть пакет в сизиф.
  $ rsync -vP guake-0.4.0-alt0.2.src.rpm girar:
  $ ssh girar build srpm guake-0.4.0-alt0.2.src.rpm


Всё!
Всё!


==  Вариант второй: быстрый и "правильный". ==
==  Вариант второй: быстрый и "правильный" ==


Начинаем: [[Git.alt/Краткое руководство]]
Начинаем: [[Git.alt/Краткое руководство]]


"Создать свой репозиторий на git.alt очень просто"
==== Cоздадим новый репозиторий ====


Создал. Зачем мне test? А как удалить?
Cоздадим новый репозиторий на gitery.altlinux.org:
 
ладно. пусть будет.
 
создадим то, что надо
  arc@arc-laptop ~ $ ssh git.alt init-db guake
  arc@arc-laptop ~ $ ssh git.alt init-db guake
  girar-init-db:    /people/arc/packages/guake.git
  girar-init-db:    /people/arc/packages/guake.git


"необходимо создать пустой локальный репозиторий"
Создадим пустой локальный репозиторий:
 
  arc@arc-laptop ~ $ mkdir -p ~arc/Documents/ALTLinux/devel/quake
Ок. Только не хочу я в домашнем каталоге.
  arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel/quake
 
  arc@arc-laptop ~/Documents/ALTLinux/devel/quake $
  arc@arc-laptop ~ $ mkdir -p ~arc/Documents/ALTLinux/devel
  arc@arc-laptop ~/Documents/ALTLinux/devel/quake $ git init
  arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel
  Initialized empty Git repository in /home/arc/Documents/ALTLinux/devel/quake/.git/
  arc@arc-laptop ~/Documents/ALTLinux/devel $
  arc@arc-laptop ~/Documents/ALTLinux/devel $ git init
  Initialized empty Git repository in /home/arc/Documents/ALTLinux/devel/.git/


"Закоммитить в него нужное содержимое"
Связываем локальный репозиторий с репозиторием на gitery.altlinux.org:
git remote add origin gitery:packages/guake.git


Ок. Но в примере ОДИН файл.
Если весь каталог, то "*"? -- нет, "." (если текущий, либо же по имени).


Да и что мне заряжать в git для сборки пакета?
==== Добавляем нужное содержимое и коммитим ====
Скелет RPM?


> "Закоммитить в него нужное содержимое"<br>
Простейший вариант - есть чистые исходники.
> > Ок. Но в примере ОДИН файл. Если весь каталог то "*"?
: Добавляем исходники в локальный репозиторий:
  gear-srpmimport guake-0.4.0-alt0.2.src.rpm
$ cp -r ~/src/quake/* ./
$ git add .
: Коммитим:
$ git commit -m "Upstream at `date +%F`"
: Ставим подписанный тэг с версией:
  $ git tag -s -m "0.4.0-alt0.2" 0.4.0-alt0.2
Тут есть тонкости с расположением файлов, .gear/rules и пр.


Я знал, что вё должно быть на раз-два! Вот оно!
Другой вариант - когда уже собран SRPM.
Отсталость выяснить в каком месте тут будет "подпись"
: Сначала импортируем SRPM:
<hr>
$ gear-srpmimport quake-0.4.0-alt0.2.src.rpm
> Отсталость выяснить в каком месте тут будет "подпись"<br>
Тут - ни в каком.


: Затем подписываем:
  $ gear-create-tag -f
  $ gear-create-tag -f
<hr>
: Если в gnupg по умолчанию стоит другой ключ, указываем нужный в опции «-u» (список своих ключей смотрим командой {{cmd|gpg -K}}):
> gear-create-tag -f<br>
$ gear-create-tag -fu FAF2CACE
ОК. Успешно подписало.
: Пример:
 
  arc@arc-laptop ~/Documents/ALTLinux/devel/quake $ gear-create-tag -f
  arc@arc-laptop ~/Documents/ALTLinux/devel/squeak/squeak-sources $ gear-create-tag -f
  Необходим пароль для доступа к секретному ключу пользователя:
  Необходим пароль для доступа к секретному ключу пользователя:
  "Anton A. Vinogradov (for altlinux.org) <arc@altlinux.org>"
  "Anton A. Vinogradov (for altlinux.org) <arc@altlinux.org>"
  1024-бит DSA ключ, ID FAF2CACE, создан 2009-12-27
  1024-бит DSA ключ, ID FAF2CACE, создан 2009-12-27


arc@arc-laptop ~/Documents/ALTLinux/devel/squeak/squeak-sources $
==== Отправляем содержимое локального git на gitery.altlinux.org ====


Как я понял это аналогично:
Команда: {{cmd|git push origin master}}


$ git tag -s -m "test-0.1-alt1" test-0.1-alt1
: Пример:
$ git push origin --tags
  arc@arc-netbook ALTLinux/devel/quake $ git push origin master
<hr>
gear-create-tag никакого push не делает, только git tag.  См. тж. gear-upload(1).
 
Отправляем содержимое локального git на git.alt
 
  arc@arc-netbook ALTLinux/devel/psi-plus $ git push      
  Counting objects: 207, done.
  Counting objects: 207, done.
  Delta compression using up to 2 threads.
  Delta compression using up to 2 threads.
Строка 93: Строка 98:
  Repacking repository... done
  Repacking repository... done
  Updating committer date cache... done
  Updating committer date cache... done
  To ssh://git.alt/people/arc/packages/psi-plus.git
  To ssh://git.alt/people/arc/packages/quake.git
   6e1f660..d90e600  master -> master
   6e1f660..d90e600  master -> master


Отправляем tag локального git на git.alt
==== Отправляем tag локального git на gitery.alt ====
Команда: {{cmd|git push --tags}} или {{cmd|git push origin master --tags}}


  arc@arc-netbook ALTLinux/devel/psi-plus $ git push --tags  
: Пример:
  arc@arc-netbook ALTLinux/devel/quake $ git push --tags
  Counting objects: 10, done.
  Counting objects: 10, done.
  Delta compression using up to 2 threads.
  Delta compression using up to 2 threads.
Строка 104: Строка 111:
  Writing objects: 100% (6/6), 1.14 KiB, done.
  Writing objects: 100% (6/6), 1.14 KiB, done.
  Total 6 (delta 2), reused 0 (delta 0)
  Total 6 (delta 2), reused 0 (delta 0)
  girar-sendmail: email notification about `refs/tags/0.15-alt1.r2102' update sent.
  girar-sendmail: email notification about `refs/tags/0.4.0-alt0.2' update sent.
  Repacking repository... done
  Repacking repository... done
  Updating committer date cache... done
  Updating committer date cache... done
  To ssh://git.alt/people/arc/packages/psi-plus.git
  To ssh://git.alt/people/arc/packages/quake.git
  * [new tag]        0.15-alt1.r2102 -> 0.15-alt1.r2102
  * [new tag]        0.4.0-alt0.2 -> 0.4.0-alt0.2


Запускаем сборку
Если где-то ошиблись и нужно "передвинуть" тэг:
git tag -f -s -m "Move 0.4.0-alt0.2" 0.4.0-alt0.2
git push -f --tags


  arc@arc-netbook ALTLinux/devel/psi-plus $ ssh git.alt build packages/psi-plus.git 0.15-alt1.r2102
==== Запускаем сборку ====
Команда: {{cmd|ssh girar build packages/имя-пакета.git версия}}
 
: Пример:
  arc@arc-netbook ALTLinux/devel/quake $ ssh girar build packages/quake.git 0.4.0-alt0.2
  new task #22846: owner=arc repo=sisyphus
  new task #22846: owner=arc repo=sisyphus
  task #22846: added #1: build tag 0.15-alt1.r2102 from /people/arc/packages/psi-plus.git
  task #22846: added #1: build tag 0.4.0-alt0.2 from /people/arc/packages/quake.git
  task #22846: queued, result will be emailed to arc@altlinux.org
  task #22846: queued, result will be emailed to arc@altlinux.org
Результат смотрим в почте и на странице http://git.altlinux.org/tasks/22846

Текущая версия от 10:11, 19 ноября 2024


Дано:

  1. Имеем самосборный подписанный guake-0.4.0-alt0.2.src.rpm
  2. Умеем собирать в ~/RPM
  3. Умеем собирать в hasher
  4. Имеем смутное представление что такое git
  5. Понятия не имеем, что такое gear
  6. Не имеем времени "сражаться с этим в воображении"

Надо: Как можно быстрее протолкнуть пакет в сизиф.

Предварительно

Cконфигурируем ssh
$ cat .ssh/config
UseRoaming no
# Управление git
Host    git.alt
    HostName gitery.altlinux.org
    Port 222
    User alt_USERNAME
# girar - сборочница gear
Host girar
    HostName gyle.altlinux.org
    Port 222
    User alt_USERNAME

Вариант первый: быстрый и маргинальный

Как можно быстрее протолкнуть пакет в сизиф.
$ rsync -vP guake-0.4.0-alt0.2.src.rpm girar:
$ ssh girar build srpm guake-0.4.0-alt0.2.src.rpm

Всё!

Вариант второй: быстрый и "правильный"

Начинаем: Git.alt/Краткое руководство

Cоздадим новый репозиторий

Cоздадим новый репозиторий на gitery.altlinux.org:

arc@arc-laptop ~ $ ssh git.alt init-db guake
girar-init-db:    /people/arc/packages/guake.git

Создадим пустой локальный репозиторий:

arc@arc-laptop ~ $ mkdir -p ~arc/Documents/ALTLinux/devel/quake
arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel/quake
arc@arc-laptop ~/Documents/ALTLinux/devel/quake $
arc@arc-laptop ~/Documents/ALTLinux/devel/quake $ git init
Initialized empty Git repository in /home/arc/Documents/ALTLinux/devel/quake/.git/

Связываем локальный репозиторий с репозиторием на gitery.altlinux.org:

git remote add origin gitery:packages/guake.git


Добавляем нужное содержимое и коммитим

Простейший вариант - есть чистые исходники.

Добавляем исходники в локальный репозиторий:
$ cp -r ~/src/quake/* ./
$ git add .
Коммитим:
$ git commit -m "Upstream at `date +%F`"
Ставим подписанный тэг с версией:
$ git tag -s -m "0.4.0-alt0.2" 0.4.0-alt0.2

Тут есть тонкости с расположением файлов, .gear/rules и пр.

Другой вариант - когда уже собран SRPM.

Сначала импортируем SRPM:
$ gear-srpmimport quake-0.4.0-alt0.2.src.rpm
Затем подписываем:
$ gear-create-tag -f
Если в gnupg по умолчанию стоит другой ключ, указываем нужный в опции «-u» (список своих ключей смотрим командой gpg -K):
$ gear-create-tag -fu FAF2CACE
Пример:
arc@arc-laptop ~/Documents/ALTLinux/devel/quake $ gear-create-tag -f
Необходим пароль для доступа к секретному ключу пользователя:
"Anton A. Vinogradov (for altlinux.org) <arc@altlinux.org>"
1024-бит DSA ключ, ID FAF2CACE, создан 2009-12-27

Отправляем содержимое локального git на gitery.altlinux.org

Команда: git push origin master

Пример:
arc@arc-netbook ALTLinux/devel/quake $ git push origin master
Counting objects: 207, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (109/109), done.
Writing objects: 100% (115/115), 67.51 KiB, done.
Total 115 (delta 84), reused 0 (delta 0)
girar-sendmail: email notification about `refs/heads/master' update sent.
Repacking repository... done
Updating committer date cache... done
To ssh://git.alt/people/arc/packages/quake.git
  6e1f660..d90e600  master -> master

Отправляем tag локального git на gitery.alt

Команда: git push --tags или git push origin master --tags

Пример:
arc@arc-netbook ALTLinux/devel/quake $ git push --tags
Counting objects: 10, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.14 KiB, done.
Total 6 (delta 2), reused 0 (delta 0)
girar-sendmail: email notification about `refs/tags/0.4.0-alt0.2' update sent.
Repacking repository... done
Updating committer date cache... done
To ssh://git.alt/people/arc/packages/quake.git
* [new tag]         0.4.0-alt0.2 -> 0.4.0-alt0.2

Если где-то ошиблись и нужно "передвинуть" тэг:

git tag -f -s -m "Move 0.4.0-alt0.2" 0.4.0-alt0.2
git push -f --tags

Запускаем сборку

Команда: ssh girar build packages/имя-пакета.git версия

Пример:
arc@arc-netbook ALTLinux/devel/quake $ ssh girar build packages/quake.git 0.4.0-alt0.2
new task #22846: owner=arc repo=sisyphus
task #22846: added #1: build tag 0.4.0-alt0.2 from /people/arc/packages/quake.git
task #22846: queued, result will be emailed to arc@altlinux.org

Результат смотрим в почте и на странице http://git.altlinux.org/tasks/22846