[devel] repocop patches for %post/un_ldconfig

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Апр 15 17:08:37 MSD 2008


On Mon, Apr 14, 2008 at 09:29:21PM +0300, Igor Vlasenko wrote:
> Вопрос, какой генерировать патч по тестам на
> missing %post_ldconfig/%postun_ldconfig.
> 
> +%post -p %post_ldconfig
> +%postun -p %postun_ldconfig
> смотрятся эффектно, но есть риск, что
> 1) кто-то испугается, что у него стало две секции %post

rpm не потянет две секции %post.

> 2) кто-то не испугается и даже упростит потом до
> %post -p %post_ldconfig
> %update_menus
> :)

Так нельзя упростить.  Это конструкция означает, что в качестве
интерпретатора будет запущен /sbin/ldconfig, и на stdin ему скормят
содержимое скрипта.  Если скрипт будет побольше, то rpmi при установке
получит SIGPIPE.  (Точнее, SIGPIPE он не получит, потому что он
сохраняет скрипт во временный файл, а не прокачивает его в интерпретатор
напрямую.)

Вообще, большая часть %post-like скриптов типична и сводится к тому,
что если в пакете есть файл или provides определённого шаблона, то нужно
дёрнуть соответствующий hook (возможно, с аргументами).

То есть в принципе это можно возложить на автоматику, но как хорошо эту
автоматику реализовать я не знаю.  В принципе есть два подхода:
1) В rpmb автоматически комплектовать %post-like скрипты при сборке
пакта.  Тогда каждый *.rpm пакет останется self-contained.
2) Модифицировать rpmi, чтобы он дёргал что надо прямо во время
установки.  Тогда в пакетах %post-like скрипты можно вообще не писать,
но это будет неявная зависимость на "вумный" rpmi.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080415/a525c955/attachment-0002.bin>


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