Gear/ImportUpstreamVBranch

Материал из ALT Linux Wiki
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.

Описание процесса привязки к "апстримным" сорцам в отдельный бранче (на примере dbmail)

Процесс описываю без лишних подробностей (они есть здесь: Импорт истории пакета и вынесение "апстримных" сорцов в отдельный бранч на примере пакета mutt1.5).

Клонирование апстрима

$ git-clone http://nfg3.nfgs.net/git/dbmail.git
$ cd dbmail

Процесс долгий и мучительный. Поосле завершения -- рекомендую пережать репозиторий:

$ git-prune
$ git-repack -a -d

Результат здесь: http://git.altlinux.ru/people/solo/packages/?p=dbmail.orig.git;a=summary

Расстановка тегов

Совсем паршиво. Похоже http://nfg3.nfgs.net/git/dbmail.git -- это только часть репозитория используемого автором. Тегов невидно вообще (на момент описания сдесь http://nfg3.nfgs.net/git/dbmail.git/refs/tags/ девственно пусто). Но коммит соответствующий dbmail-2.2.4.tar.gz похоже удалось найти (по комментарию и записям в ChangeLog). Отметил его тагом dbmail/2.2.4.

Загрузка dbmail-*.src.rpm "рядом"

Для загрузки использовал патченую версию gear-srpmimport (можно взять здесь: http://git.altlinux.org/people/solo/packages/?p=gear.git;a=shortlog;h=solo/comp-branches), позволяющую разложить компоненты srpm по отдельным бранчам и задавать префикс для бранчей/тегов. (Для дальнейшей обработки мне так удобнее.) При использовании стандартной утилиты дальнейшее -- поменяется не сильно.

$ gear-srpmimport --import-only --comp-branches --prefix=ALT/dbmail dbmail-2.0.10-alt2.src.rpm
...
$ gear-srpmimport --import-only --comp-branches --prefix=ALT/dbmail dbmail-2.2.1-alt5.0.src.rpm

Прошу обратить внимание на параметр --import-only: если его не указывать -- gear-srpmimport смержит созданый ей бранч с текущим. А нам, в данном случаи, это не нужно.

Редактируем .gear/rules

Переходим в нужный бранч

У меня это ALT/dbmail/gear_rules, по умолчению -- в srpms, если параметрами небыло заданно другое.

$ git-checkout ALT/dbmail/gear_rules

Редактируем .gear_rules

Строку генирации трабла меняем на:

tar.gz: dbmail/2.2.4:. name=dbmail-2.2.4

Коммитим

$ git-commit -a -s -m'Updete .gear_rules:
> - using dbmail/2.2.4 tsg
> '

Редактируем спек

Сдесь всё аналогично.

Переходим в нужный бранч, если это нужно

У меня нужно перейти в ALT/dbmail/spec:

$ git-checkout ALT/dbmail/spec

Редактируем и коммитим

Собираем все правки в кучу

Если компаненты по бранчам не разделялись -- это шаг не нужен.

$ git-checkout ALT/dbmail/srpms
$ git-merge 'Merging all components' HEAD ALT/dbmail/spec ALT/dbmail/gear_rules

Зачистка

Удаляем старый каталог dbmail (он больше не нужен) и коммитим:
$ git-rm -f dbmail
...
$ git-commit -a -s -m 'Remove old dbmail/'

Подшиваем бранч апстрима

$ git-merge -s ours 'Using upstream branch' HEAD dbmail/2.2.4

Обнавляем/создаём .gear/tags

$ gear-update-tag -a

Коммитим всё это безобразие  :-)

git-commit -a -s -m '- move to 2.2.4'

Проверяем

А всё ли у нас получилось?

$ gear --rpmbuild -- rpmbuild --nodeps -bs
Записан: /home/solo/RPM/SRPMS/dbmail-2.2.4-alt0.src.rpm
$ rpm -qlp
/home/solo/RPM/SRPMS/dbmail-2.2.4-alt0.src.rpm
dbmail-2.2.0-altlinux-as-need.patch
dbmail-2.2.1-fix-libdir.patch
dbmail-2.2.4.tar.gz
dbmail-clean
dbmail-imapd.init
dbmail-lmtpd.init
dbmail-pop3d.init
dbmail-timsieved.init
dbmail.conf
dbmail.spec

Сылки