source: general/prog/subversion.xml@ 9f6cca8e

12.2 lazarus trunk
Last change on this file since 9f6cca8e was 08fa6599, checked in by Douglas R. Reno <renodr@…>, 4 weeks ago

subversion: minor spacing fix

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