Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 491594 - =app-emulation/qemu-1.6.1[smartcard] and =net-misc/spice-gtk-0.21[smartcard] cannot be installed side-by-side due to app-emulation/libcacard blocker as qemu[smartcard] provides that as well, virtual needed?
Summary: =app-emulation/qemu-1.6.1[smartcard] and =net-misc/spice-gtk-0.21[smartcard] ...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo QEMU Project
URL:
Whiteboard:
Keywords:
Depends on: 561814
Blocks: 492778
  Show dependency tree
 
Reported: 2013-11-18 15:10 UTC by Martin Wegner
Modified: 2015-12-08 04:15 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Wegner 2013-11-18 15:10:20 UTC
When enabling USE flag smartcard, app-emulation/qemu is built with smartcard support und blocks app-emulation/libcacard via RDEPEND.

On the other hand, net-misc/spice-gtk statically pulls in libcacard when enabling smartcard USE flag, resulting in a blocker:

[ebuild   R    ] app-emulation/qemu-1.6.1  USE="aio alsa bluetooth caps curl fdt filecaps gtk jpeg ncurses opengl png pulseaudio sdl seccomp smartcard threads usb uuid vhost-net vnc -accessibility -debug -glusterfs -iscsi -mixemu -python -rbd -sasl (-selinux) -spice -ssh -static -static-softmmu -static-user -systemtap -tci {-test} -tls -usbredir -vde -virtfs -xattr -xen -xfs" PYTHON_TARGETS="python2_7 -python2_6" QEMU_SOFTMMU_TARGETS="x86_64 -alpha -arm -cris -i386 -lm32 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -moxie -or32 -ppc -ppc64 -ppcemb -s390x -sh4 -sh4eb -sparc -sparc64 -unicore32 -xtensa -xtensaeb" QEMU_USER_TARGETS="-alpha -arm -armeb -cris -i386 -m68k -microblaze -microblazeel -mips -mips64 -mips64el -mipsel -mipsn32 -mipsn32el -or32 -ppc -ppc64 -ppc64abi32 -s390x -sh4 -sh4eb -sparc -sparc32plus -sparc64 -unicore32 -x86_64" 11,768 kB
[ebuild  N     ] app-emulation/libcacard-0.1.2  USE="-static-libs" 270 kB
[ebuild   R    ] net-misc/spice-gtk-0.21  USE="dbus gtk3 introspection policykit pulseaudio python smartcard* -doc -gstreamer -sasl -static-libs -usbredir -vala" PYTHON_SINGLE_TARGET="python2_7 -python2_6" PYTHON_TARGETS="python2_7 -python2_6" 1,164 kB
[blocks B      ] app-emulation/libcacard ("app-emulation/libcacard" is blocking app-emulation/qemu-1.6.1)

libcacard exists on system, though, belonging to qemu:

$ equery belongs /usr/lib/libcacard.*
 * Searching for /usr/lib/libcacard.a,/usr/lib/libcacard.la,/usr/lib/libcacard.so,/usr/lib/libcacard.so.0,/usr/lib/libcacard.so.0.0.0 ... 
app-emulation/qemu-1.6.1 (/usr/lib64/libcacard.la)
app-emulation/qemu-1.6.1 (/usr/lib64/libcacard.so.0.0.0)
app-emulation/qemu-1.6.1 (/usr/lib64/libcacard.a)

Maybe a virtual is missing such that qemu can provide libcacard dependency?

Workaround I found for now: Disable smartcard USE flag for net-misc/spice-gtk package.

Reproducible: Always

Steps to Reproduce:
1. Enable USE flag smartcard globally.
2. Run emerge --newuse ...
3. net-misc/spice-gtk pulls in libcacard which in turn is blocked by app-emulation/qemu
Actual Results:  
Merging of qemu and spice-gtk is blocked.

Expected Results:  
Should not block, just use installed libcacard.so?

