I'm working on an Apache module, like mod_dav_svn, but using mod_atom to
support Subversion repository access with the Atom Publishing Protocol,
RFC 5023: http://code.google.com/p/mod-atom-svn/
I was inspired by the last paragraph of the Repository Access Layer
section of the Subversion book:
http://svnbook.red-bean.com/nightly/en/svn.developer.layerlib.html#svn.developer.layerlib.ra
I'm following mod_dav_svn's example, but confess I'm stuck linking with
Subversion's shared libraries. In general, is there a resource anywhere
suggesting how projects can use autoconf to build against Subversion?
To build against Apache, I stole the autoconf / automake setup from
mod-skeleton: http://code.google.com/p/modskeleton/
First, on Debian Subversion's headers are installed
in /usr/include/subversion-1. Not sure if this is typical? Is it
preferable to use #include <subversion-1/svn_fs.h> or use #include
<svn_fs.h> and -I/usr/include/subversion-1? After reading the autoconf
manual, I wonder if we should use AC_CHECK_HEADER(svn_fs.h)? I guess the
former has consequences if one wants to build against a Subversion build
directory, instead of where Subversion is installed on the system?
Second, on Debian Subversion's shared libraries are split into
libsvn_fs-1.so, libsvn_ra-1.so, etc. Again, not sure if this is typical
or if our autoconf setup should anticipate building against an
amalgamated libsvn-1.so on some systems? And again, I guess we should
use AC_CHECK_LIB(libsvn_fs-1)?
I'll continue studying my autoconf references, but if anyone with more
experience can point out the "right" way to build against Subversion,
it'd be much appreciated! A resource suggesting how projects can use
autoconf to build against Subversion would be ideal...
Incidentally, I'm not using mod_dav, but I am trying to follow
mod_dav_svn's example, and struggling to understand the mod_dav
repository interface. The best documentation I found is mod_dav.h, but
I'm still struggling for a high level picture of how mod_dav's interface
works. For instance, how is the root_dir which is passed to get_resource
of dav_hooks_repository calculated? How are get_resource and deliver
related? Where in mod_dav_svn is dav_resource_private defined?
Nick Kew's Apache Modules Book has been a great reference, but
unfortunately it doesn't touch on mod_dav. I'll continue reading the
source, but if anyone can suggest a faster way of getting up to speed on
mod_dav_svn, it'd also be much appreciated!
Thanks and best wishes, Jack
Received on 2008-03-08 20:43:18 CET