96
96
These diff streams are used everywhere -- over the network,
97
97
in the repository, and in the client's working copy.
99
* libserf or libneon (OPTIONAL for client)
99
* libserf (OPTIONAL for client)
101
The Serf and Neon libraries both allow the Subversion client
102
to send HTTP requests. This is necessary if you want your
103
client to access a repository served by the Apache HTTP
104
server. There is an alternate 'svnserve' server as well,
105
though, and clients automatically know how to speak the
106
svnserve protocol. Thus it's not strictly necessary for your
107
client to be able to speak HTTP... though we still recommend
108
that your client be built to speak both HTTP and svnserve
109
protocols. Your client can be compiled against either
110
libserf or libneon (or both), as they offer competing
101
The Serf library allows the Subversion client to send HTTP
102
requests. This is necessary if you want your client to access
103
a repository served by the Apache HTTP server. There is an
104
alternate 'svnserve' server as well, though, and clients
105
automatically know how to speak the svnserve protocol.
106
Thus it's not strictly necessary for your client to be able
107
to speak HTTP... though we still recommend that your client
108
be built to speak both HTTP and svnserve protocols.
113
110
* OpenSSL (OPTIONAL for client and server)
115
112
OpenSSL enables your client to access SSL-encrypted https://
116
URLs (using libserf or libneon) in addition to unencrypted
117
http:// URLs. To use SSL with Subversion's WebDAV server,
118
Apache needs to be compiled with OpenSSL as well.
120
The Neon library can use the GnuTLS library as an alternative
113
URLs (using libserf) in addition to unencrypted http:// URLs.
114
To use SSL with Subversion's WebDAV server, Apache needs to be
115
compiled with OpenSSL as well.
123
117
* Berkeley DB (OPTIONAL for client and server)
177
171
team has created a script that downloads the minimal prerequisite
178
172
libraries (Apache Portable Runtime, Sqlite, and Zlib). The script,
179
173
'get-deps.sh', is available in the same directory as this file.
180
When run, it will place 'apr', 'apr-util', 'serf', 'neon',
181
'zlib', and 'sqlite-amalgamation' directories directly into your
182
unpacked Subversion distribution, where they will be automatically
183
configured and built by Subversion's build process.
174
When run, it will place 'apr', 'apr-util', 'serf', 'zlib', and
175
'sqlite-amalgamation' directories directly into your unpacked Subversion
176
distribution. With the exception of sqlite-amalgamation, they will
177
still need to be configured, built and installed explicitly, and
178
Subversion's own configure script may need to be told where to find
179
them, if they were not installed in standard system locations.
185
181
Note: there are optional dependencies (such as openssl, swig, and httpd)
186
which get-deps.sh does not download and Subversion does not attempt to
182
which get-deps.sh does not download.
189
184
Note: Because previous builds of Subversion may have installed older
190
185
versions of these libraries, you may want to run some of the cleanup
249
244
be able to find them.
251
246
There are a couple of options to "./configure" that tell it where
252
to look for the APR and APR-util libraries. By default, it will first
253
look for bundled versions of APR and APR-util, and then try to locate
254
already installed versions of the libraries using the apr-config and
255
apu-config scripts. These scripts provide all the relevant information
256
for the APR and APR-util installations.
247
to look for the APR and APR-util libraries. By default it will try
248
to locate the libraries using apr-config and apu-config scripts.
249
These scripts provide all the relevant information for the APR and
250
APR-util installations.
258
252
If you want to specify the location of the APR library, you can use
259
253
the "--with-apr=" option of "./configure". It should be able to find
270
264
$ ./configure --with-apr=/usr/local/apache2 \
271
265
--with-apr-util=/usr/local/apache2 ...
273
If you want Subversion to build the APR libraries from source
274
code as part of the Subversion build process, you can put their
275
source code into the "./apr" and "./apr-util" directories.
277
267
Be sure to use a native Windows SVN client (as opposed to
278
268
Cygwin's version) so that the .dsp files get carriage-returns at
279
269
the ends of their lines. Otherwise Visual Studio will complain
284
274
library's directory, to regenerate the configure scripts and
285
275
other files required for compiling the libraries:
287
$ cd apr; ./buildconf; cd ..
289
$ cd apr-util; ./buildconf; cd ..
277
$ cd apr; ./buildconf; ./configure ...; make; make install; cd ..
279
$ cd apr-util; ./buildconf; ./configure ...; make; make install; cd ..
281
Configure build and install both libraries before running Subversion's
292
285
2. Zlib (REQUIRED)
313
306
newer. The autogen.sh script knows about that.
316
5. An HTTP client library: serf or neon. (OPTIONAL)
309
5. Serf library 1.2.1 or newer (OPTIONAL)
318
311
If you want your client to be able to speak to an Apache
319
312
server (via a http:// or https:// URL), you must link against
320
at least one of these libraries. Though optional, we strongly
323
(If you link against both, Subversion will use ra_neon by
324
default. Add "http-library = serf" to the [global] section of
325
your ~/.subversion/servers file to use ra_serf instead.)
327
a. Serf library 0.7.1 or newer (http://code.google.com/p/serf/)
329
In order to use ra_serf, you must install serf, and run
330
Subversion's ./configure with the argument --with-serf. If
331
serf is installed in a non-standard place, you should use
313
serf. Though optional, we strongly recommend this.
315
In order to use ra_serf, you must install serf, and run Subversion's
316
./configure with the argument --with-serf. If serf is installed in a
317
non-standard place, you should use
333
319
--with-serf=/path/to/serf/install
337
For more information on serf and Subversion's ra_serf, see
338
the file subversion/libsvn_ra_serf/README.
340
b. Neon library 0.25 through 0.29 (http://www.webdav.org/neon/)
342
In order to use ra_neon, you must install neon, and run
343
Subversion's ./configure with the argument --with-neon.
344
Subversion's configuration mechanism should then detect the
345
installed Neon. If it does not, you may need to set the
346
LDFLAGS environment variable when you run "./configure", or
347
specify Neon's location by passing the "--with-neon="
348
option to "./configure". Look for the "neon-config" script
349
in a "bin/" subdirectory of the target of "--with-neon".
350
For example, if you pass "--with-neon=/usr/local/myneon/",
351
then there should be a file
352
"/usr/local/myneon/bin/neon-config".
323
Serf can be obtained via your system's package distribution
324
system or directly from http://code.google.com/p/serf/.
326
For more information on serf and Subversion's ra_serf, see the file
327
subversion/libsvn_ra_serf/README.
355
329
6. OpenSSL (OPTIONAL)
358
332
### finding OpenSSL, but we may need more docco here. and w.r.t
361
The Serf and Neon libraries have support for SSL encryption by
362
relying on the OpenSSL library.
335
The Serf library has support for SSL encryption by relying on the
364
338
a. Using OpenSSL on the client through Serf
366
b. Using OpenSSL on the client through Neon
368
When Neon is created with this dependency, then the Subversion
369
client inherits the ability to support SSL connections. Neon
370
also has support for sending compressed data using the zlib
371
library which a Subversion client can take advantage of.
373
On Unix systems, to build Neon with OpenSSL, you need OpenSSL
340
On Unix systems, to build Serf with OpenSSL, you need OpenSSL
374
341
installed on your system, and you must add "--with-ssl" as a
375
342
"./configure" parameter. If your OpenSSL installation is hard
376
for Neon to find, you may need to use "--with-libs=/path/to/lib"
343
for Serf to find, you may need to use "--with-libs=/path/to/lib"
377
344
in addition. In particular, on Red Hat (but not Fedora Core) it
378
345
is necessary to specify "--with-libs=/usr/kerberos" for OpenSSL
379
346
to be found. You can also specify a path to the zlib library
380
using "--with-libs". Consult the Neon documentation for more
381
information on how to use these parameters and versions of
384
349
Under Windows, you can specify the paths to these libraries by
385
350
passing the options --with-zlib and --with-openssl to gen-make.py.
478
443
is done: See section III for details.
481
10. Python 2.4 or newer (http://www.python.org/) (OPTIONAL)
446
10. Python 2.5 or newer (http://www.python.org/) (OPTIONAL)
483
448
If you want to run "make check" or build from the latest source
484
449
under Unix as described in section II.B and III.D, install
485
Python 2.4 or higher on your system. The majority of the test
450
Python 2.5 or higher on your system. The majority of the test
486
451
suite is written in Python, as is part of Subversion's build
683
647
# rm -f /usr/local/lib/libsvn*
684
648
# rm -f /usr/local/lib/libapr*
685
649
# rm -f /usr/local/lib/libexpat*
686
# rm -f /usr/local/lib/libneon*
650
# rm -f /usr/local/lib/libserf*
688
652
Start the process by running "autogen.sh":
733
697
It probably means that the dynamic loader/linker can't find all
734
698
of the libsvn_* libraries.
736
Note that if you commonly build with the -jN option to make and
737
have used the get-deps.sh script to fetch dependencies, the make
738
step above may fail, because we don't ensure that third party
739
libraries in our source tree will finish building before
740
subversion itself. If you want to use -jN, use the following
744
$ make -jN external-all
750
701
C. Building under Unix in Different Directories
751
702
--------------------------------------------
842
793
is compatible with VC6, which is the one from february 2003.
843
794
You can get it from MSDN:
844
795
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
845
* Python 2.4 or higher, downloaded from http://www.python.org/ which is
796
* Python 2.5 or higher, downloaded from http://www.python.org/ which is
846
797
used to generate the project files.
847
798
* Perl 5.8 or higher from http://www.activestate.com/
848
* Awk (from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe) is
799
* Awk (from http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is
849
800
needed to compile Apache or APR. Note that this is the actual awk
850
801
program, not an installer - just rename it to awk.exe and it is
852
* Neon 0.26.1 or higher, downloaded from
853
http://www.webdav.org/neon/neon-0.26.1.tar.gz which is required
854
for building the client components. Neon is included in the zip file
855
distribution. (0.25.0+ compiles, but does not properly support all
857
803
* Apache apr, apr-util, and optionally apr-iconv libraries, version
858
804
0.9.12 or later. Included in both the Subversion dependencies ZIP file
859
805
and the Apache 2 source zip. If you are building from a Subversion
910
The Neon library supports secure connections with OpenSSL and
856
The Serf library supports secure connections with OpenSSL and
911
857
on-the-wire compression with zlib. If you want to use the
912
858
secure connections feature, you should pass the option
913
859
"--with-openssl" to the gen-make.py script. See Section I.11 for
955
901
server dso modules and are using Visual Studio 6. You must build
956
902
and install it from source if you are not using Visual Studio 6 and
957
903
want to build and/or test the server modules.
958
* If you checked out Subversion from the repository then extract neon
959
into SVN\src-trunk\neon, the zip file source distribution includes
904
* If you checked out Subversion from the repository then install the serf
905
sources into SVN\src-trunk\serf.
961
906
* If you want BDB backend support, extract the Berkeley DB files
962
907
into SVN\src-trunk\db4-win32. It's a good idea to add
963
908
SVN\src-trunk\db4-win32\bin to your PATH, so that Subversion can find
1319
1264
After the make install, the Subversion shared libraries are in
1320
1265
/usr/local/lib/. mod_dav_svn.so should be installed in
1321
/usr/local/apache2/modules/.
1266
/usr/local/libexec/ (or elsewhere, such as /usr/local/apache2/modules/,
1267
if you passed --with-apache-libexecdir to configure).
1324
1270
Section II.E explains how to build the server on Windows.
1342
1288
http://httpd.apache.org/docs-2.0/
1344
1290
First, your httpd.conf needs to load the mod_dav_svn module.
1345
Subversion's 'make install' target should automatically add this
1346
line for you. But if apache gives you an error like "Unknown
1291
If you pass --enable-mod-activation to Subversion's configure,
1292
'make install' target should automatically add this line for you.
1293
In any case, if Apache HTTPD gives you an error like "Unknown
1347
1294
DAV provider: svn", then you may want to verify that this line
1348
1295
exists in your httpd.conf: