20130621

Compilación de OpenDNIe en OS X Mountain Lion



Los tiempos cambian, y la antigua entrada dedicada a cómo compilar OpenDNIe en OS X se ha quedado muy obsoleta, y la mayor parte de lo que se explica allí ya no sirve para OS X 10.8 (Mountain Lion).


Así que, vamos a ver qué se puede hacer para compilar una versión más reciente de OpenDNIe en ese sistema.

Como hice en su día, he dejado disponible aquí para quien no tenga los medios, los conocimientos o las ganas de hacer esto, y mientras no haya una versión oficial en OpenSC.



Requerimientos previos 
Como ocurría con las versiones anteriores, se necesita tener instaladas las herramientas para desarrolladores de Apple (Xcode). Sin embargo, debido a la forma en que han ido modificándolas, ahora es neceserio hacer unos pocos pasos más.
Tras haber instalado XCode (grauito), desde la Mac App Store, se debe acceder a las preferencias, y realizar la descarga del componente "Command Line Tools".


Además, el componente PackageMaker, que sirve para crear paquetes de instalación desde la línea de comandos, está ahora sólo disponible como una descarga aparte desde la web (https://developer.apple.com/downloads/index.action - buscar Auxiliary Tools for XCode). Tras descargarlo, se debe dejar en la carpeta Aplicaciones.

Finalmente, como ya ocurría con versiones anteriores, se debe instalar autoconf automake libtool, pkgconfig y curl. Para mí lo más cómodo es hacerlo usando MacPorts:
$ sudo port install autoconf
$ sudo port install automake
$ sudo port install libtool +universal
$ sudo port install pkgconfig +universal
$ sudo port install curl +universal
También es posible hacer esta instalación usando Porticus, una interfaz gráfica para MacPorts.


Compilación e instalación
Ahora, debemos descargar el código fuente de una versión de OpenSC-OpenDNIe compatible con Mountain Lion. En el momento de escribir estas líneas, está pendiente una petición para incorporar al código principal de OpenSC todos los cambios existentes en:
https://github.com/OpenDNIe/OpenSC/tree/opendnie
Así que usaremos esa versión para trabajar.

Tras haberlo descargado y descomprimido en un directorio, puesto que la versión actual de OpenSC no está preparada para generar correctamente un paquete de tokend válido, debemos quitar toda esa parte del proceso. 
Para ello, se debe modificar el fichero que hay en MacOSX/build-package.in, haciendo los siguentes cambios:

# Check out OpenSC.tokend, if not already fetched.
#if ! test -e OpenSC.tokend; then
#    git clone http://github.com/OpenSC/OpenSC.tokend.git
#fi

# Fetch binary dependencies
#if ! test -f build-10.6.tar.gz; then
#    curl -O https://www.opensc-project.org/downloads/build-10.6.tar.gz
#fi

# Check for correctness
#if ! test $(md5 -q build-10.6.tar.gz) == "5686fb4dda6e9f1f07d06293a25fdd37"; then
#    echo "MD5 of binary components does not match!"
#    exit 1
#fi

# Unpack the binary building components
#if ! test -e OpenSC.tokend/build; then
#    tar -C OpenSC.tokend -xzvf build-10.6.tar.gz
#fi

# Create the symlink to OpenSC sources
#test -L OpenSC.tokend/build/opensc-src || ln -sf ${BUILDPATH}/src OpenSC.tokend/build/opensc-src

# build and copy OpenSC.tokend
#xcodebuild -configuration Deployment -project OpenSC.tokend/Tokend.xcodeproj
#mkdir -p target/System/Library/Security/tokend
#mv OpenSC.tokend/build/OpenSC.tokend target/System/Library/Security/tokend


Una vez corregido, compilamos.
$ ./MacOSX/build
Una vez haya terminado, habrá creado en directorio tanto el paquete de instalación como una imagen de disco con el mismo.

Ahora podemos instalar el paquete, y hacer los mismos pasos que indicaba en la entrada anterior (obviamente, salvo los relativos a tokend, que hemos excluido del paquete).

No hay comentarios:

Publicar un comentario