emerge -a --depclean * Always study the list of packages to be cleaned for any obvious * mistakes. Packages that are part of the world set will always * be kept. They can be manually added to this set with * `emerge --noreplace <atom>`. Packages that are listed in * package.provided (see portage(5)) will be removed by * depclean, even if they are part of the world set. * * As a safety measure, depclean will not remove any packages * unless *all* required dependencies have been resolved. As a * consequence, it is often necessary to run `emerge --update * --newuse --deep @world` prior to depclean. 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. * * x11-libs/libxkbui-1.0.2 pulled in by: * media-gfx/fontforge-20100501 needs libxkbui.so.1 user@host ~ $ ldd /usr/bin/fontforge | grep libxkbui libxkbui.so.1 => /usr/lib/libxkbui.so.1 (0x000000397ec00000) (However, but I don't know if this is relevant, libxkbui.so.1 isn't in the NEEDED libraries of /usr/bin/fontforge elf headers: user@host ~ $ readelf /usr/bin/fontforge -a | grep NEEDED 0x0000000000000001 (NEEDED) Shared library: [libfontforge.so.1] 0x0000000000000001 (NEEDED) Shared library: [libgdraw.so.4] 0x0000000000000001 (NEEDED) Shared library: [libgutils.so.1] 0x0000000000000001 (NEEDED) Shared library: [libgunicode.so.3] 0x0000000000000001 (NEEDED) Shared library: [libpython2.6.so.1.0] 0x0000000000000001 (NEEDED) Shared library: [libdl.so.2] 0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0] 0x0000000000000001 (NEEDED) Shared library: [libm.so.6] 0x0000000000000001 (NEEDED) Shared library: [libc.so.6] Reproducible: Always Steps to Reproduce: 1. Have x11-libs/libxkbui installed and check that media-libs/fontconfig doesn't depend on x11-libs/libxkbui 2. emerge fontforge 3. emerge -a --depclean [ebuild R ] media-gfx/fontforge-20100501 USE="X cairo gif jpeg nls pango png python svg tiff truetype unicode -cjk -debug -doc -pasteafter -tilepath -truetype-debugger -type3" [ebuild R ] x11-libs/libxkbui-1.0.2 USE="-debug" Portage 2.2_rc67 (default/linux/amd64/10.0/desktop, gcc-4.5.0, glibc-2.11.1-r0, 2.6.34-rc7-zen1-pappy-20100517 x86_64) ================================================================= System uname: Linux-2.6.34-rc7-zen1-pappy-20100517-x86_64-Intel-R-_Core-TM-2_Duo_CPU_T7300_@_2.00GHz-with-gentoo-2.0.1 Timestamp of tree: Fri, 28 May 2010 17:15:03 +0000 distcc 3.1 x86_64-pc-linux-gnu [disabled] ccache version 2.4 [disabled] app-shells/bash: 4.1_p7 dev-java/java-config: 2.1.11 dev-lang/python: 2.6.5-r2, 3.1.2-r3 dev-util/ccache: 2.4-r8 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.6.1-r1 sys-apps/sandbox: 2.2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.8.5-r4, 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.3-r2, 4.5.0 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.7b virtual/os-headers: 2.6.33 ACCEPT_KEYWORDS="amd64 ~amd64" ACCEPT_LICENSE="* -@EULA Q3AEULA ETQW PUEL ut2003 RTCW-ETEULA dlj-1.1 skype-eula Introversion" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=native -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config" 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/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-O2 -march=native -pipe" DISTDIR="/home/portage/distfiles/" FEATURES="assume-digests collision-protect distlocks fixpackages news parallel-fetch preserve-libs preserved-rebuild protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.free.fr/mirrors/ftp.gentoo.org/ http://mirror.ovh.net/gentoo-distfiles/" LANG="fr_FR.UTF-8" LC_ALL="fr_FR.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,--hash-style=gnu" LINGUAS="fr fr_FR" MAKEOPTS="-j2" PKGDIR="/home/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="/usr/local/portage/zeta-overlay /usr/local/portage/layman/mozilla /usr/local/portage/layman/wschlich-testing /usr/local/portage/layman/x11 /usr/local/portage/layman/sunrise /usr/local/portage/layman/jokey" SYNC="rsync://rsync.fr.gentoo.org/gentoo-portage" USE="X a52 aac acl acpi alsa amd64 apm berkdb bluetooth branding bzip2 cairo cdr cli cracklib crypt cxx dbus dri dts dvd dvdr emboss encode exif ffmpeg firefox flac gdbm gif gnutls gpm gtk hal iconv id3tag ipv6 jpeg lame laptop lcms libnotify mad mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly nvidia ogg opengl openmp pam pango pcre pdf perl png ppds pppd python qt3support qt4 readline reflection sdl session spell spl sse sse2 ssl ssse3 svg sysfs tcpd threads tiff truetype unicode usb vorbis x264 xcb xinerama xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" CAMERAS="canon ptp2" ELIBC="glibc" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr fr_FR" NGINX_MODULES_HTTP="access auth_basic autoindex browser charset empty_gif fastcgi gzip limit_req limit_zone map proxy referer rewrite upstream_ip_hash userid addition flv stub_status" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 x86" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
If it's not among NEEDED, see lddtree.sh.
But anyway, it seems that it only links through libgdraw.so.4 - another component of fontforge. The funny part is that it doesn't seem as if libgdraw was actually using libxkbui, it just links to it.
(In reply to comment #1) > If it's not among NEEDED, see lddtree.sh. > Didn't knew this script (from app-misc/pax-utils). Very handy. Funny thing #2: I have unmerged libxkbui and re-emerged fontforge, which compiles and runs just fine. I'll dig into the source tree.
Created attachment 233433 [details, diff] Patch to add conditionnal dependendy on x11-libs/libxkbui through a "xkb" USE-flag Here is a working patch. It adds a new use flag that controls the dependency and wheter configure should add -lxkb to the link flags. This features may have been introduced in pfaedit (old name of fontforge) to ease the ddetection of keyboard capabilities. See: * http://fontforge.sourceforge.net/pfaeditchangelog.html (search @12-Jan-2003) * http://fontforge.sourceforge.net/xres.html#Keyboards
Frankly, I think it would be nice to ask upstream, if they really need libxkbui, as those short code blocks, surrounded by _NO_XKB don't look as if they do. If that's the case, it's only a matter of fixing a line in configure.in.
(In reply to comment #5) > Frankly, I think it would be nice to ask upstream, Done: http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTikZyIlOQm-lcTIyv9ShGAsdAq_eNWLnu07-__2o%40mail.gmail.com&forum_name=fontforge-devel (forgot to link to this bug in my email ...)
libgdraw.so.4 seems to be using only 3 symbols, that look dependent on xkb: XkbLibraryVersion, XkbQueryExtension, XkbRefreshKeyboardMapping. All three come actually from libX11, so both the ebuild and the upstream need a trivial patch for configure.in. Probably upstream should be poked about it, but as a bug, not a mail list question.
Created attachment 257814 [details, diff] patch for configure.in This patch drops the (most likely) invalid libxkbui dep. requires eautoconf
(In reply to comment #8) > Created an attachment (id=257814) [details] > patch for configure.in > > This patch drops the (most likely) invalid libxkbui dep. > requires eautoconf > I got a response by email (not on the ml though) from G. Williams: > FontForge isn't designed to "need" anything. There's only one tool > (freehand) which actually uses the data, so it's not very important (and > that command doesn't work very well anyway).
Honestly, I fail to see a point of that response in this bug.
I've applied patch in fontforge-20110222. Thank you Rafał and Gef! Also I've sent patch upstream for review and possible inclusion.