A ver si alguien puede decirme qué tengo que modificar en el código fuente para poder compilar el puñetero OpenDNIe en Ubuntu 12.04 (Precise Pangolin) de 64 bits.
Siguiendo los pasos aquí indicados, me encuentro con el siguiente error en el make:
CCLD pkcs11-tool /usr/bin/ld: ../../src/common/.libs/libpkcs11.a(libscdl.o): undefined reference to symbol 'lt_dlsym' /usr/bin/ld: note: 'lt_dlsym' is defined in DSO /usr/lib/x86_64-linux-gnu/libltdl.so so try adding it to the linker command line /usr/lib/x86_64-linux-gnu/libltdl.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[3]: *** [pkcs11-tool] Error 1 make[3]: se sale del directorio «/home/filiprino/opendnie/src/tools» make[2]: *** [all-recursive] Error 1 make[2]: se sale del directorio «/home/filiprino/opendnie/src» make[1]: *** [all-recursive] Error 1 make[1]: se sale del directorio «/home/filiprino/opendnie» make: *** [all] Error 2
¿Operación no válida a la hora de leer símbolos?
He instalado todos los paquetes que hay como requisitos y las librerías que trata de leer están en sus respectivos directorios.
SOLUCION:
Aplicar una de estas soluciones:
- a) Solución aquí.
Básicamente hay que cambiar el orden en el que se vincula una librería. Descuido típico.
-pkcs11_tool_LDADD = $(OPTIONAL_OPENSSL_LIBS) $(LTLIB_LIBS) $(top_builddir)/src/common/libpkcs11.la +pkcs11_tool_LDADD = $(top_builddir)/src/common/libpkcs11.la $(OPTIONAL_OPENSSL_LIBS) $(LTLIB_LIBS)
Archivo src/tools/Makefile.am
- b) Otra solución está aquí:
compat_getopt_main_LDADD = libcompat.la libpkcs11_la_SOURCES = libpkcs11.c libpkcs11.h +libpkcs11_la_LDFLAGS = $(LTLIB_LIBS) libpkcs11_la_LIBADD = libscdl.la libscdl_la_SOURCES = libscdl.c libscdl.h
Archivo src/common/Makefile.am
Evidentemente después de aplicar uno de estos cambios se debe volver a hacer un configure. He utilizado el primer parche. Aviso de que no es recomendable agregar directamente a la variable LIBS de src/common/Makefile.am la librería /usr/lib/libltdl.la.
Cualquier otro cambio que sea equivalente también funcionará, aunque probablemente uno se complique la posterior modificación del código fuente.
Además, hay un paquete para Ubuntu funcional en la web del Cenatic: opensc_0.12.1-1ubuntu1-svn385_amd64.deb.