ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] girar-utils
@ 2009-05-27 14:13 Afanasov Dmitry
  2009-05-27 14:19 ` Alexey I. Froloff
  0 siblings, 1 reply; 6+ messages in thread
From: Afanasov Dmitry @ 2009-05-27 14:13 UTC (permalink / raw)
  To: ALT Linux Team development discussions


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

забыл тему сменить, каюсь.

On Wed, May 27, 2009 at 05:54:53PM +0400, Afanasov Dmitry wrote:
> On Wed, May 27, 2009 at 05:27:58PM +0400, Alexey I. Froloff wrote:
> > Есть пакет girar-utils, в репозитарий которого я слегка пописываю.
> > Как должен выглядеть этот girar-get, какие опции принимать и что
> > выдавать на выходе?
> а так мне очень интересен расширенный функционал git.alt find-packages. на входе
> опять-таки имеем rpm пакет, на выходе список ссылок, откуда этот пакет
> вырос.
> 
> то есть задача: разыменовать бинарный пакет в srpm, по srpm вычислить
> таг/коммит, найти репы с этим коммитом на git.alt'е.

а что если туда же добавить скритину в аттаче? простая как пробка, не
такая оптимальная/быстрая, но работает :) сделана для подстановки в rules
не только version, release и name, но и любых другиз макросов rpm
-- 
С уважением
Афанасов Дмитрий

[-- Attachment #1.2: gear-update-rules --]
[-- Type: text/plain, Size: 1351 bytes --]

#!/bin/bash

fatal()
{
        [ -z "$1" ] && echo "$@"
        exit 1
}

while :; do
        case $1 in
                --debug)
                set -x
                ;;
                --spec)
                shift
                SPEC=$1
                ;;
                *)
                [ -z "$1" ] && break
                ;;
        esac
        shift
done

rules=
rules_in=
[ -f .gear/rules.in ] && rules_in=".gear/rules.in"
[ -f .gear-rules ] && rules_in=".gear-rules.in"

[ -f "$rules_in" ] || exit

rules="${rules_in%*.in}"

[ -z "$SPEC" ] && SPEC=`ls *.spec 2>/dev/null`
[ -f "$SPEC" ] || fatal "spec $SPEC not found"

vars="$(awk '
{
        line = $0;
        while(match(line, /@([a-z]+)@/, f))
        {
                if(!x[f[1]])
                {
                        print f[1];
                        x[f[1]] = 1;
                }
                line = substr(line, RSTART + RLENGTH)
        }
}' $rules_in)"

tmpspec=`mktemp --tmpdir spec-XXXXX`
trap "rm -f $tmpspec" INT TERM

install -p -m644 "$rules_in" "$rules" || fatal

for var in $vars; do
        cat $SPEC > $tmpspec
        echo "%$var" >> $tmpspec
        val="$(rpm -bE $tmpspec | tail -1)"

        [ -z "$val" ] && fatal "$var not expanded"

        echo "substitute $var --> $val"
        perl -i -npe "s/\@\Q$var\E@/$val/g" $rules
done

rm -f $tmpspec

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

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

* Re: [devel] girar-utils
  2009-05-27 14:13 [devel] girar-utils Afanasov Dmitry
@ 2009-05-27 14:19 ` Alexey I. Froloff
  2009-05-27 14:26   ` Afanasov Dmitry
  0 siblings, 1 reply; 6+ messages in thread
From: Alexey I. Froloff @ 2009-05-27 14:19 UTC (permalink / raw)
  To: ALT Devel discussion list

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

* Afanasov Dmitry <ender@> [090527 18:16]:
> а что если туда же добавить скритину в аттаче? простая как пробка, не
> такая оптимальная/быстрая, но работает :) сделана для подстановки в rules
> не только version, release и name, но и любых другиз макросов rpm
При чём тут girar AKA git.alt?

>         cat $SPEC > $tmpspec
>         echo "%$var" >> $tmpspec
>         val="$(rpm -bE $tmpspec | tail -1)"
Какой ужас...

-- 
Regards,
Sir Raorn.

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

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

* Re: [devel] girar-utils
  2009-05-27 14:19 ` Alexey I. Froloff
@ 2009-05-27 14:26   ` Afanasov Dmitry
  2009-05-27 19:20     ` Alexey Rusakov
  0 siblings, 1 reply; 6+ messages in thread
From: Afanasov Dmitry @ 2009-05-27 14:26 UTC (permalink / raw)
  To: devel

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

On Wed, May 27, 2009 at 06:19:24PM +0400, Alexey I. Froloff wrote:
> * Afanasov Dmitry <ender@> [090527 18:16]:
> > а что если туда же добавить скритину в аттаче? простая как пробка, не
> > такая оптимальная/быстрая, но работает :) сделана для подстановки в rules
> > не только version, release и name, но и любых другиз макросов rpm
> При чём тут girar AKA git.alt?
чтобы хоть куда-нибудь :) не пакетить же отдельно.

