I obviously have: */* PYTHON_TARGETS: * Now, when I try to upgrade @world, I get: emerge: there are no ebuilds built with USE flags to satisfy ">=dev-python/ipyparallel-6.2.3[python_targets_python3_5(-)?,python_targets_python3_6( -)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-),-python_targets_python2_7]". !!! One of the following packages is required to complete your request: - dev-python/ipyparallel-6.2.3::gentoo (Change USE: -python_targets_python2_7) (dependency required by "dev-python/ipython-7.5.0::gentoo" [ebuild]) (dependency required by "@selected" [set]) (dependency required by "@world" [argument]) which is already not nice. However, when I change the flag as requested, I get: The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by dev-python/ipython-5.8.0-r1::gentoo # required by dev-python/ipykernel-5.1.0::gentoo # required by dev-python/ipython-7.5.0::gentoo[smp,-notebook] # required by @selected # required by @world (argument) >=dev-python/ipyparallel-6.2.3 python_targets_python2_7 You can guess what happens next.
Ah, I should probably also have included all the slot conflicts it causes: !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-python/ipykernel:0 (dev-python/ipykernel-5.1.0:0/0::gentoo, ebuild scheduled for merge) pulled in by >=dev-python/ipykernel-5.1.0[python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) ^^ ^^^^^ (dev-python/ipykernel-4.6.1-r2-1:0/0::gentoo, installed) pulled in by dev-python/ipykernel[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/qtconsole-4.3.1-3:0/0::gentoo, installed) dev-python/ipykernel[python_targets_python2_7(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python2_7(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipyparallel-6.2.3:0/0::gentoo, ebuild scheduled for merge) dev-python/ipython:0 (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) pulled in by (no parents that aren't satisfied by other packages in this slot) (dev-python/ipython-5.8.0-r1-3:0/0::gentoo, installed) pulled in by >=dev-python/ipython-4.0.0[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipykernel-4.6.1-r2-1:0/0::gentoo, installed) dev-python/ipython[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/qtconsole-4.3.1-3:0/0::gentoo, installed) dev-python/ipython[python_targets_python2_7(-)?,python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python2_7(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipyparallel-6.2.3:0/0::gentoo, ebuild scheduled for merge) <dev-python/ipython-6[python_targets_python2_7(-),-python_single_target_python2_7(-)] required by (dev-python/ipykernel-4.6.1-r2-1:0/0::gentoo, installed) ^ ^ (and 1 more with the same problems) dev-python/prompt_toolkit:0 (dev-python/prompt_toolkit-2.0.7:0/0::gentoo, ebuild scheduled for merge) pulled in by >=dev-python/prompt_toolkit-2[python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) ^^ ^ (dev-python/prompt_toolkit-1.0.15-3:0/0::gentoo, installed) pulled in by <dev-python/prompt_toolkit-2[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-5.8.0-r1-3:0/0::gentoo, installed) ^
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80674d4c76244a52d2dac573bbe6e58c0caf1aa2 commit 80674d4c76244a52d2dac573bbe6e58c0caf1aa2 Author: Michał Górny <mgorny@gentoo.org> AuthorDate: 2019-05-03 07:06:27 +0000 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: 2019-05-03 07:15:40 +0000 dev-python/ipython: Revert "remove mask on v6+" Reverts: 77f0f1d5cd9fca649c985063bbb720e9d3cb4be5 Bug: https://bugs.gentoo.org/684962 Signed-off-by: Michał Górny <mgorny@gentoo.org> profiles/package.mask | 5 +++++ 1 file changed, 5 insertions(+)
For my specific set of packages, I was finally able to get around this with two additional removals of python2.7 support: dev-python/ipyparallel -python_targets_python2_7 dev-python/ipykernel -python_targets_python2_7 dev-python/qtconsole -python_targets_python2_7 dev-python/notebook -python_targets_python2_7
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f913035f1f2b830c58c1652db63151db355b8ec commit 1f913035f1f2b830c58c1652db63151db355b8ec Author: Virgil Dupras <vdupras@gentoo.org> AuthorDate: 2019-05-03 12:51:12 +0000 Commit: Virgil Dupras <vdupras@gentoo.org> CommitDate: 2019-05-03 12:53:40 +0000 dev-python/ipykernel: adjust dependencies on ipython With ipython6+ dropping py2 and ipython having a circular dependency with ipykernel and ipyparallel, things get messy and portage's error messages are unhelpful unless we have a clean break in our dependencies. With this commit, all <ipykernel-5 depend on <ipython-6 and all >=ipykernel-5 depend on >=ipython-6. This makes portage's dependency resolution much happier and results in helpful error messages indicating what packages need "-python_targets_python2_7". Bug: https://bugs.gentoo.org/684962 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> Package-Manager: Portage-2.3.62, Repoman-2.3.11 dev-python/ipykernel/ipykernel-4.6.1-r2.ebuild | 3 +-- dev-python/ipykernel/ipykernel-4.8.2.ebuild | 3 +-- dev-python/ipykernel/ipykernel-5.1.0.ebuild | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d6a83be4a46c384ddf31a3db2961869593b86b7 commit 2d6a83be4a46c384ddf31a3db2961869593b86b7 Author: Virgil Dupras <vdupras@gentoo.org> AuthorDate: 2019-05-03 12:44:41 +0000 Commit: Virgil Dupras <vdupras@gentoo.org> CommitDate: 2019-05-03 12:53:39 +0000 profiles: mask >=dev-python/ipykernel-5 I'm about to push a change in ipykernel's dependency to operate a clean split between pre-py2-drop and post-py2-drop and because ipython-6+ is masked, we also need to mask ipykernel-5+. But hopefully, we'll be able to unmask them both soon. Bug: https://bugs.gentoo.org/684962 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> profiles/package.mask | 1 + 1 file changed, 1 insertion(+)
Michał: would you mind trying again please? I could reproduce your problem on a machine with "*/* PYTHON_TARGETS: *" on which we try to install both ipython and notebook, and with ipykernel's dependencies adjusted, error messages are much more helpful in indicating what packages need "-python_targets_python2_7" to reach a happy resolution.
@mgorny, would it hurt the healthiness of the portage tree if some fake USE of python_targets_python2_7 are introduced when a packages without support of Python2 is coming? That way a user is not confronted with a full blown package.mask but with a much simpler to handle package.use.mask I propose an example here: https://bugs.gentoo.org/671796#c10
I will solve this by dropping py2 on the whole jupyter stack. See bug 685040
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=db601e86bc5c3403536abd4e391efa05b3d7366c commit db601e86bc5c3403536abd4e391efa05b3d7366c Author: Virgil Dupras <vdupras@gentoo.org> AuthorDate: 2019-05-04 20:52:12 +0000 Commit: Virgil Dupras <vdupras@gentoo.org> CommitDate: 2019-05-04 22:58:05 +0000 profiles: unmask dev-python/ipython-6+ For good this time, hopefully. Closes: https://bugs.gentoo.org/684962 Closes: https://bugs.gentoo.org/685040 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> profiles/package.mask | 6 ------ 1 file changed, 6 deletions(-) Additionally, it has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9406d4bde72f72b8757f5c43158757efd6c4609d commit 9406d4bde72f72b8757f5c43158757efd6c4609d Author: Virgil Dupras <vdupras@gentoo.org> AuthorDate: 2019-05-04 20:51:44 +0000 Commit: Virgil Dupras <vdupras@gentoo.org> CommitDate: 2019-05-04 22:58:05 +0000 dev-python/ipython: remove py2 hack All circular dependencies had py2 cleanly dropped, rendering the hack obsolete. Bug: https://bugs.gentoo.org/685040 Bug: https://bugs.gentoo.org/684962 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> Package-Manager: Portage-2.3.62, Repoman-2.3.11 dev-python/ipython/ipython-7.5.0.ebuild | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-)
Well, the USE changes are gone but the horrible conflicts remained: These are the packages that would be merged, in reverse order: Calculating dependencies... done! [nomerge ] app-emulation/wine-any-4.1:4.1::gentoo USE="X alsa cups d3d9 fontconfig gecko gphoto2 gstreamer jpeg lcms mono mp3 ncurses nls openal opengl osmesa perl png pulseaudio realtime run-exes scanner sdl ssl staging threads truetype udev udisks v4l vaapi xcomposite xml -capi -custom-cflags -dos -ffmpeg -gsm -gssapi -kerberos -ldap -netapi -odbc -opencl -oss -pcap -pipelight -prelink -samba -selinux -test -themes -vkd3d -vulkan -xinerama" ABI_X86="32 64 -x32" [nomerge ] sys-fs/udisks-2.8.2:2::gentoo USE="acl introspection nls systemd -debug -elogind -lvm -selinux -vdo" [nomerge ] sys-libs/libblockdev-2.21::gentoo USE="cryptsetup tools -bcache -device-mapper -dmraid -doc -escrow -kbd -lvm -test -vdo" PYTHON_SINGLE_TARGET="python3_7 -python2_7 -python3_4 -python3_5 -python3_6" PYTHON_TARGETS="python2_7 python3_5 python3_6 python3_7 -python3_4" [ebuild U ~] dev-libs/libbytesize-2.0-r1::gentoo [2.0::gentoo] USE="-doc -python% -test -tools" PYTHON_SINGLE_TARGET="python3_7%* -python3_5% -python3_6%" PYTHON_TARGETS="python3_5%* python3_6%* python3_7%*" 0 KiB [nomerge ] www-apps/jekyll-3.8.5::gentoo USE="test -doc" RUBY_TARGETS="ruby24 ruby25 (-ruby23)" [nomerge ] dev-ruby/kramdown-1.17.0::gentoo USE="latex -doc -test" RUBY_TARGETS="ruby24 ruby25 (-ruby23)" [ebuild R ~] dev-ruby/stringex-2.8.5::gentoo USE="-doc -test" RUBY_TARGETS="ruby24 ruby25 ruby26%* (-ruby23)" 0 KiB [ebuild R ~] net-vpn/tor-0.4.0.4_rc::gentoo USE="caps lzma man%* seccomp systemd -doc% -libressl -scrypt -selinux -test -tor-hardening -zstd" 0 KiB [ebuild R ~] app-admin/puppet-lint-2.3.6::gentoo USE="-doc -test" RUBY_TARGETS="ruby24 ruby25 ruby26%* (-ruby23)" 0 KiB [ebuild rR ~] sys-devel/multilib-gcc-wrapper-0-r2::gentoo 0 KiB [ebuild R *] app-shells/bash-completion-9999::gentoo USE="test*" 0 KiB [nomerge ] dev-python/ipython-7.5.0::gentoo [5.8.0-r1::gentoo] USE="qt5 smp -doc -examples -matplotlib -nbconvert -notebook -test (-wxwidgets%)" PYTHON_TARGETS="python3_5 python3_6 python3_7 (-python2_7%*) (-python3_4%)" [ebuild U ~] dev-python/ipykernel-5.1.0::gentoo [4.6.1-r2::gentoo] USE="-test" PYTHON_TARGETS="python3_5 python3_6 python3_7 (-python2_7%*) (-python3_4%)" 99 KiB [ebuild U ~] dev-python/ipython-7.5.0::gentoo [5.8.0-r1::gentoo] USE="qt5 smp -doc -examples -matplotlib -nbconvert -notebook -test (-wxwidgets%)" PYTHON_TARGETS="python3_5 python3_6 python3_7 (-python2_7%*) (-python3_4%)" 4 999 KiB [ebuild U ~] dev-python/prompt_toolkit-2.0.7::gentoo [1.0.15::gentoo] USE="-test" PYTHON_TARGETS="python2_7 python3_5 python3_6 python3_7 (-python3_4%)" 336 KiB [ebuild N ~] dev-python/backcall-0.1.0::gentoo PYTHON_TARGETS="python3_5 python3_6 python3_7" 10 KiB [ebuild NS ~] sys-devel/gcc-9.1.0:9.1.0::gentoo [7.4.0-r1:7.4.0::gentoo, 8.3.0-r1:8.3.0::gentoo] USE="cxx fortran graphite (multilib) nls nptl objc objc++ objc-gc openmp pch (pie) sanitize ssp vtv (-altivec) -d% -debug -doc (-fixed-point) -go (-hardened) (-jit) (-libssp) -pgo -systemtap -test -vanilla (-mpx%)" 68 906 KiB [nomerge ] dev-libs/libgit2-0.28.1:0/28::gentoo USE="ssh test threads -examples -gssapi -libressl -trace" [nomerge ] dev-util/cmake-3.14.3::gentoo USE="ncurses -doc -emacs -qt5 -system-jsoncpp -test" [nomerge ] x11-misc/shared-mime-info-1.10-r1::gentoo USE="-test" [nomerge ] dev-util/intltool-0.51.0-r2::gentoo [ebuild U ~] dev-lang/perl-5.28.2-r1:0/5.28::gentoo [5.28.2:0/5.28::gentoo] USE="ithreads -berkdb -debug -doc -gdbm" 25 KiB [ebuild U ~] sys-kernel/linux-firmware-20190502::gentoo [20190424::gentoo] USE="-savedconfig" 180 787 KiB Total: 13 packages (6 upgrades, 1 new, 1 in new slot, 5 reinstalls), Size of downloads: 255 160 KiB !!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-python/ipykernel:0 (dev-python/ipykernel-5.1.0:0/0::gentoo, ebuild scheduled for merge) pulled in by >=dev-python/ipykernel-5.1.0[python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) ^^ ^^^^^ (dev-python/ipykernel-4.6.1-r2-1:0/0::gentoo, installed) pulled in by dev-python/ipykernel[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipyparallel-6.2.3-1:0/0::gentoo, installed) dev-python/ipykernel[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/qtconsole-4.3.1-3:0/0::gentoo, installed) dev-python/ipython:0 (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) pulled in by >=dev-python/ipython-6[python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipykernel-5.1.0:0/0::gentoo, ebuild scheduled for merge) ^^ ^ (dev-python/ipython-5.8.0-r1-3:0/0::gentoo, installed) pulled in by dev-python/ipython[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/qtconsole-4.3.1-3:0/0::gentoo, installed) dev-python/ipython[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipyparallel-6.2.3-1:0/0::gentoo, installed) >=dev-python/ipython-4.0.0[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipykernel-4.6.1-r2-1:0/0::gentoo, installed) <dev-python/ipython-6[python_targets_python2_7(-),-python_single_target_python2_7(-)] required by (dev-python/ipyparallel-6.2.3-1:0/0::gentoo, installed) ^ ^ (and 1 more with the same problems) dev-python/prompt_toolkit:0 (dev-python/prompt_toolkit-2.0.7:0/0::gentoo, ebuild scheduled for merge) pulled in by >=dev-python/prompt_toolkit-2[python_targets_python3_5(-)?,python_targets_python3_6(-)?,python_targets_python3_7(-)?,-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-7.5.0:0/0::gentoo, ebuild scheduled for merge) ^^ ^ (dev-python/prompt_toolkit-1.0.15-3:0/0::gentoo, installed) pulled in by <dev-python/prompt_toolkit-2[python_targets_python2_7(-),python_targets_python3_5(-),python_targets_python3_6(-),python_targets_python3_7(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-),-python_single_target_python3_7(-)] required by (dev-python/ipython-5.8.0-r1-3:0/0::gentoo, installed) ^ ^ NOTE: Use the '--verbose-conflicts' option to display parents omitted above It may be possible to solve this problem by using package.mask to prevent one of those packages from being selected. However, it is also possible that conflicting dependencies exist such that they are impossible to satisfy simultaneously. If such a conflict exists in the dependencies of two different packages, then those packages can not be installed simultaneously. You may want to try a larger value of the --backtrack option, such as --backtrack=30, in order to see if that will solve this conflict automatically. For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98a35ce7c2b7ac8f2eafad0702f68317cd3babc9 commit 98a35ce7c2b7ac8f2eafad0702f68317cd3babc9 Author: Michał Górny <mgorny@gentoo.org> AuthorDate: 2019-05-05 06:54:50 +0000 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: 2019-05-05 07:15:34 +0000 dev-python/qtconsole: Drop py2 Closes: https://bugs.gentoo.org/684962 Signed-off-by: Michał Górny <mgorny@gentoo.org> dev-python/qtconsole/qtconsole-4.3.1-r1.ebuild | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+)