source: general/sysutils/dbus.xml@ aa0b625

11.2 plabs/python-mods qt5new trunk xry111/soup3
Last change on this file since aa0b625 was aa0b625, checked in by Douglas R. Reno <renodr@…>, 5 months ago

Tag Xorg and dependencies

  • Property mode set to 100644
File size: 24.8 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 dbus-download-http "https://dbus.freedesktop.org/releases/dbus/dbus-&dbus-version;.tar.xz">
8 <!ENTITY dbus-download-ftp " ">
9 <!ENTITY dbus-md5sum "ddd5570aff05191dbee8e42d751f1b7d">
10 <!ENTITY dbus-size "1.3 MB">
11 <!ENTITY dbus-buildsize "21 MB (add 18 MB for the tests)">
12 <!ENTITY dbus-time "0.3 SBU (add 8.0 SBU for the tests)">
13 <!-- The former value was 0.8 SBU, which was far more sensible. -->
14]>
15
16<sect1 id="dbus" xreflabel="dbus-&dbus-version;">
17 <?dbhtml filename="dbus.html"?>
18
19 <sect1info>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>dbus-&dbus-version;</title>
24
25 <indexterm zone="dbus">
26 <primary sortas="a-D-Bus">D-Bus</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to D-Bus</title>
31
32 <para revision="sysv">
33 <application>D-Bus</application> is a message bus system, a simple way
34 for applications to talk to one another.
35 <application>D-Bus</application> supplies both a system daemon (for
36 events such as <quote>new hardware device added</quote> or <quote>printer
37 queue changed</quote>) and a per-user-login-session daemon (for general
38 IPC needs among user applications). Also, the message bus is built on top
39 of a general one-to-one message passing framework, which can be used by
40 any two applications to communicate directly (without going through the
41 message bus daemon).
42 </para>
43
44 <para revision="systemd">
45 Even though <application>D-Bus</application> was built in LFS, there are
46 some features provided by the package that other BLFS packages need, but
47 their dependencies didn't fit into LFS.
48 </para>
49
50 &lfs112_checked;
51
52 <bridgehead renderas="sect3">Package Information</bridgehead>
53 <itemizedlist spacing="compact">
54 <listitem>
55 <para>
56 Download (HTTP): <ulink url="&dbus-download-http;"/>
57 </para>
58 </listitem>
59 <listitem>
60 <para>
61 Download (FTP): <ulink url="&dbus-download-ftp;"/>
62 </para>
63 </listitem>
64 <listitem>
65 <para>
66 Download MD5 sum: &dbus-md5sum;
67 </para>
68 </listitem>
69 <listitem>
70 <para>
71 Download size: &dbus-size;
72 </para>
73 </listitem>
74 <listitem>
75 <para>
76 Estimated disk space required: &dbus-buildsize;
77 </para>
78 </listitem>
79 <listitem>
80 <para>
81 Estimated build time: &dbus-time;
82 </para>
83 </listitem>
84 </itemizedlist>
85
86 <bridgehead renderas="sect3">D-Bus Dependencies</bridgehead>
87
88 <bridgehead renderas="sect4" revision="systemd">Required</bridgehead>
89 <para role="required" revision="systemd">
90 <xref linkend="systemd"/>
91 </para>
92
93
94 <bridgehead renderas="sect4">Recommended</bridgehead>
95 <para role="recommended">
96 <xref linkend="xorg7-lib"/> (for <command>dbus-launch</command> program)
97 <phrase revision="sysv">and <xref linkend="elogind"/> (These are
98 circular dependencies. First build without them, and then again after
99 both packages are installed.)</phrase>
100 </para>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
104 For the tests:
105 <xref linkend="dbus-glib"/>,
106 <xref linkend="dbus-python"/>,
107 <xref linkend="pygobject3"/>,
108 and <xref linkend="valgrind"/>;
109
110 for documentation:
111 <xref linkend="doxygen"/>,
112 <xref linkend="xmlto"/>,
113 <ulink url="https://pypi.python.org/pypi/mallard-ducktype">Ducktype</ulink>,
114 and
115 <ulink url="&gnome-download-http;/yelp-tools/">Yelp Tools</ulink>
116 </para>
117
118 <para condition="html" role="usernotes">User Notes:
119 <ulink url="&blfs-wiki;/dbus"/>
120 </para>
121 </sect2>
122
123 <sect2 role="installation">
124 <title>Installation of D-Bus</title>
125 <!--
126 <para revision="sysv">
127 If they do not already exist,
128 as the <systemitem class="username">root</systemitem> user, create a
129 system user and group to handle the system message bus activity:
130 </para>
131
132<screen role="root" revision="sysv"><userinput>groupadd -g 18 messagebus &amp;&amp;
133useradd -c "D-Bus Message Daemon User" -d /var/run/dbus \
134 -u 18 -g messagebus -s /bin/false messagebus</userinput></screen>
135 -->
136
137 <para>
138 Install <application>D-Bus</application> by running the following
139 commands (you may wish to review the output from <command>./configure
140 --help</command> first and add any desired parameters to the
141 <command>configure</command> command shown below):
142 </para>
143
144<screen revision="sysv"><userinput>./configure --prefix=/usr \
145 --sysconfdir=/etc \
146 --localstatedir=/var \
147 --runstatedir=/run \
148 --enable-user-session \
149 --disable-doxygen-docs \
150 --disable-xml-docs \
151 --disable-static \
152 --with-systemduserunitdir=no \
153 --with-systemdsystemunitdir=no \
154 --docdir=/usr/share/doc/dbus-&dbus-version; \
155 --with-system-socket=/run/dbus/system_bus_socket &amp;&amp;
156make</userinput></screen>
157
158<screen revision="systemd"><userinput>./configure --prefix=/usr \
159 --sysconfdir=/etc \
160 --localstatedir=/var \
161 --runstatedir=/run \
162 --enable-user-session \
163 --disable-doxygen-docs \
164 --disable-xml-docs \
165 --disable-static \
166 --docdir=/usr/share/doc/dbus-&dbus-version; \
167 --with-system-socket=/run/dbus/system_bus_socket &amp;&amp;
168make</userinput></screen>
169
170 <para>
171 See below for test instructions.
172 </para>
173
174<!--
175 <warning revision="systemd">
176 <para>
177 Installing the package will override all files installed by
178 <application>D-Bus</application> in LFS. It is critical that
179 nothing uses <application>D-Bus</application> libraries or
180 programs during the installation. The best way to ensure that these
181 libraries are not being used is to run the installation in rescue mode.
182 To switch to rescue mode, run the following command as the
183 <systemitem class="username">root</systemitem> user (from a TTY):
184 </para>
185
186<screen role="root"><userinput>systemctl start rescue.target</userinput></screen>
187
188 </warning>
189-->
190
191 <para>
192 Now, as the <systemitem class="username">root</systemitem> user:
193 </para>
194
195<screen role="root"><userinput>make install</userinput></screen>
196
197<!-- FIXME: No longer needed with usr merge
198 <para>
199 The shared library needs to be moved to
200 <filename class="directory">/lib</filename>, and as a result the
201 <filename class="extension">.so</filename> file in
202 <filename class="directory">/usr/lib</filename> will need to be
203 recreated. Run the following command as the
204 <systemitem class="username">root</systemitem> user:
205 </para>
206
207<screen role="root"><userinput>mv -v /usr/lib/libdbus-1.so.* /lib &amp;&amp;
208ln -sfv ../../lib/$(readlink /usr/lib/libdbus-1.so) /usr/lib/libdbus-1.so</userinput></screen>
209-->
210
211 <para>
212 If you are using a DESTDIR install,
213 <command>dbus-daemon-launch-helper</command> needs to be fixed
214 afterwards. Issue, as <systemitem class="username">root</systemitem>
215 user:
216 </para>
217
218<screen role="root"><userinput>chown -v root:messagebus /usr/libexec/dbus-daemon-launch-helper &amp;&amp;
219chmod -v 4750 /usr/libexec/dbus-daemon-launch-helper</userinput></screen>
220
221 <para revision="sysv">
222 If you are still building your system in chroot or you did not start the
223 daemon yet, but you want to compile some packages that require
224 <application>D-Bus</application>, generate the
225 <application>D-Bus</application> UUID to avoid warnings when compiling
226 some packages with the following command as the
227 <systemitem class="username">root</systemitem> user:
228 </para>
229
230<screen role="root" revision="sysv"><userinput>dbus-uuidgen --ensure</userinput></screen>
231
232 <para revision="sysv">
233 If using <xref linkend="elogind"/>, create a symlink to the
234 <filename>/var/lib/dbus/machine-id</filename> file:
235 </para>
236
237<screen role="root" revision="sysv"><userinput>ln -sv /var/lib/dbus/machine-id /etc</userinput></screen>
238
239<!--
240 <para revision="systemd">
241 If not in chroot, at this point, you should reload the systemd daemon,
242 and reenter multi-user mode with the following commands (as the
243 <systemitem class="username">root</systemitem> user):
244 </para>
245
246<screen role="root" revision="systemd"><userinput>systemctl daemon-reload
247systemctl start multi-user.target</userinput></screen>
248-->
249
250 <para>
251 The dbus tests cannot be run until after <xref linkend="dbus-glib"/> has
252 been installed. They must be run as an unprivileged user from a local
253 session with bus address. To run the standard tests issue
254 <command>make check</command>.
255 </para>
256
257 <para>
258 If you want to run the unit regression tests, configure requires
259 additional parameters which expose additional functionality in the
260 binaries that are not intended to be used in a production build of
261 <application>D-Bus</application>. If you would like to run the tests,
262 issue the following commands (for the tests, you don't need to build the
263 docs):
264 </para>
265
266<screen remap="test"><userinput>make distclean &amp;&amp;
267PYTHON=python3 ./configure --enable-tests \
268 --enable-asserts \
269 --disable-doxygen-docs \
270 --disable-xml-docs &amp;&amp;
271make &amp;&amp;
272make check</userinput></screen>
273
274 <para>
275 There have been reports that the tests may fail if running inside a
276 Midnight Commander shell. You may get out-of-memory error messages when
277 running the tests. These are normal and can be safely ignored.
278 </para>
279
280 </sect2>
281
282 <sect2 role="commands">
283 <title>Command Explanations</title>
284
285 <para>
286 <parameter>--disable-doxygen-docs</parameter>: This switch disables
287 doxygen documentation build and install, if you have
288 <application>doxygen</application> installed. If
289 <application>doxygen</application> is installed, and you wish to build
290 them, remove this parameter.
291 </para>
292
293 <para>
294 <parameter>--disable-xml-docs</parameter>: This switch disables html
295 documentation build and install, if you have
296 <application>xmlto</application> installed. If
297 <application>xmlto</application> is installed, and you wish to build
298 them, remove this parameter.
299 </para>
300
301 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
302 href="../../xincludes/static-libraries.xml"/>
303
304 <para>
305 <parameter>--enable-user-session</parameter>: This parameter enables
306 per-user DBus sessions with
307 <phrase revision="sysv"><application>elogind</application>.</phrase>
308 <phrase revision="systemd"><application>systemd</application>.</phrase>
309 </para>
310
311 <para revision="sysv">
312 <parameter>--with-systemd{user,system}unitdir=no</parameter>: These
313 switches disable installation of systemd units on elogind based systems.
314 </para>
315
316 <para>
317 <parameter>--with-system-pid-file=/run/dbus/pid</parameter>: This
318 parameter specifies the location of the PID file.
319 </para>
320
321 <para>
322 <parameter>--with-system-socket=/run/dbus/system_bus_socket</parameter>:
323 This parameter specifies the location of the system bus socket.
324 </para>
325
326 <para>
327 <parameter>--enable-tests</parameter>: Builds extra parts of the code to
328 support all tests. Do not use on a production build.
329 </para>
330
331 <para>
332 <option>--enable-embedded-tests</option>: Builds extra parts of the
333 code to support only unit tests. Do not use on a production build.
334 </para>
335
336 <para>
337 <parameter>--enable-asserts</parameter>: Enables debugging code to run
338 assertions for statements normally assumed to be true. This prevents a
339 warning that '<parameter>--enable-tests</parameter>' on its own is only
340 useful for profiling and might not give true results for all tests, but
341 adds its own NOTE that this should not be used in a production build.
342 </para>
343
344 </sect2>
345
346 <sect2 role="configuration">
347 <title>Configuring D-Bus</title>
348
349 <sect3 id="dbus-config">
350 <title>Config Files</title>
351
352 <para>
353 <filename>/etc/dbus-1/session.conf</filename>,
354 <filename>/etc/dbus-1/system.conf</filename> and
355 <filename>/etc/dbus-1/system.d/*</filename>
356 </para>
357
358 <indexterm zone="dbus dbus-config">
359 <primary sortas="e-etc-dbus-1-session.conf">/etc/dbus-1/session.conf</primary>
360 </indexterm>
361
362 <indexterm zone="dbus dbus-config">
363 <primary sortas="e-etc-dbus-1/system.conf">/etc/dbus-1/system.conf</primary>
364 </indexterm>
365
366 <indexterm zone="dbus dbus-config">
367 <primary sortas="e-etc-dbus-1-system.d-star">/etc/dbus-1/system.d/*</primary>
368 </indexterm>
369
370 </sect3>
371
372 <sect3 id="dbus-session-config" xreflabel="D-Bus custom services directory">
373 <title>Configuration Information</title>
374
375 <para>
376 The configuration files listed above should probably not be
377 modified. If changes are required, you should create
378 <filename>/etc/dbus-1/session-local.conf</filename> and/or
379 <filename>/etc/dbus-1/system-local.conf</filename> and make any
380 desired changes to these files.
381 </para>
382
383 <para>
384 If any packages install a
385 <application>D-Bus</application> <filename>.service</filename>
386 file outside of the standard <filename
387 class="directory">/usr/share/dbus-1/services</filename> directory,
388 that directory should be added to the local session configuration.
389 For instance, <filename
390 class="directory">/usr/local/share/dbus-1/services</filename> can
391 be added by performing the following commands as the
392 <systemitem class="username">root</systemitem> user:
393 </para>
394
395<screen role="root"><userinput>cat &gt; /etc/dbus-1/session-local.conf &lt;&lt; "EOF"
396<literal>&lt;!DOCTYPE busconfig PUBLIC
397 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
398 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
399&lt;busconfig&gt;
400
401 &lt;!-- Search for .service files in /usr/local --&gt;
402 &lt;servicedir&gt;/usr/local/share/dbus-1/services&lt;/servicedir&gt;
403
404&lt;/busconfig&gt;</literal>
405EOF</userinput></screen>
406
407 </sect3>
408
409 <sect3 id="dbus-session">
410 <title>D-Bus Session Daemon</title>
411
412 <para revision="sysv">
413 To automatically start <command>dbus-daemon</command> when the
414 system is rebooted, install the
415 <filename>/etc/rc.d/init.d/dbus</filename> bootscript from the
416 <xref linkend="bootscripts"/> package.
417 </para>
418
419 <indexterm zone="dbus dbus-session" revision="sysv">
420 <primary sortas="f-dbus">dbus</primary>
421 </indexterm>
422
423<screen role="root" revision="sysv"><userinput>make install-dbus</userinput></screen>
424
425 <para revision="sysv">
426 Note that this boot script only starts the system-wide
427 <application>D-Bus</application> daemon. Each user requiring access to
428 <application>D-Bus</application> services will also need to run a
429 session daemon as well. There are many methods you can use to start a
430 session daemon using the <command>dbus-launch</command> command. Review
431 the <command>dbus-launch</command> man page for details about the
432 available parameters and options. Here are some suggestions and
433 examples:
434 </para>
435
436 <para revision="systemd">
437 There are many methods you can use to start a session daemon
438 using the <command>dbus-launch</command> command. Review the
439 <command>dbus-launch</command> man page for details about the
440 available parameters and options. Here are some suggestions and
441 examples:
442 </para>
443
444
445 <itemizedlist spacing="compact">
446 <listitem>
447 <para>
448 Add <command>dbus-launch</command> to the line in the
449 <filename>~/.xinitrc</filename> file that starts your graphical
450 desktop environment.
451 </para>
452 </listitem>
453 <listitem>
454 <para>
455 If you use <command>gdm</command> or some other display manager
456 that calls the <filename>~/.xsession</filename> file, you can add
457 <command>dbus-launch</command> to the line in your
458 <filename>~/.xsession</filename> file that starts your graphical
459 desktop environment. The syntax would be similar to the example in
460 the <filename>~/.xinitrc</filename> file.
461 </para>
462 </listitem>
463 <listitem>
464 <para>
465 The examples shown previously use
466 <command>dbus-launch</command> to specify a program to be run. This
467 has the benefit (when also using the
468 <parameter>--exit-with-session</parameter> parameter) of stopping the
469 session daemon when the specified program is stopped. You can also
470 start the session daemon in your system or personal startup scripts
471 by adding the following lines:
472 </para>
473
474<screen role="nodump"><userinput><literal># Start the D-Bus session daemon
475eval `dbus-launch`
476export DBUS_SESSION_BUS_ADDRESS</literal></userinput></screen>
477
478 <para>
479 This method will not stop the session daemon when you exit
480 your shell, therefore you should add the following line to your
481 <filename>~/.bash_logout</filename> file:
482 </para>
483
484<screen role="nodump"><userinput><literal># Kill the D-Bus session daemon
485kill $DBUS_SESSION_BUS_PID</literal></userinput></screen>
486 </listitem>
487
488 <!-- KDM is no longer usable, SDDM is it's replacement
489 <listitem>
490 <para>
491 A hint has been written that provides ways to start scripts
492 using the KDM session manager of KDE. The concepts in this hint could
493 possibly be used with other session managers as well. The hint is
494 located at <ulink
495 url="&hints-root;/downloads/files/execute-session-scripts-using-kdm.txt"/>.
496 </para>
497 </listitem>
498 -->
499
500 </itemizedlist>
501
502 </sect3>
503
504 </sect2>
505
506 <sect2 role="content" revision="sysv">
507 <title>Contents</title>
508
509 <segmentedlist>
510 <segtitle>Installed Programs</segtitle>
511 <segtitle>Installed Library</segtitle>
512 <segtitle>Installed Directories</segtitle>
513
514 <seglistitem>
515 <seg>
516 dbus-cleanup-sockets, dbus-daemon, dbus-launch, dbus-monitor,
517 dbus-run-session, dbus-send, dbus-test-tool,
518 dbus-update-activation-environment, and dbus-uuidgen
519 </seg>
520 <seg>
521 libdbus-1.so
522 </seg>
523 <seg>
524 /etc/dbus-1,
525 /usr/{include,lib}/dbus-1.0,
526 /usr/lib/cmake/DBus1,
527 /usr/share/dbus-1,
528 /usr/share/xml/dbus-1,
529 /usr/share/doc/dbus-&dbus-version;, and
530 /var/{lib,run}/dbus
531 </seg>
532 </seglistitem>
533 </segmentedlist>
534
535 <variablelist>
536 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
537 <?dbfo list-presentation="list"?>
538 <?dbhtml list-presentation="table"?>
539
540 <varlistentry id="dbus-cleanup-sockets">
541 <term><command>dbus-cleanup-sockets</command></term>
542 <listitem>
543 <para>
544 is used to clean up leftover sockets in a directory
545 </para>
546 <indexterm zone="dbus dbus-cleanup-sockets">
547 <primary sortas="b-dbus-cleanup-sockets">dbus-cleanup-sockets</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 <varlistentry id="dbus-daemon">
553 <term><command>dbus-daemon</command></term>
554 <listitem>
555 <para>
556 is the <application>D-Bus</application> message bus daemon
557 </para>
558 <indexterm zone="dbus dbus-daemon">
559 <primary sortas="b-dbus-daemon">dbus-daemon</primary>
560 </indexterm>
561 </listitem>
562 </varlistentry>
563
564 <varlistentry id="dbus-launch">
565 <term><command>dbus-launch</command></term>
566 <listitem>
567 <para>
568 is used to start <command>dbus-daemon</command> from a shell
569 script. It would normally be called from a user's login
570 scripts
571 </para>
572 <indexterm zone="dbus dbus-launch">
573 <primary sortas="b-dbus-launch">dbus-launch</primary>
574 </indexterm>
575 </listitem>
576 </varlistentry>
577
578 <varlistentry id="dbus-monitor">
579 <term><command>dbus-monitor</command></term>
580 <listitem>
581 <para>
582 is used to monitor messages going through a
583 <application>D-Bus</application> message bus
584 </para>
585 <indexterm zone="dbus dbus-monitor">
586 <primary sortas="b-dbus-monitor">dbus-monitor</primary>
587 </indexterm>
588 </listitem>
589 </varlistentry>
590
591 <varlistentry id="dbus-run-session">
592 <term><command>dbus-run-session</command></term>
593 <listitem>
594 <para>
595 starts a process as a new <application>D-Bus</application> session
596 </para>
597 <indexterm zone="dbus dbus-run-session">
598 <primary sortas="b-dbus-run-session">dbus-run-session</primary>
599 </indexterm>
600 </listitem>
601 </varlistentry>
602
603 <varlistentry id="dbus-send">
604 <term><command>dbus-send</command></term>
605 <listitem>
606 <para>
607 is used to send a message to a <application>D-Bus</application>
608 message bus
609 </para>
610 <indexterm zone="dbus dbus-send">
611 <primary sortas="b-dbus-send">dbus-send</primary>
612 </indexterm>
613 </listitem>
614 </varlistentry>
615
616 <varlistentry id="dbus-test-tool">
617 <term><command>dbus-test-tool</command></term>
618 <listitem>
619 <para>
620 is a <application>D-Bus</application> traffic generator and test
621 tool; it is a multi-purpose tool for debugging and profiling
622 <application>D-Bus</application>
623 </para>
624 <indexterm zone="dbus dbus-test-tool">
625 <primary sortas="b-dbus-test-tool">dbus-test-tool</primary>
626 </indexterm>
627 </listitem>
628 </varlistentry>
629
630 <varlistentry id="dbus-update-activation-environment">
631 <term><command>dbus-update-activation-environment</command></term>
632 <listitem>
633 <para>
634 is used to update the environment used for
635 <application>D-Bus</application> session services;
636 it updates the list of environment variables used by
637 <command>dbus-daemon --session</command> when it activates session
638 services without using systemd
639 </para>
640 <indexterm zone="dbus dbus-update-activation-environment">
641 <primary sortas="b-dbus-update-activation-environment">
642 dbus-update-activation-environment</primary>
643 </indexterm>
644 </listitem>
645 </varlistentry>
646
647 <varlistentry id="dbus-uuidgen">
648 <term><command>dbus-uuidgen</command></term>
649 <listitem>
650 <para>
651 is used to generate a universally unique ID
652 </para>
653 <indexterm zone="dbus dbus-uuidgen">
654 <primary sortas="b-dbus-uuidgen">dbus-uuidgen</primary>
655 </indexterm>
656 </listitem>
657 </varlistentry>
658
659 <varlistentry id="libdbus-1">
660 <term><filename class="libraryfile">libdbus-1.so</filename></term>
661 <listitem>
662 <para>
663 contains the API functions used by the
664 <application>D-Bus</application> message daemon.
665 <application>D-Bus</application> is first a library that provides
666 one-to-one communication between any two applications;
667 <command>dbus-daemon</command> is an application that uses this
668 library to implement a message bus daemon
669 </para>
670 <indexterm zone="dbus libdbus-1">
671 <primary sortas="c-libdbus-1">libdbus-1.so</primary>
672 </indexterm>
673 </listitem>
674 </varlistentry>
675
676 </variablelist>
677
678 </sect2>
679
680 <sect2 role="content" revision="systemd">
681 <title>Contents</title>
682
683 <para>
684 A list of the installed files, along with their short
685 descriptions can be found at
686 <ulink url="&lfs-root;/chapter08/dbus.html#contents-dbus"/>.
687 </para>
688
689 </sect2>
690
691</sect1>
Note: See TracBrowser for help on using the repository browser.