[devel] selecting the default Cython to use: none (for bootstrap) or real

Ivan Zakharyaschev imz на altlinux.org
Вт Мар 27 12:40:34 MSK 2018


On Tue, 27 Mar 2018, Yuri Sedunov wrote:

> В Вт, 27/03/2018 в 00:31 +0300, Dmitry V. Levin пишет:
>> On Mon, Mar 26, 2018 at 11:46:51PM +0300, Yuri Sedunov wrote:
>> [...]
>> > Если научить сборочечницу принимать аргументы для rpmbuild, что
>> > кажется
>> > полезным в общем случае,
>> 
>> В каком случае это кажется полезным?
>
> В тех случаях, когда упомянутой ниже воспроизводимостью сборки можно
> пренебречь,  -- в тестовых заданиях, например.  Для бутстрапа новых
> архитектур, чтобы максимально использовать немодифицированные пакеты,
> отключая нереализованные в настоящее время фичи в процессе сборки. 
>
>> 
>> Если на результат сборки исходного пакета, помимо самого сборочного
>> пакета
>> и сборочной среды, будет влиять ещё что-то, это негативно скажется на
>> воспроизводимости сборки.
>
> Если дополнительные сборочные параметры сохранить, то они вместе со
> сборочным пакетом и сборочной средой будут вполне описывать условия
> сборки.

Вообще, можно сохранять в теге, тогда эта информация не будет теряться. 
Ничего страшного я в этом не вижу.

Но gear сейчас передаёт хешеру по сути только srpm, без параметров. 
Поэтому это потребует каких-то изменений в этом механизме.

Можно ещё "вписывать" такие параметры в srpm с помощью уже имеющегося 
механизма specsubst:

%def_ на cython@ cython

а @cython@ будет заменяться на with или without. Но это потребует указания 
этого значения в каждом теге, что может напрягать...

Не подумал про сборку из srpm (без git) совсем! А aris@ как раз собирает 
обычно так. Тогда нет варианта подготовить тег, где будут сохранены 
параметры.

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

В принципе, если речь про другие платформы, можно просто сделать пока 
dummy python-module-Cython там. И задача будет решена. (Советую пока 
по крайней мере сделать так тем собирает под другие платформы, чтобы 
Cython вас не держал.)

Но похожая проблема возникает при пересборке python3...

Кстати, забыл в изначальном предложении упомянуть, что нужно будет правило 
замены для buildreq еще: вместо python-module-CythonVERSION использовать 
python-module-Cython.

(Раз я предложил, я могу попробовать реализовать в тестовом задании через 
некоторое время, если никто раньше не захочет и не попробует. Или 
обсуждение убедит в ненужности преобразоаний.)

-- 
Best regards,
Ivan


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