[devel] Убрать автоматическую зависимость Requires(post)

Alexey Tourbin alexey.tourbin на gmail.com
Ср Окт 5 07:28:50 MSK 2016


2016-10-04 14:13 GMT+03:00 Alexei Takaseev <alexei на taf.ru>:
>> > Чтобы люди так не писали нужно иметь возможность указывать в спеке
>> > программы,
>> > которые не должны попасть в зависимости. Сейчас алгоритм поиска
>> > зависимостей "лучше знает".
>>
>> %filter_from_requires вроде есть, в 4.0.4-alt100.13 был добавлен.
>
> К сожалению, это не работает для зависимостей Requires(post) (на счет pre
> не проверял)

$ cat foo.spec
                                   1
Name: foo
Version: 1.0
Release: alt0

Summary: foo package
License: GPL
Group: System

%filter_from_requires /hren/d

%install
mkdir %buildroot

%description
%files
%post
/bin/hren

$ rpm -bb foo.spec
...
Requires(post): /bin/sh, /bin/hren
Wrote: /home/at/RPM/RPMS/x86_64/foo-1.0-alt0.x86_64.rpm

Действительно, на удается отфильтровать. Что-то я подзабыл, как это
работает. Там есть какой-то %__build_pre с фильтром, но он вставляется
не везде.  С другой стороны, зачем вы пишете в %post какие-то странные
команды, которые то ли будут вызваны, то ли не будут?  Не пишите дряни
в %post, не будет приключений на вашу задницу.

Кстати, Gleb F-M где-то хотел сделать доклад про двуногий rpm, который
одной ногой стоит в прошлом, другой - в будущем, а между ног у него
болтается страшная действительность. Нельзя ли где-нибудь посмотреть
этого доклада?

На самом деле всё хуже. В том смысле, что на самом деле имеется четкая
декомпозиция: заполнение чрута как первая стадия сборки, и
формирование пакетов из чрута как вторая стадия сборки. Посередине
между ними имеется стадия brp. Всё это мы хотим ужать в какое-то
понятие "спекфайла". Спекфайл имеет синергитическую ценность лишь в
силу слабости нашего ума.


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