source: general/prog/subversion.xml@ 15445ab

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 15445ab was 893d3e5a, checked in by Douglas R. Reno <renodr@…>, 16 months ago

Subversion: Adapt the Ruby bindings to Ruby-3.2. See #17666

Also tagged it

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