[devel] I: mate-desktop: new dep

Alexey Tourbin alexey.tourbin на gmail.com
Вс Апр 10 09:29:42 MSK 2016


2016-04-10 6:07 GMT+03:00 Ivan Zakharyaschev <imz на altlinux.org>:
>>> Так что если в пакете были только символические ссылки (абсолютные), то
>>> автозависимости в нём дальше не искались.
>>
>> Пожалуйста подробнее, с номерами строк.
>
> Я думал, Вы уже знаете, какие строчки были затронуты в обсуждаемых
> измененеях.
>
> Эта проверка на строке 75 --
> http://git.altlinux.org/gears/r/rpm.git?p=rpm.git;a=blob;f=autodeps/linux.req.in;h=0925c6848e81fdd2ee83af49fbe44f4a6d49b6c3;hb=484d6f523f53389bba6e9a43ca97b7f758030b64#l75
> .
>
> Но не все файлы из списка файлов пакета, которые нужно обработать для поиска
> зависимостей записаны в этот момент в "$workdir"/files. Часть из них уже
> была сразу записана в "$workdir"/files+types в строке 70 , а остальные будут
> добавлены туда только в строке 81.
>
> Исправление --
> http://git.altlinux.org/gears/r/rpm.git?p=rpm.git;a=commitdiff;h=95ffed16a656532cc87e8ebf25fffb235f994e4b
> .

Теперь понял. Да, скрипт глюкавый вышел. Предлагаю в связи с этим -
полагаю, вы уже знаете - почать еще одну бутылку белого вина!
Как писал Венедикт Ерофеев, чем хуже скрипт, тем лучше надо выпить.

Был такой скрипт, buildreq, который автоматически добавлял зависимости
BuildRequires. Он в том числе отслеживал вызовы stat(2) на файлы. Глюкавый
коммит появился тогда, когда я попытался отвадить file(1) делать лишние
вызовы stat: http://git.altlinux.org/gears/r/rpm.git?a=commitdiff;h=6f60362519
Потом Алексей Турбин пришел к выводу, что просто не нужно отслеживать
stat, а только open(2) и execve(2). Но было уже поздно.

Судьба buildreq печальна - автор его искорежил и забросил.
Я когда-то придумал алгоритм, который оптимизирует список BuildRequires.
Причем там речь идет не в терминах графа зависимостей, а наоборот -
в терминах того, что нужно задать линейный порядок на множестве пакетов.
Подробнее см. http://www.altlinux.ru/media/protva4.pdf с.62.

Потом вышел небольшой скандальчик: оказалось, что этот алгоритм
слишком хорошо оптимизирует зависимости между *-devel пакетами;
а зависимости между *-devel пакетами слишком подвержены интерпретации
Requires.private в pkg-config. Ослабив требование на Requires.private
http://git.altlinux.org/gears/p/pkg-config.git?a=commitdiff;h=b669b37e
мужчины недосчитываются пакетов в сборочном чруте.

Эх, воспоминание свой развивает свиток.


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