source: general/prog/subversion.xml

trunk
Last change on this file was 6ba3ab5, checked in by Xi Ruoyao <xry111@…>, 4 weeks ago

bookwide: Remove external references for lz4

Now lz4 is in LFS. Also remove switches for building without lz4.

  • Property mode set to 100644
File size: 20.8 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 "19756a5ceb32a022698a66e48616ef6b">
10 <!ENTITY subversion-size "8.2 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.5 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 &lfs121_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">Additional Downloads</bridgehead>
83 <itemizedlist spacing="compact">
84 <listitem>
85 <para>
86 Required patch for building with <xref linkend="apr"/>:
87 <ulink url="&patch-root;/subversion-&subversion-version;-apr_1.7.0_fix-1.patch"/>
88 </para>
89 </listitem>
90 </itemizedlist>
91-->
92 <bridgehead renderas="sect3">Subversion Dependencies</bridgehead>
93
94 <bridgehead renderas="sect4">Required</bridgehead>
95 <para role="required">
96 <xref linkend="apr-util"/> and
97 <xref linkend="sqlite"/>
98 </para>
99
100 <bridgehead renderas="sect4">Recommended</bridgehead>
101 <para role="recommended">
102 <xref linkend="serf"/> (for handling http:// and https:// URLs)
103 </para>
104
105<!-- support for berkeley db is deprecated since 1.8
106 <note>
107 <para>
108 If you require the <application>Berkeley DB</application> back-end hooks
109 in <application>Subversion</application> to build or support BDB based
110 repositories, you must have <application>APR-util</application> linked to
111 the <application>Berkeley DB</application> library.
112 </para>
113 </note>
114-->
115
116 <bridgehead renderas="sect4">Optional</bridgehead>
117 <para role="optional">
118 <xref linkend="apache"/>,
119 <xref linkend="boost"/>,
120 <xref linkend="cyrus-sasl"/>,
121 <xref linkend="dbus"/>,
122 <xref linkend="doxygen"/> (for generating HTML documentation),
123 <xref linkend="gnome-keyring"/>,
124 <xref linkend="libsecret"/>,
125<!-- <xref linkend="kdelibs"/> (for <ulink url="http://utils.kde.org/projects/kwalletmanager/">KWallet</ulink> support), -->
126 <xref linkend="py3c"/> (for the python bindings, and tests),
127 <xref linkend="python3"/> (with sqlite support for the tests),
128 <xref linkend="ruby"/>,
129 <xref linkend="swig"/> (for building Perl, Python and Ruby bindings),
130 and
131 <ulink url="https://git.netsurf-browser.org/libutf8proc.git/">UTF8proc</ulink>
132 </para>
133
134 <bridgehead renderas="sect4">Optional (for the Java Bindings)</bridgehead>
135 <para role="optional">
136 One of <xref linkend="openjdk"/>,
137 <ulink url="https://www.inet.no/dante/">Dante</ulink> or
138 <ulink url="https://jikes.sourceforge.net/">Jikes</ulink>,
139 <ulink url="https://junit.org/junit4/">JUnit 4</ulink> (to test the Java bindings) and
140 <xref linkend="apache-ant"/>.
141 </para>
142
143 </sect2>
144
145 <sect2 role="installation">
146 <title>Installation of Subversion</title>
147<!--
148 <note>
149 <para>
150 This package may fail during the make phase when using multiple
151 processors. If this occurs try continuing with
152 <emphasis>make -j1</emphasis> or redo the entire build process with
153 fresh sources using <emphasis>-j1</emphasis>.
154 </para>
155 </note>
156-->
157
158 <para>
159 First, adapt some Python scripts to use python3:
160 </para>
161
162<screen><userinput remap="pre">grep -rl '^#!.*python$' | xargs sed -i '1s/python/&amp;3/'</userinput></screen>
163
164 <para>
165 Next, adapt the Ruby bindings to ruby-3.2 and later:
166 </para>
167
168 <screen><userinput remap="pre">sed -e 's/File.exists?/File.exist?/' \
169 -i subversion/bindings/swig/ruby/svn/util.rb \
170 subversion/bindings/swig/ruby/test/test_wc.rb</userinput></screen>
171
172 <para>
173 Install <application>Subversion</application> by running the following
174 commands:
175 </para>
176
177<screen><userinput>PYTHON=python3 \
178./configure --prefix=/usr \
179 --disable-static \
180 --with-apache-libexecdir \
181 --with-utf8proc=internal &amp;&amp;
182make</userinput></screen>
183
184 <para>
185 If you have <xref linkend="doxygen"/> installed and you wish to build the
186 API documentation, issue:
187 </para>
188
189<screen remap="doc"><userinput>doxygen doc/doxygen.conf</userinput></screen>
190
191 <para>
192 If you wish to build the Java bindings pass the <option>--enable-javahl</option>
193 parameter to the <command>configure</command> command. In addition, if
194 you want to run the Java test suite, you have to specify the location
195 of the <application>JUnit</application> file by adding
196 <option>--with-junit=&lt;path to junit jar&gt;</option> (for
197 instance <option>--with-junit=/usr/local/java/lib/junit-4.13.jar</option>)
198 to <command>configure</command>. The JUnit jar file is no longer
199 included in <xref linkend="apache-ant"/> and must be downloaded
200 separately. To build the Java bindings, issue the following command:
201 </para>
202 <para>
203 <screen><command>make -j1 javahl</command></screen>
204 </para>
205
206 <para>
207 If you want to compile <application>Perl</application>,
208 <application>Python</application>, or <application>Ruby</application>
209 bindings, issue any of the following command:
210 </para>
211 <para>
212 <screen><command>make swig-pl</command> # for <application>Perl</application>
213<command>make swig-py \
214 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
215 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command> # for <application>Python</application>
216<command>make swig-rb</command> # for <application>Ruby</application></screen>
217 </para>
218
219 <para>
220 To test the results, issue: <command>make check</command>. Four tests in
221 the <filename>commit_tests.py</filename>,
222 <filename>prop_tests.py</filename>, and
223 <filename>update_tests.py</filename> suites are known to fail. Due to
224 changes in Python-3.12, you can expect to see around 200 Syntax Warnings
225 during the test suite due to invalid escape sequences.
226 </para>
227
228 <para>
229 To test the results of any of the <application>SWIG</application>
230 bindings, you can use any of the following commands:
231 <command>make check-swig-pl</command>,
232 <command>make check-swig-py</command>, or
233 <command>make check-swig-rb</command>.
234 </para>
235
236 <para>
237 Now, as the <systemitem class="username">root</systemitem> user:
238 </para>
239
240<screen role="root"><userinput>make install &amp;&amp;
241
242install -v -m755 -d /usr/share/doc/subversion-&subversion-version; &amp;&amp;
243cp -v -R doc/* /usr/share/doc/subversion-&subversion-version;</userinput></screen>
244
245 <para>
246 If you built the Java bindings, issue the following command as the
247 <systemitem class="username">root</systemitem> user to install them:
248 </para>
249 <para>
250<screen><command>make install-javahl</command></screen>
251 </para>
252
253 <para>
254 If you built the <application>Perl</application>,
255 <application>Python</application>, or
256 <application>Ruby</application> bindings, issue any of the following
257 commands as the <systemitem class="username">root</systemitem> user
258 to install them:
259 </para>
260 <para>
261<screen><command>make install-swig-pl</command>
262<command>make install-swig-py \
263 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
264 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command>
265<command>make install-swig-rb</command></screen>
266 </para>
267
268 <para>
269 The java bindings need to be installed in order for the tests to run,
270 since the tests attempt to look for them in CLASSPATH. To test the
271 results of the Java bindings build, issue
272 <command>LANG=C make check-javahl</command>.
273 <!-- ~~ This explanation is added to the configure above ~~
274 The <application>JUnit</application> testing framework must be installed,
275 and the location of the JUnit jar has to be specified by passing the
276 <option>- -with-junit=&lt;path to junit jar&gt;</option> parameter to
277 <command>configure</command>. Note that <application>JUnit</application>
278 is included in <xref linkend="apache-ant"/>, and can be accessed by
279 passing <option>- -with-junit=/opt/ant/lib/junit-4.12.jar</option>
280 to <command>configure</command>.
281 -->
282 </para>
283 </sect2>
284
285 <sect2 role="commands">
286 <title>Command Explanations</title>
287
288 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
289 href="../../xincludes/static-libraries.xml"/>
290
291 <para>
292 <parameter>--with-apache-libexecdir</parameter>:
293 If <xref linkend="apache"/> is installed, the shared
294 <application>Apache</application> modules are
295 built. This switch allows to have those modules installed to
296 <application>Apache</application>'s configured module dir instead
297 of <filename class="directory">/usr/libexec</filename>. It has no effect
298 if <application>Apache</application> is not installed.
299 </para>
300
301 <para>
302 <parameter>--with-utf8proc=internal</parameter>:
303 Remove these switches if you have installed the optional dependencies.
304 </para>
305
306 <para>
307 <option>--enable-javahl</option>: enables compilation of Java high level
308 bindings. Running <command>make javahl</command> is necessary to do
309 the compilation.
310 </para>
311
312 <para>
313 <option>--with-junit=&lt;location of the junit jar file&gt;</option>:
314 gives the location of the junit jar, otherwise the javahl tests cannot
315 be run.
316 </para>
317
318 <para>
319 <option>--disable-gmock</option>: Do not use the Googlemock testing
320 framework.
321 </para>
322
323 </sect2>
324
325 <sect2 role="configuration">
326 <title>Configuring Subversion</title>
327
328 <sect3 id="subversion-config">
329 <title>Config Files</title>
330
331 <para>
332 <filename>~/.subversion/config</filename> and
333 <filename>/etc/subversion/config</filename>
334 </para>
335
336 <indexterm zone="subversion subversion-config">
337 <primary sortas="e-AA.subversion/config">~/.subversion/config</primary>
338 </indexterm>
339
340 <indexterm zone="subversion subversion-config">
341 <primary sortas="e-etc-subversion-config">/etc/subversion/config</primary>
342 </indexterm>
343 </sect3>
344
345 <sect3>
346 <title>Configuration Information</title>
347
348 <para>
349 <filename>/etc/subversion/config</filename> is the
350 <application>Subversion</application> system-wide configuration file.
351 This file is used to specify defaults for different
352 <command>svn</command> commands.
353 </para>
354
355 <para>
356 <filename>~/.subversion/config</filename> is the user's personal
357 configuration file. It is used to override the system-wide defaults set
358 in <filename>/etc/subversion/config</filename>.
359 </para>
360 </sect3>
361
362 </sect2>
363
364 <sect2 role="content">
365 <title>Contents</title>
366
367 <segmentedlist>
368 <segtitle>Installed Programs</segtitle>
369 <segtitle>Installed Libraries</segtitle>
370 <segtitle>Installed Directories</segtitle>
371
372 <seglistitem>
373 <seg>
374 svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc,
375 svnrdump, svnserve, svnsync, and svnversion
376 </seg>
377 <seg>
378 libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and
379 mod_authz_svn.so <application>Apache HTTP</application> DSO
380 modules and various <application>Perl</application>,
381 <application>Python</application> and
382 <application>Ruby</application> modules.
383 </seg>
384 <seg>
385 /usr/include/subversion-1,
386 /usr/lib/perl5/site_perl/&lfs-perl-version;/{,auto/}SVN,
387 /usr/lib/python&python3-majorver;/site-packages/{libsvn,svn},
388 /usr/lib/ruby/site_ruby/&lt;x.y.z&gt;/{,&lt;arch-linux&gt;-linux/}svn,
389 /usr/lib/svn-javahl, and
390 /usr/share/doc/subversion-&subversion-version;
391 </seg>
392 </seglistitem>
393 </segmentedlist>
394
395 <variablelist>
396 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
397 <?dbfo list-presentation="list"?>
398 <?dbhtml list-presentation="table"?>
399
400 <varlistentry id="svn">
401 <term><command>svn</command></term>
402 <listitem>
403 <para>
404 is a command-line client program used to access
405 <application>Subversion</application> repositories
406 </para>
407 <indexterm zone="subversion svn">
408 <primary sortas="b-svn">svn</primary>
409 </indexterm>
410 </listitem>
411 </varlistentry>
412
413 <varlistentry id="svnadmin">
414 <term><command>svnadmin</command></term>
415 <listitem>
416 <para>
417 is a tool for creating, tweaking or repairing a
418 <application>Subversion</application> repository
419 </para>
420 <indexterm zone="subversion svnadmin">
421 <primary sortas="b-svnadmin">svnadmin</primary>
422 </indexterm>
423 </listitem>
424 </varlistentry>
425
426 <varlistentry id="svnbench">
427 <term><command>svnbench</command></term>
428 <listitem>
429 <para>
430 is a benchmarking tool
431 </para>
432 <indexterm zone="subversion svnbench">
433 <primary sortas="b-svnbench">svnbench</primary>
434 </indexterm>
435 </listitem>
436 </varlistentry>
437
438 <varlistentry id="svndumpfilter">
439 <term><command>svndumpfilter</command></term>
440 <listitem>
441 <para>
442 is a program for filtering <application>Subversion</application>
443 repository dumpfile format streams
444 </para>
445 <indexterm zone="subversion svndumpfilter">
446 <primary sortas="b-svndumpfilter">svndumpfilter</primary>
447 </indexterm>
448 </listitem>
449 </varlistentry>
450
451 <varlistentry id="svnfsfs">
452 <term><command>svnfsfs</command></term>
453 <listitem>
454 <para>
455 is the FSFS (FileSystem atop of the FileSystem -
456 <application>Subversion</application> filesystem implementation)
457 repository manipulation tool
458 </para>
459 <indexterm zone="subversion svnfsfs">
460 <primary sortas="b-svnfsfs">svnfsfs</primary>
461 </indexterm>
462 </listitem>
463 </varlistentry>
464
465 <varlistentry id="svnlook">
466 <term><command>svnlook</command></term>
467 <listitem>
468 <para>
469 is a tool for inspecting a <application>Subversion</application>
470 repository
471 </para>
472 <indexterm zone="subversion svnlook">
473 <primary sortas="b-svnlook">svnlook</primary>
474 </indexterm>
475 </listitem>
476 </varlistentry>
477
478 <varlistentry id="svnmucc">
479 <term><command>svnmucc</command></term>
480 <listitem>
481 <para>
482 is a Multiple URL Command Client for <application>Subversion</application>
483 </para>
484 <indexterm zone="subversion svnmucc">
485 <primary sortas="b-svnmucc">svnmucc</primary>
486 </indexterm>
487 </listitem>
488 </varlistentry>
489
490 <varlistentry id="svnrdump">
491 <term><command>svnrdump</command></term>
492 <listitem>
493 <para>
494 is a tool for dumping or loading a remote
495 <application>Subversion</application> repository
496 </para>
497 <indexterm zone="subversion svnrdump">
498 <primary sortas="b-svnrdump">svnrdump</primary>
499 </indexterm>
500 </listitem>
501 </varlistentry>
502
503 <varlistentry id="svnserve">
504 <term><command>svnserve</command></term>
505 <listitem>
506 <para>
507 is a custom standalone server program, able to run as a daemon
508 process or invoked by SSH
509 </para>
510 <indexterm zone="subversion svnserve">
511 <primary sortas="b-svnserve">svnserve</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="svnsync">
517 <term><command>svnsync</command></term>
518 <listitem>
519 <para>
520 is a <application>Subversion</application> repository
521 synchronisation tool
522 </para>
523 <indexterm zone="subversion svnsync">
524 <primary sortas="b-svnsync">svnsync</primary>
525 </indexterm>
526 </listitem>
527 </varlistentry>
528
529 <varlistentry id="svnversion">
530 <term><command>svnversion</command></term>
531 <listitem>
532 <para>
533 is used to report the version number and state of a working
534 <application>Subversion</application> repository copy
535 </para>
536 <indexterm zone="subversion svnversion">
537 <primary sortas="b-svnversion">svnversion</primary>
538 </indexterm>
539 </listitem>
540 </varlistentry>
541
542 <varlistentry id="libsvn_star-1">
543 <term><filename class="libraryfile">libsvn_*-1.so</filename></term>
544 <listitem>
545 <para>
546 are the support libraries used by the
547 <application>Subversion</application> programs
548 </para>
549 <indexterm zone="subversion libsvn_star-1">
550 <primary sortas="c-libsvn_star-1">libsvn_*-1.so</primary>
551 </indexterm>
552 </listitem>
553 </varlistentry>
554
555 <varlistentry id="mod_authz_svn">
556 <term><filename class="libraryfile">mod_authz_svn.so</filename></term>
557 <listitem>
558 <para>
559 is a plug-in module for the <application>Apache</application> HTTP
560 server, used to authenticate users to a
561 <application>Subversion</application> repository over the Internet
562 or an intranet
563 </para>
564 <indexterm zone="subversion mod_authz_svn">
565 <primary sortas="c-mod_authz_svn">mod_authz_svn.so</primary>
566 </indexterm>
567 </listitem>
568 </varlistentry>
569
570 <varlistentry id="mod_dav_svn">
571 <term><filename class="libraryfile">mod_dav_svn.so</filename></term>
572 <listitem>
573 <para>
574 is a plug-in module for the <application>Apache</application> HTTP
575 server, used to make a <application>Subversion</application>
576 repository available to others over the Internet or an intranet
577 </para>
578 <indexterm zone="subversion mod_dav_svn">
579 <primary sortas="c-mod_authz_svn">mod_dav_svn.so</primary>
580 </indexterm>
581 </listitem>
582 </varlistentry>
583
584 </variablelist>
585
586 </sect2>
587
588</sect1>
Note: See TracBrowser for help on using the repository browser.