[devel] Q: PEP-503/566 normalized names for python?

Igor Vlasenko vlasenko на imath.kiev.ua
Вт Сен 22 22:28:28 MSK 2020


On Tue, Sep 22, 2020 at 09:52:53PM +0300, Igor Vlasenko wrote:
> Как понимаю, эти две системы зависимостей не мешают друг другу.
> Кроме того, pythonXdist зависимости удобнее для BuildRequires:
> а наши автоматичесике зависимости удобнее, чтобы отслеживать
> косяки за апстримом.
> Хорошо иметь и то, и другое.

Это две системы зависимостей - по каноническому имени проекта
(можно получить из setup.py)
и по именам используемых модулей
(можно получить анализом директив include)

Проводя аналогию с perl.
Есть пакет CPAN с каноническим именем libwww-perl.
Зависимость на него можно выписать как 
BuildRequires: perl5dist(libwww-perl) (по имени) или
BuildRequires: perl(LWP.pm) (по модулю).

Для perl не нужно особого Provides, вида perl5dist(CPAN name)
потому что все 30.000 пакетов perl называются perl-<CPAN name>,
за исключением 24-х исторически сложившихся исключений.
Поэтому в 99.99% случаев можно вместо perl5dist(CPAN name) писать просто
perl-{CPAN name}.

С python хуже. Можно глазами прочитать setup.py,
но просто написать BuildRequires: python3-module-<normalized name>
не выйдет в большинстве случаев.
Нужно руками сопоставлять <normalized name> и <rpm name>.
Наличие python3dist provides позволило бы 
1) облегчить жизнь при создании нового пакета
2) использовать инструменты автогенерации BR: по setup.py.
3) доп. уровень совместимости со сторонними пакетами.

-- 

I V


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