Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 508820 - net-misc/vinagre[spice] should DEPEND on app-emulation/spice-protocol
Summary: net-misc/vinagre[spice] should DEPEND on app-emulation/spice-protocol
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GNOME (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
: 513570 517392 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-04-26 21:17 UTC by Alexander Tsoy
Modified: 2014-09-07 13:33 UTC (History)
6 users (show)

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


Attachments
vinagre-3.10.2.ebuild.patch (vinagre-3.10.2.ebuild.patch,458 bytes, patch)
2014-04-26 21:17 UTC, Alexander Tsoy
Details | Diff
vinagre-build.log (vinagre-build.log,5.05 KB, text/plain)
2014-04-26 21:17 UTC, Alexander Tsoy
Details
vinagre-config.log (vinagre-config.log,17.92 KB, text/plain)
2014-04-26 21:17 UTC, Alexander Tsoy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Tsoy 2014-04-26 21:17:21 UTC
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
Comment 1 Alexander Tsoy 2014-04-26 21:17:41 UTC
Created attachment 375808 [details]
vinagre-build.log
Comment 2 Alexander Tsoy 2014-04-26 21:17:58 UTC
Created attachment 375810 [details]
vinagre-config.log
Comment 3 Alexander Tsoy 2014-04-26 22:52:19 UTC
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".
Comment 4 Alexander Tsoy 2014-04-26 23:40:37 UTC
@gnome: sorry for the noise. Please reassign.
Comment 5 Tiziano Müller (RETIRED) gentoo-dev 2014-05-06 05:52:54 UTC
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.
Comment 6 Pacho Ramos gentoo-dev 2014-06-18 08:43:35 UTC
*** Bug 513570 has been marked as a duplicate of this bug. ***
Comment 7 Tiziano Müller (RETIRED) gentoo-dev 2014-07-01 16:46:34 UTC
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.
Comment 8 Alexander Tsoy 2014-07-01 17:12:16 UTC
(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
Comment 9 Alexander Tsoy 2014-07-01 17:31:43 UTC
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.
Comment 10 Pacho Ramos gentoo-dev 2014-07-01 18:58:16 UTC
Or maybe every package relying on that .pc file needs to DEPEND on the package providing it :/
Comment 11 Alexander Tsoy 2014-07-01 20:53:07 UTC
(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.
Comment 12 Tiziano Müller (RETIRED) gentoo-dev 2014-07-01 21:36:40 UTC
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.
Comment 13 Pacho Ramos gentoo-dev 2014-07-02 08:13:47 UTC
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 :)
Comment 14 INODE64 Sistemas 2014-07-10 20:27:51 UTC
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
Comment 15 Pacho Ramos gentoo-dev 2014-07-18 08:08:04 UTC
*** Bug 517392 has been marked as a duplicate of this bug. ***
Comment 16 Alexander Tsoy 2014-08-18 08:05:18 UTC
(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
Comment 17 Pacho Ramos gentoo-dev 2014-09-07 13:33:54 UTC
+  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
+