Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 539414

Summary: dev-lang/perl:0/5.20 - hundreds of packages depend on version dev-lang/perl:0/5.18
Product: Portage Development Reporter: Paul Osmialowski <newchief>
Component: Core - Interface (emerge)Assignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: cdbroad, david.w.noon, esigra, gentoo, pacho, Sergiy.Borodych, tom, turtle
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 300071    
Attachments: emerge -puNDv world --backtrack=400
My blockers

Description Paul Osmialowski 2015-02-09 06:57:49 UTC
Cannot upgrade perl to version 0/5.20::gentoo since hundreds of packages depend on version 0/5.18::gentoo

Reproducible: Always
Comment 1 Paul Osmialowski 2015-02-09 06:58:12 UTC
Portage 2.2.14 (python 2.7.9-final-0, default/linux/amd64/13.0/desktop/kde/systemd, gcc-4.7.3, glibc-2.19-r1, 3.17.8-gentoo-r1 x86_64)
=================================================================
System uname: Linux-3.17.8-gentoo-r1-x86_64-Intel-R-_Xeon-R-_CPU_E5440_@_2.83GHz-with-gentoo-2.2
KiB Mem:     8156588 total,   1421680 free
KiB Swap:     524284 total,    524228 free
Timestamp of tree: Mon, 09 Feb 2015 04:00:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.9-r1, 3.3.5-r1, 3.4.1
dev-util/cmake:           2.8.12.2-r1
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.13.9
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.10.3, 1.11.6-r1, 1.12.6, 1.13.4
sys-devel/binutils:       2.24-r3
sys-devel/gcc:            4.6.3, 4.7.3-r1, 4.8.4
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.4
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1
Repositories: gentoo
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=core2 -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /opt/openjms/config /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.0/conf /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/hsqldb /var/spool/torque"
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.5/ext-active/ /etc/php/cgi-php5.5/ext-active/ /etc/php/cli-php5.5/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=core2 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs 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="http://distfiles.gentoo.org"
LANG="pl_PL.utf8"
LC_ALL="pl_PL.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j1"
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"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
USE="16bit-indices 24bpp 256-color 32bit 64bit 7zip R X Xaw3d a52 aac aacplus aacs aalib abiword accessibility acl acoustid acpi ada additions addressbook adns adobe-cff adplug ads aesicm afp agg akode akonadi alias alisp allegro alltargets alsa alstream amd64 amr amrenc amrnb amrwb analitza angelscript animgif ant antlr ao apbs aplaymidi apng applet archive armadillo arpack artworkextra asdf asf asn aspell ass assistant asyncns athena attica attrib audacious audio audiofile audit auth auto-hinter autoipd automount autoreplace autotrace aux_xml avahi avalon-framework avalon-logkit avantgo avcodec avformat awt background badval bash-completion bazaar bcel bcmath bdf beautifulsoup3 berkdb bidi bitmap bittorrent bl blas blaster blender-game blink blksha1 bluetooth bluray boehm-gc bonjour bonobo bookmarks boost branding brass bs2b bsf btrfs bundled-libs bzip2 cacert cache cairo calendar canberra canlock canusb canvas caps caps-ng catalogs cblas cdda cddax cdf cdio cdparanoia cdr cdrtools cegui celt cg cgraph channels chappa chardet charmap chdir chert chm ciao cilk city clamd clamdtop clang cli client clipboard clisp closuresignals clucene cluster clutter cmake cmsis-dap collab colord colorio combination-explosion-check common-lisp commonslogging commonsnet community compat connectionstatus contactnotes context contrast contrib convert-mozilla-cookies corefonts coverart cpufreq cpufreq_bench cracklib cramfs crash-reporter crashreporter creds cron crypt cryptsetup crywrap cscope csharp css ctype ctypes-python cuda cue cups curl cursors cvs cxx cycles d data dbase dbi dbus dc1394 ddate debugger declarative default-font dell deprecated designer designer-plugin desktopglobe detex developer development devfs-compat devhelp device-mapper devil dhclient dht dia digitalradio dirac discard-path discouraged display-manager djbfft djvu dmi dnd docbook doctool dos dot double-precision down-root dpi dri dri3 drmaa drop-root dsdp dselect dssi dtmf dts dumb dump dv dvb dvbpsi dvd dvdnav dvdr dvi dvi2tty dvipdfm dynamic e2fsprogs eap-tls ebook ecap eclipse edd edit editor efiemu egl eigen elbeem elf elisp emacs embed_data_files embedded emboss emf emoticons-manager emovix enca enchant encode enscript eolconv epspdf epub equalizer escreen eselect ethernet etiquette excel exceptions exif expat exporter extensions external-fuse extra extra-cardsets extra-tools extrafilters extramodules extras faac faad facedetect fading-colors fam fame farstream fasttree fat fax fdformat fdk fdt festival ffamber ffmpeg fftw filecaps fileinfo filter filters findbugs finger fingerprint firefox firefox3 firmware firmware-loader fits flac flash flickr floppy fltk fluidsynth focused-urgency font-styles fontconfig fontforge foomatic foomaticdb fortran fortran2003 fox fping fpx frei0r fribidi ftd2xx ftdi ftp fts3 fuse futures g15 g3dvl gadu gallium game-engine games gcdmaster gcode gconf gcrypt gd gda gdal gdb gdbm gdu gecko gedit geoip geoloc geolocation geonames geos gfile gflags ggi gif gimp ginac git gjdoc glade glep glew glib glibc-omitfp glitz gloox glpk glut gmath gme gml gmp gmplayer gnet gnokii gnome gnome-keyring gnome-online-accounts gnome-shell gnomecanvas gnomecd gnumeric gnuplot gnutls gold google gopher gpc gpg gphoto2 gpm gps gptfdisk gpu grammar graphics graphicsmagick graphite graphviz groupwise grp grub gs gsettings gsf gsl gsm gsmloc gssapi gstreamer gtk gtk2 gtk3 gtkhtml gtkstyle gudev gui guile gunit gzip-el h224 h281 h323 hal handbook hardcoded-tables harfbuzz hash hddtemp hdf hdf5 health help heterogeneous highlight hipe hires-icons history hlapi hog hostip hotpixels howl-compat hpcups html htmlreport http humanities hunspell hwdb i18n iax ical icecast icons iconv icoutils icu id3 id3tag idn iec61883 ieee1394 ifp ilbc image image-cache imagemagick imaging imlib infinality infiniband inherit-graph inifile inkjar inmemory inotify instancest internal-fltk intl introspection io-restrictions iodbc iostats ipc iplayer ipod iproute2 iptables ipv6 ipython irc irrlicht isag iscsi iso iso14755 it3tag itk jabber jack jadetex jai java java5 java6 java7 javacomm javamail javascript jbig jdepend jemalloc jit jmf jms joystick jpeg jpeg2k jsbsim jsch json judy kate kde kdepim kdeprefix kdm kdrive kernel kexiv2 keymap keyutils kig-scripting kipi kmod kontact kpathsea kscreen ktp l10n ladspa lame lapack largefile largepages lash lasi lastfm lastfmradio latency_timing latex latex3 lcdfilter lcms ldap ldap-sasl ldapdb ldb ldos leim lensfun less levels libadns libass libburn libcaca libcanberra libclamav libdsk libev libevent libextractor libffi libgda libkms libmms libmount libmpeg2 libnotify libopts libproxy libs libsamplerate libsecret libsoxr libssh2 libssp libsysfs libtar libtiger libv4l libv4l2 libvisual libwww libxml2 libyaml lid lightning linuxkeys lirc listen-queue live llvm llvm-shared-libs lm_sensors log4j logitech-mouse logrotate lpsol lqr lua lua-cairo lua-imlib luatex lucene lvm1 lxde lyx lz4 lzma lzo m17n-lib m4lib-png mad magic mail manual maps masquerade math mathml matplotlib matroska mbim mbox mclib mcve md5sum mdns-bundled mdnsresponder-compat mediawiki memmap mercurial metadata-analysis-api metalink metapost metis metric mew mhash midi mikmod mime minizip mixer mjpeg mmap mms mms-agent mmx mng mobi moc mod modemmanager modplug modules mongodb mono moonlight motif motif22-compatibility mount mouse mousewheel moviepack moviesounds mozdevelop mozdom mozilla mozsha1 mp2 mp3 mp3tunes mp4 mpeg mpg123 mpi mplayer mpx msn mta mtp mudflap mule multicall multilib multimedia multislot multitarget mumble musepack music musicbrainz mvl mzscheme natspec nautilus ncat ncurses ndiff ndof neXt nelma net netapi netbeans netcdf netlink netpbm nettle network networking networkmanager new-clx new-login newnet nextaw nfsdcld nfsidmap nfsv3 nfsv4 nfsv41 nio-buffers nis njb nls nntp no-old-linux nodrm nogyroscopic nokia nominatim normalize nowlistening nping npp nptl nscd nsplugin nss nss-pem ntfs ntfsprogs ntlm ntlm_unsupported_patch ntp numpy nut nuv nvidia nvtt nyx obex objc objc++ objc-gc ocaml ocamlopt ocr ocs2005-message-hack octave odbc ode odt-schema offensive offscreen ofx ogdi ogg ogg123 ogm ois okteta okular omega omxil oom opal openal opencl openconnect opencore-amr opencv openexr opengl openimageio openldap openmedia openmp opennl openpty openssl openxml opus orc oro oscar osdmenu osgapps osmesa oss otp otr ots overlays pac pager pam pango panorama pari parport password pasteafter pbs pcap pci pcntl pcre pcsc-lite pda pdf pdfannotextractor pdo pep8 perl perl-geoipupdate pg-intdatetime pgf pgm phar phonon php physfs pic pie pin-upstream-blobs pipe pixbuf pixmaps pkinit places plasma player playlist playtools plot plotutils plugin-checksum plugin-doat plugin-fishlim plugin-sysinfo plugins pm-utils pnat png pnm policykit polkit poppler-data portaudio portmon posix postgres postproc postscript powerkadu ppds ppp pptx prelink presto preview-latex prison private-headers profiler proj projectm proxy ps pstricks pth publishers pulseaudio pvr pyflakes pyglet pygments pylint python qalculate qemu qhull qimageblitz qos qpak qrcode qrupdate qscintilla qt qt-bundled qt-faststart qt-static qt3 qt3support qt4 qthelp quicktime quotation quotes quvi qwt racket radio raptor rar raw rcs rdesktop rdesktop-vrdp rdp readline real recursion-limit redeyes redland reencrypt reflection regex regexp remote remoteosd rendering reports resid resolver reviewboard rle romio rope rpm rrdtool rss rtc rtf rtmp rtsp ruby run run-exes rups safe samba sametime sanitize sasl sbc scale0tilt scanner schroedinger science scipy screen script scripting scripts scripttools scsi sctp sdk sdl sdl-image sdl-sound sdlgfx seccomp secondary-wheel seed segger semantic-desktop sensord serial servletapi session sftp sge shaders shapefile shared-glapi sharedclient sharedext sharedmem shine shm shmvideo short-touchpad-timeout shout sid sift sigsegv simplexml sip sipe sipim skins skype slang smbclient smbtav2 smi smime smp smpeg sms sna snappy sndfile snmp soap socialweb sockets solver soprano sound soundex sounds soundtouch soup sourceview sox sparse spatialite speech speex spell sphinx spice spidermonkey spl splash sql sqlite sqlite3 srtp sse sse2 sse2check sse3 sse4_1 ssh-agent ssl ssse3 startup-notification static-analyzer static-ppds statistics stats stl stlink stream stun subject-rewrite subtitles subunit subversion suhosin supernodal superserver svg svm swat swig switcher swscale syslog system-cairo system-icu system-jpeg system-libvpx system-libyaml system-mpmath systemd systemd-units systemtap sysvipc szip t1lib taglib tbb tcl tcpd tdb tdbtest teamarena telepathy teletext telnet template_haskell test-framework testutil tevent tex4ht texi2html texmacs texteffect tga themedesigner themes theora thesaurus thetvdb thin thin-splines threads threadsafe thumbnail thumbnails tidy tiff tilepath timezone timidity tinfo tk tls tokenizer tokyocabinet toolame toolbar toolkit-scroll-bars tools toporouter totem track-src-odirect traits translator tremor truetype tta tty-helpers twisted twolame type3 udev udis86 udisks udisks2 umfpack undi unicode units_cur unlock-notify unwind update-alternatives upower usb usbredir utempter utils uudeview uuid uvm v4l v4l2 vaapi vala valgrind vamp vapigen vboxwebsrv vcd vcdinfo vcdx vdpau vdr verbose-io verify-file versaloon verse vhook vhost-net video videoslideshow views vim-pager vim-with-x vimeo virtuoso visualization vlm vmd vmware vmware-tools vnc voice vorbis vpx vst wad wallpapers watchdog wav wavpack wcwidth wddx weather weather-metar weather-xoap web webdav webdav-neon webdav-serf webgl webkit webkit2 webm webp webrtc-aec websockets widescreen wifi win32codecs winbind windeco wineappdb wininst winpopup wma wma-fixed wmf wordperfect wrappers wxwidgets wxwindows x264 x265 x86-64 xa xanim xbase xcap xcb xchatdccserver xcomposite xdm-auth xemacs xembed xerces-c xetex xext xface xforms xforward xfs xft xgetdefault xindy xine xinerama xinetd xkb xlib-xcb xls xml xmldoclet xmlpatterns xmlreader xmlrpc xmlwriter xmp xmpp xnest xorg xorgmodule xosd xpdf-headers xpm xrandr xrender xscreensaver xsl xslt xterm xulrunner xv xvfb xvid xvmc xz yahoo yahoo-geo yasim yaz youtube yp yv12 zeroconf zip zlib zsh-completion zvbi" ABI_X86="64" ALSA_CARDS="emu10k1 emu10k1x" 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="canon spca50x template ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="x86-64 mmx sse sse2 sse3 ssse3 sse4_1" CURL_SSL="openssl" ELIBC="glibc" 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" GRUB_PLATFORMS="efi-64 emu pc" INPUT_DEVICES="evdev keyboard mouse joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" NETBEANS_MODULES="apisupport java javafx profiler websvccommon cnd dlight enterprise ergonomics groovy javacard mobility php webcommon" OFFICE_IMPLEMENTATION="openoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" QEMU_SOFTMMU_TARGETS="arm aarch64 i386" QEMU_USER_TARGETS="arm aarch64 i386" RUBY_TARGETS="ruby19 ruby20" USERLAND="GNU" VIDEO_CARDS="dummy v4l nv nvidia nouveau vesa" 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, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON
Comment 2 Paul Osmialowski 2015-02-09 06:59:08 UTC
Created attachment 395950 [details]
emerge -puNDv world --backtrack=400
Comment 3 Paul Osmialowski 2015-02-09 06:59:54 UTC
See attached report for detailed description of the problem.
Comment 4 Andreas K. Hüttel gentoo-dev 2015-02-09 11:57:37 UTC
Please upgrade your sys-apps/portage to 2.2.15 (NOT 2.2.16) and try again.

