16.08.2011 11:50, Liang Guo wrote: > Hi, Michael, > > On Wed, Aug 10, 2011 at 5:49 AM, Michael Tokarev <m...@tls.msk.ru> wrote: >> 09.08.2011 14:26, Michael Tokarev wrote: >> [] >>> There are other dependencies too, like alsa openssl xrandr etc, >>> but I haven't checked these. >> >> See also >> http://cgit.freedesktop.org/spice/spice/commit/?h=0.8&id=54c660470a5aea19f799c5574cc0d4a707696712 >> -- >> this is actually a bugfix, -- spice .pc file unnecessary includes alsa which >> pulls its own set of include dirs, which contains, among other things, >> file named "error.h". Which clashes with local (in another package >> using spice) file of the same name. So that qemu 0.15 does not >> build with spice 0.8.2 for example: >> >> http://lists.gnu.org/archive/html/qemu-devel/2011-08/msg00417.html >> http://lists.gnu.org/archive/html/qemu-devel/2011-08/msg00617.html >> >> /mjt > I've asked Kilian to sponsor my new spice 0.8.2-2, > > In this upload, libpixman-1-dev (>= 0.17.7~) and libssl-dev is added to > libspice-server-dev's Depends field. alsa and other unused x11 Requires > are removed.
And this is, actually, wrong. The original issue, incorrectly diagnosed by me in this bugreport, is that spice people use Requires: pkg-config variable to declare inter-library dependencies, while they should use Requires.private instead. It is the development files of libpixman, libssl etc are not needed to build applications against lispice-server, unless you want to have static build (in which case all inter-dependent libraries are also needed, and that's where Requires.private pkg-config variable comes into play). So the problem actually is the wrong pkg-config dependencies, not debian package dependencies, due to wrong upstream usage of pkg-config. So I went on and corrected the mess. Here's the difference: ---------------- commit 805ace942c4ab731c231ff4497bf3093a8b8ce0e Author: Michael Tokarev <m...@tls.msk.ru> Date: Tue Aug 16 15:53:44 2011 +0400 move libspice-server interdependencies to Requires.private pkgconfig variable and remove extra dependencies for -dev package diff --git a/debian/changelog b/debian/changelog index 9aa49fe..ff8ca0b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,10 @@ spice (0.8.2-2) unstable; urgency=low - * Add libpixman-1-dev and libssl-dev to libspice-server1 - Depends (Closes: #637189) + [ Michael Tokarev ] + * move libraries used internally by libspice-server from Requires + to Requires.private in pkg-config file (Closes: #637189) + + [ Liang Guo ] * Remove alsa, xrandr, xfixes, x11, xext and xrender from spice-server.pc Requires * Fix typo in debian/spicec.1 diff --git a/debian/control b/debian/control index 93efec1..b95b784 100644 --- a/debian/control +++ b/debian/control @@ -49,7 +49,7 @@ Description: Implements the server side of the SPICE protocol Package: libspice-server-dev Section: libdevel Architecture: i386 amd64 -Depends: libspice-server1 (= ${binary:Version}), ${misc:Depends}, libpixman-1-dev (>= 0.17.7~), libssl-dev +Depends: libspice-server1 (= ${binary:Version}), ${misc:Depends} Suggests: pkg-config Description: Header files and development documentation for spice-server The Simple Protocol for Independent Computing Environments (SPICE) is diff --git a/debian/patches/series b/debian/patches/series index 95650d5..252b3d0 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,3 +1,4 @@ fix-typo-in-record-cpp.patch fix-typo-in-cmd_line_parser-cpp.patch drop-unnecessary-build-request.patch +use-requires-private-for-libspice-pkgconfig.patch diff --git a/debian/patches/use-requires-private-for-libspice-pkgconfig.patch b/debian/patches/use-requires-private-for-libspice-pkgconfig.patch new file mode 100644 index 0000000..3d67550 --- /dev/null +++ b/debian/patches/use-requires-private-for-libspice-pkgconfig.patch @@ -0,0 +1,14 @@ +Use Requires.private pkg-config variable instead of Requires +for internal libspice-server libraries. + +--- spice.orig/spice-server.pc.in ++++ spice/spice-server.pc.in +@@ -7,7 +7,7 @@ + Description: SPICE server library + Version: @VERSION@ + +-Requires: @SPICE_REQUIRES@ ++Requires.private: @SPICE_REQUIRES@ + Libs: -L${libdir} -lspice-server + Libs.private: @SPICE_NONPKGCONFIG_LIBS@ + Cflags: -I${includedir}/spice-server ---------------- I also pushed this change to collab-maint git tree, to a branch named "mjt" - you can use `git remote update' followed by 'git pull origin mjt' to fetch it directly using git if you like. > To compile qemu/qemu-kvm with spice-support, please add > libspice-server-dev (>= 0.8.2-2), libspice-protocol-dev to build > depends, and --enable-spice to configure option. That works, but introduces a ton of needlessly linked-to libraries, due to the reason described above. > Actually, IMO, libspice-server-dev don't directly use libpixman-1-dev > and libssl-dev, they should be removed too. No, they _are_ used internally by libspice-server - if you by a chance will want to link some application statically against libspice-server, you'll have to link against libpixman-1 too, which is in libpixman-1-dev. Thanks, /mjt -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org