Le 01/04/12 09:07, Frank Neuber a écrit :
Hi,

Hello,

in the build log I found:
checking if PC/SC should be used... yes
checking for pcsc includes... -I/usr/include -I/usr/include/PCSC
configure: WARNING: No pcsc libraries found, SCard driver will not be available.

This is why pcsclite.h is not found.
I wonder why /usr/include/PCSC/winscard.h is available. The pcsclite.h file is 
in the same package!
sct@u110432b:~$ dpkg -S winscard.hlibpcsclite-dev
libpcsclite-dev: /usr/include/PCSC/winscard.h
sct@u110432b:~$ dpkg -S pcsclite.h
libpcsclite-dev: /usr/include/PCSC/pcsclite.h

Could it be a problem with the libpcsclite-dev on the build system.
I don't know how the build system works. On my system it builds well.

The problem is that libpcsclite1 is now a multi arch library.
So the lib libpcsclite.so is no more in /usr/lib/libpcsclite.so but in /usr/lib/x86_64-linux-gnu/libpcsclite.so on AMD64 systems.

The configure script of pcsc-cyberjack searches the library using a fixed list of directories. From m4/pcsc.m4 line 68:

AC_ARG_WITH(pcsc-libs, [ --with-pcsc-libs=DIR adds pcsc library path],
      [pcsc_search_lib_dirs="$withval"],
      [pcsc_search_lib_dirs="/usr/lib64 \
                          /usr/lib \
                          /usr/local/lib \
                          /usr/lib/pcsc/lib \
                      /usr/local/pcsc/lib \
                      /lib"])
    dnl search for pcsc libs
    for d in $pcsc_search_lib_dirs; do
       AQ_SEARCH_FILES("$d",$pcsc_search_lib_names)
       if test -n "$found_file" ; then
          pcsc_libraries="-L$d"
          pcsc_lib="-l`echo $found_file | sed 's/lib//;s/\.so*//;s/\.a//'`"
          break
       fi
    done

As you can see /usr/lib/x86_64-linux-gnu is not in the list.

A (too) simple patch is:
--- ../pcsc.m4  2012-04-01 12:18:38.000000000 +0200
+++ m4/pcsc.m4  2012-04-01 12:27:48.000000000 +0200
@@ -68,6 +68,7 @@
AC_ARG_WITH(pcsc-libs, [ --with-pcsc-libs=DIR adds pcsc library path],
       [pcsc_search_lib_dirs="$withval"],
       [pcsc_search_lib_dirs="/usr/lib64 \
+             /usr/lib/x86_64-linux-gnu \
                           /usr/lib \
                          /usr/local/lib \
                           /usr/lib/pcsc/lib \


But build will fail on all the other Debian architectures.

The problem should be solved upstream. Using a fixed list of library directories is a bad idea. The correct solution is to _link_ with libpcsclite to know if the library is found by the linker.

Or in debian/rules use something like (untested):
--with-pcsc-libs=/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)

Bye

--
 Dr. Ludovic Rousseau



--
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