[PATCH] Fix a typo in chapter 6

Daniel Shahaf d.s at daniel.shahaf.name
Sun Jan 5 23:38:55 UTC 2020


wuzhouhui wrote on Sun, Jan 05, 2020 at 11:36:51 +0800:
> +++ ch06-server-configuration.xml  (working copy)
> @@ -2076,7 +2076,7 @@
>          to load the <command>mod_dav_svn</command> module using the
>          <literal>LoadModule</literal> directive.  This directive must
>          precede any other Subversion-related configuration items.  If
> -        your Apache was installed using the default layout, your
> +        your Subversion was installed using the default layout, your
>          <command>mod_dav_svn</command> module should have been
>          installed in the <filename>modules</filename> subdirectory of
>          the Apache install location (often

In Subversion's build, mod_dav_svn is installed as follows:

    % make -n install-mods-shared
    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 mod_dav_svn.la ; fi
    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 mod_authz_svn.la ; fi

When apxs(1) is invoked this way, it'll install the modules to the directory
given by LIBEXECDIR on the command line.   Looking back into Makefile's
sources, build/generator/templates/build-outputs.mk.ezt and Makefile.in, that
directory is ultimately determined by the --with-apache-libexecdir option to
Subversion's configure.  That option selects between three values for the
modules installation directory: Subversion's libexecdir, httpd's libexecdir,
and a manually-specified directory.  The first of these is the default.

So, I think the patch is correct, but incomplete.  The remainder of the changed
sentence implies that the default installation location is ${httpd's
libexecdir}/modules, and that simply isn't true.  That location is only the
default if one builds Subversion with --with-apache-libexecdir=yes.

I suppose the text should simply name /usr/local/libexec as the default
location of the modules.  There _may_ be room to also suggest the "modules"
subdirectory of httpd's libexecdir as an alternative.  (That directory is given
by «apxs -q libexecdir».)  The complication is that the two informalexample's
in the following paragraphs are written in a way that assumes
--with-apache-libexecdir=yes is the default, so «LoadModule … modules/mod_dav_svn.so»
is the common case and «LoadModule … ${svn's prefix}/lib/mod_dav_svn.so» is the
rare case, whereas reality is the other way around.  So those two examples and the
prose around them may need to be updated too…

(But then again, it's very late in the day here and it's possible that I'm
missing some obvious solution.  Mike?)

Cheers,

Daniel



More information about the svnbook-dev mailing list