[sisyphus] ppp-2.4.5-alt1
Michael Shigorin
mike на osdn.org.ua
Вт Янв 12 22:57:48 UTC 2010
On Tue, Jan 12, 2010 at 07:17:11PM +0200, I wrote:
> > - изменена схема сборки из git. Кому не нравится прошу
> > высказать пожелания.
> Мне не нравится хранить не имеющее ни малейшего отношения
> к gear в .gear. Для такого IMHO лучше держать чистый master,
> а исходники -- в бранче upstream.
Тем паче что апстрим в гите уже и живёт:
git remote add upstream git://ozlabs.org/~paulus/ppp.git
Твоё объединение пачек патчей устраивает, но не понравилось:
- засовывание спека и дописходников в .gear (они ж не относятся);
- смесь из апстримных исходников и этого всего в master.
IMCO тарбол лучше собирать из тега, да и мегапатч тогда уж лучше
делать между тегом и веткой, в которую помержено всё нужное.
Далее:
- girar-download (см. в моём girar-utils.git), чтоб быренько
найти, прописать и втянуть remotes;
- поприбивал свои старые ненужные бранчи локально и на git.alt;
- втянул твои патч-бранчи как локальные:
git branch -r | grep patches | while read i; do git checkout -b ${i#shaba/} $i; done
- как сегодня предлагали, отодвинул master:
git branch -m master oldmaster
- сделал чистый бранч:
git-empty-branch master
- сгенерил кусок .gear/rules:
git branch | grep patches | while read i; do echo "diff: v2.4.5:. $i:. name=ppp-2.4.5-${i#patches/}.patch"; done
- сделал заготовку для использования в спеке:
N=0; git branch | grep patches | while read i; do echo "Patch$N: ppp-2.4.5-${i#patches/}.patch"; N=$((N+1)); done
N=0; git branch | grep patches | while read i; do echo "%patch$N -p1"; N=$((N+1)); done
- переставил тег v2.4.5 на соответствующий апстримный коммит:
git tag -d v2.4.5
git checkout -b upstream upstream/master
git log # HEAD на 2.4.5
git checkout master
- поделал fake merge (патч-бранчи в master реально НЕ мержатся):
git merge -s ours upstream
git branch | grep patches | while read i; do git merge -s ours $i; done
- поскольку старый тег v2.4.5 удалён, а других и не было, то
rm -rf .gear/tags
gear-update-tag -avc && git commit -am 'gear-update-tag'
Дальше не заметил было в gitk того, что patches/openssl
и patches/eaptls конфликтуют; спасибо за пояснение, сделал
patches/openssl+eaptls (соответственно патчи из отдельных
двух бранчей не прикладываются).
Ну и поскольку сперва оформлял на скору руку -- решил разобрать
чуть аккуратней коммиты, отодвинув master в сторонку, начав с
исходных мегапатчевых .gear/rules и ppp.spec да сделав по-новой
с применением git cherry-pick.
Результат ещё немного подчистил по части спека и пушнул.
Просьба посмотреть и отозваться насчёт репо -- код должен быть
тот же.
PS: ppp обновляется крайне редко, поэтому решил не использовать
@version@ для патчей в .gear/rules: патчи делались от 2.4.5,
это и отражено в их рецептах и названиях. Впрочем, для ядра
tmc-tc на основе часто, но несильно изменяющегося 2.6.27.y
использую схожий подход и не вижу поводов расстраиваться.
PPS: в воздухе запахло gear-update-patches и .gear/rules.in...
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
Подробная информация о списке рассылки Sisyphus