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

Artem Zolochevskiy az на zolochevskie.net
Пн Дек 4 03:39:30 MSK 2006


Совсем совсем совсем черновик...

gear-репозиторий на git.alt отсутствует и пакета в Сизифе тоже нет.
==============================================

на примере http://sourceforge.net/projects/cpat/

1. Для примеров работы с gear-репозиториями создадим каталог, в котором будут 
размещаться все наши будущие gear-репозитории. Назовём его GIT
$ mkdir ~/GIT
$ cd ~/GIT

2. Загружаем 2 последние версии cpat. Сперва мы будем работать с версией 0.7 а 
затем с 0.8
$ wget -c -v http://dl.sourceforge.net/cpat/cpat-0.7.tar.gz
$ wget -c -v http://dl.sourceforge.net/cpat/cpat-0.8.tar.gz

3. tarball-ы загружены и можно приступать к созданию gear-репозитория. Для 
этого необходимо создать каталог для будущего репозитория.
$ mkdir cpat
$ cd cpat
$ git init-db
defaulting to local storage area

4. Распаковываем версию 0.7
$ tar -xzf ../cpat-0.7.tar.gz
$ ls -gG
итого 4
drwxr-xr-x 5 4096 Июн 19 18:19 cpat-0.7

5. Перемиенуем каталог cpat-0.7 в cpat (зачем?)
$ mv cpat-0.7 cpat
$ ls -gG
итого 4
drwxr-xr-x 5 4096 Июн 19 18:19 cpat

6. Добавляем в git-репозиторий получившийся каталог.
$ git add cpat

7. Фиксируем (делаем commit) изменения в git-репозитории. (Перед фиксацией 
любых изменений в git-репозитории стоит перепроверить себя и убедиться что 
фиксируются именно те изменения, которые мы и хотим зафиксировать.)
$ git status
$ git -p diff
$ git-commit -m "Added cpat 0.7 source from cpat-0.7.tar.gz"

8. Для того, чтоб git-репозиторий стал gear-репозиторием (таким репозиторием 
из которого можно собирать пакеты) нам предстоит добавить файл .gear-rules и 
spec-файл для сборки cpat (с подробностями написания spec-файлов можно 
ознакомиться на ... ссылка на доку для разработчика)
$ cat <<EOF > cpat.spec
> Name: cpat
> Version: 0.7
> Release: alt1
>
> Summary: cpat - a curses-based solitaire game
> License: GPL
> Group: Games/Cards
> Url: http://sourceforge.net/projects/cpat
>
> Packager: You Name <youname на altlinux.ru>
>
> Source: %name-%version.tar.gz
>
> %description
> CPat is collection of solitaire card games. Different games
> can be chosen from a menu at startup. Games implemented in
> this collection include Freecell, Klondike, Spider and many
> more.
>
> Author:
> Trevor Carey-Smith <trev at highwater dot co dot nz>
>
> %prep
> %setup -q
>
> %build
> %configure
> %make_build
>
> %install
> %make_install DESTDIR=%buildroot install
>
> %files
> %doc AUTHORS COPYING ChangeLog README
> %_bindir/*
> %_mandir/*/*
>
> %changelog
> * Mon Dec 04 2006 You Name <youname на altlinux.ru> 0.7-alt1
> - initial build for Sisyphus
> EOF

$ ls -gG
итого 8
drwxr-xr-x 5 4096 Июн 19 18:19 cpat
-rw-r--r-- 1  775 Дек  4 00:19 cpat.spec

$ git add cpat.spec
$ git status
$ git -p diff -M HEAD
$ git commit -m "Added spec file"

$ cat << EOF > .gear-rules
> tar.gz: cpat
> EOF

$ ls -AgG
итого 16
drwxr-xr-x 5 4096 Июн 19 18:19 cpat
-rw-r--r-- 1  775 Дек  4 00:19 cpat.spec
-rw-r--r-- 1   13 Дек  4 00:22 .gear-rules
drwxr-xr-x 8 4096 Дек  4 00:21 .git

$ git add .gear-rules
$ git status
$ git -p diff -M HEAD
$ git commit -m "Added .gear-rules file"

9. Теперь gear-перозиторий готов к тому, чтоб собирать из него пакеты. Для 
сборки пакета в hasher
$ gear --hasher -- hsh ~/HASHER

9а итд
Производить модификации/commit-ы, проверки на собираемость до удовлетворения 
результатом.

Далее скорее вопросы чем повествование...
=========================================

10. Сделать тэг? - Не знаю надо(Обязательно) ли... 

Опять же старый вопрос... Вот читаю
"Для того, чтобы сделать commit очередной сборки пакета, имеет смысл
воспользоваться утилитой gear-commit, которая помогает сформировать
список изменений на основе записи в spec-файле:"
$ gear-commit -a
Но ведь у меня уже всё за-commit-чено и gear-commit -a просто не отработает 
получается...

Ну да ладно. Сделаем руками. Важен ли его формат. gear-srpmimport сделел бы 
здесь 0.6-alt1, ну и я так сделаю :-)
$ git tag 0.7-alt1
$ git-tag -l
0.7-alt1

11. Так по сей день и не знаю что надо делать чтоб "отправить пакет" на сборку 
в Сизиф...

12. Загружаем получившийся gear-репозиторий на alt.git (Да я помню что это 
лучше описывать ДО вопросов связанных с пубуликацией в Сизифе. Окончательно 
так и будет)
$  ssh git.alt git-init-db cpat

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


Вот тут опытные должны посоветовать
===================================
С версией 0.7 разобрались - gear-репозиторий создан, пакеты из него 
собираеются
Теперь надо как-то втаскивать версию 0.8. Посоветуйте как.

Так пойдёт?
$ rm -rf cpat
$ tar xzf ../cpat-0.8.tar.gz
$ mv cpat-0.8/ cpat
$ git add cpat
$ git commit -a -m "Added cpat 0.8 source from cpat-0.8.tar.gz"

Далее правим cpat.spec
меняем версию с 0.7 на 0.8 + дописываем changelog (при желании add_changelog)
$ vim cpat.spec
$ git-commit -m "Changed cpat.spec for new cpat version - 0.8" cpat.spec

Собираемость
$ gear --hasher -- hsh ~/HASHER

Ну и снова тэг?
$ git-tag 0.8-alt1
$ git-tag -l
0.7-alt1
0.8-alt1

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

----------

Ох, если чего дурное спрашиваю/пишу - говорите. Не исключаю, что я вообще 
чего-то недопонимаю во всей этой gear/git кухне. Для того и разбираюсь...

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


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