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

Материал из ALT Linux Wiki
(→‎Вариант второй: быстрый и "правильный".: Попытка сделать внятную инструкцию)
Строка 25: Строка 25:
Начинаем: [[Git.alt/Краткое руководство]]
Начинаем: [[Git.alt/Краткое руководство]]


"Создать свой репозиторий на git.alt очень просто"
Предварительно сконфигурируем ssh:
$ cat .ssh/config
UseRoaming no
# Управление git
Host    gitery.alt
    HostName gitery.altlinux.org
    Port 222
# сборочница gear
Host git.alt
    HostName git.altlinux.org
    Port 222


Создал. Зачем мне test? А как удалить?
Cоздадим новый репозитарий на gitery.altlinux.org:
 
  arc@arc-laptop ~ $ ssh gitery.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
  arc@arc-laptop ~ $ mkdir -p ~arc/Documents/ALTLinux/devel
  arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel
  arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel
Строка 45: Строка 48:
  Initialized empty Git repository in /home/arc/Documents/ALTLinux/devel/.git/
  Initialized empty Git repository in /home/arc/Documents/ALTLinux/devel/.git/


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


Ок. Но в примере ОДИН файл.  
Добавляем нужное содержимое и коммитим
Если весь каталог, то "*"? -- нет, "." (если текущий, либо же по имени).
Если есть чистые исходники:
cp -r ~/src/quake/* ./
git add .
git commit -m "Upstream at `date +%F`"
git push origin master


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


Другой вариант - для SRPM:
> "Закоммитить в него нужное содержимое"<br>
> "Закоммитить в него нужное содержимое"<br>
> > Ок. Но в примере ОДИН файл. Если весь каталог то "*"?
> > Ок. Но в примере ОДИН файл. Если весь каталог то "*"?
  gear-srpmimport guake-0.4.0-alt0.2.src.rpm
  gear-srpmimport guake-0.4.0-alt0.2.src.rpm
Я знал, что вё должно быть на раз-два! Вот оно!


Я знал, что вё должно быть на раз-два! Вот оно!
Отсталость выяснить в каком месте тут будет "подпись"  
Отсталость выяснить в каком месте тут будет "подпись"  
<hr>
<hr>
Строка 82: Строка 89:
gear-create-tag никакого push не делает, только git tag.  См. тж. gear-upload(1).
gear-create-tag никакого push не делает, только git tag.  См. тж. gear-upload(1).


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


  arc@arc-netbook ALTLinux/devel/psi-plus $ git push       
  arc@arc-netbook ALTLinux/devel/psi-plus $ git push       
Строка 93: Строка 100:
  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://gitery.alt/people/arc/packages/psi-plus.git
   6e1f660..d90e600  master -> master
   6e1f660..d90e600  master -> master


Строка 107: Строка 114:
  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://gitery.alt/people/arc/packages/psi-plus.git
  * [new tag]        0.15-alt1.r2102 -> 0.15-alt1.r2102
  * [new tag]        0.15-alt1.r2102 -> 0.15-alt1.r2102


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


  arc@arc-netbook ALTLinux/devel/psi-plus $ ssh gyle.alt build packages/psi-plus.git 0.15-alt1.r2102
  arc@arc-netbook ALTLinux/devel/psi-plus $ ssh git.alt build packages/psi-plus.git 0.15-alt1.r2102
  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.15-alt1.r2102 from /people/arc/packages/psi-plus.git
  task #22846: queued, result will be emailed to arc@altlinux.org
  task #22846: queued, result will be emailed to arc@altlinux.org

Версия от 17:04, 21 ноября 2017


Дано:

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

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

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

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

$ 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

Всё!

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

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

Предварительно сконфигурируем ssh:

$ cat .ssh/config
UseRoaming no
# Управление git
Host    gitery.alt
    HostName gitery.altlinux.org
    Port 222
# сборочница gear
Host git.alt
    HostName git.altlinux.org
    Port 222

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

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

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

arc@arc-laptop ~ $ mkdir -p ~arc/Documents/ALTLinux/devel
arc@arc-laptop ~ $ cd ~arc/Documents/ALTLinux/devel
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.alt:

git remote add origin gitery.alt:packages/guake.git

Добавляем нужное содержимое и коммитим Если есть чистые исходники:

cp -r ~/src/quake/* ./
git add .
git commit -m "Upstream at `date +%F`"
git push origin master


Другой вариант - для SRPM: > "Закоммитить в него нужное содержимое"
> > Ок. Но в примере ОДИН файл. Если весь каталог то "*"?

gear-srpmimport guake-0.4.0-alt0.2.src.rpm

Я знал, что вё должно быть на раз-два! Вот оно!

Отсталость выяснить в каком месте тут будет "подпись"


> Отсталость выяснить в каком месте тут будет "подпись"
Тут - ни в каком.

$ gear-create-tag -f

> 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>"
1024-бит DSA ключ, ID FAF2CACE, создан 2009-12-27
arc@arc-laptop ~/Documents/ALTLinux/devel/squeak/squeak-sources $

Как я понял это аналогично:

$ git tag -s -m "test-0.1-alt1" test-0.1-alt1
$ git push origin --tags 

gear-create-tag никакого push не делает, только git tag. См. тж. gear-upload(1).

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

arc@arc-netbook ALTLinux/devel/psi-plus $ git push       
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://gitery.alt/people/arc/packages/psi-plus.git
  6e1f660..d90e600  master -> master

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

arc@arc-netbook ALTLinux/devel/psi-plus $ 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.15-alt1.r2102' update sent.
Repacking repository... done
Updating committer date cache... done
To ssh://gitery.alt/people/arc/packages/psi-plus.git
* [new tag]         0.15-alt1.r2102 -> 0.15-alt1.r2102

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

arc@arc-netbook ALTLinux/devel/psi-plus $ ssh git.alt build packages/psi-plus.git 0.15-alt1.r2102
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: queued, result will be emailed to arc@altlinux.org