ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] gear - сборка пакетов
@ 2006-05-04 17:46 Anton Farygin
  2006-05-04 20:21 ` Dmitry V. Levin
  2006-05-04 20:49 ` Alexey I. Froloff
  0 siblings, 2 replies; 11+ messages in thread
From: Anton Farygin @ 2006-05-04 17:46 UTC (permalink / raw)
  To: ALT Devel discussion list

Привет.

Есть пожелание к gear - сделать возможным локальную сборку.

Т.е. - хочется стандартного поведения rpm'а:

rpm -bp
rpm -ba
и т.д.

С созданием всех каталогов в текущем каталоге git'а (ну или настраиваемо).

А то сейчас:
1) что бы проверить каждое изменение - надо делать commit
2) сделать патч - приходится искать место, где идёт сборка.

Ну и т.д.

В общем хочется что бы всё изменялось в текущем каталоге. Может быть в 
каком-то специальном режиме работы gear.

Rgds,
Rider


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 17:46 [devel] gear - сборка пакетов Anton Farygin
@ 2006-05-04 20:21 ` Dmitry V. Levin
  2006-05-04 21:10   ` Alexey I. Froloff
                     ` (2 more replies)
  2006-05-04 20:49 ` Alexey I. Froloff
  1 sibling, 3 replies; 11+ messages in thread
From: Dmitry V. Levin @ 2006-05-04 20:21 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Thu, May 04, 2006 at 09:46:25PM +0400, Anton Farygin wrote:
> Есть пожелание к gear - сделать возможным локальную сборку.
> 
> Т.е. - хочется стандартного поведения rpm'а:
> 
> rpm -bp
> rpm -ba
> и т.д.
> 
> С созданием всех каталогов в текущем каталоге git'а (ну или настраиваемо).

Это не сложно сделать, предлагайте синтаксис.

> А то сейчас:
> 1) что бы проверить каждое изменение - надо делать commit

Я бы не хотел этого менять.  С другой стороны, есть типовой приём:
git-commit -a -m wip && (gear .git --rpm -- rpmbuild -bi; git-reset --soft HEAD^)
Его можно "спрятать" внутри gear, предлагайте синтаксис.

> В общем хочется что бы всё изменялось в текущем каталоге. Может быть в 
> каком-то специальном режиме работы gear.

Я ничего не имею против.


-- 
ldv

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 17:46 [devel] gear - сборка пакетов Anton Farygin
  2006-05-04 20:21 ` Dmitry V. Levin
@ 2006-05-04 20:49 ` Alexey I. Froloff
  2006-05-05  4:39   ` Anton Farygin
  1 sibling, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2006-05-04 20:49 UTC (permalink / raw)
  To: ALT Devel discussion list


[-- Attachment #1.1: Type: text/plain, Size: 1122 bytes --]

* Anton Farygin <rider@> [060504 21:49]:
> С созданием всех каталогов в текущем каталоге git'а (ну или
> настраиваемо).
Я написал чудной кривизны "враппер" для rpm - подставляет нужный
.rpmmacros в зависимости от текущего каталога.

$ cat ~/.rpmwraprc
RPM_PREFIX="/usr/bin"
RPM="$RPM_PREFIX/rpm"
macrofile=".rpmwrapmacros"
allow_prefix="$HOME/src/BTE:$HOME/src/gitsnaps/packages"

$ cat ~/src/gitsnaps/packages/.rpmwrapmacros
%_topdir        %homedir/src/gitsnaps/packages
%_topsrcdir     %{_topdir}/%{name}
%_builddir      %{_topdir}/%{name}/work
%_sourcedir     %{_topsrcdir}/files
%_specdir       %{_topsrcdir}

$ cat ~/src/BTE/.rpmwrapmacros
%_topdir        %homedir/src/BTE/RPM
%_topsrcdir     %{_topdir}/%{name}
%_builddir      %{_topdir}/%{name}/work
%_sourcedir     %{_topsrcdir}/files
%_specdir       %{_topsrcdir}

$ ls -Alog ~/bin/rpm* 
lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpm -> rpmwrapper
lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpmbuild -> rpmwrapper
-rwxr-xr-x 1 1038 May  5 00:42 ~/bin/rpmwrapper

Думаю, принцип понятен?  Критика приветствуется.

-- 
Regards,
Sir Raorn.

[-- Attachment #1.2: rpmwrapper --]
[-- Type: text/plain, Size: 1038 bytes --]

#!/bin/sh -efu

PROG="${0##*/}"

etc="/etc/rpm"

[ "$0" = "./$PROG" ] && etc="." ||:
[ -f $etc/rpmwraprc ] && . $etc/rpmwraprc ||:
[ -f ~/.rpmwraprc ] && . ~/.rpmwraprc ||:

: ${RPM_PREFIX:="/usr/bin"}
: ${RPM:="$RPM_PREFIX/rpm"}
: ${macrofile:=".rpmwrapmacros"}

cwd="$(pwd)"
prefix=""
args=""

sIFS="$IFS"
IFS=":"
for i in $allow_prefix; do
    case "$cwd" in
	$i/*|$i)
	    [ -f "$i/$macrofile" ] && prefix="$i" ||:
	    ;;
	*)
	    continue
	    ;;
    esac
done
IFS="$sIFS"

rpmrc=
exit_handler()
{
	local rc=$?
	trap - EXIT
	[ -z "$rpmrc" ] || rm -r -- "$rpmrc"
	exit $rc
}

if [ -n "$prefix" ]; then
    rpmrc="$(mktemp -t "$PROG-rpmrc.XXXXXXXX")"
    trap exit_handler HUP PIPE INT QUIT TERM EXIT
    macrofiles="$($RPM --showrc| grep macrofiles)"
    macrofiles="${macrofiles#macrofiles}"
    macrofiles="${macrofiles#*:}"
    args="--rcfile=$rpmrc"
    cat <<EOF > "$rpmrc"
include:	/usr/lib/rpm/rpmrc
macrofiles:	${macrofiles+$macrofiles:}$prefix/$macrofile
EOF
fi
[ -x "$RPM_PREFIX/$PROG" ]  && "$RPM_PREFIX/$PROG" $args "$@"

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 20:21 ` Dmitry V. Levin
@ 2006-05-04 21:10   ` Alexey I. Froloff
  2006-05-04 21:43     ` Dmitry V. Levin
  2006-05-05  4:35   ` Anton Farygin
  2006-05-11 10:07   ` Kirill A. Shutemov
  2 siblings, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2006-05-04 21:10 UTC (permalink / raw)
  To: ALT Devel discussion list

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

