Day ago, I have successfully built Kodi 18.5 having Python 2.7 and Python 3.7 installed. After synchronizing portage tree, emerge -uDN @world fails with following error: └──> / # emerge --nodeps kodi These are the packages that would be merged, in order: !!! Problem resolving dependencies for media-tv/kodi !!! The ebuild selected to satisfy "kodi" has unmet requirements. - media-tv/kodi-18.5::gentoo USE="X alsa bluray caps css dbus dvd opengl pulseaudio samba (system-ffmpeg) udev vdpau xslt -airplay -bluetooth -cec -gbm -gles -lcms -libressl -libusb -lirc -mariadb -mysql -nfs (-raspberry-pi) -systemd -test -udisks -upnp -upower -vaapi -wayland -webserver -zeroconf" ABI_X86="(64)" PYTHON_SINGLE_TARGET="-python2_7" PYTHON_TARGETS="python2_7" The following REQUIRED_USE flag constraints are unsatisfied: python_single_target_python2_7 The above constraints are a subset of the following complete expression: exactly-one-of ( python_single_target_python2_7 ) python_single_target_python2_7? ( python_targets_python2_7 ) any-of ( gles opengl ) exactly-one-of ( gbm raspberry-pi wayland X ) at-most-one-of ( mariadb mysql ) udev? ( !libusb ) udisks? ( dbus ) upower? ( dbus ) My settings are: PYTHON_SINGLE_TARGET="python3_7" PYTHON_TARGETS="python2_7 python3_7" and I cannot add python2_7 to single targets, because python 3.7 is already there.
Kodi 18 only supports Python 2.7. It appears you have PYTHON_SINGLE_TARGET="python3_7" (or similar Python 3.x version) set in make.conf , therefore portage is trying to use Python 3 with Kodi, which the ebuild doesn't allow. To tell portage to use Python 2.7, add a line like this to /etc/portage/package.use: media-tv/kodi-18* python_single_target_python2_7 If you want to use Python 3, you need to use Kodi 19 which is currently only available as a live ebuild (media-tv/kodi-9999) which you can unmask.
The actual cause of "problem" is change in python-single-r1.eclass: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4da21ec689a66fe87ef67476dc6245808f6dde88 These users, who customize configuration of USE flags, now need to set PYTHON_SINGLE_TARGET (for relevant packages) in addition to PYTHON_TARGETS.