ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: Vladimir Lettiev <crux@syktsu.ru>
To: ALT Linux Sisyphus discussion list <sisyphus@altlinux.ru>
Subject: Re: [sisyphus] Re: rpm --bb ./specfile не пашет
Date: Mon, 17 May 2004 08:00:18 +0400
Message-ID: <40A838D2.3090403@syktsu.ru> (raw)
In-Reply-To: <20040516201142.GE29985@basalt.office.altlinux.org>

Dmitry V. Levin пишет:
>>>>>>$rpm -bb ./samba.spec
>>>>>>./samba.spec: No such file or directory 
>>>>>
>>>>>rpm-build не установлен
>>>>
>>>>В конце концов надо что-нибудь тяжёлое повесить на rpm, чтобы
>>>>он это не писал. А писал что-нибудь вразумительное.
>>>
>>>Да висит уже давно,
>>>http://bugzilla.altlinux.ru/show_bug.cgi?id=1928
>>>Вот бы исправил тот, кому это действительно мешает.
>>>А то так и будет висеть.
>>
>>А тебя так и будут долбать.  И вешать дубли.  И тратить на все
>>это кучу времени...
> 
> Ничего страшного.
> 
>>Кто может исправить -- тот в курсе и ему непосредственно не
>>мешает.  А мешает тем, кто не в курсе и, как правило, не будет
>>копать, но в лучшем случае спросит.
> 
> Это не исправляется за 5 минут, а больше у меня на это нет.
> 

Да, действительно, дело не 5 минут... Но может коллективными усилиями 
что-то можно сделать? Я вот пробовал копаться, но понял, что мне это не 
под силам (в условиях ограниченного времени и знаний С). Но у меня есть 
кое-что, что могу рассказать по проблеме. Может кого-нибудь это наведёт 
на правильное решение?

1. Сообщение "No such file or directory", судя по strace, относится к 
/usr/lib/rpm/rpmb, который rpm пытается запустить, обнаружив параметр 
'-bb', но т.к. этот бинарник лежит в пакете rpm-build, то...
В исходниках rpm я не нашёл место, где происходит этот самый execve, но 
если найти, то это может прояснить ситуацию...

2. Участок кода, который выдаёт такое странное сообщение, находится в 
rpmqv.c, строки 602-607 (rpm-4.0.4-alt37):
    if (arg < -1) {
         fprintf(stderr, "%s: %s\n",
                 poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
                 poptStrerror(arg));
         exit(EXIT_FAILURE);
     }

Переменная arg получает своё значение из цикла (строка 451) :
while ((arg = poptGetNextOpt(optCon)) > 0) {
..
}

Функции popt* идут из пакета libpopt и возможно ошибка даже не в rpm, а 
этом самом libpopt... Это надо ракапывать.


Если вставить такой код (я не проверял, пишу на вскидку):

    if (arg < -1) {
	if (!strcmp(poptStrerror(arg), "No such file or directory")) {
	        fprintf(stderr, "error: rpm-build not installed\n");
	} else {
	        fprintf(stderr, "%s: %s\n",
         	        poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
                 	poptStrerror(arg));
	}
         exit(EXIT_FAILURE);
     }

То по идее будет писать "error: rpm-build not installed", т.к. сообщение 
"No such file directory" уникально и в базе libpopt такого не 
предусмотрено (т.е. срабатывать будет только при отсутствии rpmb). Но 
это workaround в стиле "костыль" :)

3. Вот собственно всё, что могу пока сказать. Может кто-нибудь возьмётся 
раскопать где проблема и исправит багу?

-- 
С уважением, Владимир Леттиев aka crux <crux@syktsu.ru>


  reply	other threads:[~2004-05-17  4:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-15  8:14 [sisyphus] " "Ivan Angarskiy" 
2004-05-15  8:32 ` Yuri N. Glibovetz
2004-05-15 16:55   ` Ildar Mulyukov
2004-05-15 17:18     ` Dmitry V. Levin
2004-05-16 17:50       ` [sisyphus] " Michael Shigorin
2004-05-16 20:11         ` Dmitry V. Levin
2004-05-17  4:00           ` Vladimir Lettiev [this message]
2004-05-17  7:48           ` Michael Shigorin
2004-05-20 12:52         ` Alexey Tourbin
2004-05-20 14:14           ` Michael Shigorin
2004-05-20 16:22       ` [sisyphus] " Vladimir Lettiev
2004-05-21 13:25         ` Dmitry V. Levin
2004-05-21 18:19           ` Vladimir Lettiev
2004-05-21 20:41             ` Dmitry V. Levin
2004-05-22  4:45               ` Vladimir Lettiev

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=40A838D2.3090403@syktsu.ru \
    --to=crux@syktsu.ru \
    --cc=sisyphus@altlinux.ru \
    /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 Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

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


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