Bug 206491 - Circular dependency with media-gfx/imagemagick-6.3.7.9 and gnome-extra/libgsf
Bug#: 206491 Product:  Gentoo Linux Version: unspecified Platform: All
OS/Version: Linux Status: RESOLVED Severity: normal Priority: P2
Resolution: FIXED Assigned To: gnome@gentoo.org Reported By: leio@gentoo.org
Component: Ebuilds
URL: 
Summary: Circular dependency with media-gfx/imagemagick-6.3.7.9 and gnome-extra/libgsf
Keywords:  
Status Whiteboard: 
Opened: 2008-01-18 07:14 0000
Description:   Opened: 2008-01-18 07:14 0000
media-gfx/imagemagick-6.3.7.9 added a svg USE flag, which introduces a bad
circular dependency imagemagick (USE=svg)->librsvg->libgsf->imagemagick
(USE=gnome)->librsvg

This makes a from scratch installation of GNOME on a ~amd64 system with no
special USE flags fail, requiring manual workarounds - just using the
default-linux/amd64/2007.0/desktop profile.

------- Comment #1 From Mart Raudsepp 2008-01-18 07:16:15 0000 -------
These are the packages that would be merged, in order:

Calculating dependencies... done!
[nomerge      ] media-gfx/imagemagick-6.3.7.9  USE="X jpeg perl png svg tiff
truetype xml zlib -bzip2 -djvu -doc -fontconfig -fpx -graphviz -gs -hdri -jbig
-jpeg2k -lcms -nocxx -openexr -q32 -q8 -wmf" 
[nomerge      ]  gnome-base/librsvg-2.18.2  USE="gnome zlib -debug -doc" 
[ebuild  N    ]   gnome-extra/libgsf-1.14.7  USE="gnome python -bzip2 -debug
-doc" 
[ebuild  N    ]    media-gfx/imagemagick-6.3.7.9  USE="X jpeg perl png svg tiff
truetype xml zlib -bzip2 -djvu -doc -fontconfig -fpx -graphviz -gs -hdri -jbig
-jpeg2k -lcms -nocxx -openexr -q32 -q8 -wmf" 
[ebuild  N    ]     gnome-base/librsvg-2.18.2  USE="gnome zlib -debug -doc" 
!!! Error: circular dependencies:

('ebuild', '/', 'gnome-extra/libgsf-1.14.7', 'merge') depends on
   ('ebuild', '/', 'media-gfx/imagemagick-6.3.7.9', 'merge') (hard)
('ebuild', '/', 'media-gfx/imagemagick-6.3.7.9', 'merge') depends on
   ('ebuild', '/', 'gnome-base/librsvg-2.18.2', 'merge') (hard)
('ebuild', '/', 'gnome-base/librsvg-2.18.2', 'merge') depends on
   ('ebuild', '/', 'gnome-extra/libgsf-1.14.7', 'merge') (hard)

!!! Note that circular dependencies can often be avoided by temporarily
!!! disabling USE flags that trigger optional dependencies.

