source: general/prog/subversion.xml@ 5b188cf

trunk
Last change on this file since 5b188cf was fbcfbf5e, checked in by Douglas R. Reno <renodr@…>, 9 days ago

Subversion: promote SWIG to recommended.

When I made the change for fixing the bindings with GCC-14, I did not
test on a system without SWIG installed. This issue really only affects
jhalfs since jhalfs can't read that it's needed to fix the bindings, so
let's work around it by promoting SWIG to recomomended.

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