* Dmitry V. Levin <ldv@> [060505 00:30]:
> Я бы не хотел этого менять.
Я тоже...

> С другой стороны, есть типовой приём:
> git-commit -a -m wip && (gear .git --rpm -- rpmbuild -bi; git-reset --soft HEAD^)
> Его можно "спрятать" внутри gear, предлагайте синтаксис.
Одна проблема - gear сам по себе работает Довольно Значительное
Время, особенно на больших архивах.  Но можно сделать что-то
типа:

Source: ...%name-%version.tar%{!?_without_bz2:.bz2}

rpmbuild -bi --without bz2 name.spec

Уверен что можно придумать решение изящнее.  Но это только для
случая, когда в git кладутся архивы...

-- 
Regards,
Sir Raorn.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 21:10   ` Alexey I. Froloff
@ 2006-05-04 21:43     ` Dmitry V. Levin
  0 siblings, 0 replies; 11+ messages in thread
From: Dmitry V. Levin @ 2006-05-04 21:43 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On Fri, May 05, 2006 at 01:10:20AM +0400, Alexey I. Froloff wrote:
[...]
> Одна проблема - gear сам по себе работает Довольно Значительное
> Время, особенно на больших архивах.

Большую часть этого времени занимает bzip2.
Если тарболлы жать gzip'ом или просто копировать, то скорость работы
заметно вырастет.  В будущем жать тарболлы станет совсем ненужно.
Не стоит забывать, что rpmbuild тоже жмёт весь payload.

> Но можно сделать что-то
> типа:
> 
> Source: ...%name-%version.tar%{!?_without_bz2:.bz2}
> 
> rpmbuild -bi --without bz2 name.spec
> 
> Уверен что можно придумать решение изящнее.

Мне тоже так кажется.

> Но это только для случая, когда в git кладутся архивы...

Какая разница.  Если там живут деревья, узкое место будет то же самое -
bzip2.


-- 
ldv

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 20:21 ` Dmitry V. Levin
  2006-05-04 21:10   ` Alexey I. Froloff
@ 2006-05-05  4:35   ` Anton Farygin
  2006-05-11 10:07   ` Kirill A. Shutemov
  2 siblings, 0 replies; 11+ messages in thread
From: Anton Farygin @ 2006-05-05  4:35 UTC (permalink / raw)
  To: ALT Devel discussion list

Dmitry V. Levin wrote:
> On Thu, May 04, 2006 at 09:46:25PM +0400, Anton Farygin wrote:
>> Есть пожелание к gear - сделать возможным локальную сборку.
>>
>> Т.е. - хочется стандартного поведения rpm'а:
>>
>> rpm -bp
>> rpm -ba
>> и т.д.

