Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 557490 - =sys-apps/portage-2.2.20.1 tries to rebuild packages with PYTHON_TARGETS="python3_4" with no dev-lang/python:3.4 installed
Summary: =sys-apps/portage-2.2.20.1 tries to rebuild packages with PYTHON_TARGETS="pyt...
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-13 17:35 UTC by Sergey S. Starikoff
Modified: 2015-08-19 21:29 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey S. Starikoff 2015-08-13 17:35:15 UTC
Initially I had:
# eselect python list
Available Python interpreters:
  [1]   python2.7
  [2]   python3.3 *

Following news item:
2015-07-25  Python 3.4 enabled by default
I've decided it's time to switch to dev-lang/python:3.4

The easiest way to do so for me was first to update some weeks old system staying on dev-lang/python:3.3 (setting proper values of PYTHON_TARGETS variable in make.conf).
After update I've reset this variable to profile's default and rerun world's update.
The result was very strange:

# emerge -uDN world

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

Calculating dependencies... done!
[ebuild   R    ] sys-apps/file-5.22::gentoo  USE="zlib -python -static-libs" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] dev-libs/boost-1.56.0-r1:0/1.56.0::gentoo  USE="icu nls threads -context -debug -doc -mpi -python -static-libs -tools" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] sys-libs/libcap-ng-0.7.7::gentoo  USE="-python -static-libs" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] sys-apps/kmod-20::gentoo  USE="tools zlib -debug -doc -lzma -python -static-libs" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild  NS    ] dev-lang/python-3.4.1:3.4::gentoo [2.7.9-r1:2.7::gentoo, 3.3.5-r1:3.3::gentoo] USE="gdbm ncurses readline ssl threads xml -build -examples -hardened -ipv6 -sqlite -tk -wininst" 0 KiB
[ebuild   R    ] dev-libs/libxml2-2.9.2-r1:2::gentoo  USE="icu python readline -debug -examples -ipv6 -lzma -static-libs {-test}" ABI_X86="32 (64) (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
…

dev-lang/python:3.4 was only the 5-th package to be installed.
Of course I know how to solve this accident.
But it is something incorrect.

And one more related question: does python-updater going obsolete?

$ einfo
Portage 2.2.20.1 (python 3.3.5-final-0, default/linux/amd64/13.0, gcc-4.8.4, glibc-2.20-r2, 3.18.9-aufs x86_64)
=================================================================
System uname: Linux-3.18.9-aufs-x86_64-Intel-R-_Core-TM-_i5_CPU_661_@_3.33GHz-with-gentoo-2.2
KiB Mem:     7977364 total,   3772584 free
KiB Swap:    4024240 total,   4024240 free
Timestamp of repository gentoo: Thu, 13 Aug 2015 15:15:01 +0000
sh bash 4.3_p39_pre0
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.3_p39_pre0::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.20.2::gentoo
dev-lang/python:          2.7.9-r1::gentoo, 3.3.5-r1::gentoo
dev-util/cmake:           3.2.2::gentoo
dev-util/pkgconfig:       0.28-r2::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.17::gentoo
sys-apps/sandbox:         2.6-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.13.4::gentoo, 1.15::gentoo
sys-devel/binutils:       2.24-r3::gentoo
sys-devel/gcc:            4.8.4::gentoo
sys-devel/gcc-config:     1.7.3::gentoo
sys-devel/libtool:        2.4.6::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 3.18::gentoo (virtual/os-headers)
sys-libs/glibc:           2.20-r2::gentoo
Repositories:

gentoo
    location: /usr/portage/gentoo
    sync-type: rsync
    sync-uri: rsync://mirror.yandex.ru/gentoo-portage/
    priority: -1000

junta
    location: /usr/portage/junta
    sync-type: git
    sync-uri: git@github.com:beelze/junta.git
    masters: gentoo

local_home
    location: /usr/portage/local
    masters: gentoo

rion
    location: /usr/portage/layman/rion
    masters: gentoo
    priority: 0

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA GPL*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/conf.d/clock /etc/rc.conf /usr/lib64/libreoffice/program/sofficerc /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.6/ext-active/ /etc/php/cgi-php5.6/ext-active/ /etc/php/cli-php5.6/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles/"
EMERGE_DEFAULT_OPTS="--ask=y --verbose --autounmask=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildsyspkg config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://xeon.gentoo.ru/mirrors/gentoo/distfiles/ 		ftp://mirror2.corbina.ru/gentoo-distfiles/ 	http://mirror2.corbina.ru/gentoo-distfiles/ 		http://mirror.yandex.ru/gentoo-distfiles/ 		ftp://mirror.yandex.ru/gentoo-distfiles/ 		http://gentoo.bloodhost.ru/ 		ftp://gentoo.bloodhost.ru/ 	distfiles.gentoo.org"
LANG="ru_RU.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages/"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 acl alsa amd64 berkdb bzip2 cairo cdr cli consolekit cracklib crypt cups cxx dbus djvu dri dv dvd ffmpeg flac fortran gdbm gif gtk iconv icu jpeg jpeg2k kpathsea mac mmx mmxext modules mp3 mpeg multilib ncurses nls nptl ogg openmp pam pcre pdf png policykit qt3support readline session sse sse2 ssl tcpd tiff truetype unicode utf8 v4l v4l2 vorbis x264 zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" FOO2ZJS_DEVICES="hp1018" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="ru" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" QEMU_SOFTMMU_TARGETS="i386" QEMU_USER_TARGETS="i386" RUBY_TARGETS="ruby19 ruby20" SANE_BACKENDS="genesys" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 1 Sergey S. Starikoff 2015-08-13 20:11:30 UTC
--with-bdeps=y missed
Comment 2 Sergey S. Starikoff 2015-08-18 10:41:09 UTC
No.
Re-check on my another system (although with active python3_3) shows similiar result:
# emerge -uDN --with-bdeps=y world

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

