Enquanto os módulos Ruby e Perl usam esses recursos virtuais, o Python AFAIK não os utiliza.
Não é nada além de ofertas virtuais (consulte o capítulo Criando CAPACIDADES Virtuais ).
É útil se você souber qual módulo deseja usar, mas não sabe qual pacote o contém. Enquanto na maioria dos casos é muito simples e perl-foo
fornece perl(foo)
, existem casos que não são tão simples. Por exemplo. perl(APR)
é fornecido por mod_perl
.
As provisões virtuais para Perl são bastante antigas e são tratadas diretamente pelo rpm e pelo rpmbuild. No passado, em Ruby, você tinha que adicioná-los manualmente, mas agora ele é tratado também por rpm. Para o python, não havia ninguém que controlasse essa alteração e, em geral, não usava as virtuais. Então você deve exigir o nome exato do pacote.
Conclusão:
Se você estiver empacotando biblioteca python, não há problema em colocar as especificações:
Provides: python(foo) = %{version}-%{release}
No entanto, você não deve esperar que outros módulos python tenham isso, e você precisa deles usando o nome normal do pacote.
E uma nota final - Requer / Fornece diferencia maiúsculas de minúsculas, então Python (foo)! = python (foo).