gear-build <опции rpm> <спек>
>>
>> С созданием всех каталогов в текущем каталоге git'а (ну или настраиваемо).
> 
> Это не сложно сделать, предлагайте синтаксис.
> 
>> А то сейчас:
>> 1) что бы проверить каждое изменение - надо делать commit
> 
> Я бы не хотел этого менять.  С другой стороны, есть типовой приём:
> git-commit -a -m wip && (gear .git --rpm -- rpmbuild -bi; git-reset --soft HEAD^)
> Его можно "спрятать" внутри gear, предлагайте синтаксис.

Синтаксис такой же (gear-build <опции rpm> <спек>)

> 
>> В общем хочется что бы всё изменялось в текущем каталоге. Может быть в 
>> каком-то специальном режиме работы gear.
> 
> Я ничего не имею против.

Thnx. Это, кстати, можно сделать настраиваемым.

в целом мне понравилось. Осталось только понять как с минимальными 
затратами конвертнуть мой subversion.

Rgds,
Rider


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 20:49 ` Alexey I. Froloff
@ 2006-05-05  4:39   ` Anton Farygin
  2006-05-05  5:25     ` Alexey I. Froloff
  0 siblings, 1 reply; 11+ messages in thread
From: Anton Farygin @ 2006-05-05  4:39 UTC (permalink / raw)
  To: ALT Devel discussion list

Alexey I. Froloff wrote:
> * Anton Farygin <rider@> [060504 21:49]:
>> С созданием всех каталогов в текущем каталоге git'а (ну или
>> настраиваемо).
> Я написал чудной кривизны "враппер" для rpm - подставляет нужный
> .rpmmacros в зависимости от текущего каталога.
> 
> $ cat ~/.rpmwraprc
> RPM_PREFIX="/usr/bin"
> RPM="$RPM_PREFIX/rpm"
> macrofile=".rpmwrapmacros"
> allow_prefix="$HOME/src/BTE:$HOME/src/gitsnaps/packages"
> 
> $ cat ~/src/gitsnaps/packages/.rpmwrapmacros
> %_topdir        %homedir/src/gitsnaps/packages
> %_topsrcdir     %{_topdir}/%{name}
> %_builddir      %{_topdir}/%{name}/work
> %_sourcedir     %{_topsrcdir}/files
> %_specdir       %{_topsrcdir}
> 
> $ cat ~/src/BTE/.rpmwrapmacros
> %_topdir        %homedir/src/BTE/RPM
> %_topsrcdir     %{_topdir}/%{name}
> %_builddir      %{_topdir}/%{name}/work
> %_sourcedir     %{_topsrcdir}/files
> %_specdir       %{_topsrcdir}
> 
> $ ls -Alog ~/bin/rpm* 
> lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpm -> rpmwrapper
> lrwxrwxrwx 1   10 May  1 14:47 ~/bin/rpmbuild -> rpmwrapper
> -rwxr-xr-x 1 1038 May  5 00:42 ~/bin/rpmwrapper
> 
> Думаю, принцип понятен?  Критика приветствуется.

Да, идея понятно. Только здесь есть несколько нюансов:

- при всём этом хотелось бы оставить старое поведение rpm'а в силе.
- некоторые пакеты отрицательно относятся к такого рода фокусам с 
макросами. За этим были замечены модули python.

Я и сам использую некий rpm макрос, который изменяет корневые каталоги 
согласно name.

Но в идеале хотелось бы получить всё-таки подобное поведение из gear.

Rgds,
Rider



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-05  4:39   ` Anton Farygin
@ 2006-05-05  5:25     ` Alexey I. Froloff
  2006-05-05  9:52       ` Anton Farygin
  0 siblings, 1 reply; 11+ messages in thread
From: Alexey I. Froloff @ 2006-05-05  5:25 UTC (permalink / raw)
  To: ALT Devel discussion list

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

* Anton Farygin <rider@> [060505 08:40]:
> > Думаю, принцип понятен?  Критика приветствуется.
> Да, идея понятно. Только здесь есть несколько нюансов:

> - при всём этом хотелось бы оставить старое поведение rpm'а в силе.
Вне каталогов, перечисленных в $allow_prefix сохраняется старое
поведение.

> - некоторые пакеты отрицательно относятся к такого рода фокусам с 
> макросами. За этим были замечены модули python.
Быть такого не может.  Значит это пакет кривой.

> Но в идеале хотелось бы получить всё-таки подобное поведение из gear.
Тем же самым способом ;-)

