On Tue, Sep 8, 2026 at 10:52 AM <[email protected]> wrote:

> Author: lyalyakin
> Date: Tue Sep  8 14:52:19 2026
> New Revision: 1938011
>
> Log:
> Remove section III (Building a Subversion server) from INSTALL.
>
> The build-related content of the section has been moved to the dedicated
> Apache HTTP Server entry of the Dependencies in Detail section. The rest of
> the content duplicates what's already in SVNBook and has been removed.
>
> * INSTALL
>   (Contents): Update the table of contents.
>   (II.E): New subsection with a brief summary of the two servers (svnserve
>    and httpd).
>   (III): Remove.
>   (III, IV): Renumber sections IV and V to III and IV.
>   (IV.12): Remove the reference to section III.D.
>
> Modified:
>    subversion/trunk/INSTALL
>
> Modified: subversion/trunk/INSTALL
>
> ==============================================================================
> --- subversion/trunk/INSTALL    Tue Sep  8 14:51:40 2026        (r1938010)
> +++ subversion/trunk/INSTALL    Tue Sep  8 14:52:19 2026        (r1938011)
> @@ -18,17 +18,12 @@ Contents:
>         B. Building with CMake (Windows and Unix)
>         C. Building with vcproj/vcxproj (Windows only, deprecated)
>         D. Running the test suite
> +       E. Building a Subversion server
>
> -   III. BUILDING A SUBVERSION SERVER
> -       A. Setting Up Apache Httpd
> -       B. Making and Installing the Subversion Apache Server Module
> -       C. Configuring Apache Httpd for Subversion
> -       D. Running and Testing
> -       E. Alternative:  'svnserve' and ra_svn
> +   III. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA)
>
> -    IV. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA)
> +    IV. DEPENDENCIES IN DETAIL
>
> -     V. DEPENDENCIES IN DETAIL
>
>
>
> @@ -420,271 +415,30 @@ II.   INSTALLATION
>
>        Run the ctests command from the build directory.
>
> -
> -III.  BUILDING A SUBVERSION SERVER
> -      ============================
> -
> -      Subversion has two servers you can choose from:  svnserve and
> -      Apache.  svnserve is a small, lightweight server program that is
> -      automatically compiled when you build Subversion's source.  Apache
> -      is a more heavyweight HTTP server, but tends to have more features.
> -
> -      This section primarily focuses on how to build Apache and the
> -      accompanying mod_dav_svn server module for it.  If you plan to use
> -      svnserve instead, jump right to section E for a quick explanation.
> -
> -
> -  A.  Setting Up Apache Httpd
> -      -----------------------
> -
> -      1.  Obtaining and Installing Apache Httpd 2
> -
> -      Subversion tries to compile against the latest released version
> -      of Apache httpd 2.2+.  The easiest thing for you to do is download
> -      a source tarball of the latest release and unpack that.
> -
> -      If you have questions about the Apache httpd 2.2 build, please
> consult
> -      the httpd install documentation:
> -
> -          https://httpd.apache.org/docs-2.2/install.html
> -
> -      At the top of the httpd tree:
> -
> -          $ ./buildconf
> -          $ ./configure --enable-dav --enable-so --enable-maintainer-mode
> -
> -      The first arg says to build mod_dav.
> -
> -      The second arg says to enable shared module support which is needed
> -      for a typical compile of mod_dav_svn (see below).
> -
> -      The third arg says to include debugging information.  If you
> -      built Subversion with --enable-maintainer-mode, then you should
> -      do the same for Apache; there can be problems if one was
> -      compiled with debugging and the other without.
> -
> -      Note: if you have multiple db versions installed on your system,
> -      Apache might link to a different one than Subversion, causing
> -      failures when accessing the repository through Apache.  To prevent
> -      this from happening, you have to tell Apache which db version to
> -      use and where to find db.  Add --with-dbm=db4 and
> -      --with-berkeley-db=/usr/local/BerkeleyDB.4.2 to the configure
> -      line.  Make sure this is the same db as the one Subversion uses.
> -      This note assumes you have installed Berkeley DB 4.2.52
> -      at its default locations.
> -
> -      You may also want to include other modules in your build. Add
> -      --enable-ssl to turn on SSL support, and --enable-deflate to turn on
> -      compression support, for example.  Consult the Apache documentation
> -      for more details.
> -
> -      All instructions below assume you configured Apache to install
> -      in its default location, /usr/local/apache2/; substitute
> -      appropriately if you chose some other location.
> -
> -      Compile and install apache:
> -
> -          $ make && make install
> -
> -
> -  B.  Making and Installing the Subversion Apache Server Module
> -      ---------------------------------------------------------
> -
> -      Go back into your subversion working copy and run ./autogen.sh if
> -      you need to.  Then, assuming Apache httpd 2.2 is installed in the
> -      standard location, run:
> -
> -          $ ./configure
> -
> -      Note: do *not* configure subversion with "--disable-shared"!
> -      mod_dav_svn *must* be built as a shared library, and it will
> -      look for other libsvn_*.so libraries on your system.
> -
> -      If you see a warning message that the build of mod_dav_svn is
> -      being skipped, this may be because you have Apache httpd 2.x
> -      installed in a non-standard location.  You can use the
> -      "--with-apxs=" option to locate the apxs script:
> -
> -          $ ./configure --with-apxs=/usr/local/apache2/bin/apxs
> -
> -      Note: it *is* possible to build mod_dav_svn as a static library
> -      and link it directly into Apache. Possible, but painful. Stick
> -      with the shared library for now; if you can't, then ask.
> -
> -          $ rm /usr/local/lib/libsvn*
> -
> -      If you have old subversion libraries sitting on your system,
> -      libtool will link them instead of the `fresh' ones in your tree.
> -      Remove them before building subversion.
> -
> -          $ make clean && make && make install
> -
> -      After the make install, the Subversion shared libraries are in
> -      /usr/local/lib/.  mod_dav_svn.so should be installed in
> -      /usr/local/libexec/ (or elsewhere, such as
> /usr/local/apache2/modules/,
> -      if you passed --with-apache-libexecdir to configure).
> -
> -
> -      Section II.C explains how to build the server on Windows.
> -
> -
> -  C.  Configuring Apache Httpd for Subversion
> -      ---------------------------------------
> -
> -      The following section is an abbreviated version of the
> -      information in the Subversion Book
> -      (https://svnbook.red-bean.com).  Please read chapter 6 for more
> -      details.
> -
> -      The following assumes you have already created a repository.
> -      For documentation on how to do that, see README.
> -
> -      The following also assumes that you have modified
> -      /usr/local/apache2/conf/httpd.conf to reflect your setup.
> -      At a minimum you should look at the User, Group and ServerName
> -      directives.  Full details on setting up apache can be found at:
> -      https://httpd.apache.org/docs-2.2/
> -
> -      First, your httpd.conf needs to load the mod_dav_svn module.
> -      If you pass --enable-mod-activation to Subversion's configure,
> -      'make install' target should automatically add this line for you.
> -      In any case, if Apache HTTPD gives you an error like "Unknown
> -      DAV provider: svn", then you may want to verify that this line
> -      exists in your httpd.conf:
> -
> -         LoadModule dav_svn_module     modules/mod_dav_svn.so
> -
> -      NOTE: if you built mod_dav as a dynamic module as well, make sure
> -      the above line appears after the one that loads mod_dav.so.
> -
> -      Next, add this to the *bottom* of your httpd.conf:
> -
> -      <Location /svn/repos>
> -          DAV svn
> -          SVNPath /absolute/path/to/repository
> -      </Location>
> -
> -      This will give anyone unrestricted access to the repository.  If
> -      you want limited access, read or write, you add these lines to
> -      the Location block:
> -
> -          AuthType Basic
> -          AuthName "Subversion repository"
> -          AuthUserFile /my/svn/user/passwd/file
> -
> -      And:
> -
> -          a) For a read/write restricted repository:
> -
> -             Require valid-user
> -
> -          b) For a write restricted repository:
> -
> -             <LimitExcept GET PROPFIND OPTIONS REPORT>
> -                 Require valid-user
> -             </LimitExcept>
> -
> -          c) For separate restricted read and write access:
> -
> -             AuthGroupFile /my/svn/group/file
> -
> -             <LimitExcept GET PROPFIND OPTIONS REPORT>
> -                 Require group svn_committers
> -             </LimitExcept>
> -
> -             <Limit GET PROPFIND OPTIONS REPORT>
> -                 Require group svn_committers
> -                 Require group svn_readers
> -             </Limit>
> -
> -      ### FIXME Tutorials section refers to old 2.0 docs
> -      These are only a few simple examples.  For a complete tutorial
> -      on Apache access control, please consider taking a look at the
> -      tutorials found under "Security" on the following page:
> -      https://httpd.apache.org/docs-2.0/misc/tutorials.html
> -
> -      In order for 'svn cp' to work (which is actually implemented as a
> -      DAV COPY command), mod_dav needs to be able to determine the
> -      hostname of the server.  A standard way of doing this is to use
> -      Apache's ServerName directive to set the server's hostname.  Edit
> -      your /usr/local/apache2/conf/httpd.conf to include:
> -
> -      ServerName svn.myserver.org
> -
> -      If you are using virtual hosting through Apache's NameVirtualHost
> -      directive, you may need to use the ServerAlias directive to specify
> -      additional names that your server is known by.
> -
> -      If you have configured mod_deflate to be in the server, you can
> enable
> -      compression support for your repository by adding the following line
> -      to your Location block:
> -
> -          SetOutputFilter DEFLATE
> -
> -
> -      NOTE: If you are unfamiliar with an Apache directive, or not exactly
> -      sure about what it does, don't hesitate to look it up in the
> -      documentation:
> https://httpd.apache.org/docs-2.2/mod/directives.html.
> -
> -      NOTE: Make sure that the user 'nobody' (or whatever UID the
> -      httpd process runs as) has permission to read and write the
> -      Berkeley DB files!  This is a very common problem.
> -
> -
> -  D.  Running and Testing
> -      -------------------
> -
> -      Fire up apache 2:
> -
> -          $ /usr/local/apache2/bin/apachectl stop
> -          $ /usr/local/apache2/bin/apachectl start
> -
> -      Check /usr/local/apache2/logs/error_log to make sure it started
> -      up okay.
> -
> -      Try doing a network checkout from the repository:
> -
> -          $ svn co http://localhost/svn/repos wc
> -
> -      The most common reason this might fail is permission problems
> -      reading the repository db files.  If the checkout fails, make
> -      sure that the httpd process has permission to read and write to
> -      the repository.  You can see all of mod_dav_svn's complaints in
> -      the Apache error logfile, /usr/local/apache2/logs/error_log.
> -
> -      To run the regression test suite for networked Subversion, see
> -      the instructions in subversion/tests/cmdline/README.
> -      For advice about tracing problems, see "Debugging the server" in
> -      https://subversion.apache.org/docs/community-guide/.
>
> +  E.  Building a Subversion server
> +      ----------------------------
>
> -  E.  Alternative:  'svnserve' and ra_svn
> -      -----------------------------------
> +      Subversion has two servers you can choose from, svnserve and
> +      Apache HTTP Server (httpd):
>
> -      An alternative network layer is libsvn_ra_svn (on the client
> -      side) and the 'svnserve' process on the server.  This is a
> -      simple network layer that speaks a custom protocol over plain
> -      TCP (documented in libsvn_ra_svn/protocol):
> +      - svnserve is a small, lightweight server program that makes
> Subversion
> +        repositories available to clients over a custom protocol.  The
> svnserve
> +        server is automatically compiled when you build Subversion's
> source.
>
> -         $ svnserve -d     # becomes a background daemon
> -         $ svn checkout svn://localhost/usr/local/svn/repository
> +      - Apache HTTP Server is a "heavy-duty" server for which the
> Subversion
> +        project provides the mod_dav_svn and mod_authz_svn modules.
> Please
> +        refer to section IV.11 below for more information.
>
> -      You can use the "-r" option to svnserve to set a logical root
> -      for repositories, and the "-R" option to restrict connections to
> -      read-only access.  ("Read-only" is a logical term here; svnserve
> -      still needs write access to the database in this mode, but will
> -      not allow commits or revprop changes.)
> +       SVNBook provides an overview of the server options as well as the
> steps
> +       necessary to configure these servers in 'Chapter 6.  Server
> +       Configuration':
>
> -      'svnserve' has built-in CRAM-MD5 authentication (so you can use
> -      non-system accounts), and can also be tunneled over SSH (so you
> -      can use existing system accounts).  It's also capable of using
> -      Cyrus SASL if libsasl2 is detected at ./configure time.  Please
> -      read chapter 6 in the Subversion Book
> -      (https://svnbook.red-bean.com) for details on these features.
> +           https://svnbook.red-bean.com/en/1.8/svn.serverconfig.html
>
>
>
> -IV.   PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA)
> +III.  PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA)
>        ========================================================
>
>        For Python, Perl and Ruby bindings, see the file
> @@ -697,7 +451,7 @@ IV.   PROGRAMMING LANGUAGE BINDINGS (PYT
>
>
>
> -V.    DEPENDENCIES IN DETAIL
> +IV.   DEPENDENCIES IN DETAIL
>        ======================
>
>        Subversion depends on a number of third party tools and libraries.
> @@ -986,7 +740,6 @@ V.    DEPENDENCIES IN DETAIL
>          Subversion's own repository (whether or not running the test
>          suite).
>        * Build the SWIG Python bindings.
> -      * Testing as described in section III.D.
>
>        The Python bindings are used by:
>
>
>
The only comment I have about this change is that there are two possible
servers: httpd is one of them; svnserve is the other. I think we should
still document how to build a svnserve server (because it is the simpler of
the two and adequate for many workloads). With the removal of this section,
that might not be clear anymore.

(Admittedly I haven't done a full read-through of INSTALL recently because
I have been waiting for the dust to settle, so apologies in advance if I
missed that this is documented already.)

Thanks,
Nathan

Reply via email to