[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