[devel] gear - с чего начинать

Dmitry V. Levin =?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Май 6 17:00:13 MSD 2006


On Sat, May 06, 2006 at 04:08:31PM +0400, Epiphanov Sergei wrote:
> В сообщении от Saturday 06 May 2006 15:39 Dmitry V. Levin написал(a):
> > > Дима, ты мог бы расписать пробный вариант сценария работы с git + gear ?
> > > Начиная с пункта "я решил собрать пакет в Сизиф", и заканчивая: "src.rpm
> > > готов".
> >
> > Каковы стартовые условия?  У тебя есть собственный проект в
> > git-репозитории (или в другом репозитории, который конвертируется в git),
> > или у тебя есть только src.rpm прежней сборки?
> 
> Мне было бы интереснее услышать, имея стартовые условия: я имею готовый пакет 
> src.rpm, который хотел бы выложить в Сизиф. Как мне его ввернуть в git+gear, 

Если у вас есть непустой список srpm-файлов, то из них можно сделать
git-репозиторий.  Вот пример, с которым я экспериментирую:

$ mkdir имя-пакета
$ cd имя-пакета
$ git-init-db
$ commit-package список-srpm-файлов

Тестовый скрипт commit-package прилагается.  Разумеется, файл правил
упаковки (.gear-rules) получается неоптимальный.

Например,
$ commit-package path/to/tcb-1.0-alt1.src.rpm path/to/tcb-1.0-alt2.src.rpm 
tcb-1.0-alt1
97 blocks
Committing initial tree 619a4245f1d1847c3a5be39d79ef5828c750640d
tcb-1.0-alt2
97 blocks

При этом получается вот что:

$ git-rev-list --pretty HEAD |sed -e '/^$/d;s/altlinux.org//'
commit 2a60ff34d429197c3000be73e9f266b09cfe83a0
Author: Dmitry V. Levin <ldv@>
Date:   Thu Jan 12 00:39:30 2006 +0000
    1.0-alt2
commit 6aaedcf0025be8fff55dff456765a1000f27eab3
Author: Dmitry V. Levin <ldv@>
Date:   Sat Dec 31 00:14:14 2005 +0000
    1.0-alt1
$ git-ls-files
.gear-rules
tcb-0.9.9-alt-makefile-pam.patch
tcb-0.9.9-alt-tcb_convert-try_auth.patch
tcb-1.0.tar
tcb.spec
tcb_chkpwd.control
$ cat .gear-rules
copy: tcb-0.9.9-alt-makefile-pam.patch
copy: tcb-0.9.9-alt-tcb_convert-try_auth.patch
bzip2: tcb-1.0.tar
copy: tcb_chkpwd.control

После первоначального импорта можно нормально работать с этим
репозиторием дальше, а .gear-rules упростить, например:
$ cat >.gear-rules
copy: *.control *.patch *.tar
$ subst 's/\.bz2//' tcb.spec

> чтобы не вылететь из команды? У меня пока каша в голове от этой ветки 
> обсуждения. Надеюсь, что смогу сам понять, куда пихать потом файлы.

Не волнуйтесь. :)


-- 
ldv
----------- следующая часть -----------
#!/bin/sh -eu 

for f; do
	[ -f "$f" ] || continue
	name="$(rpmquery -p --qf '%{NAME}' "$f")"
	version="$(rpmquery -p --qf '%{VERSION}-%{RELEASE}' "$f")"
	printf '%s-%s\n' "$name" "$version"
	[ ! -f .gear-rules ] || git-rm -f -- '*'
	rpm2cpio "$f" |cpio -im
	for f in *; do
		case "$f" in
			*.gz)
				gunzip "$f"
				printf 'gzip: %s\n' "${f%.gz}" >>.gear-rules
				;;
			*.bz2)
				bunzip2 "$f"
				printf 'bzip2: %s\n' "${f%.bz2}" >>.gear-rules
				;;
			*.spec)
				# ignore specfile
				;;
			*)
				printf 'copy: %s\n' "$f" >>.gear-rules
				;;
		esac
	done
	git-add '*'
	TZ=UTC faketime -r "$f" -- git-commit -a -m "$version"
	TZ=UTC faketime -r "$f" -- git-tag -a -m "$name $version" "$version"
done
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060506/89347068/attachment-0001.bin>


Подробная информация о списке рассылки Devel