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

Bug 367933

Summary: sys-apps/portage-2.2: odd "library needed" detection logic (WAS:chromium-11.0.696.68 is a dependency for a lot of packages requiring ffmpeg libraries)
Product: Portage Development Reporter: Andrea Franceschini <andrea.franceschini>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: jer
Priority: Normal    
Version: 2.2   
Hardware: x86   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 240323    

Description Andrea Franceschini 2011-05-18 16:42:53 UTC
As already reported at https://forums.gentoo.org/viewtopic-p-6689965.html I'm having this weird behaviour.

# emerge -pv --depclean chromium

Calculating dependencies... done!
>>> Checking for lib consumers...
>>> Assigning files to packages...
 * In order to avoid breakage of link level dependencies, one or more
 * packages will not be removed. This can be solved by rebuilding the
 * packages that pulled them in.
 * 
 *   www-client/chromium-11.0.696.68 pulled in by:
 *     app-cdr/k3b-2.0.2-r1 needs libavcodec.so.52, libavformat.so.52
 *     media-gfx/blender-2.49b-r2 needs libavcodec.so.52, libavformat.so.52, libavutil.so.50
 *     media-libs/gegl-0.1.6 needs libavcodec.so.52, libavformat.so.52
 *     media-libs/libquicktime-1.2.2 needs libavcodec.so.52
 *     media-libs/opencv-2.2.0 needs libavcodec.so.52, libavformat.so.52, libavutil.so.50
 *     media-libs/xine-lib-1.1.19 needs libavcodec.so.52, libavutil.so.50
 *     media-video/ffmpeg-0.6.90_rc0-r2 needs libavcodec.so.52, libavformat.so.52, libavutil.so.50
 *     media-video/transcode-1.1.5-r2 needs libavcodec.so.52, libavformat.so.52
 *     media-video/vlc-1.1.9 needs libavcodec.so.52, libavformat.so.52, libavutil.so.50
 * 
>>> Adding lib providers to graph...                                                                                                        /
Calculating dependencies... done!
  www-client/chromium-11.0.696.68 pulled in by:
    app-cdr/k3b-2.0.2-r1
    media-gfx/blender-2.49b-r2
    media-libs/gegl-0.1.6
    media-libs/libquicktime-1.2.2
    media-libs/opencv-2.2.0
    media-libs/xine-lib-1.1.19
    media-video/ffmpeg-0.6.90_rc0-r2
    media-video/transcode-1.1.5-r2
    media-video/vlc-1.1.9

>>> No packages selected for removal by depclean
Packages installed:   1035
Packages in world:    148
Packages in system:   51
Required packages:    1035
Number to remove:     0


Reproducible: Always




