[devel] vala policy?

Alexander Bokovoy ab на altlinux.org
Пт Мар 16 22:56:42 MSK 2012


2012/3/16 Dmitry V. Levin <ldv на altlinux.org>:
> On Fri, Mar 16, 2012 at 07:39:11PM +0400, Yuri N. Sedunov wrote:
>> В Птн, 16/03/2012 в 19:20 +0400, Alexey Shabalin пишет:
>> > 16 марта 2012 г. 18:45 пользователь Dmitry V. Levin написал:
>>
>> > Теперь для сборки многих пакетов от проекта Gnome, как правило нужны и
>> > vapi файлы наравне с *.h и lib*.so.
>> > Повторюсь, только для сборки.
>> > Согласись, что не все *.h нужны для сборки конкретного пакета. Иногда
>> > нужен только один из нескольких десятков.
>> > Поэтому % не покажут всю картину.
>> > Сейчас, я предполагаю (точных данных нет), около 20% devel-пакетов от
>>
>> Где-то около 1%, если быть чуть точнее.
>
> 20% и 1% это очень разные оценки.  Как можно получить более точную оценку?
> У нас есть логи сборки всех пакетов, из которых видно, какие пакеты
> устанавливались в сборочную среду.  Возможно, там есть информация о том,
> использовались ли vapi-файлы во время сборки?
Честно говоря, проблема не стоит выеденного яйца и вот почему.

vapi-файлы обрабатываются только компилятором vala. Если какое-то
приложение требует vapi-файлы для сборки, оно содержит в себе
компоненты, написанные на Vala. Это значит, что у такого приложения в
пакете всегда будет
    BuildRequires: vala
и он вытянет необходимую инфраструктуру для сборки.

Поэтому добавлять в соответствующие libfoo-devel, содержащие
vapi-файлы, обязательную зависимость на vala необходимости совсем нет.
vapi-файлы могут спокойно лежать в этих libfoo-devel, а зависимость
можно было бы добавить на пакет, содержащий каталог
/usr/share/vala/vapi. Этот каталог можно было бы сделать принадлежащим
какому-нибудь совсем общему пакету, vapi-common, требуемому и пакетом
vala, по аналогии с emacs-common, например. Более того, эту
зависимость можно было бы сделать автоматически вычисляемой -- при
имеющейся инфраструктуре автоматического вычисления зависимостей это
довольно просто. Фактически, все, что нужно -- это генерировать
   Requires: vapi-common
если встречается непустое содержимое /usr/share/vala/vapi в процессе
установки. Ну и добавить
   Provides: vapi(имя)
для каждого vapi-файла.

Написание такого вычислителя зависимостей займет менее часа, а для его
исполнения никакая vala не нужна.

Нарезать на подпакеты можно, конечно, но особого смысла нарезки на
пакеты из одного-двух файлов в данном случае я не только не вижу, но и
не совсем понимаю чем это облегчит жизнь пользователей.

-- 
/ Alexander Bokovoy


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