[sisyphus] rpm --bb ./specfile не пашет
Vladimir Lettiev
=?iso-8859-1?q?crux_=CE=C1_syktsu=2Eru?=
Чт Май 20 20:22:28 MSD 2004
Dmitry V. Levin пишет:
> On Sat, May 15, 2004 at 08:55:23PM +0400, Ildar Mulyukov wrote:
>
>>Yuri N. Glibovetz wrote:
>>
>>>Ivan Angarskiy пишет:
>>>
>>>
>>>>$rpm -bb ./samba.spec
>>>>./samba.spec: No such file or directory
>>>
>>>rpm-build не установлен
>>
>>В конце концов надо что-нибудь тяжёлое повесить на rpm, чтобы он это не
>>писал. А писал что-нибудь вразумительное.
>
>
> Да висит уже давно,
> http://bugzilla.altlinux.ru/show_bug.cgi?id=1928
>
> Вот бы исправил тот, кому это действительно мешает.
> А то так и будет висеть.
>
А вы знаете, похоже rpm тут вообще не причём. Багу надо исправлять в
пакете libpopt.
Вот примерно такой патч:
--- popt-20020315.orig/popt.c 2004-05-20 02:23:28 +0400
+++ popt-20020315/popt.c 2004-05-20 09:38:38 +0400
@@ -438,6 +438,11 @@
#endif
rc = execvp(argv[0], (char *const *)argv);
+
+ con->optionStack->next = 1;
+ con->nextLeftover = 0;
+// con->optionStack->argv[0] = argv[0];
+
return POPT_ERROR_ERRNO;
}
Это заставляет execComand() при неудачном вызове /usr/lib/rpm/rpmb
позиционировать "каретку" на нулевой аргумент argv[], т.е. на имя
исполняемого файла, а не на последний аргумент в строке.
Одну строчку я закомментировал, т.к. пока не представляю как надо
правильно преобразовать типы данных, поскольку con->optionStack->argv[0]
- это похоже char *, а argv[0] - const char ** ...
В итоге при пересборке libpopt, при неустановленном rpm-build выводится
сообщение:
$rpm -bb ./samba.spec
rpm: No such file or directory
Если правильно прописать преобразование в закомментированной строке, то
теоретически будет так:
$rpm -bb ./samba.spec
/usr/lib/rpm/rpmb: No such file or directory
что и требовалось доказать...
Прошу помощи в доведении патча до нормального состояния...
--
С уважением, Леттиев Владимир aka crux <crux на syktsu.ru>
Подробная информация о списке рассылки Sisyphus