[devel] shell req/prov

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Сен 28 01:16:13 MSD 2007


On Fri, Sep 28, 2007 at 01:12:20AM +0400, Dmitry V. Levin wrote:
> Когда я в апреле 2003-го реализовал тот алгоритм, который вы сейчас
> критикуете, я счёл возможным пренебречь теми побочными эффектами, о
> которых идёт речь, ради того чтобы зависимости пакетов стали лучше в
> целом.
> 
> А к тем, Алексей, кто демонстрирует понимание предмета, предъявляется
> повышенный спрос: если вас не устраивает действующий алгоритм, предлагайте
> улучшенные алгоритмы.

У меня есть вариант минимального изменения к 'sh --rpm-requires' (при
сохранении совместимости), котрое в результате позволяет реализовать
self-requires elimination.

--- make_cmd.c-	2007-09-27 21:04:30 +0000
+++ make_cmd.c	2007-09-27 21:06:32 +0000
@@ -778,6 +778,8 @@ make_function_def (name, command, lineno
   bind_function_def (name->word, temp);
 
   temp->source_file = 0;
+  if (rpm_requires) /* each function is possibly required */
+    output_requirement ("function", name);
   return (make_command (cm_function_def, (SIMPLE_COM *)temp));
 }
 
Это пока я не знаю, работает или нет.

Потом в shell.req все function(...) являются потенциальными Provides.
Если executable(...) в скобках совпадает с какой-либо функцией, то
его не нужно искать.

Если же нарушить совместимость, то можно реализовать более хитрые
алгоритмы.  Например, в exec и source не может быть имени функции.
А вот когда есть просто WORD, тогда это может быть и функция.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070928/987da3ff/attachment-0002.bin>


Подробная информация о списке рассылки Devel