source: general/prog/subversion.xml@ 9845cded

trunk
Last change on this file since 9845cded was 9845cded, checked in by Douglas R. Reno <renodr@…>, 9 hours ago

Subversion: add back the accidentally removed SWIG dependency

This is needed for the bindings, not sure why it was commented out

  • Property mode set to 100644
File size: 19.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY subversion-download-http "https://archive.apache.org/dist/subversion/subversion-&subversion-version;.tar.bz2">
8 <!ENTITY subversion-download-ftp " ">
9 <!ENTITY subversion-md5sum "be9f6c5e8bb80e465152b4c5160d7f54">
10 <!ENTITY subversion-size "8.1 MB">
11 <!-- for 1.12.0 1.12.2 1.13.0
12 make javahl: 0.5 SBU 28 MB; not avail
13 swig-pl: 0.8 42 MB; 0.7 SBU 43 MB; 0.6 SBU 44 MB
14 swig-py: 0.6 26 MB; 0.5 28 MB; 0.5 28 MB
15 swig-rb: 0.4 22 MB; 0.4 21 MB; 0.3 21 MB
16 docs: 2 secs 26 MB; 2 sec 27 MB; 2 sec 26 MB
17 tests 46 min 1104 MB 46:52 1103 MB 47 min -->
18 <!ENTITY subversion-buildsize "193 MB (add 189 MB for bindings, 54 MB for docs, 1.3 GB for tests)">
19 <!ENTITY subversion-time "0.4 SBU (Using parallelism=4; add 2.0 SBU for bindings, 30 SBU for tests)">
20]>
21
22<sect1 id="subversion" xreflabel="Subversion-&subversion-version;">
23 <?dbhtml filename="subversion.html"?>
24
25
26 <title>Subversion-&subversion-version;</title>
27
28 <indexterm zone="subversion">
29 <primary sortas="a-Subversion">Subversion</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to Subversion</title>
34
35 <para>
36 <application>Subversion</application> is a version control system that is
37 designed to be a compelling replacement for <application>CVS</application>
38 in the open source community. It extends and enhances
39 <application>CVS</application>' feature set, while maintaining a similar
40 interface for those already familiar with <application>CVS</application>.
41 These instructions install the client and server software used to
42 manipulate a <application>Subversion</application> repository. Creation of
43 a repository is covered at <xref linkend="svnserver"/>.
44 </para>
45
46 &lfs122_checked;
47
48 <bridgehead renderas="sect3">Package Information</bridgehead>
49 <itemizedlist spacing="compact">
50 <listitem>
51 <para>
52 Download (HTTP): <ulink url="&subversion-download-http;"/>
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download (FTP): <ulink url="&subversion-download-ftp;"/>
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Download MD5 sum: &subversion-md5sum;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Download size: &subversion-size;
68 </para>
69 </listitem>
70 <listitem>
71 <para>
72 Estimated disk space required: &subversion-buildsize;
73 </para>
74 </listitem>
75 <listitem>
76 <para>
77 Estimated build time: &subversion-time;
78 </para>
79 </listitem>
80 </itemizedlist>
81
82 <bridgehead renderas="sect3">Subversion Dependencies</bridgehead>
83
84 <bridgehead renderas="sect4">Required</bridgehead>
85 <para role="required">
86 <xref linkend="apr-util"/> and
87 <xref linkend="sqlite"/>
88 </para>
89
90 <bridgehead renderas="sect4">Recommended</bridgehead>
91 <para role="recommended">
92 <xref linkend="serf"/> (for handling http:// and https:// URLs) and
93 <xref linkend="swig"/> (for regenerating the build system)
94 </para>
95
96 <bridgehead renderas="sect4">Optional</bridgehead>
97 <para role="optional">
98 <xref linkend="apache"/>,
99 <xref linkend="boost"/>,
100 <xref linkend="cyrus-sasl"/>,
101 <xref linkend="dbus"/>,
102 <xref linkend="doxygen"/> (for generating HTML documentation),
103 <xref linkend="gnome-keyring"/>,
104 <xref linkend="libsecret"/>,
105 <xref linkend="py3c"/> (for the python bindings, and tests),
106 <xref linkend="python3"/> (with sqlite support for the tests),
107 <xref linkend="ruby"/>,
108 <xref linkend="swig"/>, and
109 <ulink url="https://git.netsurf-browser.org/libutf8proc.git/">UTF8proc</ulink>
110 </para>
111
112 <bridgehead renderas="sect4">Optional (for the Java Bindings)</bridgehead>
113 <para role="optional">
114 One of <xref linkend="openjdk"/>,
115 <ulink url="https://www.inet.no/dante/">Dante</ulink> or
116 <ulink url="https://jikes.sourceforge.net/">Jikes</ulink>,
117 <ulink url="https://junit.org/junit4/">JUnit 4</ulink> (to test the Java bindings) and
118 <xref linkend="apache-ant"/>.
119 </para>
120
121 </sect2>
122
123 <sect2 role="installation">
124 <title>Installation of Subversion</title>
125
126 <para>
127 Install <application>Subversion</application> by running the following
128 commands:
129 </para>
130
131<screen><userinput>PYTHON=python3 \
132./configure --prefix=/usr \
133 --disable-static \
134 --with-apache-libexecdir \
135 --with-utf8proc=internal &amp;&amp;
136make</userinput></screen>
137
138 <para>
139 If you have <xref linkend="doxygen"/> installed and you wish to build the
140 API documentation, issue:
141 </para>
142
143<screen remap="doc"><userinput>doxygen doc/doxygen.conf</userinput></screen>
144
145 <para>
146 If you wish to build the Java bindings pass the <option>--enable-javahl</option>
147 parameter to the <command>configure</command> command. In addition, if
148 you want to run the Java test suite, you have to specify the location
149 of the <application>JUnit</application> file by adding
150 <option>--with-junit=&lt;path to junit jar&gt;</option> (for
151 instance <option>--with-junit=/usr/local/java/lib/junit-4.13.jar</option>)
152 to <command>configure</command>. The JUnit jar file is no longer
153 included in <xref linkend="apache-ant"/> and must be downloaded
154 separately. To build the Java bindings, issue the following command:
155 </para>
156
157 <para>
158 <screen><command>make -j1 javahl</command></screen>
159 </para>
160
161 <para>
162 If you want to compile <application>Perl</application>,
163 <application>Python</application>, or <application>Ruby</application>
164 bindings, issue any of the following command:
165 </para>
166
167<screen><command>make swig-pl</command> # for <application>Perl</application>
168<command>make swig-py \
169 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
170 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command> # for <application>Python</application>
171<command>make swig-rb</command> # for <application>Ruby</application></screen>
172
173 <para>
174 To test the results, issue: <command>make check</command>. Four tests in
175 the <filename>commit_tests.py</filename>,
176 <filename>prop_tests.py</filename>, and
177 <filename>update_tests.py</filename> suites are known to fail. Due to
178 changes in Python-3.12, you can expect to see around 200 Syntax Warnings
179 during the test suite due to invalid escape sequences.
180 </para>
181
182 <para>
183 To test the results of any of the <application>SWIG</application>
184 bindings, you can use any of the following commands:
185 <command>make check-swig-pl</command>,
186 <command>make check-swig-py</command>, or
187 <command>make check-swig-rb</command>.
188 </para>
189
190 <para>
191 Now, as the <systemitem class="username">root</systemitem> user:
192 </para>
193
194<screen role="root"><userinput>make install &amp;&amp;
195
196install -v -m755 -d /usr/share/doc/subversion-&subversion-version; &amp;&amp;
197cp -v -R doc/* /usr/share/doc/subversion-&subversion-version;</userinput></screen>
198
199 <para>
200 If you built the Java bindings, issue the following command as the
201 <systemitem class="username">root</systemitem> user to install them:
202 </para>
203 <para>
204<screen><command>make install-javahl</command></screen>
205 </para>
206
207 <para>
208 If you built the <application>Perl</application>,
209 <application>Python</application>, or
210 <application>Ruby</application> bindings, issue any of the following
211 commands as the <systemitem class="username">root</systemitem> user
212 to install them:
213 </para>
214 <para>
215<screen><command>make install-swig-pl</command>
216<command>make install-swig-py \
217 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
218 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command>
219<command>make install-swig-rb</command></screen>
220 </para>
221
222 <para>
223 The java bindings need to be installed in order for the tests to run,
224 since the tests attempt to look for them in CLASSPATH. To test the
225 results of the Java bindings build, issue
226 <command>LANG=C make check-javahl</command>.
227 <!-- ~~ This explanation is added to the configure above ~~
228 The <application>JUnit</application> testing framework must be installed,
229 and the location of the JUnit jar has to be specified by passing the
230 <option>- -with-junit=&lt;path to junit jar&gt;</option> parameter to
231 <command>configure</command>. Note that <application>JUnit</application>
232 is included in <xref linkend="apache-ant"/>, and can be accessed by
233 passing <option>- -with-junit=/opt/ant/lib/junit-4.12.jar</option>
234 to <command>configure</command>.
235 -->
236 </para>
237 </sect2>
238
239 <sect2 role="commands">
240 <title>Command Explanations</title>
241
242 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
243 href="../../xincludes/static-libraries.xml"/>
244
245 <para>
246 <parameter>--with-apache-libexecdir</parameter>:
247 If <xref linkend="apache"/> is installed, the shared
248 <application>Apache</application> modules are
249 built. This switch allows to have those modules installed to
250 <application>Apache</application>'s configured module dir instead
251 of <filename class="directory">/usr/libexec</filename>. It has no effect
252 if <application>Apache</application> is not installed.
253 </para>
254
255 <para>
256 <parameter>--with-utf8proc=internal</parameter>:
257 Remove these switches if you have installed the optional dependencies.
258 </para>
259
260 <para>
261 <option>--enable-javahl</option>: enables compilation of Java high level
262 bindings. Running <command>make javahl</command> is necessary to do
263 the compilation.
264 </para>
265
266 <para>
267 <option>--with-junit=&lt;location of the junit jar file&gt;</option>:
268 gives the location of the junit jar, otherwise the javahl tests cannot
269 be run.
270 </para>
271
272 <para>
273 <option>--disable-gmock</option>: Do not use the Googlemock testing
274 framework.
275 </para>
276
277 </sect2>
278
279 <sect2 role="configuration">
280 <title>Configuring Subversion</title>
281
282 <sect3 id="subversion-config">
283 <title>Config Files</title>
284
285 <para>
286 <filename>~/.subversion/config</filename> and
287 <filename>/etc/subversion/config</filename>
288 </para>
289
290 <indexterm zone="subversion subversion-config">
291 <primary sortas="e-AA.subversion/config">~/.subversion/config</primary>
292 </indexterm>
293
294 <indexterm zone="subversion subversion-config">
295 <primary sortas="e-etc-subversion-config">/etc/subversion/config</primary>
296 </indexterm>
297 </sect3>
298
299 <sect3>
300 <title>Configuration Information</title>
301
302 <para>
303 <filename>/etc/subversion/config</filename> is the
304 <application>Subversion</application> system-wide configuration file.
305 This file is used to specify defaults for different
306 <command>svn</command> commands.
307 </para>
308
309 <para>
310 <filename>~/.subversion/config</filename> is the user's personal
311 configuration file. It is used to override the system-wide defaults set
312 in <filename>/etc/subversion/config</filename>.
313 </para>
314 </sect3>
315
316 </sect2>
317
318 <sect2 role="content">
319 <title>Contents</title>
320
321 <segmentedlist>
322 <segtitle>Installed Programs</segtitle>
323 <segtitle>Installed Libraries</segtitle>
324 <segtitle>Installed Directories</segtitle>
325
326 <seglistitem>
327 <seg>
328 svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc,
329 svnrdump, svnserve, svnsync, and svnversion
330 </seg>
331 <seg>
332 libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and
333 mod_authz_svn.so <application>Apache HTTP</application> DSO
334 modules and various <application>Perl</application>,
335 <application>Python</application> and
336 <application>Ruby</application> modules.
337 </seg>
338 <seg>
339 /usr/include/subversion-1,
340 /usr/lib/perl5/site_perl/&lfs-perl-version;/{,auto/}SVN,
341 /usr/lib/python&python3-majorver;/site-packages/{libsvn,svn},
342 /usr/lib/ruby/site_ruby/&lt;x.y.z&gt;/{,&lt;arch-linux&gt;-linux/}svn,
343 /usr/lib/svn-javahl, and
344 /usr/share/doc/subversion-&subversion-version;
345 </seg>
346 </seglistitem>
347 </segmentedlist>
348
349 <variablelist>
350 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
351 <?dbfo list-presentation="list"?>
352 <?dbhtml list-presentation="table"?>
353
354 <varlistentry id="svn">
355 <term><command>svn</command></term>
356 <listitem>
357 <para>
358 is a command-line client program used to access
359 <application>Subversion</application> repositories
360 </para>
361 <indexterm zone="subversion svn">
362 <primary sortas="b-svn">svn</primary>
363 </indexterm>
364 </listitem>
365 </varlistentry>
366
367 <varlistentry id="svnadmin">
368 <term><command>svnadmin</command></term>
369 <listitem>
370 <para>
371 is a tool for creating, tweaking or repairing a
372 <application>Subversion</application> repository
373 </para>
374 <indexterm zone="subversion svnadmin">
375 <primary sortas="b-svnadmin">svnadmin</primary>
376 </indexterm>
377 </listitem>
378 </varlistentry>
379
380 <varlistentry id="svnbench">
381 <term><command>svnbench</command></term>
382 <listitem>
383 <para>
384 is a benchmarking tool
385 </para>
386 <indexterm zone="subversion svnbench">
387 <primary sortas="b-svnbench">svnbench</primary>
388 </indexterm>
389 </listitem>
390 </varlistentry>
391
392 <varlistentry id="svndumpfilter">
393 <term><command>svndumpfilter</command></term>
394 <listitem>
395 <para>
396 is a program for filtering <application>Subversion</application>
397 repository dumpfile format streams
398 </para>
399 <indexterm zone="subversion svndumpfilter">
400 <primary sortas="b-svndumpfilter">svndumpfilter</primary>
401 </indexterm>
402 </listitem>
403 </varlistentry>
404
405 <varlistentry id="svnfsfs">
406 <term><command>svnfsfs</command></term>
407 <listitem>
408 <para>
409 is the FSFS (FileSystem atop of the FileSystem -
410 <application>Subversion</application> filesystem implementation)
411 repository manipulation tool
412 </para>
413 <indexterm zone="subversion svnfsfs">
414 <primary sortas="b-svnfsfs">svnfsfs</primary>
415 </indexterm>
416 </listitem>
417 </varlistentry>
418
419 <varlistentry id="svnlook">
420 <term><command>svnlook</command></term>
421 <listitem>
422 <para>
423 is a tool for inspecting a <application>Subversion</application>
424 repository
425 </para>
426 <indexterm zone="subversion svnlook">
427 <primary sortas="b-svnlook">svnlook</primary>
428 </indexterm>
429 </listitem>
430 </varlistentry>
431
432 <varlistentry id="svnmucc">
433 <term><command>svnmucc</command></term>
434 <listitem>
435 <para>
436 is a Multiple URL Command Client for <application>Subversion</application>
437 </para>
438 <indexterm zone="subversion svnmucc">
439 <primary sortas="b-svnmucc">svnmucc</primary>
440 </indexterm>
441 </listitem>
442 </varlistentry>
443
444 <varlistentry id="svnrdump">
445 <term><command>svnrdump</command></term>
446 <listitem>
447 <para>
448 is a tool for dumping or loading a remote
449 <application>Subversion</application> repository
450 </para>
451 <indexterm zone="subversion svnrdump">
452 <primary sortas="b-svnrdump">svnrdump</primary>
453 </indexterm>
454 </listitem>
455 </varlistentry>
456
457 <varlistentry id="svnserve">
458 <term><command>svnserve</command></term>
459 <listitem>
460 <para>
461 is a custom standalone server program, able to run as a daemon
462 process or invoked by SSH
463 </para>
464 <indexterm zone="subversion svnserve">
465 <primary sortas="b-svnserve">svnserve</primary>
466 </indexterm>
467 </listitem>
468 </varlistentry>
469
470 <varlistentry id="svnsync">
471 <term><command>svnsync</command></term>
472 <listitem>
473 <para>
474 is a <application>Subversion</application> repository
475 synchronisation tool
476 </para>
477 <indexterm zone="subversion svnsync">
478 <primary sortas="b-svnsync">svnsync</primary>
479 </indexterm>
480 </listitem>
481 </varlistentry>
482
483 <varlistentry id="svnversion">
484 <term><command>svnversion</command></term>
485 <listitem>
486 <para>
487 is used to report the version number and state of a working
488 <application>Subversion</application> repository copy
489 </para>
490 <indexterm zone="subversion svnversion">
491 <primary sortas="b-svnversion">svnversion</primary>
492 </indexterm>
493 </listitem>
494 </varlistentry>
495
496 <varlistentry id="libsvn_star-1">
497 <term><filename class="libraryfile">libsvn_*-1.so</filename></term>
498 <listitem>
499 <para>
500 are the support libraries used by the
501 <application>Subversion</application> programs
502 </para>
503 <indexterm zone="subversion libsvn_star-1">
504 <primary sortas="c-libsvn_star-1">libsvn_*-1.so</primary>
505 </indexterm>
506 </listitem>
507 </varlistentry>
508
509 <varlistentry id="mod_authz_svn">
510 <term><filename class="libraryfile">mod_authz_svn.so</filename></term>
511 <listitem>
512 <para>
513 is a plug-in module for the <application>Apache</application> HTTP
514 server, used to authenticate users to a
515 <application>Subversion</application> repository over the Internet
516 or an intranet
517 </para>
518 <indexterm zone="subversion mod_authz_svn">
519 <primary sortas="c-mod_authz_svn">mod_authz_svn.so</primary>
520 </indexterm>
521 </listitem>
522 </varlistentry>
523
524 <varlistentry id="mod_dav_svn">
525 <term><filename class="libraryfile">mod_dav_svn.so</filename></term>
526 <listitem>
527 <para>
528 is a plug-in module for the <application>Apache</application> HTTP
529 server, used to make a <application>Subversion</application>
530 repository available to others over the Internet or an intranet
531 </para>
532 <indexterm zone="subversion mod_dav_svn">
533 <primary sortas="c-mod_authz_svn">mod_dav_svn.so</primary>
534 </indexterm>
535 </listitem>
536 </varlistentry>
537
538 </variablelist>
539
540 </sect2>
541
542</sect1>
Note: See TracBrowser for help on using the repository browser.