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>
next prev parent 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