52
47
straight to section II. If you want to gather the pieces you will
53
48
need before starting out, however, you should read the following.
50
If you're just installing a Subversion client, the Subversion
51
team has created a package containing the minimal prerequisite
52
libraries (Apache Portable Runtime, Neon, and Zlib) called the
53
"dependency package" tarball or zipfile. You should be able to
54
find it at the same place that you downloaded the Subversion
55
tarball itself from. (Note that this is new as of Subversion
56
1.4.0; previous releases packaged the dependencies in the same
57
tarball as Subversion itself.) If you don't have these
58
libraries installed already, you can simply unpack the
59
dependency package "on top of" the Subversion package; for
60
example, if you are using a .tar.gz bundle on Unix, you could
63
$ tar xzvf subversion-1.x.x.tar.gz
64
$ tar xzvf subversion-deps-1.x.x.tar.gz
67
This will place 'apr', 'apr-util', 'neon', and 'zlib'
68
directories directly into your unpacked Subversion distribution,
69
where they will be automatically configured and built by
70
Subversion's build process.
55
72
Note: Because previous builds of Subversion may have installed older
56
73
versions of these libraries, you may want to run some of the cleanup
57
74
commands described in section II.B before installing the following.
139
158
newer. The autogen.sh script knows about that.
142
4. Neon library 0.24.7 or 0.25.5 (http://www.webdav.org/neon/)
161
4. Neon library 0.25.x or 0.26.x (http://www.webdav.org/neon/)
144
163
The Neon library allows a Subversion client to interact with remote
145
164
repositories over the Internet via a WebDAV based protocol. If you
146
165
want to use Subversion to connect to a server over ra_dav (via a
147
http:// or https:// url), you will require Neon.
149
The Neon library source code can be installed in "./neon" if you
166
http:// or https:// url), you will require Neon. (See also section
167
I.11 for information about "serf", an experimental alternative to
168
Neon for accessing servers over WebDAV.)
170
The source code is included with the Subversion dependencies package,
171
and it can also be obtained from:
173
http://www.webdav.org/neon/neon-0.25.5.tar.gz
175
http://www.webdav.org/neon/neon-0.26.1.tar.gz
177
Building Neon inside the subversion build:
179
The Neon library source code can be placed in "./neon" if you
150
180
want Subversion to build it as part of the Subversion build process.
151
The source code is included with the latest Subversion tarball, and it
152
can also be obtained from:
154
http://www.webdav.org/neon/neon-0.24.7.tar.gz
156
http://www.webdav.org/neon/neon-0.25.5.tar.gz
158
Unpack the archive using tar/gunzip and rename the resulting
159
directory from ./neon-0.XX.Y to just "./neon".
161
Without source code, a previously compiled library can be picked up
162
from the standard locations. If you want to specify a nonstandard
163
location, you need to use the LDFLAGS environment variable when
164
you run "./configure". You may also have to specify where the
165
neon-config script (which identifies various features of the Neon
166
library) is kept by giving the "--with-neon=" option to
167
"./configure". Note that the script should be kept in a "bin"
168
subdirectory beneath wherever "--with-neon" is pointed.
182
Unpack the archive using tar/gunzip. Rename the resulting
183
directory from ./neon-0.XX.Y to just "./neon", inside the top
184
level of your Subversion source tree. (This is what unpacking the
185
Subversion dependencies package does, too.)
187
Using Neon as an external library:
189
We recommend that you keep the neon installation out of the
190
Subversion working copy. This is because most developers have
191
multiple working copies of Subversion, and it is easier to use a
192
single instance of the Neon library for all instances. To do
193
this, just unzip/untar Neon, and build and install it according
194
to its own standard installation instructions. Then follow the
195
steps below to use the installed Neon when building
197
Subversion's configuration mechanism should auto-detect the
198
installed Neon. If it does not, you may need to set the LDFLAGS
199
environment variable when you run "./configure", or specify
200
Neon's location by passing the "--with-neon=" option to
201
"./configure". Look for the "neon-config" script in a "bin/"
202
subdirectory of the target of "--with-neon". For example, if
203
you pass "--with-neon=/usr/local/myneon/", then there should be
204
a file "/usr/local/myneon/bin/neon-config".
171
206
5. Berkeley DB 4.X
266
301
version if MASM is not compatible with MSVC 6).
269
11. Libraries for our libraries
306
serf is a library for HTTP and WebDAV which is an alternative to
307
Neon for accessing Subversion repositories over http:// and
308
https:// URLs. serf is designed as an asynchronous library
309
which can take advantage of HTTP pipelining, so ra_serf may be
310
more efficient than the Neon-based ra_dav. The serf library can
313
http://code.google.com/p/serf/
315
In order to use ra_serf instead of ra_dav, you must install
316
ra_serf, and run Subversion's ./configure with the arguments
317
--with-serf and --without-neon. (The latter isn't required if
318
you don't actually have Neon.) If serf is installed in a
319
non-standard place, you should use
321
--with-serf=/path/to/serf/install
325
For more information on serf and Subversion's ra_serf, see the
326
file subversion/libsvn_ra_serf/README.
329
12. Libraries for our libraries
271
331
Some of the libraries that Subversion depends on themselves have
272
332
optional dependencies that can add features to what Subversion
328
389
The Windows build scripts will compile the ZLib sources.
331
11. Building The Documentation
333
The master source format for Subversion's documentation is
334
Docbook Lite. See doc/book/README for instructions how to
335
compile the book into a useful format.
337
The preferred documentation source format used to be Texinfo. We are
338
in the process of migrating all texinfo files to DocBook Lite. The
339
online documentation for texinfo is at
341
http://www.gnu.org/manual/texinfo-4.0/html_chapter/texinfo_toc.html
343
Depending on exactly which doc targets you make, you'll need one
346
* the `makeinfo' program from the latest texinfo package in
347
ftp://ftp.gnu.org/pub/gnu/texinfo/
349
* the `texi2dvi' or `texi2html' programs
351
* the `dvipdf' script from Ghostscript (pipes dvi | ps |
354
If `makeinfo' is not installed before `configure' is run, then
355
the documentation which requires it will not be created and installed.
394
The primary documentation for Subversion is the free book
395
"Version Control with Subversion", a.k.a. "The Subversion Book",
396
obtainable from http://svnbook.red-bean.com/.
398
Various additional documentation exists in the doc/ subdirectory of
399
the Subversion source. See the file doc/README for more information.
564
615
If using a self-extracting .exe file, just run it instead of
565
616
unzipping it, to install Subversion.
568
618
E. Building the Latest Source under Windows
569
619
----------------------------------------
571
621
E.1 Prerequisites
573
* Visual Studio 6 and service pack. It can be built with Visual Studio
574
7 (aka Visual Studio.NET aka Visual Studio.NET 2002) but these
575
instructions assume VS6.
576
* A recent Windows SDK, the one provided with Visual Studio 6 is
577
too old. You only need the 'Core SDK'. You can get it from MSDN
578
if you have it or from
623
* Visual Studio 6 and service pack. It can be built with later versions
624
of Visual Studio (Visual Studio.NET 2002, 2003, 2005 and Visual C++
625
Express 2005) but these instructions assume VS6.
626
* A recent Windows SDK if you are using Visual Studio 6.
627
You can get it from MSDN if you have it or from
579
628
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ if you
581
630
* Python 2.2 or higher, downloaded from http://www.python.org/ which is
582
631
used to generate the project files.
583
632
* Perl 5.8 or higher from http://www.activestate.com/
584
* Awk, from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe
585
This is needed to compile Apache or APR. Note that this is the
586
actual awk program, not an installer - just rename it to awk.exe
587
and it is ready to use.
633
* Awk (from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe) is
634
needed to compile Apache or APR. Note that this is the actual awk
635
program, not an installer - just rename it to awk.exe and it is
588
637
* Neon 0.24.7 or higher, downloaded from
589
638
http://www.webdav.org/neon/neon-0.24.7.tar.gz which is required
590
639
for building the client components. Neon is included in the zip file
592
* Berkeley DB is required for support for local server components,
593
version 4.3.27 is available from
594
http://subversion.tigris.org/servlets/ProjectDocumentList as
595
db-4.3.27-win32.zip. For more information see Section I.5.
596
* Apache 2 source, downloaded from
597
http://httpd.apache.org/download.cgi, these instructions assume
598
version 2.0.54. Only needed for building the server dso modules.
599
* Apache 2 msi install file, also from
600
http://httpd.apache.org/download.cgi (required for running the
601
tests). Only needed for testing the server dso modules.
602
* Apache apr, apr-util, and apr-iconv libraries, version 0.9.5.
603
Included in both the Subversion ZIP file and the Apache 2 source
604
tarball. If you are building from a Subversion checkout and have
605
not downloaded Apache 2, then get these 3 libraries from
606
http://www.apache.org/dist/apr/
607
* ZLib 1.2 or higher sources from http://www.zlib.org/
608
* Openssl 0.9.7f or higher obtained from
609
http://www.openssl.org/source/openssl-0.9.7f.tar.gz
610
* A modified version of GNU libintl, called svn-win32-libintl.zip,
611
for displaying localized messages. Available in
612
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=2627
613
* GNU gettext for generating message catalog (.mo) files from
614
message translations. Get the latest binaries from
615
http://gnuwin32.sourceforge.net/. You'll need the binaries
616
(gettext-0.14.1-bin.zip) and dependencies (gettext-0.14.1-dep.zip).
641
* Apache apr, apr-util, and apr-iconv libraries, version 0.9.12.
642
Included in both the Subversion dependencies ZIP file and the
643
Apache 2.058 source zip. If you are building from a Subversion
644
checkout and have not downloaded Apache 2, then get these 3
645
libraries from http://www.apache.org/dist/apr/. Note that
646
the 1.x APR releases are not yet functional with Subversion --
647
see the note on '[Optional] Apache 2 source' below.
648
* ZLib 1.2 or higher is required and is included in the Subversion
649
dependencies zip file or can be obtained from http://www.zlib.org
617
650
* Either a Subversion client binary from http://subversion.tigris.org/ to
618
651
do the initial checkout of the Subversion source or the zip file
619
652
source distribution. See the section "Bootstrapping from a Zip or
620
653
Installer File under Windows" above for more.
621
654
* A means of unpacking the files, e.g., WinZIP or similar.
658
* [Optional] Apache 2 source, downloaded from
659
http://httpd.apache.org/download.cgi, these instructions assume
660
version 2.0.58. Only needed for building the server dso modules.
661
Note that although Subversion will compile against Apache 2.2.2
662
and APR 1.2.7, there is a bug that causes runtime failures with
663
Subversion on Windows. It will hopefully be fixed in the
664
Apache 2.2.3 and APR 1.2.8 release. The patch is available at:
665
http://www.mail-archive.com/dev@apr.apache.org/msg15242.html if
666
you want to patch and build APR yourself.
667
* [Optional] Apache 2 msi install file, also from
668
http://httpd.apache.org/download.cgi (required for running the
669
tests). Only needed for testing the server dso modules and if
670
you are using Visual Studio 6.
671
Note that if you are not using Visual Studio 6 (and you want to
672
run and test the server modules) then you must rebuild Apache
673
from source -- do not use the stock MSI since mixing C runtime
674
libraries is not supported.
675
* [Optional] Berkeley DB for backend support of the server
676
components -- versions 4.3.27 and 4.4.20 are available from
677
http://subversion.tigris.org/servlets/ProjectDocumentList as
678
db-4.3.27-win32.zip and db-4.4.20-win32.zip.
679
For more information see Section I.5.
680
* [Optional] Openssl 0.9.7f or higher can be obtained from
681
http://www.openssl.org/source/openssl-0.9.7f.tar.gz
682
* [Optional] A modified version of GNU libintl, called
683
svn-win32-libintl.zip, can be used for displaying localized
684
messages. Available at:
685
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=2627
686
* [Optional] GNU gettext for generating message catalog (.mo)
687
files from message translations. You can get the latest
688
binaries from http://gnuwin32.sourceforge.net/. You'll need the
689
binaries (gettext-0.14.1-bin.zip) and dependencies
690
(gettext-0.14.1-dep.zip).
622
691
* [Optional] An assembler, e.g., MASM32 from http://www.mas32.com/
623
692
or nasm which is available from
624
693
http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
712
785
- Extract the apr, apr-util and apr-iconv directories from the
713
786
srclib folder in the Apache httpd source into SVN\apr,
714
787
SVN\apr-util, and SVN\apr-iconv respectively.
715
* Extract the ZLib sources into SVN\zlib.
716
* Extract openssl into SVN\openssl-0.9.7f
717
* Extract svn-win32-libintl.zip into SVN\svn-win32-libintl.
718
Add SVN\svn-win32-libintl\inc to your INCLUDE path and
719
SVN\svn-win32-libintl\lib to your LIB path environment variables.
720
You can add these on the command line as shown below.
721
* Extract gettext-0.14.1-bin.zip and gettext-0.14.1-dep.zip into
722
SVN\gettext-0.14.1-bin. Add SVN\gettext-0.14.1-bin\bin to your path.
788
* Extract the ZLib sources into SVN\zlib if you are not using the zlib
789
included in the dependencies zip file.
790
* If you want secure connection (https) client support, extract openssl
791
into SVN\openssl-x.x.x
792
* If you want localized message support, extract svn-win32-libintl.zip
793
into SVN\svn-win32-libintl and extract gettext-x.x.x-bin.zip and
794
gettext-x.x.x-dep.zip into SVN\gettext-x.x.x-bin.
795
Add SVN\gettext-x.x.x-bin\bin to your path.
723
796
* [Optional] Extract MASM32 (only the ML.EXE and ML.ERR files) into
724
797
SVN\asm (or extract nasm into SVN\asm) and put it in your path.
806
874
directories must be in the Tools/Options/Directories settings (if you
807
875
followed the 'Register the SDK with Visual Studio 6' instructions
808
876
above this has been done for you).
809
* If you are using Visual Studio .NET change -t dsw into -t vcproj on
810
the gen-make.py command. In this case you will also have to
811
distribute the C runtime dll with the binaries.
877
* If you are using Visual Studio .NET change -t dsw into -t vcproj and
878
add the --vsnet-version=200x option on the gen-make.py command.
879
In this case you will also have to distribute the C runtime dll with
880
the binaries. Also, since Apache/APR do not provide .vcproj files,
881
you will need to convert the Apache/APR .dsp files to .vcproj files
882
with Visual Studio before building -- just open the Apache .dsw file
883
and answer 'Yes To All' when the conversion dialog pops up, or you
884
can open the individual .dsp files and convert them one at a time.
885
The Apache/APR projects required by Subversion are:
886
apr-util\libaprutil.dsp, apr\libapr.dsp,
887
apr-iconv\libapriconv.dsp, apr-util\xml\expat\lib\xml.dsp,
888
apr-util\uri\gen_uri_delims.dsp (for APR 0.9.x),
889
apr-iconv\ccs\libapriconv_ccs_modules.dsp, and
890
apr-iconv\ces\libapriconv_ces_modules.dsp.
812
891
* If the server dso modules are being built and tested Apache must not
813
892
be running or the copy of the dso modules will fail.