aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL263
1 files changed, 177 insertions, 86 deletions
diff --git a/INSTALL b/INSTALL
index dcbf67c37aaa..64f821a31057 100644
--- a/INSTALL
+++ b/INSTALL
@@ -3,7 +3,7 @@
A Quick Guide
======================================
-$LastChangedDate: 2017-12-25 04:00:08 +0000 (Mon, 25 Dec 2017) $
+$LastChangedDate: 2020-02-17 03:49:42 +0000 (Mon, 17 Feb 2020) $
Contents:
@@ -23,8 +23,8 @@ Contents:
III. BUILDING A SUBVERSION SERVER
A. Setting Up Apache Httpd
- B. Making and Installing the Subversion Server
- C. Configuring Apache for Subversion
+ 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
@@ -96,6 +96,11 @@ I. INTRODUCTION
These diff streams are used everywhere -- over the network,
in the repository, and in the client's working copy.
+ * utf8proc (REQUIRED for client and server)
+
+ Subversion uses utf8proc for UTF-8 support, including Unicode
+ normalization.
+
* Apache Serf (OPTIONAL for client)
The Apache Serf library allows the Subversion client to send HTTP
@@ -116,21 +121,21 @@ I. INTRODUCTION
* Netwide Assembler (OPTIONAL for client and server)
- The Netwide Assembler (NASM) is used to build the (optionally)
+ The Netwide Assembler (NASM) is used to build the (optional)
assembler modules of OpenSSL. As of OpenSSL 1.1.0 NASM is the
only supported assembler.
- * Berkeley DB (OPTIONAL for client and server)
+ * Berkeley DB (DEPRECATED and OPTIONAL for client and server)
- There are two different repository 'back-end'
- implementations. One implementation stores data in a flat
- filesystem (known as FSFS); the other implementation stores
- data in a Berkeley DB database (known as BDB). When you
- create a repository, you have the option of specifying a
- storage back-end. The Berkeley DB back-end will only be
- available if the BDB libraries are discovered at compile
- time. The Berkeley DB back-end has been deprecated and
- is not recommend.
+ When you create a repository, you have the option of
+ specifying a storage 'back-end' implementation. Currently,
+ there are two options. The newer and recommended one, known
+ as FSFS, does not require Berkeley DB. FSFS stores data in a
+ flat filesystem. The older implementation, known as BDB, has
+ been deprecated and is not recommended for new repositories,
+ but is still available. BDB stores data in a Berkeley DB
+ database. This back-end will only be available if the BDB
+ libraries are discovered at compile time.
* libsasl (OPTIONAL for client and server)
@@ -147,10 +152,16 @@ I. INTRODUCTION
for other languages, you need to have those languages
available at build time.
- * KDELibs, GNOME Keyring (OPTIONAL for client)
+ * py3c (OPTIONAL, but REQUIRED for Python bindings)
+
+ The Python 3 Compatibility Layer for C Extensions is required
+ to build the Python language bindings.
+
+ * KDE Framework 5, libsecret, GNOME Keyring (OPTIONAL for client)
Subversion contains optional support for storing passwords in
- KWallet (KDE 4) or GNOME Keyring.
+ KWallet via KDE Framework 5 libraries (preferred) or kdelibs4,
+ and GNOME Keyring via libsecret (preferred) or GNOME APIs.
* libmagic (OPTIONAL)
@@ -160,10 +171,6 @@ I. INTRODUCTION
configured via auto-props or the mime-types-file option
take precedence.
- * Googlemock aka Gmock (OPTIONAL)
-
- This optional package is used by the tests for Subversions'
- C++ bindings.
C. Dependencies in Detail
@@ -199,7 +206,7 @@ I. INTRODUCTION
commands described in section II.B before installing the following.
- 1. Apache Portable Runtime 1.3 or newer (REQUIRED)
+ 1. Apache Portable Runtime 1.5 or newer (REQUIRED)
Whenever you want to build any part of Subversion, you need the
Apache Portable Runtime (APR) and the APR Utility (APR-util)
@@ -253,22 +260,55 @@ I. INTRODUCTION
configure script.
- 2. Zlib (REQUIRED)
+ 2. SQLite (REQUIRED)
+
+ Subversion requires SQLite version 3.8.2 or above. You can meet this
+ dependency several ways:
+ * Use an SQLite amalgamation file.
+ * Specify an SQLite installation to use.
+ * Let Subversion find an installed SQLite.
+
+ To use an SQLite-provided amalgamation, just drop sqlite3.c into
+ Subversion's sqlite-amalgamation/ directory, or point to it with the
+ --with-sqlite configure option. This file also ships with the Subversion
+ dependencies distribution, or you can download it from SQLite:
+
+ https://www.sqlite.org/download.html
+
+
+ 3. Zlib (REQUIRED)
+
+ Subversion's binary-differencing engine depends on zlib for
+ compression. Most Unix systems have libz pre-installed, but if
+ you need it, you can get it from
+
+ http://www.zlib.net/
- Subversion's binary-differencing engine depends on zlib for
- compression. Most Unix systems have libz pre-installed, but
- if you need it, you can get it from
- http://www.zlib.net/
+ 4. utf8proc (REQUIRED)
+ Subversion uses utf8proc for UTF-8 support. Configure will
+ attempt to locate utf8proc by default using pkg-config and known
+ paths.
- 3. autoconf 2.59 or newer (Unix only)
+ If it is installed in a non-standard location, then use:
+
+ --with-utf8proc=/path/to/libutf8proc
+
+ Alternatively, a copy of utf8proc comes bundled with the
+ Subversion sources. If configure should use the bundled copy,
+ use:
+
+ --with-utf8proc=internal
+
+
+ 5. autoconf 2.59 or newer (Unix only)
This is required only if you plan to build from the latest source
(see section II.B). Generally only developers would be doing this.
- 4. libtool 1.4 or newer (Unix only)
+ 6. libtool 1.4 or newer (Unix only)
This is required only if you plan to build from the latest source
(see section II.B).
@@ -277,7 +317,7 @@ I. INTRODUCTION
newer. The autogen.sh script knows about that.
- 5. Apache Serf library 1.3.4 or newer (OPTIONAL)
+ 7. Apache Serf library 1.3.4 or newer (OPTIONAL)
If you want your client to be able to speak to an Apache
server (via a http:// or https:// URL), you must link against
@@ -292,12 +332,13 @@ I. INTRODUCTION
instead.
Apache Serf can be obtained via your system's package distribution
- system or directly from http://code.google.com/p/serf/.
+ system or directly from https://serf.apache.org/.
For more information on Apache Serf and Subversion's ra_serf, see the
file subversion/libsvn_ra_serf/README.
- 6. OpenSSL (OPTIONAL)
+
+ 8. OpenSSL (OPTIONAL)
### needs some updates. I think Apache Serf automagically handles
### finding OpenSSL, but we may need more docco here. and w.r.t
@@ -343,17 +384,25 @@ I. INTRODUCTION
https://www.openssl.org/
- 7. Berkeley DB 4.X (OPTIONAL)
+ 9. Berkeley DB 4.X (DEPRECATED and OPTIONAL)
- Berkeley DB is needed to build a Subversion server that supports
- the BDB repository filesystem, or to access a BDB repository on
- local disk. If you will only use the FSFS repository filesystem,
- or if you are building a Subversion client that will only speak
- to remote (networked) repositories, you don't need it.
+ You need the Berkeley DB libraries only if you are building a
+ Subversion server that supports the older BDB repository storage
+ back-end, or a Subversion client that can access local BDB
+ repositories via the file:// URI scheme.
- The current recommended version is 4.4.20 or newer, which brings
- auto-recovery functionality to the Berkeley DB database
- environment.
+ The BDB back-end has been deprecated and is not recommended for
+ new repositories. BDB may be removed in Subversion 2.0. We
+ recommend the newer FSFS back-end for all new repositories.
+ FSFS does not require the Berkeley DB libraries.
+
+ If in doubt, the 'svnadmin info' command, added in Subversion
+ 1.9, can identify whether an existing repository uses BDB or
+ FSFS.
+
+ The current recommended version of Berkeley DB is 4.4.20 or
+ newer, which brings auto-recovery functionality to the Berkeley
+ DB database environment.
If you must use an older version of Berkeley DB, we *strongly*
recommend using 4.3 or 4.2 over the 4.1 or 4.0 versions. Not
@@ -386,7 +435,7 @@ I. INTRODUCTION
Look in the "Releases > Windows > Windows BDB" section.
- 8. Cyrus SASL library (OPTIONAL)
+ 10. Cyrus SASL library (OPTIONAL)
If the Simple Authentication and Security Layer (SASL) library
is detected on your system, then the Subversion client and
@@ -397,7 +446,7 @@ I. INTRODUCTION
http://freshmeat.net/projects/cyrussasl/
- 9. Apache Web Server 2.2.X or newer (OPTIONAL)
+ 11. Apache Web Server 2.2.X or newer (OPTIONAL)
(https://httpd.apache.org/download.cgi)
@@ -410,78 +459,103 @@ I. INTRODUCTION
is done: See section III for details.
- 10. Python 2.7 or newer (https://www.python.org/) (OPTIONAL)
+ 12. Python 3.x or newer (https://www.python.org/) (OPTIONAL)
- If you want to run "make check" or build from the latest source
- under Unix/Windows as described in section II.B, II.E and III.D,
- install Python 2.7 or higher on your system. The majority of the
- test suite is written in Python, as is part of Subversion's build
- system.
+ Subversion does not require Python for its basic operation.
+ However, Python is required for building and testing Subversion
+ and for using Subversion's SWIG Python bindings or hook scripts
+ coded in Python.
- Note that Python 3.x is not supported and most likely won't work.
+ The majority of Subversion's test suite is written in Python, as
+ is part of Subversion's build system.
+ In more detail, Python is required to do any of the following:
- 11. Perl 5.8 or newer (Windows only) (OPTIONAL)
+ * Use the SWIG Python bindings.
+ * Use the ctypes Python bindings.
+ * Use hook scripts coded in Python.
+ * Build Subversion from a tarball on Unix-like systems and run
+ Subversion's test suite as described in section II.B.
+ * Build Subversion on Windows as described in section II.E.
+ * Build Subversion from a working copy checked out from
+ Subversion's own repository (whether or not running the test
+ suite).
+ * Build the SWIG Python bindings.
+ * Build the ctypes Python bindings.
+ * Testing as described in section III.D.
- To build Subversion under any of the MS Windows platforms, you
- will also need Perl 5.8 or newer to run apr-util's w32locatedb.pl
- script.
+ The Python bindings are used by:
+ * Third-party programs (e.g., ViewVC)
+ * Scripts distributed with Subversion itself in the tools/
+ subdirectory.
+ * Any in-house scripts you may have.
- 12. SQLite (REQUIRED)
+ Python is NOT required to do any of the following:
- Subversion requires SQLite version 3.8.2 or above. You can meet this
- dependency several ways:
- * Use an SQLite amalgamation file.
- * Specify an SQLite installation to use.
- * Let Subversion find an installed SQLite.
+ * Use the core command-line binaries (svn, svnadmin, svnsync,
+ etc.)
+ * Use Subversion's C libraries.
+ * Use any of Subversion's other language bindings.
+ * Build Subversion from a tarball on Unix-like systems without
+ running Subversion's test suite
- To use an SQLite-provided amalgamation, just drop sqlite3.c into
- Subversion's sqlite-amalgamation/ directory, or point to it with the
- --with-sqlite configure option. This file also ships with the Subversion
- dependencies distribution, or you can download it from SQLite:
+ Although this section calls for Python 3.x, Subversion still
+ technically works with Python 2.7. However, Support for Python
+ 2.7 is being phased out. As of 1 January 2020, Python 2.7 has
+ reached end of life. All users are strongly encouraged to move
+ to Python 3.
- https://www.sqlite.org/download.html
+
+ 13. Perl 5.8 or newer (Windows only) (OPTIONAL)
+
+ To build Subversion under any of the MS Windows platforms, you
+ will also need Perl 5.8 or newer to run apr-util's w32locatedb.pl
+ script.
- 13. pkg-config (Unix only, OPTIONAL)
+ 14. pkg-config (Unix only, OPTIONAL)
Subversion uses pkg-config to find appropriate options used
at build time.
- 14. D-Bus (Unix only, OPTIONAL)
+ 15. D-Bus (Unix only, OPTIONAL)
D-Bus is a message bus system. D-Bus is required for support for KWallet
and GNOME Keyring. pkg-config is needed to find D-Bus headers and library.
- 15. Qt 4 (Unix only, OPTIONAL)
+ 16. Qt 5 or Qt 4 (Unix only, OPTIONAL)
Qt is a cross-platform application framework. QtCore, QtDBus and QtGui
modules are required for support for KWallet. pkg-config is needed
to find Qt headers and libraries.
- 16. KDELibs 4 (Unix only, OPTIONAL)
+ 17. KDE 5 Framework libraries or KDELibs 4 (Unix only, OPTIONAL)
Subversion contains optional support for storing passwords in KWallet.
+ Subversion will look for KF5Wallet, KF5CoreAddons, KF5I18n APIs by default,
+ and needs kf5-config to find them. The KDELibs 4 api is also supported.
KDELibs contains core KDE libraries. Subversion uses libkdecore and libkdeui
libraries when support for KWallet is enabled. kde4-config is used to get
some necessary options. pkg-config, D-Bus and Qt 4 are also required.
+
If you want to build support for KWallet, then pass the '--with-kwallet'
option to `configure`. If KDE is installed in a non-standard prefix, then
use:
--with-kwallet=/path/to/KDE/prefix
- 17. GLib 2 (Unix only, OPTIONAL)
+
+ 18. GLib 2 (Unix only, OPTIONAL)
GLib is a general-purpose utility library. GLib is required for support
for GNOME Keyring. pkg-config is needed to find GLib headers and library.
- 18. GNOME Keyring (Unix only, OPTIONAL)
+ 19. GNOME Keyring (Unix only, OPTIONAL)
Subversion contains optional support for storing passwords in GNOME Keyring.
pkg-config is needed to find GNOME Keyring headers and library. D-Bus and
@@ -489,7 +563,7 @@ I. INTRODUCTION
then pass the '--with-gnome-keyring' option to `configure`.
- 19. Ctypesgen (OPTIONAL)
+ 20. Ctypesgen (OPTIONAL)
Ctypesgen is Python wrapper generator for ctypes. It is used to generate
a part of Subversion Ctypes Python bindings (CSVN). If you want to build
@@ -500,7 +574,8 @@ I. INTRODUCTION
For more information on CSVN, see subversion/bindings/ctypes-python/README.
- 20. libmagic (OPTIONAL)
+
+ 21. libmagic (OPTIONAL)
Subversion's configure script attempts to find libmagic automatically.
If it is installed in a non-standard location, then use:
@@ -521,11 +596,6 @@ I. INTRODUCTION
--with-libmagic
- 21. Googlemock (OPTIONAL)
-
- Googlemock can be installed and built in-tree by invoking
-
- $ ./get-dep.sh gmock
22. LZ4 (OPTIONAL)
@@ -540,6 +610,32 @@ I. INTRODUCTION
If configure should use the version bundled with the sources, use:
--with-lz4=internal
+
+ 23. py3c (OPTIONAL)
+
+ Subversion uses the Python 3 Compatibility Layer for C
+ Extensions (py3c) library when building the Python language
+ bindings.
+
+ As py3c is a header-only library, it is needed only to build the
+ bindings, not to use them.
+
+ Configure will attempt to locate py3c by default using
+ pkg-config and known paths.
+
+ If it is installed in a non-standard location, then use:
+
+ --with-py3c=/path/to/py3c/prefix
+
+ The library can be downloaded from GitHub:
+
+ https://github.com/encukou/py3c
+
+ On Unix systems, you can also use the provided get-deps.sh
+ script to download py3c and several other dependencies; see the
+ top of section I.C for more about get-deps.sh.
+
+
D. Documentation
The primary documentation for Subversion is the free book
@@ -731,13 +827,12 @@ II. INSTALLATION
Edition). Make sure you enable C++ support during setup.
* Python 2.7 or higher, downloaded from https://www.python.org/ which is
used to generate the project files.
- Note that Python 3.x is not supported (yet).
* Perl 5.8 or higher from https://www.perl.org/get.html
* Awk (from https://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is
needed to compile Apache. Note that this is the actual awk program,
not an installer - just rename it to awk.exe and it is ready to use.
* Apache apr, apr-util, and optionally apr-iconv libraries, version
- 1.3 or later (1.2 for apr-iconv). If you are building from a Subversion
+ 1.5 or later (1.2 for apr-iconv). If you are building from a Subversion
checkout and have not downloaded Apache 2, then get these 3 libraries
from https://www.apache.org/dist/apr/.
* SQLite 3.8.2 or higher from https://www.sqlite.org/download.html
@@ -856,11 +951,7 @@ II. INSTALLATION
E.4 Building the Binaries
- To build the binaries either follow the instructions here or use
- build\win32\vc6-build.bat.in after editing its default paths to match
- yours and saving it as vc6-build.bat. The vc6-build.bat does a full build
- using all options so it requires Apache 2 source and the other optional
- components.
+ To build the binaries either follow these instructions.
Start in the SVN directory you created.
@@ -922,7 +1013,7 @@ II. INSTALLATION
C:>nmake -f Makefile.win
C:>nmake -f Makefile.win install
- Please refere to the build instructions provided by the library source
+ Please refer to the build instructions provided by the library source
for actual build instructions.
ZLib
@@ -931,7 +1022,7 @@ II. INSTALLATION
Building ZLib using Visual Studio should be quite simple. Just open the
appropriate solution and build the project zlibstat using the IDE.
- Please refere to the build instructions provided by the library source
+ Please refer to the build instructions provided by the library source
for actual build instructions.
Note that you'd make sure to define ZLIB_WINAPI in the ZLib config