Created attachment 375806 [details, diff] vinagre-3.10.2.ebuild.patch net-misc/vinagre-3.10.2[spice] should depend on app-emulation/spice-protocol, otherwise configure fails: ... checking for SPICE... no configure: error: spice support requested but not found
Created attachment 375808 [details] vinagre-build.log
Created attachment 375810 [details] vinagre-config.log
Ooops.. Actually spice-gtk should depend on spice-protocol. spice-gtk is shipping its own copy of spice-protocol and using it at build time. It also install spice-client-glib-2.0.pc which have: "Requires: spice-protocol".
@gnome: sorry for the noise. Please reassign.
That is kind of a problem since upstream bundles spice-protocol as part of spice-common. But as far as I've understood it, the detection in vinagre is wrong: if it is using spice-gtk it shouldn't be concerned with the spice-headers since this is all abstracted away in the widget-implementation of spice-gtk.
*** Bug 513570 has been marked as a duplicate of this bug. ***
Just checked the vinagre source: It does not require the spice-protocol headers anywhere. vinagre-3.13.2 also seems to have a correct check for spice-gtk only.
(In reply to Tiziano Müller from comment #7) > Just checked the vinagre source: It does not require the spice-protocol > headers anywhere. vinagre-3.13.2 also seems to have a correct check for > spice-gtk only. There are no changes related to spice check between 3.10.2 and 3.13.2 [1]. The check is: # pkg-config --exists --print-errors "spice-client-gtk-3.0 >= 0.5" Package spice-protocol was not found in the pkg-config search path. Perhaps you should add the directory containing `spice-protocol.pc' to the PKG_CONFIG_PATH environment variable Package 'spice-protocol', required by 'spice-client-glib-2.0', not found # grep ^Requires /usr/lib64/pkgconfig/spice-client-gtk-3.0.pc Requires: gtk+-3.0 >= 2.91.3 spice-client-glib-2.0 # grep ^Requires /usr/lib64/pkgconfig/spice-client-glib-2.0.pc Requires: spice-protocol Requires.private: pixman-1 >= 0.17.7 celt051 >= 0.5.1.1 openssl So spice-client-gtk requires spice-client-glib which in turn requires spice-protocol. [1] https://git.gnome.org/browse/vinagre/tree/configure.ac
Every package which is using spice-client-gtk pkg-config files will fail if spice-protocol is not installed. Even if spice-protocol headers are not used anywhere. So IMHO this is not a vinagre bug.
Or maybe every package relying on that .pc file needs to DEPEND on the package providing it :/
(In reply to Pacho Ramos from comment #10) Hmmm.. maybe, since spice-protocol is really a build-time-only dependency for some packages that depends on spice-gtk. And I have found only 2 packages requiring this (not counting vinagre): - gnome-boxes has a similar check for spice-client-gtk.pc, but it depend on qemu[spice] which in turn depend on spice-protocol. spice-protocol is in RDEPEND in qemu ebuild for some unknown reason, so gnome-boxes is not affected by this bug (yet). - app-emulation/virt-viewer also does not use headers from spice-protocol, but its build system explicitly checks for spice-protocol.pc, so ebuild already has spice-protocol atom in DEPEND.
ah, here it is: /usr/include/spice-client-glib-2.0/spice-client.h:#include <spice/enums.h> /usr/include/spice-client-glib-2.0/spice-client.h:#include <spice/protocol.h> ... and this is the use case for yet another type of dependency: a dependency which says that a packageA requires packageB if packageC tries to build against packageA. At the moment we can only solve this by either requiring packageC to explicitly DEPEND on packageB or to have packageA record packageB in its RDEPEND. Both solutions are wrong. Pick one.
The DEPEND solution in vinagre and co. looks like the solution that reflects reality better to my understanding (vinagre needs spice-protocols at buildtime if it tries to build against spice). But will wait for other team members to give their opinion :)
Same problem!!! no compile net-misc/vinagre, please fix, 3 month for solve this bug Read from file "README" for build spice-gkt Build dependencies: ------------------ . On Fedora: (gtk2-devel if building with --with-gtk=2.0) gtk3-devel spice-protocol intltool celt051-devel openssl-devel pulseaudio-libs-devel pixman-devel gobject-introspection-devel libjpeg-turbo-devel zlib-devel cyrus-sasl-devel gtk-doc . To build python bindings for virt-manager, you need gtk2, and: pygtk2-devel python . The experimental GStreamer backend needs: gstreamer-devel gstreamer-plugins-base-devel . If you build from git, you'll also need: libtool automake vala perl-Text-CSV
*** Bug 517392 has been marked as a duplicate of this bug. ***
(In reply to Pacho Ramos from comment #13) > The DEPEND solution in vinagre and co. looks like the solution that reflects > reality better to my understanding (vinagre needs spice-protocols at > buildtime if it tries to build against spice). Yes. And this is also match x11 team decision: https://bugs.gentoo.org/show_bug.cgi?id=379545
+ 07 Sep 2014; Pacho Ramos <pacho@gentoo.org> -vinagre-3.10.2.ebuild, + -vinagre-3.12.1.ebuild, vinagre-3.12.2.ebuild: + Pull in app-emulation/spice-protocol (#508820 by Alexander Tsoy), drop old +