source: general/prog/subversion.xml@ 87065037

11.3 12.0 12.1 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18 xry111/xf86-video-removal
Last change on this file since 87065037 was 4e207bb, checked in by Pierre Labastie <pierre.labastie@…>, 20 months ago

Replace tabs with spaces (except in Makefile :)

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