BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

[Problema] Instalación de OpenDNIe desde código fuente [solucionado]

Filiprino
1

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:

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.

BocaDePez
BocaDePez

Instala el paquete

🗨️ 11
Filiprino

El paquete está instalado.

🗨️ 10
BocaDePez
BocaDePez

Entonces para que rallos compilas el fuente?

🗨️ 9
Filiprino

Porque necesito compilar el código fuente. Los paquetes que hay en la web www.dnielectronico.es no sirven para Ubuntu 12.04.

Además, no sé para qué me dices que instale el paquete libltdl si ya está instalado (lo digo en el post de cabecera).

🗨️ 8
BocaDePez
BocaDePez
🗨️ 7
BocaDePez
BocaDePez
🗨️ 5
BocaDePez
BocaDePez
🗨️ 4
BocaDePez
BocaDePez
🗨️ 2