You'll need to add to /etc/portage/package.keywords or /etc/portage/package.accept_keywords

=sys-apps/portage-2.2.15

and then run

emerge -u1a portage
Comment 5 Andreas K. Hüttel gentoo-dev 2015-02-09 12:01:08 UTC
Actually. BEFORE you update portage, try something else:

remove all lines starting with perl-core/ from /var/lib/portage/world (with a text editor)

and then try updating your system again



(In reply to Andreas K. Hüttel from comment #4)
> Please upgrade your sys-apps/portage to 2.2.15 (NOT 2.2.16) and try again.
> 
> You'll need to add to /etc/portage/package.keywords or
> /etc/portage/package.accept_keywords
> 
> =sys-apps/portage-2.2.15
> 
> and then run
> 
> emerge -u1a portage
Comment 6 Kent Fredric (IRC: kent\n) gentoo-dev 2015-02-09 12:59:10 UTC
curl https://539414.bugs.gentoo.org/attachment.cgi?id=395950 | grep "\[ebuild" | grep perl-core

> [ebuild     U  ] perl-core/libnet-1.270.0 [1.220.0-r1] USE="sasl" 68 KiB
> [ebuild     U  ] perl-core/Module-Build-0.420.500 [0.400.300-r1] USE="{-test}" 302 KiB

These two modules are probably what are in your worldfile.

Otherwise they would be resolved by portage as "uninstall" not "upgrade"
Comment 7 William Seager 2015-02-09 13:22:02 UTC
I am suffering from the multi-packages depending on 5.18

I have *no* packages starting with "perl-core" in my
world file

Installing portage 2.2.15 did *not* help

(in any case, I am disturbed by the advice to install
masked portage to install putatively stable perl)
Comment 8 Andreas K. Hüttel gentoo-dev 2015-02-09 13:46:11 UTC
(In reply to William Seager from comment #7)
>
> I have *no* packages starting with "perl-core" in my
> world file
> 
> Installing portage 2.2.15 did *not* help

What's the output of this command?

for name in $(qlist -IC 'perl-core/*') ; do equery depends $name ; done
Comment 9 Andreas K. Hüttel gentoo-dev 2015-02-09 13:49:59 UTC
(In reply to William Seager from comment #7)
> I am suffering from the multi-packages depending on 5.18
> 

We can't help you unless you provide full portage output and emerge --info
[Sorry I didnt realize at first that you are not the original bug submitter.]
Comment 10 William Seager 2015-02-09 14:37:24 UTC
Here  is the output of the command requested:

for name in $(qlist -IC 'perl-core/*') ; do equery depends $name ; done
 * These packages depend on perl-core/Archive-Tar:
virtual/perl-Archive-Tar-1.900.0 (~perl-core/Archive-Tar-1.900.0)
 * These packages depend on perl-core/Compress-Raw-Bzip2:
virtual/perl-Compress-Raw-Bzip2-2.60.0-r2 (~perl-core/Compress-Raw-Bzip2-2.60.0)
 * These packages depend on perl-core/Compress-Raw-Zlib:
virtual/perl-Compress-Raw-Zlib-2.60.0-r2 (~perl-core/Compress-Raw-Zlib-2.60.0)
 * These packages depend on perl-core/CPAN-Meta:
virtual/perl-CPAN-Meta-2.132.510 (~perl-core/CPAN-Meta-2.132.510)
 * These packages depend on perl-core/CPAN-Meta-Requirements:
virtual/perl-CPAN-Meta-Requirements-2.125.0-r1 (~perl-core/CPAN-Meta-Requirements-2.125.0)
 * These packages depend on perl-core/CPAN-Meta-YAML:
virtual/perl-CPAN-Meta-YAML-0.8.0-r2 (~perl-core/CPAN-Meta-YAML-0.8.0)
 * These packages depend on perl-core/Data-Dumper:
virtual/perl-Data-Dumper-2.154.0 (~perl-core/Data-Dumper-2.154.0)
 * These packages depend on perl-core/Digest-MD5:
virtual/perl-Digest-MD5-2.520.0-r2 (~perl-core/Digest-MD5-2.520.0)
 * These packages depend on perl-core/Digest-SHA:
virtual/perl-Digest-SHA-5.820.0 (~perl-core/Digest-SHA-5.820.0)
 * These packages depend on perl-core/ExtUtils-CBuilder:
virtual/perl-ExtUtils-CBuilder-0.280.205 (~perl-core/ExtUtils-CBuilder-0.280.205)
 * These packages depend on perl-core/ExtUtils-Manifest:
virtual/perl-ExtUtils-Manifest-1.630.0-r1 (~perl-core/ExtUtils-Manifest-1.630.0)
 * These packages depend on perl-core/ExtUtils-ParseXS:
virtual/perl-ExtUtils-ParseXS-3.180.0 (~perl-core/ExtUtils-ParseXS-3.180.0)
 * These packages depend on perl-core/File-Spec:
virtual/perl-File-Spec-3.400.0-r2 (~perl-core/File-Spec-3.400.0)
 * These packages depend on perl-core/File-Temp:
virtual/perl-File-Temp-0.230.0-r1 (~perl-core/File-Temp-0.230.0)
 * These packages depend on perl-core/IO-Compress:
virtual/perl-IO-Compress-2.60.0-r1 (~perl-core/IO-Compress-2.60.0)
 * These packages depend on perl-core/IPC-Cmd:
virtual/perl-IPC-Cmd-0.840.0 (~perl-core/IPC-Cmd-0.840.0)
 * These packages depend on perl-core/JSON-PP:
virtual/perl-JSON-PP-2.272.20-r1 (~perl-core/JSON-PP-2.272.20)
 * These packages depend on perl-core/Module-Build:
virtual/perl-Module-Build-0.400.300-r1 (~perl-core/Module-Build-0.400.300)
 * These packages depend on perl-core/Module-CoreList:
virtual/perl-Module-CoreList-2.840.0 (~perl-core/Module-CoreList-2.840.0)
 * These packages depend on perl-core/Module-Load:
virtual/perl-Module-Load-0.240.0 (~perl-core/Module-Load-0.240.0)
 * These packages depend on perl-core/Module-Load-Conditional:
virtual/perl-Module-Load-Conditional-0.580.0 (~perl-core/Module-Load-Conditional-0.580.0)
 * These packages depend on perl-core/Module-Metadata:
virtual/perl-Module-Metadata-1.0.11 (~perl-core/Module-Metadata-1.0.11)
 * These packages depend on perl-core/Params-Check:
virtual/perl-Params-Check-0.380.0 (~perl-core/Params-Check-0.380.0)
 * These packages depend on perl-core/Parse-CPAN-Meta:
virtual/perl-Parse-CPAN-Meta-1.440.900 (~perl-core/Parse-CPAN-Meta-1.440.900)
 * These packages depend on perl-core/Scalar-List-Utils:
virtual/perl-Scalar-List-Utils-1.270.0-r2 (~perl-core/Scalar-List-Utils-1.270.0)
 * These packages depend on perl-core/Sys-Syslog:
virtual/perl-Sys-Syslog-0.320.0-r2 (~perl-core/Sys-Syslog-0.320.0)
 * These packages depend on perl-core/Term-ANSIColor:
virtual/perl-Term-ANSIColor-4.20.0-r2 (~perl-core/Term-ANSIColor-4.20.0)
 * These packages depend on perl-core/Test-Harness:
virtual/perl-Test-Harness-3.260.0 (~perl-core/Test-Harness-3.260.0)
 * These packages depend on perl-core/Time-Local:
virtual/perl-Time-Local-1.230.0-r1 (~perl-core/Time-Local-1.230.0)
 * These packages depend on perl-core/version:
virtual/perl-version-0.990.800-r1 (~perl-core/version-0.990.800)
Comment 11 Zac Medico gentoo-dev 2015-02-09 19:33:34 UTC
(In reply to Paul Osmialowski from comment #0)
> Cannot upgrade perl to version 0/5.20::gentoo since hundreds of packages
> depend on version 0/5.18::gentoo

It's normal for portage to complain about dependencies like dev-lang/perl:0/5.18= when you have unsolved blockers. In cases like this, the dev-lang/perl:0/5.18= atoms are not necessarily a problem, since they will be solved by a rebuild. So, you need to focus on making sure that all of the blockers are solvable. For example, you might uninstall the older perl modules that are blocked by newer modules, to see if that leads to a solution.

Also, you might try with portage-2.2.16, since the changes from bug 531656 might help solve these perl dependencies. Note that portage-2.2.16 has a known regression (bug 539478), but it's only triggered when FEATURES=metadata-transfer is enabled.
Comment 12 Zac Medico gentoo-dev 2015-02-09 22:53:33 UTC
With portage-2.2.16, after manually solving unrelated slot conflicts and blockers, the perl update calculation succeeds (triggers 91 rebuilds for me).
Comment 13 William Seager 2015-02-10 03:23:45 UTC
in my case, all the problems stemmed from a single
package: logitechmediaserver-bin

Once I removed that an ran perl-cleaner --all 5.20
installed without problem
Comment 14 Paul Osmialowski 2015-02-10 04:05:08 UTC
In my case it resulted in removal of 43 packages then rebuild of 343 packages after perl upgrade (actually, it's ongoing process).
Comment 15 Tom 2015-02-10 04:56:53 UTC
Created attachment 396044 [details]
My blockers

I'm stuck also, I attached tjr-perl-output.txt
Comment 16 Zac Medico gentoo-dev 2015-02-10 06:13:22 UTC
(In reply to Tom from comment #15)
> Created attachment 396044 [details]
> My blockers

Your emerge output shows lots of perl stuff being pulled in by @selected, which is not normal, and can trigger blockers. You can remove all the perl stuff from @selected like this:

   grep -v perl /var/lib/portage/world > /var/lib/portage/world.new
   mv /var/lib/portage/world /var/lib/portage/world.backup
   mv /var/lib/portage/world.new /var/lib/portage/world
Comment 17 Sergiy Borodych 2015-02-13 07:33:35 UTC
My experience.
My blockers was introduced mostly by perl-gcpan packages, so I just un-install them before upgrade and install again after.
Comment 18 Paul Osmialowski 2015-02-13 18:00:50 UTC
That's what I finally did. But something inside me yelds it is not normal way of doing updates in mature Linux distro...
Comment 19 Zac Medico gentoo-dev 2015-02-13 18:07:10 UTC
(In reply to Paul Osmialowski from comment #18)
> That's what I finally did. But something inside me yelds it is not normal
> way of doing updates in mature Linux distro...

Yeah, we need to make it as easy as possible to resolve these kinds of conflicts.
Comment 20 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2015-02-13 19:00:54 UTC
(In reply to Paul Osmialowski from comment #18)
> That's what I finally did. But something inside me yelds it is not normal
> way of doing updates in mature Linux distro...

Mature Linux distro doesn't let you hack stuff with perl-gcpan. If you use hackish tools, you are on your own.
Comment 21 Pacho Ramos gentoo-dev 2015-02-14 09:38:09 UTC
Wouldn't be possible to simply change the emerge output a bit to ensure:
[blocks B      ] <perl-core/AutoLoader-5.740.0 ("<perl-core/AutoLoader-5.740.0" is blocking virtual/perl-AutoLoader-5.740.0)
[blocks B      ] <perl-core/parent-0.228 ("<perl-core/parent-0.228" is blocking virtual/perl-parent-0.228-r1)
[blocks B      ] <perl-core/Time-HiRes-1.972.600 ("<perl-core/Time-HiRes-1.972.600" is blocking virtual/perl-Time-HiRes-1.972.600-r1)
[blocks B      ] <perl-core/MIME-Base64-3.140.0 ("<perl-core/MIME-Base64-3.140.0" is blocking virtual/perl-MIME-Base64-3.140.0-r1)
[blocks B      ] <perl-core/Test-Simple-1.1.2 ("<perl-core/Test-Simple-1.1.2" is blocking virtual/perl-Test-Simple-1.1.2)

are always shown at the end of the output? 

That way administrators will tend to resolve that blockers manually and, after that, re-run emerge (and it should succeed). 

I remember to try to resolve the blockers before because of the "experience"... but it is not obvious when the blockers output is lost because the output relates with slots conflicts are shown at the end :)
Comment 22 Zac Medico gentoo-dev 2015-02-14 15:58:27 UTC
(In reply to Pacho Ramos from comment #21)
> Wouldn't be possible to simply change the emerge output a bit to ensure:
> [blocks B      ] <perl-core/AutoLoader-5.740.0
> ("<perl-core/AutoLoader-5.740.0" is blocking virtual/perl-AutoLoader-5.740.0)
> [blocks B      ] <perl-core/parent-0.228 ("<perl-core/parent-0.228" is
> blocking virtual/perl-parent-0.228-r1)
> [blocks B      ] <perl-core/Time-HiRes-1.972.600
> ("<perl-core/Time-HiRes-1.972.600" is blocking
> virtual/perl-Time-HiRes-1.972.600-r1)
> [blocks B      ] <perl-core/MIME-Base64-3.140.0
> ("<perl-core/MIME-Base64-3.140.0" is blocking
> virtual/perl-MIME-Base64-3.140.0-r1)
> [blocks B      ] <perl-core/Test-Simple-1.1.2
> ("<perl-core/Test-Simple-1.1.2" is blocking virtual/perl-Test-Simple-1.1.2)
> 
> are always shown at the end of the output? 
> 
> That way administrators will tend to resolve that blockers manually and,
> after that, re-run emerge (and it should succeed). 
> 
> I remember to try to resolve the blockers before because of the
> "experience"... but it is not obvious when the blockers output is lost
> because the output relates with slots conflicts are shown at the end :)

Shouldn't the blockers solve automatically due to upgrades and automatic uninstalls? Usually I focus on fixing the slot conflicts first, and after I've done that, most of the blockers solve automatically. Sometimes the blockers don't solve automatically simply because you need to remove an obsolete package from @selected (see comment #16).
Comment 23 Pacho Ramos gentoo-dev 2015-02-14 16:53:51 UTC
I am talking for the case of blockers that cannot be resolved automatically (usually because it involves removing packages present in world file). In that case the messages pointing to the blockers should be shown at the end to let people to start by fixing them manually
Comment 24 Zac Medico gentoo-dev 2015-02-14 17:57:29 UTC
The blocker display actually has two parts. The first part is currently displayed at the end of the merge list. The second part, which shows the reverse dependencies of packages involved in blocker conflicts, is displayed at the end of the output.

If we move the blocker display from the end of the merge list to the end of the output, then I'm afraid that it will put too much emphasis on blockers in cases where slot conflicts are the only problem that really needs attention. Users really need to look at all of the output before they decide which conflicts need attention.
Comment 25 Pacho Ramos gentoo-dev 2015-02-15 09:30:25 UTC
Well... as hardblockers will always need to be manually handled, I guess it will be useful to put more emphasis on them as they will need attention sooner or later (and better to fix them as soon as possible to let portage dep resolved to do a better job next time the user re-runs emerge, avoiding in that way to get subslot errors that can be solved automatically by portage once the hardblockers are solved)
Comment 26 Zac Medico gentoo-dev 2015-02-16 18:45:29 UTC
If we do detach the blockers from the merge list, I think it would make sense to display them just before the reverse dependencies of the packages involved in the blocker conflicts are displayed, since those reverse dependencies only make sense within the context of the blockers.

Anyway, I think any such formatting adjustments to the blocker display are best handled as a separate bug report, since it seems only tangentially related to perl upgrade issues.
Comment 27 Zac Medico gentoo-dev 2015-02-16 18:51:34 UTC
In following commit includes a fix in depgraph _slot_operator_update_probe method that should fix emerge to trigger rebuilds in some cases where it failed before:

https://github.com/gentoo/portage/commit/11467fc640995e3dc8897c82bbc7130d5bf27d05

The relevant change involves the atom_not_selected variable, which is used to ignore atoms that have not been selected during evaluation of || dependencies. Since perl dependencies often involve || dependencies, this fix may help emerge to trigger rebuilds for perl upgrades.
Comment 28 Johannes Buchner 2015-02-17 12:50:40 UTC
This bug is problematic because some packages suddenly require >=5.20, such as virtual/perl-Time-Local .

  (dev-lang/perl-5.20.1-r4:0/5.20::gentoo, ebuild scheduled for merge) pulled in by
    =dev-lang/perl-5.20* required by (virtual/perl-CPAN-Meta-YAML-0.12.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                
    (and 19 more with the same problem)
 
  (dev-lang/perl-5.18.2-r2:0/5.18::gentoo, installed) pulled in by
    =dev-lang/perl-5.18* required by (virtual/perl-Pod-Parser-1.600.0:0/0::gentoo, installed)
    ^              ^^^^^                                                                                                                            
    dev-lang/perl:0/5.18=[-build(-)] required by (dev-perl/Crypt-RC4-2.020.0-r1:0/0::gentoo, installed)
                 ^^^^^^^^                                                                                                                  

I am trying perl-cleaner --all now.
Comment 29 Zac Medico gentoo-dev 2015-02-17 19:00:10 UTC
(In reply to Johannes Buchner from comment #28)
> This bug is problematic because some packages suddenly require >=5.20, such
> as virtual/perl-Time-Local .

If you do _not_ want the >=5.20 upgrade, then you should be able to simply mask the package versions that require it.

>   (dev-lang/perl-5.18.2-r2:0/5.18::gentoo, installed) pulled in by
>     =dev-lang/perl-5.18* required by
> (virtual/perl-Pod-Parser-1.600.0:0/0::gentoo, installed)
>     ^              ^^^^^                                                    

If you _do_ want the >=5.20 upgrade, then you need to find why virtual/perl-Pod-Parser-1.600.0 is pulled into your dependency graph, and eliminate it somehow.

>     dev-lang/perl:0/5.18=[-build(-)] required by
> (dev-perl/Crypt-RC4-2.020.0-r1:0/0::gentoo, installed)
>                  ^^^^^^^^                                                   

Dependencies like dev-lang/perl:0/5.18= will solve automatically via a rebuild, but sometimes emerge fails to trigger the rebuild automatically (portage-9999 has a relevant fix as noted in comment #27).

> I am trying perl-cleaner --all now.

If emerge fails to trigger the rebuilds automatically, perl-cleaner might do it for you, or you can make emerge do the rebuilds by specifying the packages that need to be rebuilt on the emerge command line (in that case you should use --oneshot in order to avoid polluting /var/lib/portage/world).
Comment 30 Zac Medico gentoo-dev 2015-02-17 19:29:37 UTC
(In reply to Zac Medico from comment #29)
> >   (dev-lang/perl-5.18.2-r2:0/5.18::gentoo, installed) pulled in by
> >     =dev-lang/perl-5.18* required by
> > (virtual/perl-Pod-Parser-1.600.0:0/0::gentoo, installed)
> >     ^              ^^^^^                                                    
> 
> If you _do_ want the >=5.20 upgrade, then you need to find why
> virtual/perl-Pod-Parser-1.600.0 is pulled into your dependency graph, and
> eliminate it somehow.

Actually, the whole dependency looks like this:

	|| ( =dev-lang/perl-5.18* ~perl-core/Pod-Parser-1.600.0 )

So, you need to make sure that ~perl-core/Pod-Parser-1.600.0 is available (and not masked) if you _do_ want the >=5.20 upgrade.