$ emerge --info qemu spice-gtk
Portage 2.2.7 (default/linux/amd64/13.0/desktop/gnome, gcc-4.8.2, glibc-2.17, 3.12.0-gentoo-wotan x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-3.12.0-gentoo-wotan-x86_64-Intel-R-_Core-TM-_i7-3520M_CPU_@_2.90GHz-with-gentoo-2.2
KiB Mem:     7921556 total,    205448 free
KiB Swap:    8388604 total,   8388524 free
Timestamp of tree: Mon, 18 Nov 2013 12:15:01 +0000
ld GNU ld (GNU Binutils) 2.23.2
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p45
dev-java/java-config:     2.2.0
dev-lang/python:          2.7.5-r4, 3.2.5-r3, 3.3.2-r2
dev-util/ccache:          3.1.9-r3
dev-util/cmake:           2.8.12.1-r1
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.11.6, 1.13.4, 1.14
sys-devel/binutils:       2.23.2
sys-devel/gcc:            4.8.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.11 (virtual/os-headers)
sys-libs/glibc:           2.17
Repositories: gentoo gentoo-haskell x-portage
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=native -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /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=native -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--jobs=1 --load-average=5"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs candy clean-logs config-protect-if-modified distlocks ebuild-locks fakeroot fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS=" 	http://mirror.opteamax.de/gentoo/ 	rsync://mirror.netcologne.de/gentoo/ 	http://gentoo.supp.name/ 	ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ 	http://ftp.uni-erlangen.de/pub/mirrors/gentoo 	 ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo"
LANG="C"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4 -l4"
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="/var/lib/layman/haskell /usr/local/portage"
SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"
USE="X a52 aac acpi alsa amd64 amr avahi berkdb bluetooth branding bzip2 cairo cdda cdr cli colord cracklib crypt cryptsetup cups cxx dbus dirac divx dri dts dvb dvd dvdr emboss encode exif faac faad fam fat ffmpeg firefox flac fuse gdbm gif gnome gnome-keyring gnome-online-accounts gstreamer gtk gtk3 iconv idn inotify introspection ipv6 jpeg lame lastfm lcms libnotify libsecret mad mmx mmxext mng modules mp3 mp4 mpeg mudflap multilib nautilus ncurses networkmanager nls nptl ogg opengl openmp pam pango pcre pdf png policykit ppds pulseaudio readline realmedia samba schroedinger sdl sendto session smartcard socialweb spell sse sse2 ssl startup-notification svg syslog systemd tcpd telepathy theora tiff tracker truetype udev udisks unicode upower usb v4l v4l2 vim-syntax vorbis vpx webm wmp wxwidgets x264 xcb xinerama xml xv xvid zeitgeist zeroconf zlib zsh-completion" ABI_X86="64" 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" 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="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CURL_SSL="gnutls" 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 keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en de" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="intel" 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, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

gnome-base/gnome-settings-daemon-3.8.6.1 was built with the following:
USE="colord cups i18n policykit short-touchpad-timeout udev -debug (-openrc-force) (-packagekit) -smartcard -test" INPUT_DEVICES="-wacom"
Comment 1 Tiziano Müller (RETIRED) gentoo-dev 2014-03-05 07:19:18 UTC
Last time I checked, the API of libcacard installed by Qemu and the one installed by app-emulation/libcacard were not the same.
Comment 2 Tiziano Müller (RETIRED) gentoo-dev 2014-03-05 10:25:25 UTC
standalone libcacard is officially dead.

Thus I see the following two options:

* have spice-gtk[smartcard] depend on qemu[smartcard] and drop libcacard completely
* do something like the qemu-guest-agent pkg for libcacard and make also sure that qemu uses that one if installed
Comment 3 SpanKY gentoo-dev 2014-04-23 03:30:32 UTC
(In reply to Tiziano Müller from comment #2)

does spice export the lib expecting other people to link against it ?  if not, maybe we can relocate it to an internal dir and have it use that at runtime ?

i'm not sure how stable the API is for this lib that we want to make spice hard rely on qemu :(.
Comment 4 SpanKY gentoo-dev 2015-11-06 16:03:33 UTC
(In reply to Tiziano Müller from comment #2)

turns out it's alive again.  once the version bump in bug 561812 lands, qemu will switch to it in bug 561814, and then qemu won't have a blocker on it.
Comment 5 SpanKY gentoo-dev 2015-12-08 04:15:07 UTC
qemu-9999 no longer blocks libcacard which should go out with the next qemu release (version 2.5.0)

http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b24351f67a018ed77836d8c4dffacecd4015f91c