-
Notifications
You must be signed in to change notification settings - Fork 196
Expand file tree
/
Copy pathINSTALL
More file actions
888 lines (595 loc) · 32.6 KB
/
Copy pathINSTALL
File metadata and controls
888 lines (595 loc) · 32.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
======================================
INSTALLING SUBVERSION
A Quick Guide
======================================
$LastChangedDate$
Contents:
I. INTRODUCTION
A. Audience
B. Dependency Overview
C. Documentation
II. INSTALLATION
A. Building with autoconf and make (Unix only)
B. Building with CMake (Windows and Unix)
C. Building with vcproj/vcxproj (Windows only, deprecated)
D. Running the test suite
E. Building a Subversion server
III. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA)
IV. DEPENDENCIES IN DETAIL
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 macOS. Visit this page for
package links:
https://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 and libtool 2.0 or later
(Unix only, for the autoconf-based build system)
or
* CMake 3.20 or later (Windows and Unix, for the
CMake-based build system)
* a reasonable C compiler (gcc, Visual Studio, etc.)
Subversion depends on the following third-party libraries. The easiest
way to install dependencies is via your operating system's package
management system.
Required:
* APR -- the portability layer that allows Subversion to
run on different operating systems.
* APR-util -- utility library built on top of APR.
* Expat -- XML parsing.
* zlib -- compression of binary diffs, used everywhere.
* LZ4 -- compression. A bundled copy can be used.
* SQLite -- used for some internal databases. An
amalgamation file can be used instead of an installed library.
* utf8proc -- UTF-8 support, including Unicode normalization. A bundled
copy can be used.
Optional:
* Apache Serf -- access to Subversion repositories over
http:// and https:// (client). Strongly recommended.
* Cyrus SASL -- SASL authentication for svn:// (client and svnserve
server).
* libmagic -- MIME type detection for files added to Subversion.
* libsecret -- password storage in GNOME Keyring (client, Unix-only).
* KDE Frameworks 5 with Qt 5 and D-Bus -- password storage in KWallet
(client, Unix-only).
* Python, Perl, Java, Ruby (with py3c for Python) -- the language
bindings.
* Apache HTTP Server -- the mod_dav_svn server module.
* Berkeley DB -- the deprecated BDB repository backend,
to be removed in the future (server).
C. Documentation
The primary documentation for Subversion is the free book
"Version Control with Subversion", a.k.a. "The Subversion Book",
obtainable from https://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
============
Subversion supports three different build systems:
A. Autoconf/make, for Unix builds
B. CMake, for both Unix and Windows
C. Visual Studio vcproj, for Windows builds (deprecated)
Sections A and C below describe the classic build systems that have been
in use since 2001. Note that the Visual Studio vcproj build system is
deprecated as of Subversion 1.15 and will be removed in a future release.
Windows users should build Subversion with CMake instead.
Subversion's CMake-based build system was created in 2024 and was
included in Subversion 1.15. It is still under development and is
expected to become the default build system for Windows platforms
starting with Subversion 1.16. Section B below describes the CMake build
system.
A. Building with autoconf and make (Unix only)
-------------------------------------------
A.1 Building From a Release Tarball
Download the most recent distribution tarball from:
https://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'. See the
section D for more information.
A.2 Building from a Working Copy
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).
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/libserf*
Start the process by running "autogen.sh":
$ sh ./autogen.sh
This script generates the ./configure script.
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.
A.3 Building In a Separate Build Directory
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.
B. Building with CMake (Windows and Unix)
--------------------------------------
Get the sources, either from a release tarball or by checking out the
official repository.
The process for building on Unix and Windows is the same.
$ python gen-make.py -t cmake
$ cmake -B out [build options]
$ cmake --build out
Note: If you're using the tarball distribution, the first gen-make step
can be skipped.
"out" in the commands above is the build directory used by CMake.
Build options can be added, for example:
$ cmake -B out -DCMAKE_INSTALL_PREFIX=/usr/local/subversion -DSVN_ENABLE_TESTS=ON
Build options can be listed using:
$ cmake -LH
Windows tips:
- Modern versions of Microsoft Visual Studio support CMake projects
out of the box, including IntelliSense, an integrated CMake Settings
Editor, Test Explorer, and more. To use it for Subversion,
open the source directory in Visual Studio, and the configuration
should start automatically.
To change the build options (the CMake cache variables) in Visual
Studio, right-click the CMakeLists.txt file and click
'CMake Settings for Subversion' -- this opens the CMake Settings
Editor. Alternatively, you can edit the CMakeSettings.json file
directly.
After configuring the required settings, build the project as usual,
for example with Build > Build All.
See the following page for more information:
https://learn.microsoft.com/en-us/cpp/build/cmake-projects-in-visual-studio
- vcpkg is a useful tool for bootstrapping the dependencies. It provides
ports for most of Subversion's dependencies, which can then be
installed with a single command.
To start using it, clone the vcpkg repository from GitHub, bootstrap
vcpkg, and install the dependencies:
$ git clone https://github.com/microsoft/vcpkg
$ cd vcpkg && .\bootstrap-vcpkg.bat -disableMetrics
$ .\vcpkg install apr apr-util expat zlib sqlite3 serf [any other dependency]
After this is done, vcpkg can be integrated into CMake by setting the
CMAKE_TOOLCHAIN_FILE variable to the path of the vcpkg file. To do
this in Visual Studio, open the CMake Settings Editor as explained in
the previous step, and put the following into the 'CMake toolchain
file' field, where VCPKG_ROOT is the path to your vcpkg clone:
<VCPKG_ROOT>/scripts/buildsystems/vcpkg.cmake
C. Building with vcproj/vcxproj (Windows only, deprecated)
-------------------------------------------------------
The vcproj/vcxproj-based build system is deprecated since Subversion 1.15
and will be removed in a future release. See
https://subversion.apache.org/docs/release-notes/1.15.html#vcproj
Windows users should build Subversion using CMake (see section B above).
The vcproj/vcxproj files for Visual Studio 2010 - 2022 can be generated
with gen-make.py. The required dependencies have to be present in the
system (built or installed) before generating the files. A minimal
gen-make.py command looks like this:
C:\SVN\src>python gen-make.py --vsnet-version=2022 ^
--with-apr "..\myvcpkg\x64-windows" ^
--with-apr-util "..\myvcpkg\x64-windows" ^
--with-zlib "..\myvcpkg\x64-windows" ^
--with-sqlite "..\myvcpkg\x64-windows"
The command generates the Visual Studio 2022 solution and project files
that can be used with Visual Studio and msbuild.
The 'python gen-make.py --help' command prints the list of the options
available, some of which can be used when generating the project files.
To run the test suite, build the target __ALL_TESTS__ and run
C:\SVN\src>python win-tests.py -c -r
The 'python win-tests.py --help' command prints the list of available
options.
D. Running the test suite
----------------------
The test suite can be run using any of the build systems above.
Each test may report PASS, XFAIL, FAIL or XPASS.
The first two statuses are expected and "normal":
- PASS means a test completed with successful result.
- XFAIL means a test failed, but this is a known issue.
The last two statuses are unexpected and indicate a failure:
- FAIL means a test returned an unexpected result.
- XPASS means a test which was expected to fail completed successfully.
D.1 Validating XML output
Some Subversion commands can format their output as XML. The test suite
will always verify that the output is valid XML, however it is also
possible to check the output against the expected XML schema. To do
this, install the lxml and rnc2rng Python modules and start the tests
using the --check-xml-schema argument.
D.2 Running the test suite under the autoconf/make build system
Tests can be started with either of the following commands
- make check [options]
Run the test suite using a local repository ("file://...")
- make davautocheck [options]
Run the test suite using a http:// repository on the local machine
- make svnserveautocheck [options]
Run the test suite using a svnserve:// repository on the local machine
- make check-javahl [options]
Test the javahl bindings
For either command, the usual -j argument can be used to have make run
several tests concurrently.
The following list are options commonly used:
- PARALLEL=n
Run n python based command line tests concurrently
- TESTS=[path to python based test in subversion/tests/cmdline/]
Run a specific Python based test
- APACHE_MPM=mpm type
Used for davautocheck, run the test using the specified Apache httpd
MPM engine
- CHECK_XML_SCHEMA
If this option is defined, full XML schema validation will be
performed, see the --check-xml-schema option above.
D.3 Running the test suite under the CMake build system
The tests are built when the SVN_ENABLE_TESTS option is set to ON.
Run the ctest command from the build directory to run the tests.
E. Building a Subversion server
----------------------------
Subversion has two servers you can choose from, svnserve and
Apache HTTP Server (httpd):
- svnserve is a small, lightweight server program that makes Subversion
repositories available to clients over a custom protocol. The svnserve
server is automatically compiled when you build Subversion's source.
- Apache HTTP Server is a "heavy-duty" server for which the Subversion
project provides the mod_dav_svn and mod_authz_svn modules. Please
refer to section IV.9 below for more information.
SVNBook provides an overview of the server options as well as the steps
necessary to configure these servers in 'Chapter 6. Server
Configuration':
https://svnbook.red-bean.com/en/1.8/svn.serverconfig.html
III. 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
IV. 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.
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.A.2 before installing the following.
1. Apache Portable Runtime and APR-util (REQUIRED)
Subversion requires APR 1.4 or later and APR-util 1.3 or
later.
Whenever you want to build any part of Subversion, you need the
Apache Portable Runtime (APR) and the APR Utility (APR-util)
libraries.
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.
If you do not have a pre-installed APR and APR-util, you will need
to get these yourself:
https://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 ...
Notes on Windows platforms:
* Do not use APR version 1.7.3 as that release contains a bug that
makes it impossible for Subversion to use it properly. This issue
only affects APR builds on Windows. This issue was fixed in APR
version 1.7.4. See:
https://lists.apache.org/thread/xd5t922jvb9423ph4j84rsp5fxks1k0z
* If you check out APR and APR-util sources from their Subversion
repository, 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.
2. Expat (REQUIRED for client and server)
Subversion uses the Expat library for XML parsing.
3. SQLite (REQUIRED)
Subversion requires SQLite 3.24.0 or later.
Subversion uses SQLite to manage some internal databases. 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. The amalgamation can be obtained
from the official SQLite website:
https://www.sqlite.org/download.html
4. Zlib (REQUIRED)
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.
Most Unix systems have zlib pre-installed, but if you need it, you can
get it from
https://www.zlib.net/
5. LZ4 (REQUIRED)
Subversion requires LZ4 version r129 or later.
Subversion uses the LZ4 library for compression. Configure will attempt
to locate the system library by default using pkg-config and known paths.
If it is installed in a non-standard location, then use:
--with-lz4=/path/to/liblz4
If configure should use the version bundled with the sources, use:
--with-lz4=internal
6. utf8proc (REQUIRED)
Subversion uses utf8proc for UTF-8 support, including Unicode
normalization.
Configure will attempt to locate utf8proc by default using pkg-config and
known paths.
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
7. Apache Serf library (OPTIONAL)
The minimum supported version is 1.3.4.
If you want your client to be able to speak to an Apache
server (via a http:// or https:// URL), you must link against
Apache Serf. Though optional, we strongly recommend this.
Apache Serf uses OpenSSL for the encrypted https:// communication.
In order to use ra_serf, you must install serf. Configure will
attempt to locate libserf by default using pkg-config.
If you don't use pkg-config and serf is installed in a non-standard
location, then use:
--with-serf=/path/to/serf/install
Apache Serf can be obtained via your system's package distribution
system or directly from https://serf.apache.org/.
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:
https://www.cyrusimap.org/sasl/
9. Apache HTTP Server (httpd) (OPTIONAL)
(https://httpd.apache.org/download.cgi)
The minimum supported version is 2.2.
The Apache HTTP Server (httpd) can be used to make your Subversion
repositories available over a network. To make this happen, Subversion
provides two modules for the server:
- mod_dav_svn -- enables Apache HTTP Server to serve the repositories
over HTTP(S).
- mod_authz_svn -- enables granular access control for your repositories.
A third, auxiliary module, mod_dontdothat, is also available. It's
designed to block typically unwanted heavy requests.
Building the modules requires Apache HTTP Server to be installed in the
system and its development headers to be present as well.
Building the modules with autoconf/make:
Configure looks for the apxs tool of httpd in the standard locations and
builds the modules if it's found. You can use the "--with-apxs=" option
to locate apxs if it's not found automatically:
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs
The modules are shared objects, so don't use the '--disable-shared'
option.
By default, 'make install' installs the modules into Subversion's
libexecdir (/usr/local/libexec, by default). Use
'--with-apache-libexecdir' to
install them into httpd's own module directory
(e.g., /usr/lib/apache2/modules) or '--with-apache-libexecdir=SOMEPATH'
to install them into SOMEPATH.
The '--enable-mod-activation' option adds the LoadModule directives
to the httpd's configuration files automatically.
Building the modules with CMake:
CMake builds the modules when the SVN_ENABLE_APACHE_MODULES option
is set to ON (the command-line option is -DSVN_ENABLE_APACHE_MODULES=ON).
On Windows, the import libraries libhttpd.lib and mod_dav.lib are
required. Point CMake at the httpd installation directory (e.g.,
C:\Apache24) using the CMAKE_PREFIX_PATH variable, or specify
HTTPD_INCLUDE_DIR, HTTPD_LIBRARY and MOD_DAV_LIBRARY explicitly (e.g.,
C:\Apache24\include, C:\Apache24\lib\libhttpd.lib and
C:\Apache24\lib\mod_dav.lib respectively).
Next steps:
Configuring Apache HTTP Server or svnserve, Subversion's own server
program, is described in chapter 6 of the Subversion Book:
https://svnbook.red-bean.com/en/1.8/svn.serverconfig.html
10. Python (https://www.python.org/) (OPTIONAL)
The minimum supported version is 3.6.
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.
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:
* Use the SWIG 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.D.
* Build Subversion on Windows as described in section II.C.
* 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.
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.
Python is NOT required to do any of the following:
* 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
Python 2.7 reached end of life on January 1, 2020. All users are
strongly encouraged to move to Python 3. The SWIG Python bindings can
still be built for Python 2.7 with the autoconf-based build system.
Please see the file ./subversion/bindings/swig/INSTALL for more
information.
Note: If you are using a Subversion distribution tarball and want
to build the Python bindings for Python 2, you should rebuild
the build environment in non-release mode by running
'sh autogen.sh' before running the ./configure script; see
section II.A.2 for more about autogen.sh.
11. 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.
12. 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.
13. 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
14. 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.
15. 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`.
16. libmagic (OPTIONAL)
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.
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
17. 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
18. Berkeley DB (DEPRECATED, TO BE REMOVED IN THE FUTURE)
The minimum supported version is 4.0.14.
Needed only for the deprecated BDB repository backend. Support for
BDB is planned to be removed completely in the future.
The CMake build system does not support building with BDB.
19. autoconf (Unix only)
The minimum supported version is 2.59.
This is required only if you plan to use the autoconf-based build system
and build from a working copy (see section II.A.2).
Generally only developers would be doing this.
20. libtool (Unix only)
The minimum supported version is 2.0.
This is required only if you plan to use the autoconf-based build system
and build from a working copy (see section II.A.2).
Generally only developers would be doing this.
21. CMake
The minimum supported version is 3.20.
This is required only if you plan to use the CMake-based build system
(see section II.B).
22. pkg-config (Unix only, OPTIONAL)
Subversion uses pkg-config to find appropriate options used
at build time.