source: general/prog/subversion.xml@ 7246c35

trunk
Last change on this file since 7246c35 was 7246c35, checked in by Douglas R. Reno <renodr@…>, 2 months ago

Changelog: cups change is for both books, not just SysV
hdparm: Remove unnecessary text now that we're in merged-/usr
Subversion: Adapt some scripts to python3, avoiding several test suite
failures.

  • 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 "2eccc2c7451397e01a13682600af9563">
10 <!ENTITY subversion-size "8.1 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 &lfs101_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 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="http://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="http://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 seperatly.
214 To build the Java bindings, issue the following command:
215 </para>
216 <para>
217 <screen><command>make 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 the Java bindings build,
242 issue <command>LANG=C make check-javahl</command>.
243 <!-- ~~ This explanation is added to the configure above ~~
244 The <application>JUnit</application> testing framework must be installed,
245 and the location of the JUnit jar has to be specified by passing the
246 <option>- -with-junit=&lt;path to junit jar&gt;</option> parameter to
247 <command>configure</command>. Note that <application>JUnit</application>
248 is included in <xref linkend="apache-ant"/>, and can be accessed by
249 passing <option>- -with-junit=/opt/ant/lib/junit-4.12.jar</option>
250 to <command>configure</command>.
251 -->
252 </para>
253
254 <para>
255 To test the results of any of the <application>SWIG</application>
256 bindings, you can use any of the following commands:
257 <command>make check-swig-pl</command>,
258 <command>make check-swig-py</command>, or
259 <command>make check-swig-rb</command>.
260 </para>
261
262 <para>
263 Now, as the <systemitem class="username">root</systemitem> user:
264 </para>
265
266<screen role="root"><userinput>make install &amp;&amp;
267
268install -v -m755 -d /usr/share/doc/subversion-&subversion-version; &amp;&amp;
269cp -v -R doc/* /usr/share/doc/subversion-&subversion-version;</userinput></screen>
270
271 <para>
272 If you built the Java bindings, issue the following command as the
273 <systemitem class="username">root</systemitem> user to install them:
274 </para>
275 <para>
276<screen><command>make install-javahl</command></screen>
277 </para>
278
279 <para>
280 If you built the <application>Perl</application>,
281 <application>Python</application>, or
282 <application>Ruby</application> bindings, issue any of the following
283 commands as the <systemitem class="username">root</systemitem> user
284 to install them:
285 </para>
286 <para>
287<screen><command>make install-swig-pl</command>
288<command>make install-swig-py \
289 swig_pydir=/usr/lib/python&python3-majorver;/site-packages/libsvn \
290 swig_pydir_extra=/usr/lib/python&python3-majorver;/site-packages/svn</command>
291<command>make install-swig-rb</command></screen>
292 </para>
293
294 </sect2>
295
296 <sect2 role="commands">
297 <title>Command Explanations</title>
298
299 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
300 href="../../xincludes/static-libraries.xml"/>
301
302 <para>
303 <parameter>--with-apache-libexecdir</parameter>:
304 If <xref linkend="apache"/> is installed, the shared
305 <application>Apache</application> modules are
306 built. This switch allows to have those modules installed to
307 <application>Apache</application>'s configured module dir instead
308 of <filename class="directory">/usr/libexec</filename>. It has no effect
309 if <application>Apache</application> is not installed.
310 </para>
311
312 <para>
313 <parameter>--with-lz4=internal, --with-utf8proc=internal</parameter>:
314 Remove these switches if you have installed the optional dependencies.
315 </para>
316
317 <para>
318 <option>--enable-javahl</option>: enables compilation of Java high level
319 bindings. Running <command>make javahl</command> is necessary to do
320 the compilation.
321 </para>
322
323 <para>
324 <option>--with-junit=&lt;location of the junit jar file&gt;</option>:
325 gives the location of the junit jar, otherwise the javahl tests cannot
326 be run.
327 </para>
328
329 <para>
330 <option>--disable-gmock</option>: Do not use the Googlemock testing
331 framework.
332 </para>
333
334 </sect2>
335
336 <sect2 role="configuration">
337 <title>Configuring Subversion</title>
338
339 <sect3 id="subversion-config">
340 <title>Config Files</title>
341
342 <para>
343 <filename>~/.subversion/config</filename> and
344 <filename>/etc/subversion/config</filename>
345 </para>
346
347 <indexterm zone="subversion subversion-config">
348 <primary sortas="e-AA.subversion/config">~/.subversion/config</primary>
349 </indexterm>
350
351 <indexterm zone="subversion subversion-config">
352 <primary sortas="e-etc-subversion-config">/etc/subversion/config</primary>
353 </indexterm>
354 </sect3>
355
356 <sect3>
357 <title>Configuration Information</title>
358
359 <para>
360 <filename>/etc/subversion/config</filename> is the
361 <application>Subversion</application> system-wide configuration file.
362 This file is used to specify defaults for different
363 <command>svn</command> commands.
364 </para>
365
366 <para>
367 <filename>~/.subversion/config</filename> is the user's personal
368 configuration file. It is used to override the system-wide defaults set
369 in <filename>/etc/subversion/config</filename>.
370 </para>
371 </sect3>
372
373 </sect2>
374
375 <sect2 role="content">
376 <title>Contents</title>
377
378 <segmentedlist>
379 <segtitle>Installed Programs</segtitle>
380 <segtitle>Installed Libraries</segtitle>
381 <segtitle>Installed Directories</segtitle>
382
383 <seglistitem>
384 <seg>
385 svn, svnadmin, svnbench, svndumpfilter, svnfsfs, svnlook, svnmucc,
386 svnrdump, svnserve, svnsync, and svnversion
387 </seg>
388 <seg>
389 libsvn_*-1.so and optionally, a Java library, the mod_dav_svn.so and
390 and mod_authz_svn.so <application>Apache HTTP</application> DSO
391 modules and various <application>Perl</application>,
392 <application>Python</application> and
393 <application>Ruby</application> modules.
394 </seg>
395 <seg>
396 /usr/include/subversion-1,
397 /usr/lib/perl5/site_perl/&lfs-perl-version;/{,auto/}SVN,
398 /usr/lib/python&python3-majorver;/site-packages/{libsvn,svn},
399 /usr/lib/ruby/site_ruby/&lt;x.y.z&gt;/{,&lt;arch-linux&gt;-linux/}svn,
400 /usr/lib/svn-javahl, and
401 /usr/share/doc/subversion-&subversion-version;
402 </seg>
403 </seglistitem>
404 </segmentedlist>
405
406 <variablelist>
407 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
408 <?dbfo list-presentation="list"?>
409 <?dbhtml list-presentation="table"?>
410
411 <varlistentry id="svn">
412 <term><command>svn</command></term>
413 <listitem>
414 <para>
415 is a command-line client program used to access
416 <application>Subversion</application> repositories
417 </para>
418 <indexterm zone="subversion svn">
419 <primary sortas="b-svn">svn</primary>
420 </indexterm>
421 </listitem>
422 </varlistentry>
423
424 <varlistentry id="svnadmin">
425 <term><command>svnadmin</command></term>
426 <listitem>
427 <para>
428 is a tool for creating, tweaking or repairing a
429 <application>Subversion</application> repository
430 </para>
431 <indexterm zone="subversion svnadmin">
432 <primary sortas="b-svnadmin">svnadmin</primary>
433 </indexterm>
434 </listitem>
435 </varlistentry>
436
437 <varlistentry id="svnbench">
438 <term><command>svnbench</command></term>
439 <listitem>
440 <para>
441 is a benchmarking tool
442 </para>
443 <indexterm zone="subversion svnbench">
444 <primary sortas="b-svnbench">svnbench</primary>
445 </indexterm>
446 </listitem>
447 </varlistentry>
448
449 <varlistentry id="svndumpfilter">
450 <term><command>svndumpfilter</command></term>
451 <listitem>
452 <para>
453 is a program for filtering <application>Subversion</application>
454 repository dumpfile format streams
455 </para>
456 <indexterm zone="subversion svndumpfilter">
457 <primary sortas="b-svndumpfilter">svndumpfilter</primary>
458 </indexterm>
459 </listitem>
460 </varlistentry>
461
462 <varlistentry id="svnfsfs">
463 <term><command>svnfsfs</command></term>
464 <listitem>
465 <para>
466 is the FSFS (FileSystem atop of the FileSystem -
467 <application>Subversion</application> filesystem implementation)
468 repository manipulation tool
469 </para>
470 <indexterm zone="subversion svnfsfs">
471 <primary sortas="b-svnfsfs">svnfsfs</primary>
472 </indexterm>
473 </listitem>
474 </varlistentry>
475
476 <varlistentry id="svnlook">
477 <term><command>svnlook</command></term>
478 <listitem>
479 <para>
480 is a tool for inspecting a <application>Subversion</application>
481 repository
482 </para>
483 <indexterm zone="subversion svnlook">
484 <primary sortas="b-svnlook">svnlook</primary>
485 </indexterm>
486 </listitem>
487 </varlistentry>
488
489 <varlistentry id="svnmucc">
490 <term><command>svnmucc</command></term>
491 <listitem>
492 <para>
493 is a Multiple URL Command Client for <application>Subversion</application>
494 </para>
495 <indexterm zone="subversion svnmucc">
496 <primary sortas="b-svnmucc">svnmucc</primary>
497 </indexterm>
498 </listitem>
499 </varlistentry>
500
501 <varlistentry id="svnrdump">
502 <term><command>svnrdump</command></term>
503 <listitem>
504 <para>
505 is a tool for dumping or loading a remote
506 <application>Subversion</application> repository
507 </para>
508 <indexterm zone="subversion svnrdump">
509 <primary sortas="b-svnrdump">svnrdump</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514 <varlistentry id="svnserve">
515 <term><command>svnserve</command></term>
516 <listitem>
517 <para>
518 is a custom standalone server program, able to run as a daemon
519 process or invoked by SSH
520 </para>
521 <indexterm zone="subversion svnserve">
522 <primary sortas="b-svnserve">svnserve</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="svnsync">
528 <term><command>svnsync</command></term>
529 <listitem>
530 <para>
531 is a <application>Subversion</application> repository
532 synchronisation tool
533 </para>
534 <indexterm zone="subversion svnsync">
535 <primary sortas="b-svnsync">svnsync</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 <varlistentry id="svnversion">
541 <term><command>svnversion</command></term>
542 <listitem>
543 <para>
544 is used to report the version number and state of a working
545 <application>Subversion</application> repository copy
546 </para>
547 <indexterm zone="subversion svnversion">
548 <primary sortas="b-svnversion">svnversion</primary>
549 </indexterm>
550 </listitem>
551 </varlistentry>
552
553 <varlistentry id="libsvn_star-1">
554 <term><filename class="libraryfile">libsvn_*-1.so</filename></term>
555 <listitem>
556 <para>
557 are the support libraries used by the
558 <application>Subversion</application> programs
559 </para>
560 <indexterm zone="subversion libsvn_star-1">
561 <primary sortas="c-libsvn_star-1">libsvn_*-1.so</primary>
562 </indexterm>
563 </listitem>
564 </varlistentry>
565
566 <varlistentry id="mod_authz_svn">
567 <term><filename class="libraryfile">mod_authz_svn.so</filename></term>
568 <listitem>
569 <para>
570 is a plug-in module for the <application>Apache</application> HTTP
571 server, used to authenticate users to a
572 <application>Subversion</application> repository over the Internet
573 or an intranet
574 </para>
575 <indexterm zone="subversion mod_authz_svn">
576 <primary sortas="c-mod_authz_svn">mod_authz_svn.so</primary>
577 </indexterm>
578 </listitem>
579 </varlistentry>
580
581 <varlistentry id="mod_dav_svn">
582 <term><filename class="libraryfile">mod_dav_svn.so</filename></term>
583 <listitem>
584 <para>
585 is a plug-in module for the <application>Apache</application> HTTP
586 server, used to make a <application>Subversion</application>
587 repository available to others over the Internet or an intranet
588 </para>
589 <indexterm zone="subversion mod_dav_svn">
590 <primary sortas="c-mod_authz_svn">mod_dav_svn.so</primary>
591 </indexterm>
592 </listitem>
593 </varlistentry>
594
595 </variablelist>
596
597 </sect2>
598
599</sect1>
Note: See TracBrowser for help on using the repository browser.