[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