> >         cat $SPEC > $tmpspec
> >         echo "%$var" >> $tmpspec
> >         val="$(rpm -bE $tmpspec | tail -1)"
> Какой ужас...
сам знаю, сделано на коленке, чтобы работало. и так как знаю об ужасе, но
и функционал удобен, я пишу сюда :)

-- 
С уважением
Афанасов Дмитрий

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

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

* Re: [devel] girar-utils
  2009-05-27 14:26   ` Afanasov Dmitry
@ 2009-05-27 19:20     ` Alexey Rusakov
  2009-05-27 20:08       ` Afanasov Dmitry
  2009-05-27 20:36       ` Alexey I. Froloff
  0 siblings, 2 replies; 6+ messages in thread
From: Alexey Rusakov @ 2009-05-27 19:20 UTC (permalink / raw)
  To: ALT Linux Team development discussions

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

В Срд, 27/05/2009 в 18:26 +0400, Afanasov Dmitry пишет:
> On Wed, May 27, 2009 at 06:19:24PM +0400, Alexey I. Froloff wrote:
> > * Afanasov Dmitry <ender@> [090527 18:16]:
> > > а что если туда же добавить скритину в аттаче? простая как пробка, не
> > > такая оптимальная/быстрая, но работает :) сделана для подстановки в rules
> > > не только version, release и name, но и любых другиз макросов rpm
> > При чём тут girar AKA git.alt?
> чтобы хоть куда-нибудь :) не пакетить же отдельно.
Ну это явно не по теме girar/git.alt. Скорее уж в сторону gear.

> > >         cat $SPEC > $tmpspec
> > >         echo "%$var" >> $tmpspec
> > >         val="$(rpm -bE $tmpspec | tail -1)"
> > Какой ужас...
> сам знаю, сделано на коленке, чтобы работало. и так как знаю об ужасе, но
> и функционал удобен, я пишу сюда :)
Зачем же вы так, батенька, извращаетесь? Для такого есть rpm --eval

-- 
  Alexey "Ktirf" Rusakov
  GNOME Project
  ALT Linux Team

[-- Attachment #2: Эта часть сообщения подписана цифровой подписью --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

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

* Re: [devel] girar-utils
  2009-05-27 19:20     ` Alexey Rusakov
@ 2009-05-27 20:08       ` Afanasov Dmitry
  2009-05-27 20:36       ` Alexey I. Froloff
  1 sibling, 0 replies; 6+ messages in thread
From: Afanasov Dmitry @ 2009-05-27 20:08 UTC (permalink / raw)
  To: devel

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

On Wed, May 27, 2009 at 11:20:42PM +0400, Alexey Rusakov wrote:
> В Срд, 27/05/2009 в 18:26 +0400, Afanasov Dmitry пишет:
> > > >         val="$(rpm -bE $tmpspec | tail -1)"
> > > Какой ужас...
> > сам знаю, сделано на коленке, чтобы работало. и так как знаю об ужасе, но
> > и функционал удобен, я пишу сюда :)
> Зачем же вы так, батенька, извращаетесь? Для такого есть rpm --eval
так я ж пробовал. rpm --eval "`cat spec`" не работает, rpm --eva' %macros,
что отсутсвует в --showrc тоже. а мне нужны именно они. разве что grep
%define скормить спеку, но это множетсво меньше, чем rpm -bE. да и %if'ы
%не учитываются.

замена будет только переносной парсер спеков :)
-- 
 С уважением
 Афанасов Дмитрий

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

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

* Re: [devel] girar-utils
  2009-05-27 19:20     ` Alexey Rusakov
  2009-05-27 20:08       ` Afanasov Dmitry
@ 2009-05-27 20:36       ` Alexey I. Froloff
  1 sibling, 0 replies; 6+ messages in thread
From: Alexey I. Froloff @ 2009-05-27 20:36 UTC (permalink / raw)
  To: ALT Devel discussion list

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

* Alexey Rusakov <ktirf@> [090527 23:23]:
> Зачем же вы так, батенька, извращаетесь? Для такого есть rpm --eval
Вот такое оно не от'eval'ит:

Version: %major.%minor%{?pre:.000.%pre}%{?patchlevel:.%patchlevel}

P.S. Хотя, эта конструкция всё равно работает неправильно и её
надо упрощать.

Дешевле и проще рисовать трёхстрочный скриптик под конкретный
пакет.

-- 
Regards,
Sir Raorn.

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

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

end of thread, other threads:[~2009-05-27 20:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-05-27 14:13 [devel] girar-utils Afanasov Dmitry
2009-05-27 14:19 ` Alexey I. Froloff
2009-05-27 14:26   ` Afanasov Dmitry
2009-05-27 19:20     ` Alexey Rusakov
2009-05-27 20:08       ` Afanasov Dmitry
2009-05-27 20:36       ` 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