[sisyphus] rpm find-requires

=?iso-8859-1?q?at_=CE=C1_turbinal=2Eorg?= =?iso-8859-1?q?at_=CE=C1_turbinal=2Eorg?=
Пн Сен 16 21:00:06 MSD 2002


On Mon, Sep 16, 2002 at 07:01:58PM +0400, Dmitry V. Levin wrote:
> On Mon, Sep 16, 2002 at 06:46:15PM +0400, at на turbinal.org wrote:
> > >  > Как отучить rpm искать find-requires в $RPM_BUILD_ROOT%_docdir ?
> > > find $RPM_BUILD_ROOT%_docdir -type f -exec chmod 0644 {} \;
> > 
> > Это у них у всех потенциально неправильный Requires?
> > Здесь нужна policy.
> 
> Например?

Здесь есть два разных вопроса:

1) rpm должен/не должен искать find-requires в /usr/share/doc.
2) в /usr/share/doc могут/не могут лежать исполняемые и/или порождающие
зависимости файлы.

И есть два решения:

1) Пропускать /usr/share/doc при поиске find-requires.
и/или
2) Принудительно проставлять 755/644 или 755/umask после %install

Лучше всего ставить 755/644 на всё что есть в /usr/share/doc или даже в
/usr/share вообще (а зачем оно тогда называется /usr/share?). Так легче
контролировать систему. Всё, что гарантированно исполняется, должно
лежать в /usr/bin, а всё остальное -- где-нибудь в
/usr/share/doc/%name-%version/contrib и без всяких прав.

RPM в этом смысле -- достаточно половинчатый интсрумент, им в /usr/bin
можно установить 0644, а в /usr/share/doc -- 4777. Права доступа %attr по
идее вообще не нужны. Нужны классы файлов и FHS enforcement. Например,

класс: бинарь -- ставим 0755 в /usr/bin
класс: suid-бинарь -- ставим 4711 в /usr/bin
класс: конфиг -- 0644 root:group /etc
класс: restrited-конфиг -- 0640 root:group /etc
класс: chrooted-конфиг -- /var/lib/%name/etc/*.conf, ln -sf ...

Но кое-что из этого можно сделать и с RPM через /usr/lib/rpm/brp-*.



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