OpenSC / openct

OpenCT implements drivers for several smart card readers
57 stars 26 forks source link

Does not build on ArchLinux #13

Open s3rg3 opened 3 weeks ago

s3rg3 commented 3 weeks ago

Hello,

As a proud owner of a WB Electronics' Infinity USB Unlimited card reader, i tried to build OpenCT for ArchLinux, since there was a community recipe at https://aur.archlinux.org/packages/openct, i choosed the easy way and decided to launch it, this resulted with this error:

ifdhandler.c: Dans la fonction « ifdhandler_run »:
ifdhandler.c:239:52: erreur: passage de l'argument 2 de « ifd_get_eventfd » depuis un type pointeur incompatible [-Wincompatible-pointer-types]
  239 |                 sock->fd = ifd_get_eventfd(reader, &sock->events);
      |                                                    ^~~~~~~~~~~~~
      |                                                    |
      |                                                    int *
Dans le fichier inclus depuis internal.h:17,
                 depuis ifdhandler.c:7:
../../src/include/openct/ifd.h:182:65: note: « short int * » attendu mais l'argument est de type « int * »
  182 | tern int                      ifd_get_eventfd(ifd_reader_t *, short *);
      |                                                               ^~~~~~~

make[3]: *** [Makefile:1044: ifdhandler-ifdhandler.o] Error 1

I will buy a newer device, but nevertheless i want to see if someone could help me here before.

Thank you.

saper commented 3 weeks ago

Can you check if https://github.com/OpenSC/openct/pull/12 fixes the build for you?

s3rg3 commented 3 weeks ago

I tested it previously from the fork but it gives me this error:

process.c:461:61: error: passing argument 4 of 'ct_tlv_get_opaque' from incompatible pointer type [-Wincompatible-pointer-types]
  461 |             || !ct_tlv_get_opaque(args, CT_TAG_DATA, &data, &data_len))
      |                                                             ^~~~~~~~~
      |                                                             |
      |                                                             unsigned int *
In file included from process.c:20:
../../src/include/openct/tlv.h:40:62: note: expected 'size_t *' {aka 'long unsigned int *'} but argument is of type 'unsigned int *'
   40 |                                 ifd_tag_t, unsigned char **, size_t *);
      |                                                              ^~~~~~~~
make[3]: *** [Makefile:752: libifd_la-process.lo] Error 1