[docs] сценарии работы с gear/git для чайников - часть1 (gear-srpmimport)

Artem Zolochevskiy az на zolochevskie.net
Пт Ноя 24 13:08:20 MSK 2006


Помогайте, что где не так/не совсем так/совсем не так

Итак что хотим. Хотим показать как сделать gear репозиторий и сделать в нём 
новую/исправленную версию пакета дабы она оказалсь в Сизифе

Поехали...

для описанного ниже понадобятся: git, gear, hasher
так что сперва:
# apt-get install git gear hasher

gear репозиторий на основе имеющихся в Сизифе srpm-ов (для чайников)
===================================================
(не примере пакета joe. конечная цель всего лишь добавить русский Summary)

1. смотрим в архив Сизифа, вытаскиваем все имеющиеся srpm-ы
$ lftp -c cat  
ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus/index/joe
2003/11/14/files/SRPMS/joe-2.9.8-alt0.2pre1.src.rpm
2004/04/28/files/SRPMS/joe-3.0-alt1.src.rpm
2004/05/14/files/SRPMS/joe-3.0-alt2.src.rpm
2005/02/16/files/SRPMS/joe-3.1-alt1.src.rpm
2005/03/24/files/SRPMS/joe-3.2-alt1.src.rpm
2005/06/08/files/SRPMS/joe-3.3-alt1.src.rpm
2006/06/15/files/SRPMS/joe-3.4-alt1.src.rpm
2006/08/05/files/SRPMS/joe-3.5-alt1.src.rpm

загружаем все эти srpm-ы. - подскажите как это лучше /проще сделать.

2. создаем катаклог для будущего gear репозитория, и в нём git-репозиторий
$ mkdir joe
$ cd joe
$ git-init-db
defaulting to local storage area

3. импортируем скачанные srpm-ы
а) можно руками
$ gear-srpmimport ../joe-2.9.8-alt0.2pre1.src.rpm
итд по порядку - от младших версий к старшим
б) можно воспользоваться index файлом 
(ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus/index/joe), который 
содержит отсортированный список srpm-ов который подаётся на 
gear-rspmimport  --stdin
$ lftp -c cat  
ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus/index/joe | 
sed 's/.*\//\.\.\//' | gear-srpmimport --stdin

4. В итоге имеем готовый gear репозиторий. gear-rules при использовании 
gear-srpmimport создается автоматом
$ ls -AgG
итого 40
-rw-r--r-- 1   94 Ноя 24 11:02 .gear-rules
drwxr-xr-x 8 4096 Ноя 24 11:02 .git
drwxr-xr-x 8 4096 Ноя 24 11:02 joe
-rw-r--r-- 1  317 Ноя 24 11:02 joe-3.0-yuk-c-color.patch
-rw-r--r-- 1 2189 Ноя 24 11:02 joe-3.5-joerc.patch
-rw-r--r-- 1  382 Ноя 24 11:02 joe.desktop
drwxr-xr-x 2 4096 Ноя 24 11:02 joe_icons
-rw-r--r-- 1 2906 Ноя 24 11:02 joe.png
-rw-r--r-- 1 5962 Ноя 24 11:02 joe.spec

$ cat .gear-rules
copy: *.desktop
copy: *.patch
copy: *.png
tar.gz: joe
tar.bz2: joe_icons name=joe_icons base=

5. Начинаем работать с только что созданным gear репозиторием. Правим спек
$ vim joe.spec
добавляем строчку
Summary(ru_RU.UTF-8): Простой в использовании текстовый редактор

изменения необходимо зафиксировать (сделать commit)
$ git-commit -a -m"Added russain Summary to spec"

убедимся что наше изменение сохранилось в истории
$ git-log

6. Как и подобает после внесения изменений с spec проверяем собирается ли наш 
пакет ;-) . Ну и как и полагается проверяем собираемость в hasher
$ gear --hasher -- hsh ~/HASHER

7. Пока шла сборка пакета, понимаем/вспоминаем, что забыли в spec дописать 
changelog и увеличить версию. Так что
$ vim joe.spec
меняем Release: alt1 на Release: alt2

добавляем changelog в spec
$ add_changelog -e"- russian Summary" joe.spec

изменения снова необходимо зафиксировать (сделать commit)
$ git-commit -a -m"Changed version to 3.5-alt2 and added changelog to spec"

8. Теперь по идее снова надо перепроверить сборку ;-)
$ gear --hasher -- hsh ~/HASHER

9. Всё замечательно и можно приступать к публикации тех изменений, которые мы 
внесли в пакет

Вот как тут быть я не в курсе... по идее говорят надо сделать gear-commit -a,
но ведь все изменения мной уже за-commit-чены и gear-commit -a просто не 
отработает.

Нужно ли что-то делать с тэгами? - git-tag ?

Нужно как-то (gear-release?) сделать тег специального вида, являющийся 
указанием сборочной системе на сборку пакета, из этого репозитория

Способ инициации сборки пакета ещё обсуждается в devel на .

10. Пока я только понял как то, что сделано у себя, залить на git.alt .
создаём пустой git репозиторий на git.alt
$  ssh git.alt git-init-db joe

закачать gear репозиторий с которм мы работали/создали на git.alt
$ git-push --all git.alt:packages/joe.git


Кто прояснит про пункт 9 ?

-- 
Artem Zolochevskiy
Kaliningrad, Russia
JID: az на jabber.org


Подробная информация о списке рассылки docs