LINUX.ORG.RU

python_targets_pypy — чудеса с зависимостями

 , , ,


0

2

Пытаюсь поставить dev-python/pip с поддержкой PyPy. Добавил python_targets_pypy в package.use для всех зависимостей, но portage хочет чего-то странного:

$ emerge -pv dev-python/pip                     

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds to satisfy ">=dev-python/ipaddress-1.0.14[python_targets_python2_7(-)?,python_targets_python3_3(-)?,python_targets_python3_4(-)?,python_targets_pypy(-)?,python_targets_pypy3(-)?,-python_single_target_python2_7(-),-python_single_target_python3_3(-),-python_single_target_python3_4(-),-python_single_target_pypy(-),-python_single_target_pypy3(-)]".
(dependency required by "dev-python/pip-7.1.2::gentoo" [ebuild])
(dependency required by "dev-python/pip" [argument])

Хотя ipaddress-1.0.14 уже stable и в package.use есть dev-python/ipaddress python_targets_pypy.

$ grep ipaddress /etc/portage/package.use/*
/etc/portage/package.use/main:dev-python/ipaddress python_targets_pypy

$ eix dev-python/ipaddress
[I] dev-python/ipaddress
     Available versions:  ~1.0.7 ~1.0.12 1.0.14 {PYTHON_TARGETS="pypy pypy3 python2_7 python3_3 python3_4"}
     Installed versions:  1.0.14(22:58:42 27.8.2015)(PYTHON_TARGETS="python2_7 python3_4 -pypy -pypy3 -python3_3")
     Homepage:            https://github.com/phihag/ipaddress
     Description:         IPv4/IPv6 manipulation library, a port of the ipaddress module
     License:             PSF-2

ОК, попробуем руками и посмотрим, чего ему не хватает.

$ emerge -pv dev-python/ipaddress[python_targets_pypy]

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     UD~] dev-python/ipaddress-1.0.12::gentoo [1.0.14::gentoo] PYTHON_TARGETS="pypy* python2_7 python3_4 -pypy3 -python3_3" 16 KiB

Total: 1 package (1 downgrade), Size of downloads: 16 KiB

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by dev-python/ipaddress[python_targets_pypy] (argument)
=dev-python/ipaddress-1.0.12 ~amd64

Portage зачем-то пытается его сдаунгрейдить до старой версии. Зачем он это делает, чего он хочет? Ебилды версий 1.0.12 и 1.0.14 практически не отличаются, зависимости у них абсолютно те же самые. Куда смотреть? Это очередная бага в portage, или где у меня что не так?

Флаг pypy у замаскирован в профиле у очень многих пакетов. Его нужно размаскировать на стабильной ветке.

echo -python_targets_pypy >> /etc/portage/profile/use.stable.mask

Иначе только нестабильные атомы подпадают под разрешение зависимостей

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Вот же блин. Ясно, спасибо.

А в документации про это где-то написано?

HeipaVai1o ()
Ответ на: комментарий от HeipaVai1o

Когда смотришь выхлоп emerge -pv - обращай внимания на скобки около таргетов. Это - замаскированные флаги.

Pinkbyte ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.