Calculating dependencies... done!
[ebuild   R    ] sys-apps/file-5.22::gentoo  USE="zlib -python -static-libs" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] dev-libs/boost-1.56.0-r1:0/1.56.0::gentoo  USE="nls threads -context -debug -doc -icu -mpi -python -static-libs -tools" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] dev-libs/libnl-3.2.25:3::gentoo  USE="-python -static-libs -utils" ABI_X86="(64) -32 (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild     U  ] sys-power/iasl-20140828::gentoo [20130117-r1::gentoo] USE="{-test}" 1 391 KiB
[ebuild     U  ] virtual/perl-Parse-CPAN-Meta-1.441.400-r1::gentoo [1.441.400::gentoo] 0 KiB
[ebuild     U  ] virtual/perl-CPAN-Meta-YAML-0.12.0-r1::gentoo [0.12.0::gentoo] 0 KiB
[ebuild     U  ] virtual/perl-version-0.990.900-r2::gentoo [0.990.900-r1::gentoo] 0 KiB
[ebuild     U  ] virtual/perl-ExtUtils-Manifest-1.630.0-r2::gentoo [1.630.0-r1::gentoo] 0 KiB
[ebuild     U  ] virtual/perl-ExtUtils-CBuilder-0.280.217-r2::gentoo [0.280.217-r1::gentoo] 0 KiB
[ebuild   R    ] sys-libs/libcap-ng-0.7.7::gentoo  USE="-python -static-libs" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] sys-apps/kmod-20::gentoo  USE="tools zlib -debug -doc -lzma -python -static-libs" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild  rR    ] dev-libs/libixion-0.9.0:0/0.10::gentoo  USE="-static-libs" PYTHON_TARGETS="python2_7" 0 KiB
[ebuild     U  ] dev-java/javatoolkit-0.3.0-r9::gentoo [0.3.0-r6::gentoo] PYTHON_TARGETS="python2_7%*" 0 KiB
[ebuild  NS    ] dev-lang/python-3.4.1:3.4::gentoo [2.7.9-r1:2.7::gentoo, 3.3.5-r1:3.3::gentoo] USE="gdbm ncurses readline sqlite ssl threads xml -build -examples -hardened -ipv6 -tk -wininst" 13 806 KiB
[ebuild   R    ] dev-libs/libxml2-2.9.2-r1:2::gentoo  USE="icu python readline -debug -examples -ipv6 -lzma -static-libs {-test}" ABI_X86="32 (64) (-x32)" PYTHON_TARGETS="python2_7 python3_4* -python3_3*" 0 KiB
[ebuild   R    ] sys-apps/portage-2.2.20.1::gentoo  USE="(ipc) -build -doc -epydoc (-selinux) -xattr" LINGUAS="ru" PYTHON_TARGETS="python2_7 python3_4* (-pypy) -python3_3*" 0 KiB
…
Comment 3 Mike Gilbert gentoo-dev 2015-08-19 20:25:35 UTC
All of the packages being merged before dev-lang/python:3.4 have *optional* python support, and you have the python USE flag disabled. Therefore, the ebuilds do not actually depend on any version of python.

The rebuilds are being triggered by --newuse, which rebuilds for any USE flag change.

Ideally, portage would ignore the python_targets use flags in such a situation, but it is probably not worth the effort to implement that in any sane manner.

Marking WONTFIX, but copying the portage devs; if they want to take this on as a feature request, they are welcome to take this bug and reopen it.
Comment 4 Zac Medico gentoo-dev 2015-08-19 21:29:55 UTC
(In reply to Mike Gilbert from comment #3)
> Ideally, portage would ignore the python_targets use flags in such a
> situation, but it is probably not worth the effort to implement that in any
> sane manner.
> 
> Marking WONTFIX, but copying the portage devs; if they want to take this on
> as a feature request, they are welcome to take this bug and reopen it.

If the relevant ebuilds used REQUIRED_USE as suggested in bug 532014, then it wouldn't be an issue. However, the idea was rejected since that would require people to use package.use to disable the python_targets_* flags for those packages when USE=python is not enabled. Users can still do that, but the ebuilds don't have REQUIRED_USE to enforce it.

So, I'd suggest that users use package.use to disable the python_targets_* flags for those packages if the rebuilds matter to them.