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

Reply via email to