ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: Re: [devel] Еще одно HOWTO про сборку пакета в git.alt и интеграцию с upstream scm
Date: Tue, 10 Apr 2007 00:37:55 +0400
Message-ID: <20070409203755.GV9264@solemn.turbinal> (raw)
In-Reply-To: <20070409200151.GB23196@basalt.office.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 3471 bytes --]

On Tue, Apr 10, 2007 at 12:01:51AM +0400, Dmitry V. Levin wrote:
> On Mon, Apr 09, 2007 at 11:52:27PM +0400, Alexey Tourbin wrote:
> > On Mon, Apr 09, 2007 at 10:06:52PM +0400, Eugene Prokopiev wrote:
> > > http://wiki.sisyphus.ru/devel/gear/ImportUpstreamVBranch
> > > http://wiki.sisyphus.ru/devel/gear/ImportSeparateUpstream
> > 
> > В общем, я бы не стал делать, как там написано.
> 
> Ты имеешь в виду первый рецепт (когда есть upstream scm) или второй рецепт
> (когда есть только upstream tarball)?

У мутта 1.5 вроде тоже есть git.

В случае с тарболлами иногда удобнее деражть содержимое тарболла в
подкаталоге, а патчи держать отдельно; а иногда удобнее прикладывать
патчи к тарболлу, тогда подкаталог не нужен (а spec положить прямо в
каталог, это не криминально).

Ну, если тарболлы выходят достаточно часто, и если изменения в них
не очень большие, тогда есть надежда на достаточно простой merge с
новым тарболлом, и можно патчи прикладывать.  Если же в в каждом
очередном тарболле всё переделывают, и в результате мержа получается
много конфилктов, тогда проще держать патчи отдельно.  Также это
касается некоторых случаев, когда большинство патчей имортируется
откуда-то ещё, например из федоры.

Я например не знаю, как мне сейчас с netpbm в этом отношении быть.
Всё время откладываю его в долгий ящик. :(

> > Могу подробнее объяснть, как я бы сделал, если не понятно.
> Пока не понятно. ;)

Допустим что есть апстримный project.git, в котором есть таги 1.1, 1.2,
1.3 и основной бранч master, который содержит эти таги.  (На самом деле не
важно, git это или git-svnimport или git-cvsimport.)

Допустим, что у нас есть project-1.1.src.rpm и project-1.2.src.rpm.
Мы хотим импортировать эти src.rpm'ы и собрать новый релиз 1.3 (или
прямо origin).

Я бы имортировал вот как.  Сначала клонируем апстрим, имеем бранч
origin.

Преподолжим, что в src.rpm'ах есть всего один "большой" тарболл с
подкаталогом, а других тарболлов нет (но, возможно есть патчи).
Тогда можно применить модифицированный gear-srpmimport, который
не создает подкаталога, чтобы избежать перемещения файлов.

Импортируем src.rpm'ы, привязывая их к апстримным тагам.

$ git-checkout -b srpms 1.1
$ gear-srpmimport project-1.1.src.rpm
$ git-branch foo 1.2
$ git-pull --no-commit -s ours . foo && git-branch -D foo
$ gear-srpmimport project-1.2.src.rpm

Здесь происходит merge апстримного тага 1.2 и нашей предыдущей сборки
1.1-alt1.  С первого раза этот трюк, наверное, сложно понять.  К
сожалению, я не знаю, как это можно предельно понятно объяснить.

Теперь мы стоим на бранче srpms, и на него показывает таг 1.2-alt1.
Перименовываем бранч srpms в бранч master и продолжаем с ним работать
как с основным бранчем для подготовки пакетов.

$ git-branch -D master
$ git-checkout -b master srpms
$ git-branch -D srpms

Нужно проверить, что git-diff 1.2..1.2-alt1 показывает только *.spec и
.gear-rules (кроме, быть может, $Id$ и прочей мишуры).

Теперь можно приложить патчи, если они есть, прямо к дереву исходников.

Если приложили патчи, желательно добавить %release в название тарболла и
в .gear-rules.  Также желательно разжать тарболл, чтобы был просто *.tar.

Дальше делаем
$ git-pull . origin

Наша сборка переместилась на origin.  Теперь можно сделать

$ gear --rpm -- rpm -bc

Если всё работает, то остается исправить version и release в спеке на
1.3-alt1 (или 1.4-alt0.1) и сделать gear-commit -a.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-04-09 20:37 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-09 18:06 Eugene Prokopiev
2007-04-09 19:52 ` Alexey Tourbin
2007-04-09 20:01   ` Dmitry V. Levin
2007-04-09 20:37     ` Alexey Tourbin [this message]
2007-04-10  5:42       ` Eugene Prokopiev
2007-04-10  7:35         ` Eugene Prokopiev
2007-04-10  6:41       ` Alexey I. Froloff
2007-04-10 11:56   ` Aleksey Avdeev
2007-04-10 12:26     ` Eugene Prokopiev
2007-04-10 13:38       ` Aleksey Avdeev
2007-04-10 18:33         ` Eugene Prokopiev
2007-04-11  7:46           ` Aleksey Avdeev
2007-04-11  9:21             ` Eugene Prokopiev
2007-04-11  9:45               ` Aleksey Avdeev
2007-04-09 23:33   ` [devel] Subversion tags (was: Еще одно HOWTO про сборку пакета в git.alt и интеграцию с upstream scm) Grigory Batalov
2007-04-09 23:39     ` Alexey Tourbin
2007-04-10  6:44   ` [devel] Еще одно HOWTO про сборку пакета в git.alt и интеграцию с upstream scm Eugene Prokopiev
2007-04-10  6:47     ` Eugene Prokopiev
2007-04-10  7:01     ` Vladimir V. Kamarzin
2007-04-10  7:10       ` Eugene Prokopiev
2007-04-10  8:02         ` Vladimir V. Kamarzin
2007-04-10  9:03           ` Eugene Prokopiev
2007-04-11  6:48           ` Eugene Prokopiev
2007-04-11 10:59             ` Eugene Prokopiev
2007-04-12 10:23               ` Vladimir V. Kamarzin
2007-04-12 19:02                 ` Eugene Prokopiev
2007-04-12 19:30                   ` Eugene Prokopiev
2007-04-10  9:16     ` Alexey Tourbin
2007-04-10  9:35       ` Eugene Prokopiev
2007-04-10  9:46         ` Alexey Tourbin
2007-04-10 10:03           ` Eugene Prokopiev
2007-04-10 10:48       ` Eugene Prokopiev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070409203755.GV9264@solemn.turbinal \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git