You are here: Home Tech Compile Subversion on OS X with Neon, SSL

Compile Subversion on OS X with Neon, SSL

by Chris Shenton last modified Aug 12, 2009 10:10 AM
Problems abound: system's old neon, makefile ignoring location of new neon, ssl, and lions and tigers and bears, oh my.

There's a fine package installer for Subversion on the Collabnet site, but I found it's installation in /opt interfered with a zc.buildout I was doing with plone.recipe.apache -- it failed to find some part that it deduced from svn was also in opt.  So I wanted to build it from source myself.

I found that if you needed to download the correct version of 'neon': when you ./configure subversion it will tell you which version it needs in the logs that spew by.  Download it but do NOT build and install it.  There's a bug in the subversion build process that ignores the location you specify to find it, e.g., --with-neon=/usr/local is ignored and it links at runtime with Apple's old neon.

(I also removed any old /usr/local/{bin,include,lib}/neon* stuff, but don't know if that was necessary).

Instead, just uncompress and untar it.  Then in the subversion source directory, make a symlink to that directory named simply 'neon', e.g.:

cshenton@Asylum/subversion-1.6.4$ ln -s ../neon-0.28.4 neon

The subversion configure will find it fine. Then configure it, telling it to compile neon with SSL so you can access https resources:

cshenton@Asylum/subversion-1.6.4$ ./configure --with-ssl --without-berkeley-db

For some reason it complains about not being able to find Berkeley DB despite the switch above, but we don't want it anyway. Make and install as normal:

cshenton@Asylum/subversion-1.6.4$ make
cshenton@Asylum/subversion-1.6.4$ sudo make install

Give it a run. If all's well it should not complain about things like:

dyld: lazy symbol binding failed: Symbol not found: _ne_set_connect_timeout
  Referenced from: /usr/local/lib/libsvn_ra_neon-1.0.dylib
  Expected in: flat namespace

dyld: Symbol not found: _ne_set_connect_timeout
  Referenced from: /usr/local/lib/libsvn_ra_neon-1.0.dylib
  Expected in: flat namespace

Trace/BPT trap

or

dyld: lazy symbol binding failed: Symbol not found: _SSL_CTX_set_client_cert_cb
  Referenced from: /usr/local/lib/libsvn_ra_neon-1.0.dylib
  Expected in: flat namespace

dyld: Symbol not found: _SSL_CTX_set_client_cert_cb
  Referenced from: /usr/local/lib/libsvn_ra_neon-1.0.dylib
  Expected in: flat namespace

Share this: