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

