[docs] сценарии работы с gear/git для чайников - часть1 (gear-srpmimport)
Kirill Maslinsky
kirill на altlinux.ru
Пт Ноя 24 13:55:47 MSK 2006
> Помогайте, что где не так/не совсем так/совсем не так
>
> Итак что хотим. Хотим показать как сделать gear репозиторий и сделать в нём
> новую/исправленную версию пакета дабы она оказалсь в Сизифе
>
> Поехали...
>
> для описанного ниже понадобятся: git, gear, hasher
> так что сперва:
> # apt-get install git gear hasher
Может неявное требование -- объем доступа к архиву Сизифа
тоже прописать?
Лучше обозначить этот сценарий как
"Пакет был в Сизифе, но отсутствует в git.alt"
> gear репозиторий на основе имеющихся в Сизифе srpm-ов (для чайников)
> ===================================================
gear-репозиторий и git-репозиторий и т. п. пишется все-таки через дефис
> (не примере пакета 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-ы. - подскажите как это лучше /проще сделать.
может, так:
$ lftp -c cat ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus/index/joe | wget -i - --base=ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus/
Или лучше даже так:
$ export FTPARCHIVE=ftp://ftp.altlinux.ru/pub/distributions/archive/Sisyphus
$ lftp -c cat $FTPARCHIVE/index/joe | wget -i - --base=$FTPARCHIVE
> 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
Может, лучше в примерах сначала создавать рабочий подкаталог, потом туда
скачивать все srpm-ы, потом прямо в нем делать git-репозиторий и импортировать?
А то про sed не все поймут и не у всех это сработает.
> 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=
Растолкование смысла этого .gear-rules надо привести обязательно с
отсылками к тому, что мы видим в рабочем каталоге и в спеке.
> 5. Начинаем работать с только что созданным gear репозиторием. Правим спек
> $ vim joe.spec
> добавляем строчку
> Summary(ru_RU.UTF-8): Простой в использовании текстовый редактор
>
> изменения необходимо зафиксировать (сделать commit)
> $ git-commit -a -m"Added russain Summary to spec"
Лучше не делать в примерах -a -m, а то у них может закомиттиться чего лишнего?
Или не хочется объяснять, что там такое будет писать git при комитте?
Может, стоит ввести в примерах где-то git diff, чтобы посмотреть, какие
изменения и в каком комитте (еще раз привлечь внимание к тому, что
изменения должны находиться в репозитории).
> убедимся что наше изменение сохранилось в истории
> $ 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"
Может быть тут правильнее сделать gear-commit ?
>
> 8. Теперь по идее снова надо перепроверить сборку ;-)
> $ gear --hasher -- hsh ~/HASHER
>
> 9. Всё замечательно и можно приступать к публикации тех изменений, которые мы
> внесли в пакет
>
> Вот как тут быть я не в курсе... по идее говорят надо сделать gear-commit -a,
> но ведь все изменения мной уже за-commit-чены и gear-commit -a просто не
> отработает.
>
> Нужно ли что-то делать с тэгами? - git-tag ?
Точно нужно поставить тег, соответствующий версии/релизу, точно такой же,
какие делает gear-srpmimport.
> Нужно как-то (gear-release?) сделать тег специального вида, являющийся
> указанием сборочной системе на сборку пакета, из этого репозитория
>
> Способ инициации сборки пакета ещё обсуждается в devel at .
2ldv@: Еще не обсудился окончательно?
> 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 at jabber.org
> _______________________________________________
> docs mailing list
> docs at lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/docs
--
Kirill Maslinsky
ALT Linux Documentation Team
http://heap.altlinux.ru
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.altlinux.org/pipermail/docs/attachments/20061124/2ca56abc/attachment-0001.bin
Подробная информация о списке рассылки docs