[Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only

Michal Privoznik posted 1 patch 5 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/3c36db1dc0702763ebb7966cc27428ed67d43804.1522751624.git.mprivozn@redhat.com
Test checkpatch passed
Test docker-build@min-glib passed
Test docker-mingw@fedora passed
Test s390x passed
configure                   | 2 +-
hw/usb/ccid-card-emulated.c | 5 +----
hw/usb/ccid-card-passthru.c | 2 +-
3 files changed, 3 insertions(+), 6 deletions(-)
[Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only
Posted by Michal Privoznik 5 years, 11 months ago
When trying to build with latest libcacard-2.5.1, I hit the
following error:

In file included from hw/usb/ccid-card-passthru.c:12:0:
/usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
 #warning "Only <libcacard.h> can be included directly"

While it was fixed in libcacard upstream (so that individual
files can be included directly), it doesn't make much sense.
Let's switch to including the main libcacard.h and also require
at least libcacard-2.5.1 which introduced it. It's available
since late 2015.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---

diff to v1:
- Introduce configure change to require newer libcacard version

 configure                   | 2 +-
 hw/usb/ccid-card-emulated.c | 5 +----
 hw/usb/ccid-card-passthru.c | 2 +-
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/configure b/configure
index 4d0e92c96c..0edec24fff 100755
--- a/configure
+++ b/configure
@@ -4440,7 +4440,7 @@ fi
 
 # check for smartcard support
 if test "$smartcard" != "no"; then
-    if $pkg_config libcacard; then
+    if $pkg_config --atleast-version=2.5.1 libcacard; then
         libcacard_cflags=$($pkg_config --cflags libcacard)
         libcacard_libs=$($pkg_config --libs libcacard)
         smartcard="yes"
diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
index ea42e4681d..7b538ae6da 100644
--- a/hw/usb/ccid-card-emulated.c
+++ b/hw/usb/ccid-card-emulated.c
@@ -27,10 +27,7 @@
  */
 
 #include "qemu/osdep.h"
-#include <eventt.h>
-#include <vevent.h>
-#include <vreader.h>
-#include <vcard_emul.h>
+#include <cacard/libcacard.h>
 
 #include "qemu/thread.h"
 #include "qemu/main-loop.h"
diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
index b7dd3602dc..982d575edd 100644
--- a/hw/usb/ccid-card-passthru.c
+++ b/hw/usb/ccid-card-passthru.c
@@ -9,7 +9,7 @@
  */
 
 #include "qemu/osdep.h"
-#include <cacard/vscard_common.h>
+#include <cacard/libcacard.h>
 #include "chardev/char-fe.h"
 #include "qemu/error-report.h"
 #include "qemu/sockets.h"
-- 
2.16.1


Re: [Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only
Posted by Marc-André Lureau 5 years, 11 months ago
Hi

On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
> When trying to build with latest libcacard-2.5.1, I hit the
> following error:
>
> In file included from hw/usb/ccid-card-passthru.c:12:0:
> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
>  #warning "Only <libcacard.h> can be included directly"
>
> While it was fixed in libcacard upstream (so that individual
> files can be included directly), it doesn't make much sense.
> Let's switch to including the main libcacard.h and also require
> at least libcacard-2.5.1 which introduced it. It's available
> since late 2015.
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>
> diff to v1:
> - Introduce configure change to require newer libcacard version
>
>  configure                   | 2 +-
>  hw/usb/ccid-card-emulated.c | 5 +----
>  hw/usb/ccid-card-passthru.c | 2 +-
>  3 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/configure b/configure
> index 4d0e92c96c..0edec24fff 100755
> --- a/configure
> +++ b/configure
> @@ -4440,7 +4440,7 @@ fi
>
>  # check for smartcard support
>  if test "$smartcard" != "no"; then
> -    if $pkg_config libcacard; then
> +    if $pkg_config --atleast-version=2.5.1 libcacard; then
>          libcacard_cflags=$($pkg_config --cflags libcacard)
>          libcacard_libs=$($pkg_config --libs libcacard)
>          smartcard="yes"
> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
> index ea42e4681d..7b538ae6da 100644
> --- a/hw/usb/ccid-card-emulated.c
> +++ b/hw/usb/ccid-card-emulated.c
> @@ -27,10 +27,7 @@
>   */
>
>  #include "qemu/osdep.h"
> -#include <eventt.h>
> -#include <vevent.h>
> -#include <vreader.h>
> -#include <vcard_emul.h>
> +#include <cacard/libcacard.h>

You should be able to #include <libcacard.h> only

>
>  #include "qemu/thread.h"
>  #include "qemu/main-loop.h"
> diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c
> index b7dd3602dc..982d575edd 100644
> --- a/hw/usb/ccid-card-passthru.c
> +++ b/hw/usb/ccid-card-passthru.c
> @@ -9,7 +9,7 @@
>   */
>
>  #include "qemu/osdep.h"
> -#include <cacard/vscard_common.h>
> +#include <cacard/libcacard.h>
>  #include "chardev/char-fe.h"
>  #include "qemu/error-report.h"
>  #include "qemu/sockets.h"
> --
> 2.16.1
>



-- 
Marc-André Lureau

Re: [Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only
Posted by Michal Privoznik 5 years, 11 months ago
On 04/03/2018 01:38 PM, Marc-André Lureau wrote:
> Hi
> 
> On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
>> When trying to build with latest libcacard-2.5.1, I hit the
>> following error:
>>
>> In file included from hw/usb/ccid-card-passthru.c:12:0:
>> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
>>  #warning "Only <libcacard.h> can be included directly"
>>
>> While it was fixed in libcacard upstream (so that individual
>> files can be included directly), it doesn't make much sense.
>> Let's switch to including the main libcacard.h and also require
>> at least libcacard-2.5.1 which introduced it. It's available
>> since late 2015.
>>
>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>> ---
>>
>> diff to v1:
>> - Introduce configure change to require newer libcacard version
>>
>>  configure                   | 2 +-
>>  hw/usb/ccid-card-emulated.c | 5 +----
>>  hw/usb/ccid-card-passthru.c | 2 +-
>>  3 files changed, 3 insertions(+), 6 deletions(-)
>>
>> diff --git a/configure b/configure
>> index 4d0e92c96c..0edec24fff 100755
>> --- a/configure
>> +++ b/configure
>> @@ -4440,7 +4440,7 @@ fi
>>
>>  # check for smartcard support
>>  if test "$smartcard" != "no"; then
>> -    if $pkg_config libcacard; then
>> +    if $pkg_config --atleast-version=2.5.1 libcacard; then
>>          libcacard_cflags=$($pkg_config --cflags libcacard)
>>          libcacard_libs=$($pkg_config --libs libcacard)
>>          smartcard="yes"
>> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
>> index ea42e4681d..7b538ae6da 100644
>> --- a/hw/usb/ccid-card-emulated.c
>> +++ b/hw/usb/ccid-card-emulated.c
>> @@ -27,10 +27,7 @@
>>   */
>>
>>  #include "qemu/osdep.h"
>> -#include <eventt.h>
>> -#include <vevent.h>
>> -#include <vreader.h>
>> -#include <vcard_emul.h>
>> +#include <cacard/libcacard.h>
> 
> You should be able to #include <libcacard.h> only.

Yes, you're right. Do you want me to resend or will you handle this when
merging the patch?


Thanks,
Michal

Re: [Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only
Posted by Marc-André Lureau 5 years, 11 months ago
Hi

On Tue, Apr 3, 2018 at 1:48 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
> On 04/03/2018 01:38 PM, Marc-André Lureau wrote:
>> Hi
>>
>> On Tue, Apr 3, 2018 at 12:34 PM, Michal Privoznik <mprivozn@redhat.com> wrote:
>>> When trying to build with latest libcacard-2.5.1, I hit the
>>> following error:
>>>
>>> In file included from hw/usb/ccid-card-passthru.c:12:0:
>>> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
>>>  #warning "Only <libcacard.h> can be included directly"
>>>
>>> While it was fixed in libcacard upstream (so that individual
>>> files can be included directly), it doesn't make much sense.
>>> Let's switch to including the main libcacard.h and also require
>>> at least libcacard-2.5.1 which introduced it. It's available
>>> since late 2015.
>>>
>>> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>>> ---
>>>
>>> diff to v1:
>>> - Introduce configure change to require newer libcacard version
>>>
>>>  configure                   | 2 +-
>>>  hw/usb/ccid-card-emulated.c | 5 +----
>>>  hw/usb/ccid-card-passthru.c | 2 +-
>>>  3 files changed, 3 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/configure b/configure
>>> index 4d0e92c96c..0edec24fff 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -4440,7 +4440,7 @@ fi
>>>
>>>  # check for smartcard support
>>>  if test "$smartcard" != "no"; then
>>> -    if $pkg_config libcacard; then
>>> +    if $pkg_config --atleast-version=2.5.1 libcacard; then
>>>          libcacard_cflags=$($pkg_config --cflags libcacard)
>>>          libcacard_libs=$($pkg_config --libs libcacard)
>>>          smartcard="yes"
>>> diff --git a/hw/usb/ccid-card-emulated.c b/hw/usb/ccid-card-emulated.c
>>> index ea42e4681d..7b538ae6da 100644
>>> --- a/hw/usb/ccid-card-emulated.c
>>> +++ b/hw/usb/ccid-card-emulated.c
>>> @@ -27,10 +27,7 @@
>>>   */
>>>
>>>  #include "qemu/osdep.h"
>>> -#include <eventt.h>
>>> -#include <vevent.h>
>>> -#include <vreader.h>
>>> -#include <vcard_emul.h>
>>> +#include <cacard/libcacard.h>
>>
>> You should be able to #include <libcacard.h> only.
>
> Yes, you're right. Do you want me to resend or will you handle this when
> merging the patch?

I'll let Gerd decide:
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>



-- 
Marc-André Lureau

Re: [Qemu-devel] [PATCH v2] ccid-card: include libcacard.h only
Posted by Gerd Hoffmann 5 years, 11 months ago
On Tue, Apr 03, 2018 at 12:34:37PM +0200, Michal Privoznik wrote:
> When trying to build with latest libcacard-2.5.1, I hit the
> following error:
> 
> In file included from hw/usb/ccid-card-passthru.c:12:0:
> /usr/include/cacard/vscard_common.h:26:2: error: #warning "Only <libcacard.h> can be included directly" [-Werror=cpp]
>  #warning "Only <libcacard.h> can be included directly"
> 
> While it was fixed in libcacard upstream (so that individual
> files can be included directly), it doesn't make much sense.
> Let's switch to including the main libcacard.h and also require
> at least libcacard-2.5.1 which introduced it. It's available
> since late 2015.

Added to usb queue.

thanks,
  Gerd