source: general/prog/subversion.xml@ bd70847

10.0 10.1 11.0 9.1 ken/refactor-virt lazarus qt5new trunk upgradedb xry111/git-date xry111/git-date-for-trunk xry111/git-date-test
Last change on this file since bd70847 was bd70847, checked in by Douglas R. Reno <renodr@…>, 2 years ago

Add an optional dependency on gnome-keyring to subversion. It can be used to store credentials for use in Seahorse

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@22538 af4574ff-66df-0310-9fd7-8a98e5e911e0

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