# emerge --info
Portage 2.2.0_alpha33 (default/linux/x86/10.0/desktop/kde, gcc-4.4.5, glibc-2.11.3-r0, 2.6.38.2-zen i686)
=================================================================
System uname: Linux-2.6.38.2-zen-i686-Intel-R-_Pentium-R-_M_processor_1.73GHz-with-gentoo-2.0.2
Timestamp of tree: Mon, 16 May 2011 08:00:01 +0000
ccache version 2.4 [enabled]
app-shells/bash:          4.1_p9
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.6.6-r2, 2.7.1-r1, 3.1.3-r1
dev-util/ccache:          2.4-r9
dev-util/cmake:           2.8.4-r1
sys-apps/baselayout:      2.0.2
sys-apps/openrc:          0.8.2-r1
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.65-r1
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:       2.20.1-r1
sys-devel/gcc:            4.4.5
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.2.10
sys-devel/make:           3.81-r2
sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers)
sys-libs/glibc:           2.11.3
Repositories: gentoo dev-zero mozilla proaudio science sunrise zugaina kde multimedia
Installed sets: @kdeartwork, @kdebase, @plasmoids
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /var/bind"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=pentium-m -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs ccache distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch preserve-libs protect-owned sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="it_IT.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="it"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/dev-zero /var/lib/layman/mozilla /var/lib/layman/pro-audio /var/lib/layman/science /var/lib/layman/sunrise /var/lib/layman/zugaina /var/lib/layman/kde /var/lib/layman/multimedia"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa amr avi berkdb bluetooth branding bzip2 cairo cdr cli consolekit cpudetection cracklib crypt cups cxx dbus dga dri dts dv dvd dvdr dvdread emboss encode exif fam ffmpeg firefox flac fortran gdbm gdu gif gpm iconv ios ipv6 jpeg jpeg2k juju kde kdehiddenvisibility lame lcms ldap libnotify libsamplerate mad matroska midi mmx mng modules mp3 mp4 mpeg mtp mudflap ncurses network nls nptl nptlonly offensive ogg openal opengl openmp pam pango pch pcre pdf perl plasma png policykit ppds pppd python qt qt3support qt4 quicktime readline samba sdl semantic-desktop session spell sse sse2 ssl startup-notification svg sysfs tcpd theora threads tiff truetype udev unicode usb v4l2 vorbis webkit win32codecs x264 x86 xcb xcomposite xml xmlpatterns xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="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" CAMERAS="canon ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DVB_CARDS="usb-af9015" 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 ubx" INPUT_DEVICES="evdev synaptics wacom keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="it" NETBEANS_MODULES="apisupport harness ide java nb websvccommon ergonomics php ruby" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="arm i386 x86_64" QEMU_USER_TARGETS="arm i386 x86_64" RUBY_TARGETS="ruby18" SANE_BACKENDS="snapscan" USERLAND="GNU" VIDEO_CARDS="radeon" 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, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-05-18 16:54:37 UTC
That output looks surprisingly odd. My first impression is a portage bug.

% qlist ffmpeg|grep libavcodec.so.52
/usr/lib64/libavcodec.so.52.96.0
/usr/lib64/libavcodec.so.52
% qlist chromium|grep libavcodec.so.52
/usr/lib64/chromium-browser/libavcodec.so.52

So, I highly doubt that the packages *really* need /usr/lib64/chromium-browser/libavcodec.so.52 instead of /usr/lib64/libavcodec.so.52

Anyway, I can't reproduce with ~arch portage. :(
Comment 2 Andrea Franceschini 2011-05-18 17:03:36 UTC
(In reply to comment #1)

I can confirm that I get quite a similar output:

$ qlist ffmpeg|grep libavcodec.so.52
/usr/lib/libavcodec.so.52
/usr/lib/libavcodec.so.52.117.0

$ qlist chromium|grep libavcodec.so.52
/usr/lib/chromium-browser/libavcodec.so.52
Comment 3 Jeremy Olexa (darkside) (RETIRED) archtester gentoo-dev Security 2011-05-18 17:07:14 UTC
What about "ldd" on some binaries that portage claim need chromium? Can you prove or disprove that portage is correct/incorrect?
Comment 4 Andrea Franceschini 2011-05-18 17:20:47 UTC
(In reply to comment #3)
> What about "ldd" on some binaries that portage claim need chromium? Can you
> prove or disprove that portage is correct/incorrect?

$ ldd /usr/bin/blender
[...]
        libavformat.so.52 => /usr/lib/libavformat.so.52 (0xb72b6000)
        libavcodec.so.52 => /usr/lib/libavcodec.so.52 (0xb6781000)
[...]

Here's just (possibly part of) the relevant output. I think Portage is incorrect.
Comment 5 Zac Medico gentoo-dev 2011-05-18 18:14:52 UTC
Please try to reproduce with portage-2.2.0_alpha34, since it has lots of preserve-libs fixes, including bug 286714.
Comment 6 Andrea Franceschini 2011-05-18 21:34:01 UTC
(In reply to comment #5)
> Please try to reproduce with portage-2.2.0_alpha34, since it has lots of
> preserve-libs fixes, including bug 286714.

This effectively solved the problem, thanks.