------- Comment #2 From Mart Raudsepp 2008-01-18 07:18:25 0000 -------
Portage 2.1.4 (default-linux/amd64/2007.0/desktop, gcc-4.2.2, glibc-2.7-r1,
2.6.23-gentoo-r3 x86_64)
=================================================================
System uname: 2.6.23-gentoo-r3 x86_64 AMD Athlon(tm) 64 Processor 3500+
Timestamp of tree: Fri, 18 Jan 2008 01:47:01 +0000
app-shells/bash:     3.2_p33
dev-lang/python:     2.4.3-r4, 2.5.1-r5
dev-python/pycrypto: 2.0.1-r6
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.61-r1
sys-devel/automake:  1.9.6-r2, 1.10
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.24
virtual/os-headers:  2.6.23-r3
ABI="amd64"
ACCEPT_KEYWORDS="amd64 ~amd64"
ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 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"
ARCH="amd64"
ASFLAGS_x86="--32"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CDEFINE_amd64="__x86_64__"
CDEFINE_x86="__i386__"
CFLAGS="-march=athlon64 -O2 -pipe -ggdb"
CFLAGS_x86="-m32 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib"
CHOST="x86_64-pc-linux-gnu"
CHOST_amd64="x86_64-pc-linux-gnu"
CHOST_x86="i686-pc-linux-gnu"
CLEAN_DELAY="5"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/terminfo
/etc/udev/rules.d"
CVS_RSH="ssh"
CXXFLAGS="-march=athlon64 -O2 -pipe -ggdb"
DEFAULT_ABI="amd64"
DISTDIR="/usr/portage/distfiles"
EDITOR="/bin/nano"
ELIBC="glibc"
EMERGE_DEFAULT_OPTS="--ask --verbose"
EMERGE_WARNING_DELAY="10"
FEATURES="cvs distlocks metadata-transfer parallel-fetch sandbox sfperms
splitdebug strict unmerge-orphans userfetch userpriv usersandbox"
FETCHCOMMAND="/usr/bin/wget -t 5 -T 60 --passive-ftp -O ${DISTDIR}/${FILE}
${URI}"
GCC_SPECS=""
GENTOO_MIRRORS="ftp://gentoo.arcticnetwork.ca/pub/gentoo/
http://gentoo.mirrors.tds.net/gentoo http://gentoo.arcticnetwork.ca/source/
http://202.232.140.138/pub/linux/gentoo/"
HOME="/root"
INFOPATH="/usr/share/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.18/info:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.2/info"
INPUT_DEVICES="keyboard mouse evdev"
KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses
text"
LDFLAGS="-Wl,-O1,--hash-style=gnu,--as-needed"
LDFLAGS_x86="-m elf_i386 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib"
LESS="-R -M --shift 5"
LESSOPEN="|lesspipe.sh %s"
LIBDIR_amd64="lib64"
LIBDIR_x86="lib32"
LOGNAME="root"
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:"
MAIL="/var/mail/root"
MAKEOPTS="-j2"
MANPATH="/usr/local/share/man:/usr/share/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.18/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/4.2.2/man"
MULTILIB_ABIS="amd64 x86"
MULTILIB_STRICT_DENY="64-bit.*shared object"
MULTILIB_STRICT_DIRS="/lib /usr/lib /usr/kde/*/lib /usr/qt/*/lib
/usr/X11R6/lib"
MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage)"
OLDPWD="/usr/portage/media-gfx"
OPENGL_PROFILE="xorg-x11"
PAGER="/usr/bin/less"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.2.2"
PKGDIR="/usr/portage/packages"
PORTAGE_ARCHLIST="ppc s390 amd64 x86 ppc64 x86-fbsd m68k arm sparc sh mips ia64
alpha ppc-macos hppa sparc-fbsd"
PORTAGE_BINHOST_CHUNKSIZE="3000"
PORTAGE_BIN_PATH="/usr/lib64/portage/bin"
PORTAGE_CONFIGROOT="/"
PORTAGE_DEBUG="0"
PORTAGE_DEPCACHEDIR="/var/cache/edb/dep"
PORTAGE_ELOG_CLASSES="warn error log"
PORTAGE_ELOG_MAILFROM="portage@localhost"
PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for ${PACKAGE} on ${HOST}"
PORTAGE_ELOG_MAILURI="root"
PORTAGE_ELOG_SYSTEM="save_summary echo"
PORTAGE_GID="250"
PORTAGE_INST_GID="0"
PORTAGE_INST_UID="0"
PORTAGE_IUSE="^(3dfx|adabas|alpha|alsa_cards_aoa|alsa_cards_aoa-fabric-layout|alsa_cards_aoa-onyx|alsa_cards_aoa-soundbus|alsa_cards_aoa-soundbus-i2s|alsa_cards_aoa-tas|alsa_cards_aoa-toonie|alsa_cards_armaaci|alsa_cards_at91-soc|alsa_cards_at91-soc-eti-b1-wm8731|alsa_cards_au1x00|alsa_cards_cs5535audio|alsa_cards_harmony|alsa_cards_powermac|alsa_cards_pxa2xx-i2sound|alsa_cards_pxa2xx-soc|alsa_cards_pxa2xx-soc-corgi|alsa_cards_pxa2xx-soc-poodle|alsa_cards_pxa2xx-soc-spitz|alsa_cards_pxa2xx-soc-tosa|alsa_cards_sa11xx-uda1341ts|alsa_cards_sun-amd7930|alsa_cards_sun-cs4231|alsa_cards_sun-dbri|altivec|amd64|aqua|arm|asm|birdstep|bmp|bmpx|bootstrap|build|capslib|clvm|cman|cmucl|coreaudio|crosscompile_opts_.*|dbmaker|doomsday|drac|elibc_.*|elibc_Darwin|elibc_DragonFly|elibc_FreeBSD|elibc_NetBSD|elibc_OpenBSD|elibc_glibc|elibc_uclibc|emf|empress|empress-bcs|esoob|fdftk|filepro|firebird|frontbase|gamess|gcc64|gulm|hppa|ia64|ibm|icc|icc-pgo|ifc|infopipe|informix|ingres|kernel_.*|kernel_Darwin|kernel_FreeBSD|kernel_linux|lcd_devices_svga|m68k|macbook|mips|multilib|mzscheme|n32|n64|osp|pam_console|pbbuttonsd|pfpro|plugin|ppc|ppc-macos|ppc64|ppcsha1|psyco|pvm|real|s390|selinux|sh|solid|sparc|sparc-fbsd|svga|sybase|sybase-ct|tcc|uclibc|ultra1|userland_.*|userland_BSD|userland_Darwin|userland_GNU|video_cards_amd|video_cards_i740|video_cards_impact|video_cards_imstt|video_cards_newport|video_cards_nsc|video_cards_sunbw2|video_cards_suncg14|video_cards_suncg3|video_cards_suncg6|video_cards_sunffb|video_cards_sunleo|video_cards_suntcx|video_cards_vermilion|video_cards_xgi|vidix|vis|win32codecs|x86|x86-fbsd|xmms|yellownet)$"
PORTAGE_NICENESS="15"
PORTAGE_PYM_PATH="/usr/lib64/portage/pym"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress
--force --whole-file --delete --stats --timeout=180 --exclude=/distfiles
--exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_TMPDIR="/var/tmp"
PORTAGE_USE="amd64 elibc_glibc kernel_linux userland_GNU"
PORTAGE_WORKDIR_MODE="0700"
PORTDIR="/usr/portage"
PWD="/usr/portage/media-gfx/imagemagick"
PYTHONPATH="/usr/lib64/portage/pym"
RESUMECOMMAND="/usr/bin/wget -c -t 5 -T 60 --passive-ftp -O ${DISTDIR}/${FILE}
${URI}"
ROOT="/"
ROOTPATH="/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.2.2"
RPMDIR="/usr/portage/rpm"
SHELL="/bin/bash"
SHLVL="1"
SSH_CLIENT="127.0.0.1 46018 22"
SSH_CONNECTION="127.0.0.1 46018 127.0.0.1 22"
SSH_TTY="/dev/pts/4"
STAGE1_USE="nptl nptlonly unicode"
SYMLINK_LIB="yes"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
TERM="xterm"
USE="X acl acpi alsa amd64 arts bash-completion berkdb bitmap-fonts cairo cdr
cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam
firefox fortran gdbm gif gnome gpm gstreamer gtk hal iconv ipv6 isdnlog jpeg
kde kerberos ldap mad midi mikmod mmx mp3 mpeg mudflap ncurses nls nptl
nptlonly ogg opengl openmp oss pam pcre pdf perl png pppd python qt3 qt3support
qt4 quicktime readline reflection sdl session slang spell spl sse sse2 ssl svg
tcpd tiff truetype truetype-fonts type1-fonts unicode vorbis xattr xcb xml xorg
xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci
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 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"
ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux"
LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses
text" USERLAND="GNU" VIDEO_CARDS="radeon vesa"
USER="root"
USERLAND="GNU"
USE_EXPAND="ALSA_CARDS ALSA_PCM_PLUGINS APACHE2_MODULES APACHE2_MPMS CAMERAS
CROSSCOMPILE_OPTS DVB_CARDS ELIBC FCDSL_CARDS FOO2ZJS_DEVICES FRITZCAPI_CARDS
INPUT_DEVICES KERNEL LCD_DEVICES LINGUAS LIRC_DEVICES MISDN_CARDS USERLAND
VIDEO_CARDS"
USE_EXPAND_HIDDEN="CROSSCOMPILE_OPTS ELIBC KERNEL USERLAND"
USE_ORDER="env:pkg:conf:defaults:pkginternal:env.d"
VIDEO_CARDS="radeon vesa"
_="/usr/bin/emerge"

------- Comment #3 From Jakub Moc (RETIRED) 2008-01-18 07:55:22 0000 -------
And why exactly does gnome-extra/libgsf DEPEND on imagemagick with USE=gnome
when the whole thing is *only* used for the thumbnailer which calls convert at
*runtime*. Move it to PDEPEND and you'll have no circular deps.

------- Comment #4 From Mart Raudsepp 2008-01-18 08:03:41 0000 -------
Hence the CCing of gnome@ as it might be possible to improve it on our side
instead. I am at work, installing work system, I didn't have time to
investigate further immediately..
Thanks for the information of where it's used in libgsf.

------- Comment #5 From Jakub Moc (RETIRED) 2008-01-18 08:09:04 0000 -------
Unmerged imagemagick, recompiled libgsf w/ USE=gnome -> everything compiled
just fine, including the gsf-office-thumbnailer thing. You only need this at
runtime.

------- Comment #6 From Rémi Cardona 2008-01-30 16:11:03 0000 -------
Fixed in CVS by Daniel.