-- 
Regards, Alexey I. Froloff
AIF5-RIPN, AIF5-RIPE
-------------------------------------------
  Inform-Mobil, Ltd. System Administrator
       http://www.inform-mobil.ru/

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-05  5:25     ` Alexey I. Froloff
@ 2006-05-05  9:52       ` Anton Farygin
  2006-05-05 10:54         ` Alexey I. Froloff
  0 siblings, 1 reply; 11+ messages in thread
From: Anton Farygin @ 2006-05-05  9:52 UTC (permalink / raw)
  To: ALT Devel discussion list

Alexey I. Froloff wrote:
> * Anton Farygin <rider@> [060505 08:40]:
>>> Думаю, принцип понятен?  Критика приветствуется.
>> Да, идея понятно. Только здесь есть несколько нюансов:
> 
>> - при всём этом хотелось бы оставить старое поведение rpm'а в силе.
> Вне каталогов, перечисленных в $allow_prefix сохраняется старое
> поведение.

Ага.. слона то я и не заметил ;)

А buildreq ты так же гоняешь ?

> 
>> - некоторые пакеты отрицательно относятся к такого рода фокусам с 
>> макросами. За этим были замечены модули python.
> Быть такого не может.  Значит это пакет кривой.

там не пакет, а макрос из build-python. Но впрочем я уже не помню что 
там было.

> 
>> Но в идеале хотелось бы получить всё-таки подобное поведение из gear.
> Тем же самым способом ;-)


Сейчас попробуем ;)



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-05  9:52       ` Anton Farygin
@ 2006-05-05 10:54         ` Alexey I. Froloff
  0 siblings, 0 replies; 11+ messages in thread
From: Alexey I. Froloff @ 2006-05-05 10:54 UTC (permalink / raw)
  To: ALT Devel discussion list

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

* Anton Farygin <rider@> [060505 13:52]:
> А buildreq ты так же гоняешь ?
buildreq --rpm=~/bin/rpm name.spec

> >> - некоторые пакеты отрицательно относятся к такого рода фокусам с 
> >> макросами. За этим были замечены модули python.
> > Быть такого не может.  Значит это пакет кривой.
> там не пакет, а макрос из build-python. Но впрочем я уже не помню что 
> там было.
Видимо он криво (пере)определял %name.  GeoIP у меня например
пересобрался.

-- 
Regards, Alexey I. Froloff
AIF5-RIPN, AIF5-RIPE
-------------------------------------------
  Inform-Mobil, Ltd. System Administrator
       http://www.inform-mobil.ru/

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [devel] gear - сборка пакетов
  2006-05-04 20:21 ` Dmitry V. Levin
  2006-05-04 21:10   ` Alexey I. Froloff
  2006-05-05  4:35   ` Anton Farygin
@ 2006-05-11 10:07   ` Kirill A. Shutemov
  2 siblings, 0 replies; 11+ messages in thread
From: Kirill A. Shutemov @ 2006-05-11 10:07 UTC (permalink / raw)
  To: ALT Devel discussion list

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

On 00:21 Fri 05 May, Dmitry V. Levin wrote:
> On Thu, May 04, 2006 at 09:46:25PM +0400, Anton Farygin wrote:
> > Есть пожелание к gear - сделать возможным локальную сборку.
> > 
> > Т.е. - хочется стандартного поведения rpm'а:
> > 
> > rpm -bp
> > rpm -ba
> > и т.д.
> > 
> > С созданием всех каталогов в текущем каталоге git'а (ну или настраиваемо).
> 
> Это не сложно сделать, предлагайте синтаксис.
> 
> > А то сейчас:
> > 1) что бы проверить каждое изменение - надо делать commit
> 
> Я бы не хотел этого менять.  С другой стороны, есть типовой приём:
> git-commit -a -m wip && (gear .git --rpm -- rpmbuild -bi; git-reset --soft HEAD^)
> Его можно "спрятать" внутри gear, предлагайте синтаксис.
Может [--local|-l] ?

-- 
Kirill A. Shutemov				Belarus, Minsk
E-mail:	k.shutemov (AT) sam-solutions.net
JID: kas (AT) altlinux.org
ICQ: 152302675

Все биллинговые системы, которые я видел, либо сделаны самостоятельно,
либо куплены и доработаны до неузнаваемости. Это из того же комплекта
поставки, что и кнопка "чтобы всё работало", к сожалению.
		-- pilot in sisyphus@

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2006-05-11 10:07 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-04 17:46 [devel] gear - сборка пакетов Anton Farygin
2006-05-04 20:21 ` Dmitry V. Levin
2006-05-04 21:10   ` Alexey I. Froloff
2006-05-04 21:43     ` Dmitry V. Levin
2006-05-05  4:35   ` Anton Farygin
2006-05-11 10:07   ` Kirill A. Shutemov
2006-05-04 20:49 ` Alexey I. Froloff
2006-05-05  4:39   ` Anton Farygin
2006-05-05  5:25     ` Alexey I. Froloff
2006-05-05  9:52       ` Anton Farygin
2006-05-05 10:54         ` Alexey I. Froloff

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