Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 322007 - media-gfx/fontforge automagically depends on x11-libs/libxkbui
Summary: media-gfx/fontforge automagically depends on x11-libs/libxkbui
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Fonts Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-29 15:14 UTC by Gef
Modified: 2015-11-11 16:22 UTC (History)
0 users

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


Attachments
Patch to add conditionnal dependendy on x11-libs/libxkbui through a "xkb" USE-flag (fontforge-20100501.ebuild.patch,1.27 KB, patch)
2010-05-29 18:19 UTC, Gef
Details | Diff
patch for configure.in (drop-xkbui.patch,584 bytes, patch)
2010-12-23 01:02 UTC, Rafał Mużyło
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gef 2010-05-29 15:14:37 UTC
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
Comment 1 Rafał Mużyło 2010-05-29 16:30:34 UTC
If it's not among NEEDED, see lddtree.sh.
Comment 2 Rafał Mużyło 2010-05-29 16:53:52 UTC
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.
Comment 3 Gef 2010-05-29 17:07:11 UTC
(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.
Comment 4 Gef 2010-05-29 18:19:07 UTC
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
Comment 5 Rafał Mużyło 2010-05-29 21:31:30 UTC
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.
Comment 6 Gef 2010-05-30 17:13:45 UTC
(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 ...)
Comment 7 Rafał Mużyło 2010-12-22 22:49:58 UTC
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.
Comment 8 Rafał Mużyło 2010-12-23 01:02:28 UTC
Created attachment 257814 [details, diff]
patch for configure.in

This patch drops the (most likely) invalid libxkbui dep.
requires eautoconf
Comment 9 Gef 2011-01-22 13:08:23 UTC
(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).
Comment 10 Rafał Mużyło 2011-01-22 21:43:01 UTC
Honestly, I fail to see a point of that response in this bug.

Comment 11 Peter Volkov (RETIRED) gentoo-dev 2011-04-19 16:45:56 UTC
I've applied patch in fontforge-20110222. Thank you Rafał and Gef!

Also I've sent patch upstream for review and possible inclusion.