Gear/ImportUpstreamVBranch
Описание процесса привязки к "апстримным" сорцам в отдельный бранче (на примере 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