Construya todo el cliente svn estático en Mac OSX, error en mod_dav_svn.so

Estoy intentando build el cliente svn en Mac OS 10.7.5. Mi objective es build svn client completamente estático para que no dependa de ningún dylib para ser instalado. La idea es que el cliente svn se pueda copyr a un disco en la llave, o download y funcionar sin necesidad de instalar o configurar nada.

Descargué el código fuente svn (subversion-1.7.8) y todas las dependencies requeridas (apr, par-util, neon, sqlite-amalgamation) y establecí el ciclo configure – make – make install.

La opción de configuration de Svn tiene el indicador –enable-all-static que crea el cliente svn que no depende de dylibs externos. Sin embargo, la construcción siempre falla con el siguiente post:

Warning! dlname not found in /Volumes/mydisk/build/svn/libexec/mod_dav_svn.la. Assuming installing a .so rather than a libtool archive. chmod 755 /Volumes/mydisk/build/svn/libexec/mod_dav_svn.so chmod: /Volumes/mydisk/wsvn/build/svn/libexec/mod_dav_svn.so: No such file or directory apxs:Error: Command failed with rc=65536 . make: *** [install-mods-shanetworking] Error 1 

Parece que la compilation está buscando mod_dav_svn.so incluso cuando no es necesario y todo comstack estático.

¡Lo gracioso es que el cliente svn que era build realmente se ejecuta! Sin embargo, me gustaría completar la compilation e instalarla correctamente.

Mis preguntas son:

  1. ¿Este error de construcción es real o simplemente algo que puedo ignorar?
  2. ¿Cómo puedo evitar este error de compilation para completar la compilation?

Gracias

En mi experiencia puede ser complicado comstackr aplicaciones que hacen uso de bibliotecas de terceros y / o bibliotecas de sistemas como glibc, etc. El problema es que, además de que tu aplicación está construida estáticamente, todas estas bibliotecas deben proporcionar una dinámica ( .so) versión así como una versión estática (.a) y algunas bibliotecas simplemente no proporcionan esto, al less no fácilmente. Entonces usted se ve obligado a comstackr todo en la stack de dependencies y esto puede ser difícil.

Dicho esto, cortesía del Blog de Rick Vanderzwet :

 % curl -O wget http://archive.apache.org/dist/subversion/subversion-1.7.8.tar.gz % tar zxvf subversion-1.7.8.tar.gz % cd subversion-1.7.8/ % ./get-deps.sh % ./configure --with-ssl --without-gssapi --without-swig --enable-all-static % make 

Confirma con los siguientes commands:

tamaño del ejecutable?

 % ls -lh subversion/svn/svn -rwxrwxr-x 1 saml saml 11M Jan 19 22:09 subversion/svn/svn 

ejecutable ejecuta?

 % subversion/svn/svn --version svn, version 1.7.8 (r1419691) compiled Jan 19 2013, 22:03:50 Copyright (C) 2012 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - handles 'http' scheme - handles 'https' scheme 

¿De qué depende el ejecutable?

 % ldd subversion/svn/svn linux-vdso.so.1 => (0x00007fffd7463000) libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x00000034fc600000) libm.so.6 => /lib64/libm.so.6 (0x00000034e7600000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003210800000) libcrypto.so.10 => /lib64/libcrypto.so.10 (0x000000399a000000) libz.so.1 => /lib64/libz.so.1 (0x00000034e8600000) libmagic.so.1 => /usr/lib64/libmagic.so.1 (0x00000034ef600000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00000034eb200000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00000034eda00000) librt.so.1 => /lib64/librt.so.1 (0x00000034e8a00000) libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000034f5e00000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00000034e7e00000) libdl.so.2 => /lib64/libdl.so.2 (0x00000034e7a00000) libc.so.6 => /lib64/libc.so.6 (0x00000034e7200000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00000034ea200000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x000000320f800000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x0000003210000000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003d3ce00000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x0000003210400000) /lib64/ld-linux-x86-64.so.2 (0x00000034e6e00000) libfreebl3.so => /lib64/libfreebl3.so (0x00000034f6200000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x000000320fc00000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00000034f3a00000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00000034e8e00000) 

Este último bit muestra que este ejecutable aún depende de varias bibliotecas dinámicas, ¡pero es mucho less que una típica subversión construida dinámicamente!

EDIT # 1

Si no necesita soporte de mod_dav_svn , puede desactivarlo mediante el uso del --without-serf para configure .

NOTA n. ° 1: deshabilitar esta compatibilidad deshabilitará la capacidad de su cliente svn para acceder a los repositorys SVN a través de http y https .

NOTA # 2: Si observa el resultado del command svn --version , puede ver qué modules de acceso al repository (RA) se han comstackdo en su cliente svn .