<div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 5, 2020 at 6:56 PM Daniel Shahaf <<a href="mailto:d.s@daniel.shahaf.name">d.s@daniel.shahaf.name</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">wuzhouhui wrote on Sun, Jan 05, 2020 at 11:36:51 +0800:<br>
> +++ ch06-server-configuration.xml (working copy)<br>
> @@ -2076,7 +2076,7 @@<br>
> to load the <command>mod_dav_svn</command> module using the<br>
> <literal>LoadModule</literal> directive. This directive must<br>
> precede any other Subversion-related configuration items. If<br>
> - your Apache was installed using the default layout, your<br>
> + your Subversion was installed using the default layout, your<br>
> <command>mod_dav_svn</command> module should have been<br>
> installed in the <filename>modules</filename> subdirectory of<br>
> the Apache install location (often<br>
<br>
In Subversion's build, mod_dav_svn is installed as follows:<br>
<br>
% make -n install-mods-shared<br>
if true ; then cd subversion/mod_dav_svn ; /usr/bin/install -c -d "/usr/local/libexec" ; /usr/bin/apxs2 -i -S LIBEXECDIR="/usr/local/libexec" -n dav_svn <a href="http://mod_dav_svn.la" rel="noreferrer" target="_blank">mod_dav_svn.la</a> ; fi<br>
if true ; then cd subversion/mod_authz_svn ; /usr/bin/install -c -d "/usr/local/libexec" ; /usr/bin/apxs2 -i -S LIBEXECDIR="/usr/local/libexec" -n authz_svn <a href="http://mod_authz_svn.la" rel="noreferrer" target="_blank">mod_authz_svn.la</a> ; fi<br>
<br>
When apxs(1) is invoked this way, it'll install the modules to the directory<br>
given by LIBEXECDIR on the command line. Looking back into Makefile's<br>
sources, build/generator/templates/build-outputs.mk.ezt and Makefile.in, that<br>
directory is ultimately determined by the --with-apache-libexecdir option to<br>
Subversion's configure. That option selects between three values for the<br>
modules installation directory: Subversion's libexecdir, httpd's libexecdir,<br>
and a manually-specified directory. The first of these is the default.<br>
<br>
So, I think the patch is correct, but incomplete. The remainder of the changed<br>
sentence implies that the default installation location is ${httpd's<br>
libexecdir}/modules, and that simply isn't true. That location is only the<br>
default if one builds Subversion with --with-apache-libexecdir=yes.<br>
<br>
I suppose the text should simply name /usr/local/libexec as the default<br>
location of the modules. There _may_ be room to also suggest the "modules"<br>
subdirectory of httpd's libexecdir as an alternative. (That directory is given<br>
by «apxs -q libexecdir».) The complication is that the two informalexample's<br>
in the following paragraphs are written in a way that assumes<br>
--with-apache-libexecdir=yes is the default, so «LoadModule … modules/mod_dav_svn.so»<br>
is the common case and «LoadModule … ${svn's prefix}/lib/mod_dav_svn.so» is the<br>
rare case, whereas reality is the other way around. So those two examples and the<br>
prose around them may need to be updated too…<br>
<br>
(But then again, it's very late in the day here and it's possible that I'm<br>
missing some obvious solution. Mike?)</blockquote><div><br></div><div>As I recall it, the original paragraph was simply trying to help folks know roughly where mod_dav_svn winds up while hinting at the fact that Apache's installation directory and layout generally affects the result, and certainly without attempting to nail down a specific (probably OS-and-version-dependent) directory.</div><div><br></div>I think the easiest fix for the text that preserves these intentions is to replace "If your Apache was installed using the default layout" with something like: "Unless Apache or Subversion were installed on your system in a non-standard way" or "In the typical deployment scenario" or ...</div><div class="gmail_quote"><br></div><div class="gmail_quote">-- Mike</div></div>