[Spice-devel] [PATCH spice-gtk] Deal with libusbredirparser.pc rename to libusbredirparser-0.5.pc

Hans de Goede hdegoede at redhat.com
Tue Sep 25 07:34:50 PDT 2012


Hi,

On 09/25/2012 03:05 PM, Christophe Fergeau wrote:
> Hey,
>
> On Tue, Sep 25, 2012 at 01:02:09PM +0200, Hans de Goede wrote:
>> The usbredir 0.5 release introduced the new API for 64 bit packet ids, but
>> it kept the libusbredirparser.pc name as is, meaning that older versions of
>> qemu will still have their pkg-config check for usbredirparser fulfilled,
>> and build with the usb-redir device. Due to the API change there will be
>> some compiler warnings, but the build will succeed, however the usb-redir
>> device will be broken on 32 bit machines.
>>
>> To solve this, the usbredir-0.5.2 release renames the libusbredirparser.pc
>> file to libusbredirparser-0.5.pc, so that it will no longer fulfill the
>> pkg-config check of the qemu-1.2 and older releases, stopping the (silent)
>> breakage.
>>
>> spice-gtk does not use the changed parts of the API, but does
>> use libusbredirparser for the usbredirfilter* functions. This patch adapts
>> spice-gtk's configure to accept both the libusbredirparser-0.5 and the
>> libusbredirparser pkg-config names.
>>
>> Signed-off-by: Hans de Goede <hdegoede at redhat.com>
>> ---
>>   configure.ac | 15 +++++++++++----
>>   1 file changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index c7367cc..7c59575 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -349,10 +349,17 @@ AC_ARG_ENABLE([usbredir],
>>   if test "x$enable_usbredir" = "xno"; then
>>     have_usbredir="no"
>>   else
>> -  PKG_CHECK_MODULES([USBREDIR],
>> -                    [libusb-1.0 >= 1.0.9 libusbredirhost >= 0.4.2 libusbredirparser >= 0.4],
>> -                    [have_usbredir=yes],
>> -                    [have_usbredir=no])
>> +  if ${PKG_CONFIG} libusbredirparser-0.5; then
>> +    PKG_CHECK_MODULES([USBREDIR],
>> +                      [libusb-1.0 >= 1.0.9 libusbredirhost libusbredirparser-0.5],
>> +                      [have_usbredir=yes],
>> +                      [have_usbredir=no])
>> +  else
>> +    PKG_CHECK_MODULES([USBREDIR],
>> +                      [libusb-1.0 >= 1.0.9 libusbredirhost >= 0.4.2 libusbredirparser >= 0.4],
>> +                      [have_usbredir=yes],
>> +                      [have_usbredir=no])
>> +  fi
>
> I'd do something like
>      PKG_CHECK_MODULES([USBREDIR],
>                        [libusb-1.0 >= 1.0.9 libusbredirhost libusbredirparser-0.5],
>                        [have_usbredir=yes],
>                        [have_usbredir=no])
>      if [ x"$have_usbredir" = "xno" ]; then
>          PKG_CHECK_MODULES([USBREDIR],
>                            [libusb-1.0 >= 1.0.9 libusbredirhost >= 0.4.2 libusbredirparser >= 0.4],
>                            [have_usbredir=yes],
>                            [have_usbredir=no])
>      fi
>
> This avoids the "if ${PKG_CONFIG} libusbredirparser-0.5; then" test which
> is unusual to me, I have seen the version I suggest more often.
>
> ACK to your version if you prefer things this way, otherwise v2 welcome ;)

I did it my way on purpose, otherwise the configure output will be:

checking for USBREDIR... no
checking for USBREDIR... yes

on systems which don't have the new usbredirparser, which is weird,

So I'm taking your ack for my v1 and pushing as is :)

Regards,

Hans



More information about the Spice-devel mailing list