diff options
Diffstat (limited to 'contrib/subversion/INSTALL')
-rw-r--r-- | contrib/subversion/INSTALL | 1466 |
1 files changed, 1466 insertions, 0 deletions
diff --git a/contrib/subversion/INSTALL b/contrib/subversion/INSTALL new file mode 100644 index 0000000..55ca344 --- /dev/null +++ b/contrib/subversion/INSTALL @@ -0,0 +1,1466 @@ + ====================================== + INSTALLING SUBVERSION + A Quick Guide + ====================================== + +$LastChangedDate: 2013-06-05 04:00:25 +0000 (Wed, 05 Jun 2013) $ + + +Contents: + + I. INTRODUCTION + A. Audience + B. Dependency Overview + C. Dependencies in Detail + D. Documentation + + II. INSTALLATION + A. Building from a Tarball or RPM + B. Building the Latest Source under Unix + C. Building under Unix in Different Directories + D. Installing from a Zip or Installer File under Windows + E. Building the Latest Source under Windows + + III. BUILDING A SUBVERSION SERVER + A. Setting Up Apache + B. Making and Installing the Subversion Server + C. Configuring Apache for Subversion + D. Running and Testing + E. Alternative: 'svnserve' and ra_svn + + IV. PLATFORM-SPECIFIC ISSUES + A. Windows XP + B. Mac OS X + + V. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA) + + + +I. INTRODUCTION + ============ + + A. Audience + + This document is written for people who intend to build + Subversion from source code. Normally, the only people who do + this are Subversion developers and package maintainers. + + If neither of these labels fits you, we recommend you find an + appropriate binary package of Subversion and install that. + While the Subversion project doesn't officially release binary + packages, a number of volunteers have made such packages + available for different operating systems. Most Linux and BSD + distributions already have Subversion packages ready to go via + standard packaging channels, and other volunteers have built + 'installers' for both Windows and OS X. Visit this page for + package links: + + http://subversion.apache.org/packages.html + + For those of you who still wish to build from source, Subversion + follows the Unix convention of "./configure && make", but it has + a number of dependencies. + + + B. Dependency Overview + + You'll need the following build tools to compile Subversion: + + * autoconf 2.59 or later (Unix only) + * libtool 1.4 or later (Unix only) + * a reasonable C compiler (gcc, Visual Studio, etc.) + + + Subversion also depends on the following third-party libraries: + + * libapr and libapr-util (REQUIRED for client and server) + + The Apache Portable Runtime (APR) library provides an + abstraction of operating-system level services such as file + and network I/O, memory management, and so on. It also + provides convenience routines for things like hashtables, + checksums, and argument processing. While it was originally + developed for the Apache HTTP server, APR is a standalone + library used by Subversion and other products. It is a + critical dependency for all of Subversion; it's the layer + that allows Subversion clients and servers to run on + different operating systems. + + * SQLite (REQUIRED for client and server) + + Subversion uses SQLite to manage some internal databases. + + * libz (REQUIRED for client and server) + + Subversion uses zlib for compressing binary differences. + These diff streams are used everywhere -- over the network, + in the repository, and in the client's working copy. + + * libserf (OPTIONAL for client) + + The Serf library allows the Subversion client to send HTTP + requests. This is necessary if you want your client to access + a repository served by the Apache HTTP server. There is an + alternate 'svnserve' server as well, though, and clients + automatically know how to speak the svnserve protocol. + Thus it's not strictly necessary for your client to be able + to speak HTTP... though we still recommend that your client + be built to speak both HTTP and svnserve protocols. + + * OpenSSL (OPTIONAL for client and server) + + OpenSSL enables your client to access SSL-encrypted https:// + URLs (using libserf) in addition to unencrypted http:// URLs. + To use SSL with Subversion's WebDAV server, Apache needs to be + compiled with OpenSSL as well. + + * Berkeley DB (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. + + * libsasl (OPTIONAL for client and server) + + If the Cyrus SASL library is detected at compile time, then + the svn client (and svnserve server) will be able to utilize + SASL to do various forms of authentication when speaking the + svnserve protocol. + + * Python, Perl, Java, Ruby (OPTIONAL) + + Subversion is mostly a collection of C libraries with + well-defined APIs, with a small collection of programs that + use the APIs. If you want to build Subversion API bindings + for other languages, you need to have those languages + available at build time. + + * KDELibs, GNOME Keyring (OPTIONAL for client) + + Subversion contains optional support for storing passwords in + KWallet (KDE 4) or GNOME Keyring. + + * libmagic + + If the libmagic library is detected at compile time, + it will be used to determine mime-types of binary files + which are added to version control. Note that mime-types + configured via auto-props or the mime-types-file option + take precedence. + + C. Dependencies in Detail + + Subversion depends on a number of third party tools and libraries. + Some of them are only required to run a Subversion server; others + are necessary just for a Subversion client. This section explains + what other tools and libraries will be required so that Subversion + can be built with the set of features you want. + + On Unix systems, the './configure' script will tell you if you are + missing the correct version of any of the required libraries or + tools, so if you are in a real hurry to get building, you can skip + straight to section II. If you want to gather the pieces you will + need before starting out, however, you should read the following. + + If you're just installing a Subversion client, the Subversion + team has created a script that downloads the minimal prerequisite + libraries (Apache Portable Runtime, Sqlite, and Zlib). The script, + 'get-deps.sh', is available in the same directory as this file. + When run, it will place 'apr', 'apr-util', 'serf', 'zlib', and + 'sqlite-amalgamation' directories directly into your unpacked Subversion + distribution. With the exception of sqlite-amalgamation, they will + still need to be configured, built and installed explicitly, and + Subversion's own configure script may need to be told where to find + them, if they were not installed in standard system locations. + + Note: there are optional dependencies (such as openssl, swig, and httpd) + which get-deps.sh does not download. + + Note: Because previous builds of Subversion may have installed older + versions of these libraries, you may want to run some of the cleanup + commands described in section II.B before installing the following. + + + 1. Apache Portable Runtime 0.9.7 or 1.X.X (REQUIRED) + + Whenever you want to build any part of Subversion, you need the + Apache Portable Runtime (APR) and the APR Utility (APR-util) + libraries. + + + **************************************************************** + ** IMPORTANT ISSUE ABOUT APR VERSIONS: READ THIS. ** + ** ** + **************************************************************** + | | + | APR 0.9.X and 1.X are binary-incompatible. | + | | + | This means: | + | | + | - if you are already using Subversion with APR 0.9.X, and | + | then upgrade your libapr to 1.X without rebuilding | + | Subversion, things will break and segfault. | + | | + | - if your Subversion server libraries are linked to one | + | version of APR, but your Apache server is linked to a | + | different version, things will break and segfault. | + | | + | Subversion distribution dependencies: | + | ------------------------------------- | + | | + | For a long time, Subversion's main distribution contained | + | APR and APR-UTIL (both 0.9.x), plus a few other things that | + | we couldn't count on the installation system having. But | + | nowadays, Subversion's requirements are no longer exotic, | + | and so our main distribution contains just the Subversion | + | source code itself -- people compiling Subversion are | + | expected to either have the APR libraries already installed | + | on their system, or to be capable of fetching them easily. | + | | + | Note that it's *perfectly* safe to use APR 1.X from the | + | beginning. In fact, we recommend it. If you're building | + | Subversion for the first time, there's no compatibility | + | issue to worry about, so grab the latest version of APR. | + | | + | If you already have a Subversion installation using APR | + | 0.9.x, it's still possible to move to APR 1.X safely. Just | + | be sure to recompile Subversion (and Apache httpd if | + | necessary) after upgrading APR! | + |______________________________________________________________| + + + If you do not have a pre-installed APR and APR-util, you will need + to get these yourself: + + http://apr.apache.org/download.cgi + + On Unix systems, if you already have the APR libraries compiled and do + not wish to regenerate them from source code, then Subversion needs to + be able to find them. + + There are a couple of options to "./configure" that tell it where + to look for the APR and APR-util libraries. By default it will try + to locate the libraries using apr-config and apu-config scripts. + These scripts provide all the relevant information for the APR and + APR-util installations. + + If you want to specify the location of the APR library, you can use + the "--with-apr=" option of "./configure". It should be able to find + the apr-config script in the standard location under that directory + (e.g. ${prefix}/bin). + + Similarly, you can specify the location of APR-util using the + "--with-apr-util=" option to "./configure". It will look for the + apu-config script relative to that directory. + + For example, if you want to use the APR libraries you built + with the Apache httpd server, you could run: + + $ ./configure --with-apr=/usr/local/apache2 \ + --with-apr-util=/usr/local/apache2 ... + + Be sure to use a native Windows SVN client (as opposed to + Cygwin's version) so that the .dsp files get carriage-returns at + the ends of their lines. Otherwise Visual Studio will complain + that it doesn't recognize the .dsp files. + + If you use APR libraries checked out from svn in an Unix + environment, you need to run the 'buildconf' script in each + library's directory, to regenerate the configure scripts and + other files required for compiling the libraries: + + $ cd apr; ./buildconf; ./configure ...; make; make install; cd .. + + $ cd apr-util; ./buildconf; ./configure ...; make; make install; cd .. + + Configure build and install both libraries before running Subversion's + configure script. + + + 2. 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 + + + 3. 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) + + This is required only if you plan to build from the latest source + (see section II.B). + + Note: Some systems (Solaris, for example) require libtool 1.4.3 or + newer. The autogen.sh script knows about that. + + + 5. Serf library 1.2.1 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 + serf. Though optional, we strongly recommend this. + + In order to use ra_serf, you must install serf, and run Subversion's + ./configure with the argument --with-serf. If serf is installed in a + non-standard place, you should use + + --with-serf=/path/to/serf/install + + instead. + + Serf can be obtained via your system's package distribution + system or directly from http://code.google.com/p/serf/. + + For more information on serf and Subversion's ra_serf, see the file + subversion/libsvn_ra_serf/README. + + 6. OpenSSL (OPTIONAL) + + ### needs some updates. I think serf automagically handles + ### finding OpenSSL, but we may need more docco here. and w.r.t + ### zlib. + + The Serf library has support for SSL encryption by relying on the + OpenSSL library. + + a. Using OpenSSL on the client through Serf + + On Unix systems, to build Serf with OpenSSL, you need OpenSSL + installed on your system, and you must add "--with-ssl" as a + "./configure" parameter. If your OpenSSL installation is hard + for Serf to find, you may need to use "--with-libs=/path/to/lib" + in addition. In particular, on Red Hat (but not Fedora Core) it + is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL + to be found. You can also specify a path to the zlib library + using "--with-libs". + + Under Windows, you can specify the paths to these libraries by + passing the options --with-zlib and --with-openssl to gen-make.py. + + ### Is that right? In-tree build of Neon was disabled in r875974. + This may now apply to Serf, or else gen-make.py should be + updated to remove such options. + + c. Using OpenSSL on the Apache server + + You can also add support for these features to an Apache httpd + server to be used for Subversion using the same support libraries. + The Subversion build system will not provide them, however. You + add them by specifying parameters to the "./configure" script of + the Apache Server instead. + + For getting SSL on your server, you would add the "--enable-ssl" + or "--with-ssl=/path/to/lib" option to Apache's "./configure" + script. Apache enables zlib support by default, but you can + specify a nonstandard location for the library with the + "--with-z=/path/to/dir" option. Consult the Apache documentation + for more details, and for other modules you may wish to install + to enhance your Subversion server. + + If you don't already have it, you can get a copy of OpenSSL, + including instructions for building and packaging on both Unix + systems and Windows, at: + + http://www.openssl.org/ + + + 7. Berkeley DB 4.X (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. + + The current recommended version 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 + only are these significantly faster and more stable, but they + also enable Subversion repositories to automatically clean up + database journal files to save disk space. + + You'll need Berkeley DB installed on your system. You can + get it from: + + http://www.oracle.com/technology/software/products/berkeley-db/index.html + + If you have Berkeley DB installed in a place not searched by default + for includes and libraries, add something like this: + + --with-berkeley-db=db.h:/usr/local/include/db4.7:/usr/local/lib/db4.7:db-4.7 + + to your `configure' switches, and the build process will use the + Berkeley DB header and library in the named directories. You may + need to use a different path, of course. Note that in order for + the detection to succeed, the dynamic linker must be able to find + the libraries at configure time. + + If you are on the Windows platform and want to build Subversion, + a precompiled version of the Berkeley DB library is available for + download at the Subversion web site "Documents & files" area: + + http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=688 + + Look in the "Releases > Windows > Windows BDB" section. + + + 8. Cyrus SASL library (OPTIONAL) + + If the Simple Authentication and Security Layer (SASL) library + is detected on your system, then the Subversion client and + svnserve server can utilize its abilities for various forms of + authentication. To learn more about SASL or to get the source + code, visit: + + http://freshmeat.net/projects/cyrussasl/ + + + 9. Apache Web Server 2.X (OPTIONAL) + + (http://httpd.apache.org/download.cgi) + + The Apache httpd server is one of two methods to make your Subversion + repository available over a network - the other is a custom server + program called svnserve, which requires no extra software packages. + Building Subversion, the Apache server, and the modules that Apache + needs to communicate with Subversion are complicated enough that there + is a whole section at the end of this document that describes how it + is done: See section III for details. + + + 10. Python 2.5 or newer (http://www.python.org/) (OPTIONAL) + + If you want to run "make check" or build from the latest source + under Unix as described in section II.B and III.D, install + Python 2.5 or higher on your system. The majority of the test + suite is written in Python, as is part of Subversion's build + system. + + + 11. 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. + + + 12. MASM 6 or newer (Windows only, OPTIONAL) + + The Windows build scripts for Subversion can use the Microsoft + Macro Assembler (MASM) to build an optimized version of the ZLib + library. Make sure that the version of MASM you use is compatible + with the C compiler. If you're using MSVC 6, and don't have MASM 6, + a free MASM-compatible assembler is available here: + + http://www.masm32.com/ + + You only need ML.EXE and ML.ERR from this distribution. + + The VS.NET installation already contains MASM (but note, that + version if MASM is not compatible with MSVC 6). + + + 13. SQLite (REQUIRED) + + Subversion 1.7 requires SQLite version 3.6.18 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: + + http://www.sqlite.org/download.html + + + 14. pkg-config (Unix only, OPTIONAL) + + Subversion uses pkg-config to find appropriate options used + at build time. + + + 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. + + + 16. 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. + + + 17. KDELibs 4 (Unix only, OPTIONAL) + + Subversion contains optional support for storing passwords in KWallet. + 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 + + 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. + + + 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 + GLib are also required. If you want to build support for GNOME Keyring, + then pass the '--with-gnome-keyring' option to `configure`. + + + 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 + CSVN, then pass the '--with-ctypesgen' option to `configure`. If ctypesgen.py + is installed in a non-standard place, then use: + + --with-ctypesgen=/path/to/ctypesgen.py + + For more information on CSVN, see subversion/bindings/ctypes-python/README. + + 21. libmagic (OPTIONAL) + + Subversion's configure script attempts to find libmagic automatically. + If it is installed in a non-standard location, then use: + + --with-libmagic=/path/to/libmagic/prefix + + The files include/magic.h and lib/libmagic.so.1.0 (or similar) + are expected beneath this prefix directory. If they cannot be + found Subversion will be compiled without support for libmagic. + + If libmagic is installed but support for it should not be compiled + in, then use: + + --with-libmagic=no + + If configure should fail when libmagic is not present, but only + the default locations should be searched, then use: + + --with-libmagic + + D. Documentation + + The primary documentation for Subversion is the free book + "Version Control with Subversion", a.k.a. "The Subversion Book", + obtainable from http://svnbook.red-bean.com/. + + Various additional documentation exists in the doc/ subdirectory of + the Subversion source. See the file doc/README for more information. + + + +II. INSTALLATION + ============ + + A. Building from a Tarball or RPM + ------------------------------ + + 1. Building from a Tarball + + Download the most recent distribution tarball from: + + http://subversion.apache.org/download/ + + Unpack it, and use the standard GNU procedure to compile: + + $ ./configure + $ make + # make install + + You can also run the full test suite by running 'make check'. + + + 2. Building from an RPM + + If you are using Linux (or any OS that can use RPM) then another + possibility is to download the binary RPM from the + http://summersoft.fay.ar.us/pub/subversion directory. + + Currently only Linux on the i386 platform is supported + using this method. You might also require additional RPMS + (which can be found in the above mentioned directory) to use the + subversion RPM depending on what packages you already have installed: + + subversion*.i386.rpm + apache*.i386.rpm (Version 2.0.49 or greater) + db*.i386.rpm (Version 4.0.14 or greater; version 4.3.27 or + 4.2.52 is preferred however) + expat (Comes with RedHat) + + After downloading, install it (as root user): + + # rpm -ivh subversion*.386.rpm (add other packages as necessary) + + Note: For an easy way to generate a new version of the RPM + source and binary package from the latest source code you + just checked out, see the packages/rpm/README file for a + one-line build procedure. + + + B. Building the Latest Source under Unix + ------------------------------------- + + These instructions assume you have already installed Subversion + and checked out a working copy of Subversion's own code -- + either the latest /trunk code, or some branch or tag. You also + need to have already installed whatever prerequisites that + version of Subversion requires (if you haven't, the ./configure + step should complain). + + You can discard the directory created by the tarball; you're + about to build the latest, greatest Subversion client. This is + the procedure Subversion developers use. + + First off, if you have any Subversion libraries lying around + from previous 'make installs', clean them up first! + + # rm -f /usr/local/lib/libsvn* + # rm -f /usr/local/lib/libapr* + # rm -f /usr/local/lib/libexpat* + # rm -f /usr/local/lib/libserf* + + Start the process by running "autogen.sh": + + $ sh ./autogen.sh + + This script will make sure you have all the necessary components + available to build Subversion. If any are missing, you will be + told where to get them from. (See the 'Build Requirements' in + section I.) + + Note: if the command "autoconf" on your machine does not run + autoconf 2.59 or later, but you do have a new enough autoconf + available, then you can specify the correct one with the + AUTOCONF variable. (The AUTOHEADER variable is similar.) This + may be required on Debian GNU/Linux, where "autoconf" is + actually a Perl script that attempts to guess which version is + required -- because of the interaction between Subversion's and + APR's configuration systems, the Perl script may get it wrong. + So for example, you might need to do: + + $ AUTOCONF=autoconf2.59 sh ./autogen.sh + + Once you've prepared the working copy by running autogen.sh, + just follow the usual configuration and build procedure: + + $ ./configure + $ make + # make install + + (Optionally, you might want to pass --enable-maintainer-mode to + the ./configure script. This enables debugging symbols in your + binaries (among other things) and most Subversion developers use it.) + + Since the resulting binary depends on shared libraries, the + destination library directory must be identified in your + operating system's library search path. That is in either + /etc/ld.so.conf or $LD_LIBRARY_PATH for Linux systems and in + /etc/rc.conf for FreeBSD, followed by a run of the 'ldconfig' + program. Check your system documentation for details. By + identifying the destination directory, Subversion will be able + to dynamically load repository access plugins. If you try to do + a checkout and see an error like: + + subversion/libsvn_ra/ra_loader.c:209: (apr_err=170000) + svn: Unrecognized URL scheme 'https://svn.apache.org/repos/asf/subversion/trunk' + + It probably means that the dynamic loader/linker can't find all + of the libsvn_* libraries. + + + C. Building under Unix in Different Directories + -------------------------------------------- + + It is possible to configure and build Subversion on Unix in a + directory other than the working copy. For example + + $ svn co https://svn.apache.org/repos/asf/subversion/trunk svn + $ cd svn + $ # get SQLite amalgamation if required + $ chmod +x autogen.sh + $ ./autogen.sh + $ mkdir ../obj + $ cd ../obj + $ ../svn/configure [...with options as appropriate...] + $ make + + puts the Subversion working copy in the directory svn and builds + it in a separate, parallel directory obj. + + Why would you want to do this? Well there are a number of + reasons... + + * You may prefer to avoid "polluting" the working copy with + files generated during the build. + + * You may want to put the build directory and the working + copy on different physical disks to improve performance. + + * You may want to separate source and object code and only + backup the source. + + * You may want to remote mount the working copy on multiple + machines, and build for different machines from the same + working copy. + + * You may want to build multiple configurations from the + same working copy. + + The last reason above is possibly the most useful. For instance + you can have separate debug and optimized builds each using the + same working copy. Or you may want a client-only build and a + client-server build. Using multiple build directories you can + rebuild any or all configurations after an edit without the need + to either clean and reconfigure, or identify and copy changes + into another working copy. + + + D. Installing from a Zip or Installer File under Windows + -------------------------------------------------------- + + Of all the ways of getting a Subversion client, this is the + easiest. Download a Zip (*.zip) or self-extracting installer + (*-setup.exe) file from: + + http://subversion.apache.org/packages#windows + + For a Zip file, run your unzipping utility (WinZIP, ZipGenius, + UltimateZIP, FreeZIP, whatever) and extract the DLLs and EXEs to + a directory of your choice. Included in the download is the SVN + client, the SVNADMIN administration tool, and the SVNLOOK + reporting tool. + + Note that if you need support for non-English locales you'll have + to set the APR_ICONV_PATH environment variable to the path of the + iconv directory in the folder that contains the Subversion install. + + You may also want to add the bin directory in the Subversion folder + to your PATH environment variable so as to not have to use the full + path when running Subversion commands. + + To test the installation, open a DOS box (run either "cmd" or + "command" from the Start menu's "Run..." menu option), change to + the directory you installed the executables into, and run: + + C:\test>svn co https://svn.apache.org/repos/asf/subversion/trunk svn + + This will get the latest Subversion sources and put them into the + "svn" subdirectory. + + If using a self-extracting .exe file, just run it instead of + unzipping it, to install Subversion. + + E. Building the Latest Source under Windows + ---------------------------------------- + + E.1 Prerequisites + + * Visual Studio 6 and service pack. It can be built with later versions + of Visual Studio (Visual Studio.NET 2002, 2003, 2005, 2008 and Visual + C++ Express 2005, 2008) but these instructions assume VS6. + * A recent Windows SDK. (Not needed with Visual Studio 2005 and later) + If you are using Visual Studio 6, you need the latest SDK which + is compatible with VC6, which is the one from february 2003. + You can get it from MSDN: + http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm + * Python 2.5 or higher, downloaded from http://www.python.org/ which is + used to generate the project files. + * Perl 5.8 or higher from http://www.activestate.com/ + * Awk (from http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is + needed to compile Apache or APR. 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 + 0.9.12 or later. Included in both the Subversion dependencies ZIP file + and the Apache 2 source zip. If you are building from a Subversion + checkout and have not downloaded Apache 2, then get these 3 libraries + from http://www.apache.org/dist/apr/. + * ZLib 1.2 or higher is required and is included in the Subversion + dependencies zip file or can be obtained from http://www.zlib.org + * Either a Subversion client binary from http://subversion.apache.org/ to + do the initial checkout of the Subversion source or the zip file + source distribution. See the section "Bootstrapping from a Zip or + Installer File under Windows" above for more. + * A means of unpacking the files, e.g., WinZIP or similar. + + Additional Options + + * [Optional] Apache 2 source, downloaded from + http://httpd.apache.org/download.cgi, these instructions assume + version 2.0.58. This is only needed for building the Subversion + server Apache modules. Note that although Subversion will compile + against Apache 2.2.3 and APR 1.2.7, there is a bug that causes + runtime failures with Subversion on Windows. The fix is included in + APR 1.2.8 and will be bundled in the next HTTP Server release + (likely to be 2.2.4). + * [Optional] Apache 2 msi install file, also from + http://httpd.apache.org/download.cgi (required for running the + tests). Only needed for testing the server dso modules and if + you are using Visual Studio 6. + Note that if you are not using Visual Studio 6 (and you want to + run and test the server modules) then you must rebuild Apache + from source -- do not use the stock MSI since mixing C runtime + libraries is not supported. + * [Optional] Berkeley DB for backend support of the server + components -- versions 4.3.27 and 4.4.20 are available from + http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=688 + as db-4.3.27-win32.zip and db-4.4.20-win32.zip. + For more information see Section I.5. + * [Optional] Openssl 0.9.7f or higher can be obtained from + http://www.openssl.org/source/openssl-0.9.7f.tar.gz + * [Optional] A modified version of GNU libintl, called + svn-win32-libintl.zip, can be used for displaying localized + messages. Available at: + http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=2627 + * [Optional] GNU gettext for generating message catalog (.mo) + files from message translations. You can get the latest + binaries from http://gnuwin32.sourceforge.net/. You'll need the + binaries (gettext-0.14.1-bin.zip) and dependencies + (gettext-0.14.1-dep.zip). + * [Optional] An assembler, e.g., MASM32 from http://www.masm32.com/ + or nasm which is available from + http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D + + E.2 Notes + + The Serf library supports secure connections with OpenSSL and + on-the-wire compression with zlib. If you want to use the + secure connections feature, you should pass the option + "--with-openssl" to the gen-make.py script. See Section I.11 for + more details. + + E.3 Preparation + + This section describes how to unpack the files to make a build tree. + + * Make a directory SVN and cd into it. + * Either checkout Subversion: + + svn co https://svn.apache.org/repos/asf/subversion/trunk src-trunk + + or unpack the zip file distribution and rename the directory to + src-trunk. + + * Install Visual Studio Environment. You either have to tell the + installer to register environment variables or run VCVARS32.BAT + before building anything. If you are using a newer Visual Studio, + use the 'Visual Studio 200x Command Prompt' on the Start menu. + * Install and register a recent Windows Core SDK if you are using + Visual Studio 6. This is a quote from the Microsoft February 2003 + SDK documentation: + + "To register the SDK bin, include, and library directories with + Microsoft Visual Studio® version 6.0 and Visual Studio .NET, + click Start, point to All Programs, point to Microsoft Platform + SDK February 2003, point to Visual Studio Registration, and then + click Register PSDK Directories with Visual Studio. This + registration process places the SDK bin, include, and library + directories at the beginning of the search paths, which ensures + that the latest headers and libraries are used when building + applications in the IDE. Note that for Visual Studio 6.0 + integration to succeed, Visual Studio 6.0 must run at least once + before you select Register PSDK Directories with Visual + Studio. Also note that when this option is run, the IDEs should + not be running." + + * Install Python and add it to your path + * Install Perl (it should add itself to the path) + * Copy AWK (awk95.exe) to awk.exe (e.g. SVN\awk\awk.exe) and add + the directory containing it (e.g. SVN\awk) to the path. + * Install Apache 2 using the msi file if you are going to test the + server dso modules and are using Visual Studio 6. You must build + and install it from source if you are not using Visual Studio 6 and + want to build and/or test the server modules. + * If you checked out Subversion from the repository then install the serf + sources into SVN\src-trunk\serf. + * If you want BDB backend support, extract the Berkeley DB files + into SVN\src-trunk\db4-win32. It's a good idea to add + SVN\src-trunk\db4-win32\bin to your PATH, so that Subversion can find + the Berkeley DB DLLs. + + [NOTE: This binary package of Berkeley DB is provided for + convenience only. Please don't address questions about + Berkeley DB that aren't directly related to using Subversion + to the project mailing list.] + + If you build Berkeley DB from the source, you will have to copy + the file db-x.x.x\build_win32\db.h to + SVN\src-trunk\db4-win32\include, and all the import libraries to + SVN\src-trunk\db4-win32\lib. Again, the DLLs should be somewhere in + your path. + + * If you want to build the server modules, extract Apache source into + SVN\httpd-2.x.x. + * If you are building from a checkout of Subversion, and you are NOT + building Apache, then you will need the APR libraries. Depending + on how you got your version of APR, either: + - Extract the APR, APR-util and APR-iconv source distributions into + SVN\apr, SVN\apr-util, and SVN\apr-iconv respectively. + Or: + - Extract the apr, apr-util and apr-iconv directories from the + srclib folder in the Apache httpd source into SVN\apr, + SVN\apr-util, and SVN\apr-iconv respectively. + * Extract the ZLib sources into SVN\zlib if you are not using the zlib + included in the dependencies zip file. + * If you want secure connection (https) client support, extract openssl + into SVN\openssl-x.x.x + * If you want localized message support, extract svn-win32-libintl.zip + into SVN\svn-win32-libintl and extract gettext-x.x.x-bin.zip and + gettext-x.x.x-dep.zip into SVN\gettext-x.x.x-bin. + Add SVN\gettext-x.x.x-bin\bin to your path. + * [Optional] Extract MASM32 (only the ML.EXE and ML.ERR files) into + SVN\asm (or extract nasm into SVN\asm) and put it in your path. + + 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. + + Start in the SVN directory you created. + + Set up the environment (commands should be one line even if wrapped here). + + C:>set VER=trunk + C:>set DIR=trunk + C:>set DRIVE=C + C:>set PYTHONDIR=C:\Python22 + C:>set AWKDIR=C:\SVN\Awk + C:>set ASMDIR=C:\SVN\asm + C:>set SDKINC=C:\Program Files\Microsoft SDK\include + C:>set SDKLIB=C:\Program Files\Microsoft SDK\lib + C:>set GETTEXTBIN=C:\SVN\gettext-0.14.1-bin\bin + C:>PATH=%PATH%;%DRIVE%:\SVN\src-%DIR%\db4-win32;%ASMDIR%; + %PYTHONDIR%;%AWKDIR%;%GETTEXTBIN% + C:>set INCLUDE=%SDKINC%;%INCLUDE% + C:>set LIB=%SDKLIB%;%LIB% + + OpenSSL + + C:>cd openssl-0.9.7f + C:>perl Configure VC-WIN32 + [*] C:>call ms\do_masm + C:>nmake -f ms\ntdll.mak + C:>cd out32dll + C:>call ..\ms\test + C:>cd ..\.. + + *Note: Use "call ms\do_nasm" if you have nasm instead of MASM, or + "call ms\do_ms" if you don't have an assembler. + + Apache 2 + + This step is only required for building the server dso modules. + + The Subversion gen-make.py script must be run before building Apache or + Apache and Subversion will be running incompatible versions of apr. + + C:>cd src-%DIR% + C:>python gen-make.py -t dsp --with-httpd=..\httpd-2.0.58 + --with-berkeley-db=db4-win32 --with-openssl=..\openssl-0.9.7f + --with-zlib=..\zlib --with-libintl=..\svn-win32-libintl + C:>cd .. + C:>set APACHEDIR=C:\Program Files\Apache Group\Apache2 + C:>msdev httpd-2.0.58\apache.dsw /MAKE "BuildBin - Win32 Release" + + Subversion + + Things to note: + + * If you don't want to build mod_dav_svn, omit the --with-httpd + option. The zip file source distribution contains apr, apr-util and + apr-iconv in the default build location. If you have downloaded the + apr files yourself you will have to tell the generator where to find + the APR libraries; the options are --with-apr, --with-apr-util and + --with-apr-iconv. + * If you would like a debug build substitute Debug for Release in + the msdev commands. + * There have been rumors that Subversion on Win32 can be built + using the latest cygwin, you probably don't want the zip file source + distribution though. ymmv. + * The /USEENV switch to msdev makes it take notice of the INCLUDE and + LIB environment variables, it also makes it ignore its own lib and + include settings so you need to have the Windows SDK lib and include + directories in the LIB and INCLUDE environment variables. Do *not* + use this switch when starting up the msdev Visual environment. If you + wish to build in the Visual environment the SDK lib and include + directories must be in the Tools/Options/Directories settings (if you + followed the 'Register the SDK with Visual Studio 6' instructions + above this has been done for you). + * If you are using Visual Studio .NET change -t dsw into -t vcproj and + add the --vsnet-version=200x option on the gen-make.py command. + In this case you will also have to distribute the C runtime dll with + the binaries. Also, since Apache/APR do not provide .vcproj files, + you will need to convert the Apache/APR .dsp files to .vcproj files + with Visual Studio before building -- just open the Apache .dsw file + and answer 'Yes To All' when the conversion dialog pops up, or you + can open the individual .dsp files and convert them one at a time. + The Apache/APR projects required by Subversion are: + apr-util\libaprutil.dsp, apr\libapr.dsp, + apr-iconv\libapriconv.dsp, apr-util\xml\expat\lib\xml.dsp, + apr-util\uri\gen_uri_delims.dsp (for APR 0.9.x), + apr-iconv\ccs\libapriconv_ccs_modules.dsp, and + apr-iconv\ces\libapriconv_ces_modules.dsp. + * If the server dso modules are being built and tested Apache must not + be running or the copy of the dso modules will fail. + + C:>cd src-%DIR% + + If Apache 2 has been built and the server modules are required then + gen-make.py will already have been run. If the source is from the zip + file, Apache 2 has not been built so gen-make.py must be run: + + C:>python gen-make.py -t dsp --with-berkeley-db=db4-win32 + --with-openssl=..\openssl-0.9.7f --with-zlib=..\zlib + --with-libintl=..\svn-win32-libintl + + Then build subversion: + + C:>msdev subversion_msvc.dsw /USEENV /MAKE "__ALL_TESTS__ - Win32 Release" + C:>cd .. + + Or, with Visual C++.NET 2002, 2003, 2005: + + C:>devenv subversion_vcnet.sln /build "Release" /project "__ALL_TESTS__" + C:>cd .. + + Or, with Visual C++ Express 2005: + + C:>msbuild subversion_vcnet.sln /t:__ALL_TESTS__ /p:Configuration=Release + C:>cd .. + + The binaries have now been built. + + E.5 Packaging the binaries + + You now need to copy the binaries ready to make the release zip + file. You also need to do this to run the tests as the new binaries + need to be in your path. You can use the build/win32/make_dist.py + script in the Subversion source directory to do that. + + [TBD: Describe how to do this. Note dependencies on zip, jar, doxygen.] + + E.6 Testing the Binaries + [TBD: It's been a long, long while since it was necessary to move + binaries around for testing. win-tests.py does that automagically. + Fix this section accordingly, and probably reorder, putting + the packaging at the end.] + + The build process creates the binary test programs but it does not + copy the client tests into the release test area. + + C:>cd src-%DIR% + C:>mkdir Release\subversion\tests\cmdline + C:>xcopy /S /Y subversion\tests\cmdline Release\subversion\tests\cmdline + + If the server dso modules have been built then copy the dso files and + dlls into the Apache modules directory. + + C:>copy Release\subversion\mod_dav_svn\mod_dav_svn.so "%APACHEDIR%"\modules + C:>copy Release\subversion\mod_authz_svn\mod_authz_svn.so + "%APACHEDIR%"\modules + C:>copy svn-win32-%VER%\bin\intl.dll "%APACHEDIR%\bin" + C:>copy svn-win32-%VER%\bin\iconv.dll "%APACHEDIR%\bin" + C:>copy svn-win32-%VER%\bin\libdb42.dll "%APACHEDIR%\bin" + C:>cd .. + + Put the svn-win32-trunk\bin directory at the start of your path so + you run the newly built binaries and not another version you might + have installed. + + Then run the client tests: + + C:>PATH=%DRIVE%:\SVN\svn-win32-%VER%\bin;%PATH% + C:>cd src-%DIR% + C:>python win-tests.py -c -r -v + + If the server dso modules were built configure Apache to use the + mod_dav_svn and mod_authz_svn modules by making sure these lines appear + uncommented in httpd.conf: + + LoadModule dav_module modules/mod_dav.so + LoadModule dav_fs_module modules/mod_dav_fs.so + LoadModule dav_svn_module modules/mod_dav_svn.so + LoadModule authz_svn_module modules/mod_authz_svn.so + + And further down the file add location directives to point to the + test repositories. Change the paths to the SVN directory you created + (paths should be on one line even if wrapped here): + + <Location /svn-test-work/repositories> + DAV svn + SVNParentPath C:/SVN/src-trunk/Release/subversion/tests/cmdline/ + svn-test-work/repositories + </Location> + + <Location /svn-test-work/local_tmp/repos> + DAV svn + SVNPath c:/SVN/src-trunk/Release/subversion/tests/cmdline/ + svn-test-work/local_tmp/repos + </Location> + + Then restart Apache and run the tests: + + C:>python win-tests.py -c -r -v -u http://localhost + C:>cd .. + +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 + ----------------- + + (Following the BOOTSTRAPPING FROM RPM procedures above will install and + build the latest Subversion server for Linux RedHat 7.1, 7.2, and PPC + Linux systems *IF* the apache-devel-2.0.41 or greater package is already + installed when the SUBVERSION RPM is built.) + + + 1. Obtaining and Installing Apache 2 + + Subversion tries to compile against the latest released version + of Apache httpd 2.X. The easiest thing for you to do is download + a source tarball of the latest release and unpack that. + + + **************************************************************** + ** IMPORTANT ISSUE ABOUT APACHE VERSIONS: READ THIS. ** + ** ** + **************************************************************** + | | + | First, be sure to read the APR version warning box, back in | + | section I.C.1, which explains that APR 0.9.x and 1.X are | + | binary-incompatible. | + | | + | Apache HTTPD 2.0 uses APR 0.9.x. | + | Apache HTTPD 2.2 uses APR 1.2.x. | + | | + | We recommend using the latest Apache. However, whatever | + | version you choose, you *must* ensure that Subversion | + | and Apache are using the same version of APR. If you don't, | + | things will segfault and break. | + |______________________________________________________________| + + + If you have questions about the Apache httpd 2.0 build, please consult + the httpd install documentation: + + http://httpd.apache.org/docs-2.0/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. For more info about the db requirement, + see section I.5. + + 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.0 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/apache2/modules/. + + + Section II.E explains how to build the server on Windows. + + + C. Configuring Apache for Subversion + --------------------------------- + + The following section is an abbreviated version of the + information in the Subversion Book + (http://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: + http://httpd.apache.org/docs-2.0/ + + First, your httpd.conf needs to load the mod_dav_svn module. + Subversion's 'make install' target should automatically add this + line for you. But if apache 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> + + 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: + http://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: http://httpd.apache.org/docs-2.0/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 + http://subversion.apache.org/docs/community-guide/. + + + E. Alternative: 'svnserve' and ra_svn + ----------------------------------- + + 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 -d # becomes a background daemon + $ svn checkout svn://localhost/usr/local/svn/repository + + 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.) + + '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 + (http://svnbook.red-bean.com) for details on these features. + + + +IV. PLATFORM-SPECIFIC ISSUES + ======================== + + A. Windows XP + ---------- + + There is an error in the Windows XP TCP/IP stack which causes + corruption in certain cases. This problem is exposed only + through ra_dav. + + The root of the matter is caused by duplicating file handles + between parent and child processes. The httpd Apache group + explains this a lot better: + + http://www.apache.org/dist/httpd/binaries/win32/#xpbug + + And there's an item about this in the Subversion FAQ: + + http://subversion.apache.org/faq.html#windows-xp-server + + The only known workaround for now is to update to Windows XP + SP1 (or higher). + + + B. Mac OS X + -------- + + [TBD: Describe BDB 4.0.x problem] + + + +V. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA) + ======================================================== + + For Python, Perl and Ruby bindings, see the file + + ./subversion/bindings/swig/INSTALL + + For Java bindings, see the file + + ./subversion/bindings/javahl/README |