[devel] сборка пакета, опирающаяся на свойства бранча

Mikhail Novosyolov mikhailnov на altlinux.org
Пт Ноя 20 21:32:51 MSK 2020


20.11.2020 20:39, Vitaly Lipatov пишет:
> Mikhail Novosyolov писал 20.11.20 19:47:
> ...
>>> И на самом деле важна не версия. А важна определённая фича, которая есть в бранче или нет.
>>> Например, вместо
>>> %if %_vendor == "alt" && (%_distro_version == "p9" || %_distro_version == "Sisyphus")
>>> BuildRequires: libvulkan-devel
>>> %endif
>>>
>>> Я бы хотел писать
>>> %if_have vulkan
>>> BuildRequires: libvulkan-devel
>>> %endif
>>>
>>> а не гадать, в каком же бранче есть vulkan, а в каком ещё нет.
>>
>> Опыт другого дистрибутива показывает, что про эти фичи - переключалки
>> типа %bcond_with vulkan на весь репозиторий - никто не помнит и не
>> использует.
> Важная мысль. Но, как я понимаю. конкретно bcond_with это аналог наших def_with и предназначены для другого:
> https://github.com/redhat-developer/rpm-packaging-guide/issues/23

Да это то же самое

%bcond_without foo

%if %{with foo}
<...>
%endif

Такая конструкция эквивалентна rpmbuild --with=foo (with и without реверсированы в %bcond_with(out)), можно при этом сделать rpmbuild --without=foo для отключения foo.

В пакете branding-configs / distro-release задается глобальный для "бранча" список переключалок:
%bcond_without selinux
%bcond_with foo
и т.д.
Далее в спеках можно подтягивать эти глобальные значения.

Как я понимаю, это именно то, что Вы описали для vulkan. Приведет к тому, что лет через 5 будет огромный список таких глобальных переключалок, подавляющее большинство которых не нужно будет для актуальных бранчей, но они будут тянуться годами, на весь репозиторий будет полтора пакета, их использующих, в большинстве из которых они будут и не нужны к тому времени. А еще будет сложный процесс согласования добавления переключалок, скорее всего.

>
> Моё предложение — задавать некоторые такие условия глобально для бранча. Есть ли у кого-нибудь информация о существующих аналогиях или противопоказаниях?
>
>> vulkan теперь будет везде, точно ли есть смысл рождать переключалку
>> ради рудимента - отсутствия vulkan в древних бранчах?
> К сожалению, всегда будет такой бранч, в котором что-то отсутствует, но туда нужно собрать пакет. Это я говорю как собиравший в p8 пакеты с ffmpeg, которого там не было.


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