Mit Subversion möchte ich gern stets auf neuestem Stand bleiben. Daher kompiliere ich mir nachträglich die jeweils letzte Version Subversion als SVN Server in den Standard Apache von Snow Leopard nachträglich einkompilieren, habe ich mir hier mal eine kleine Notiz hinterlegt.

Download der beiden Archive:


# Variable für Version
#
SVNVER=1.6.16

# Zielverzeichnis aufsetzen
#
rm -r /usr/local/subversion-${SVNVER}
mkdir -p /usr/local/subversion-${SVNVER}
rm /usr/local/subversion
ln -sf /usr/local/subversion-${SVNVER} /usr/local/subversion

# Beide Tar-Archive in das gleiche Verzeichnis entpacken
#
tar -xvf subversion-${SVNVER}.tar.bz2
tar -xvf subversion--deps-${SVNVER}.tar.bz2
# Zuerst "neon" kompilieren/installieren,
# da das Rest darauf referenziert
#
cd subversion-${SVNVER}/neon

./configure \
 --with-ssl \
 --with-libs=/opt/local/lib

 make && make install

# Wichtiger Hinweis!!
# Nicht "--enable-shared" sonst gibt's folgenden Fehler:
#
  Undefined symbols:
  "_SSL_SESSION_cmp", referenced from:
  _ne__negotiate_ssl in ne_openssl.o
  ld: symbol(s) not found
  collect2: ld returned 1 exit status
  make[1]: *** [libneon.la] Error 1
  make: *** [subdirs] Error 2

 # Subversion selbst kompilieren/installieren
 # Das --with-jdk ist wichtig, da nach "jni.h" erforderlich ist
 #

 cd ..

 ./configure \
 --prefix=/usr/local/subversion \
 --enable-shared \
 --with-apache-libexecdir=/usr/local/apache2/libexec \
 --with-apxs=/usr/sbin/apxs \
 --with-jdk=/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home \
 --with-ssl \
 --enable-javahl

 make && make install && make install-javahl

 # Symlinks der SVN Binaries in den PATH.
 # Überschreiben der Originale
 #
 for exe in /usr/local/subversion/bin/svn*;  do
  bn=`basename ${exe}`
  sudo /bin/ln -sf ${exe} /usr/bin/${bn}
 done;

 # Apache Syntax kontrollieren, ggf. korrigieren
 #
 sudo apachectl -M

 # Apache neu starten
 #
 sudo apachectl graceful

Durch das make install-javahl ist der JNI Zugriff z.B. mit dem Eclipse Plugin subclipse möglich


Kommentar abgeben

*