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

Ivan Zakharyaschev imz на altlinux.org
Пн Мар 26 16:18:10 MSK 2018


Hello!

Пакеты, использующую Cython для сборки, обычно работают и не 
скомпилированные им (непотимально, интерпретируются питоном).

Мы когда-то этим пользовались с Денисом nbr@ для пересборки с очередной 
версией python3 (3.5): убрали Cython из BuildRequires, добавили пакет в 
задание по пересборке и смогли всё собрать в работоспособном виде, без 
циклов по сборочным зависимостям. Потом надо не забыть в эти пакеты 
вернуть Cython и пересобрать.

Можно упростить это ради бутстрапов новых платформ и пересборок с новыми 
версиями python3. Чтобы не надо быоо spec-файлы редактировать.

Представить себе это как выбор одного из вариантов Cython: ничего или 
настоящий.

Дальше размышления о реализации:

Один вариант: сделать пакет dummy-python3-module-Cython, который Provides: 
python3-module-Cython

Тогда, возможно, hasher+apt вытянет dummy-python3-module-Cython, если 
настоящий python3-module-Cython не может быть установлен из-за 
неудовлетворённой зависимости на python3.X-ABI. Надо проверить 
экспериментально.

А на новых платформах будет пока просто только 
dummy-python3-module-Cython.

Но это идёт вразрез с желанием отказаться от альтернативных 
удовлетворителей BuildRequires -- чтобы не apt выбирал, а было всё 
детерминированно. Так было сделано для gcc в Sisyphus.

Другой вариант: python3-module-Cython -- пустой пакет, который имеет 
только Requires: python3-module-CythonVERSION . На время пересборки с 
новым python3 и для новых платформ собирается его релиз без Requires, 
потом возвращается (в следующем таске или когда будет реализован).

В BuildRequires уже написано python3-module-Cython у пакетов и это мы 
редактировать не хотим.

Для реализации второго плана нужно содействие от мейнтейнера 
python-module-Cython (а первый план -- больше беспорядка вносит) в 
переименовании пакета по крайней мере. aris@ и другие заинтересованные, 
что думаете?

-- 
Best regards,
Ivan


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