r5513 - in trunk/BOOK: . general/sysutils introduction/welcome

randy at linuxfromscratch.org randy at linuxfromscratch.org
Sun Jan 1 16:16:39 PST 2006


Author: randy
Date: 2006-01-01 17:16:38 -0700 (Sun, 01 Jan 2006)
New Revision: 5513

Modified:
   trunk/BOOK/general.ent
   trunk/BOOK/general/sysutils/dbus.xml
   trunk/BOOK/general/sysutils/hal.xml
   trunk/BOOK/introduction/welcome/changelog.xml
Log:
Added significant updates to the HAL instructions: updated the dependencies, modified the command that changes the storage device policy, added text and a visual chart to explain the requirements of the hal-device-manager program, added commands to allow for locale specific needs in the storage device policy, and some general text cleanup. Also updated the D-BUS instructions to include text that identifies the needs of the HAL package

Modified: trunk/BOOK/general/sysutils/dbus.xml
===================================================================
--- trunk/BOOK/general/sysutils/dbus.xml	2006-01-01 18:37:50 UTC (rev 5512)
+++ trunk/BOOK/general/sysutils/dbus.xml	2006-01-02 00:16:38 UTC (rev 5513)
@@ -82,6 +82,21 @@
     <xref linkend="doxygen"/> and
     <ulink url="http://cyberelk.net/tim/xmlto/">xmlto</ulink></para>
 
+    <bridgehead renderas="sect4" id="hal-requirements"
+    xreflabel="HAL Requirements">HAL Requirements</bridgehead>
+    <para><xref linkend="glib2"/> must be installed before you begin building
+    <application>D-BUS</application> if you plan on installing
+    <xref linkend="hal"/>. <application>GLib</application> is required to build
+    the <filename class='libraryfile'>libdbus-glib</filename> library, which is
+    required by the <application>HAL</application> daemon. Additionally, if you
+    desire to use the <xref linkend="hal-device-manager"/> program,
+    <ulink url="http://nz.cosc.canterbury.ac.nz/~greg/python/Pyrex/">
+    Pyrex</ulink> must be installed before you begin building
+    <application>D-BUS</application> as the <application>D-BUS</application>
+    <application>Python</application> bindings are required. You will also
+    need to remove the <parameter>--disable-python</parameter> parameter from
+    the <command>configure</command> command in the instructions below.</para>
+
   </sect2>
 
   <sect2 role="kernel" id='dbus-kernel'>

Modified: trunk/BOOK/general/sysutils/hal.xml
===================================================================
--- trunk/BOOK/general/sysutils/hal.xml	2006-01-01 18:37:50 UTC (rev 5512)
+++ trunk/BOOK/general/sysutils/hal.xml	2006-01-02 00:16:38 UTC (rev 5513)
@@ -38,11 +38,18 @@
     attached to a system. In addition to this, <application>HAL</application>
     keeps detailed metadata for each piece of hardware and provides hooks such
     that system and desktop-level software can react to changes in the hardware
-    configuration in order to maintain system policy. The most important goal
-    of <application>HAL</application> is to provide plug-and-play facilities
-    for UNIX-like desktops with focus on providing a rich and extensible
-    description of device characteristics and features.</para>
+    configuration in order to maintain system policy.</para>
 
+    <para>The most important goal of <application>HAL</application> is to
+    provide plug-and-play facilities for UNIX-like desktops with focus on
+    providing a rich and extensible description of device characteristics and
+    features. One example of the functionality provided by
+    <application>HAL</application> is when you plug in a USB storage device.
+    <application>HAL</application> can automatically create an appropriate
+    entry in the <filename>/etc/fstab</filename> file and create the
+    corresponding mount point in
+    <filename class="directory">/media</filename>.</para>
+
     <bridgehead renderas="sect3">Package Information</bridgehead>
     <itemizedlist spacing="compact">
       <listitem>
@@ -76,8 +83,10 @@
     <bridgehead renderas="sect3">HAL Dependencies</bridgehead>
 
     <bridgehead renderas="sect4">Required</bridgehead>
-    <para role="required"><xref linkend="dbus"/>,
-    <xref linkend="popt"/> and
+    <para role="required"><xref linkend="glib2"/>,
+    <xref linkend="dbus"/> (see the <xref linkend="hal-requirements"/>),
+    <xref linkend="python"/>,
+    <xref linkend="popt"/>, and
     <xref linkend="perl-xml-parser"/></para>
 
     <bridgehead renderas="sect4">Recommended</bridgehead>
@@ -88,11 +97,7 @@
     <para role="optional"><xref linkend="pkgconfig"/>,
     <xref linkend="intltool"/>,
     <xref linkend="libusb"/>,
-    <xref linkend="expat"/>,
-    <xref linkend="python"/>,
-    <ulink url="http://ftp.gnome.org/pub/GNOME/sources/gnome-python/">GNOME-Python</ulink>
-    (run-time requirement to use the <command>hal-device-manager</command> program),
-    <xref linkend="doxygen"/> and
+    <xref linkend="doxygen"/>, and
     <xref linkend="docbook-utils"/></para>
 
   </sect2>
@@ -106,10 +111,14 @@
 
 <screen role="root"><userinput>install -v -m644 ../usb.ids /usr/share</userinput></screen>
 
-    <para>You must create a dedicated user and group for the
-    <application>HAL</application> daemon before installing the package. Issue
-    the following as the <systemitem class="username">root</systemitem>
-    user:</para>
+    <para>You must create a dedicated user and group before installing the
+    package. Though the default BLFS instructions run the
+    <application>HAL</application> daemon as the
+    <systemitem class="username">root</systemitem> user, a configuration file
+    is installed which has the dedicated user's name hard-coded in it. This
+    causes a confusing message to be generated when starting the
+    <application>D-BUS</application> daemon. Issue the following commands as
+    the <systemitem class="username">root</systemitem> user:</para>
 
 <screen role="root"><userinput>groupadd -g 19 haldaemon &&
 useradd -c "HAL Daemon User" -d /dev/null -u 19 \
@@ -118,7 +127,8 @@
     <para>Install <application>HAL</application> by running the following
     commands:</para>
 
-<screen><userinput>sed -i -e "9,11d" -e "s/pamconsole/users/" \
+<screen><userinput>sed -i -e "s/managed</comment=&/" \
+       -e "s/pamconsole/users/" \
     fdi/policy/10osvendor/10-storage-policy.fdi &&
 ./configure --prefix=/usr \
             --sysconfdir=/etc \
@@ -140,10 +150,9 @@
   <sect2 role="commands">
     <title>Command Explanations</title>
 
-    <para><command>sed -i -e "9,11d" -e "s/pamconsole/users/" ...</command>:
-    This command adjusts the policy for storage devices so that the
-    <filename>/etc/fstab</filename> file is updated to standards used by LFS
-    systems.</para>
+    <para><command>sed -i -e ...</command>: This command adjusts the policy for
+    storage devices so that the <filename>/etc/fstab</filename> file is updated
+    to standards used by LFS systems.</para>
 
     <para><parameter>--libexecdir=/usr/lib/hal</parameter>: This parameter
     forces the installation of libexec files to
@@ -163,6 +172,124 @@
 
   </sect2>
 
+  <sect2 id="hal-runtime-dependencies" xreflabel="GNOME-Python">
+    <title>Run-Time Dependencies</title>
+
+    <para>The <xref linkend="hal-device-manager"/> program requires several
+    additional packages to be installed before it will run. The list is
+    significant and requires a substantial commitment to install them. It is
+    left up to you to determine if the time and effort spent installing the
+    following packages is worth using the <command>hal-device-manager</command>
+    program.</para>
+
+    <para>Though the only requirement to run the
+    <command>hal-device-manager</command> program is installing 
+    <ulink url="http://ftp.gnome.org/pub/GNOME/sources/gnome-python/">
+    GNOME-Python</ulink>, the dependency list is staggering. The following
+    list does not include the dependencies already identified in the BLFS
+    book. For example, <application>libgnome</application> already lists
+    <application>GNOME VFS</application>, <application>GConf</application>,
+    etc., so they are not repeated here. Note that some of the dependencies
+    have their own dependencies, which have their own, and so forth and so
+    on.</para>
+
+    <itemizedlist>
+      <listitem>
+        <para><ulink
+          url="http://ftp.gnome.org/pub/GNOME/sources/gnome-python/">GNOME-Python</ulink>
+        </para>
+
+        <itemizedlist>
+          <listitem>
+            <para><ulink
+              url="http://www.pygtk.org/">PyGTK</ulink> (required)
+            </para>
+
+            <itemizedlist>
+              <listitem>
+                <para><ulink
+                  url="http://www.cairographics.org/pycairo">Pycairo</ulink> (optional)
+                </para>
+
+                <itemizedlist>
+                  <listitem>
+                    <para><ulink
+                      url="http://www.cairographics.org/snapshots/">libsvg-cairo</ulink> (optional)
+                    </para>
+
+                    <itemizedlist>
+                      <listitem>
+                        <para><ulink
+                          url="http://www.cairographics.org/snapshots/">libsvg</ulink> (required)
+                        </para>
+                      </listitem>
+                    </itemizedlist>
+
+                  </listitem>
+                  <listitem>
+                    <para><ulink
+                      url="http://www.pygtk.org/">PyGTK</ulink> (optional, and circular)
+                    </para>
+                  </listitem>
+                  <listitem>
+                    <para><ulink
+                      url="http://sourceforge.net/projects/numpy">Numerical Python</ulink> (optional)
+                    </para>
+                  </listitem>
+                </itemizedlist>
+
+              </listitem>
+              <listitem>
+                <para><ulink
+                  url="http://sourceforge.net/projects/numpy">Numerical Python</ulink> (optional)
+                </para>
+              </listitem>
+              <listitem>
+                <para><xref linkend="libglade"/> (required)</para>
+              </listitem>
+            </itemizedlist>
+
+          </listitem>
+          <listitem>
+            <para><xref linkend="libgnomeui"/> (optional)</para>
+          </listitem>
+          <listitem>
+            <para><xref linkend="libgnome"/> (required)</para>
+          </listitem>
+          <listitem>
+            <para><ulink
+              url="http://ftp.gnome.org/pub/GNOME/sources/pyorbit/2.0/">PyORBit</ulink> (optional)
+            </para>
+
+            <itemizedlist>
+              <listitem>
+                <para><xref linkend="ORBit2"/> (required)</para>
+              </listitem>
+            </itemizedlist>
+
+          </listitem>
+        </itemizedlist>
+
+      </listitem>
+    </itemizedlist>
+
+    <note>
+      <para>The dependency list is designed to start at the bottom and work
+      your way up until the last package to install is
+      <application>GNOME-Python</application>. Note that the dependencies
+      marked as <quote>required</quote> are required for the package it is
+      listed under. For example, you don't need to install
+      <application>ORBit</application> if you don't plan on installing
+      <application>PyORBit</application>. The minimum packages you could
+      install to support running <xref linkend="hal-device-manager"/> would be
+      (in this order): <xref linkend="libgnome"/>, <xref linkend="libglade"/>,
+      <ulink url="http://www.pygtk.org/">PyGTK</ulink> and <ulink
+      url="http://ftp.gnome.org/pub/GNOME/sources/gnome-python/">
+      GNOME-Python</ulink>.</para>
+    </note>
+
+  </sect2>
+
   <sect2 role="configuration">
     <title>Configuring HAL</title>
 
@@ -182,10 +309,78 @@
 
     <sect3><title>Configuration Information</title>
 
-      <para>No configuration is necessary as the default values will work for
-      most systems. Some tweaking of the various policies may be required for
-      special circumstances.</para>
+      <para>No configuration is necessary for the majority of installations
+      on systems configured with ISO-8859-1 compatible locales. The defaults
+      should work just fine. For some installations, tweaking of the various
+      policies may be required. One such configuration change necessary in some
+      locales is identifying the <option>iocharset</option> and
+      <option>codepage</option> variables in the
+      <filename>/etc/fstab</filename> entries created by the
+      <command>fstab-sync</command> program. If changes are required to the
+      configuration so that your locale is properly identified in the entries
+      created in <filename>/etc/fstab</filename>, issue the following commands
+      as the <systemitem class="username">root</systemitem> user (you must
+      substitute the proper data for the <replaceable>[iocharset]</replaceable>
+      and <replaceable>[codepage]</replaceable> info):</para>
 
+<screen role="root"><userinput>install -v -m755 -d /etc/hal/fdi/policy/30user &&
+cat > /etc/hal/fdi/policy/30user/30user-policy.fdi << "EOF"
+<literal><?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->
+
+<!-- 
+This file is used to set custom options to the HAL policy settings.
+The default policy settings are defined in files contained in the
+/usr/share/hal/fdi/policy directories. User defined customizations
+should be in files contained in the /etc/hal/fdi/policy directories.
+-->
+
+<deviceinfo version="0.2">
+
+  <device>
+    <match key="info.udi" \
+        string="/org/freedesktop/Hal/devices/computer">
+
+      <!-- Set the iocharset variable in the /etc/fstab file entry -->
+      <merge \
+        key="storage.policy.default.mount_option.iocharset=<replaceable>[iocharset]</replaceable>" \
+        type="bool">true</merge>
+
+      <!-- Set the codepage variable in the /etc/fstab file entry -->
+      <merge \
+        key="storage.policy.default.mount_option.codepage=<replaceable>[codepage]</replaceable>" \
+        type="bool">true</merge>
+
+    </match>
+  </device>
+
+</deviceinfo></literal>
+
+EOF</userinput></screen>
+
+      <note>
+        <para>The previous commands created a file named
+        <filename>/etc/hal/fdi/policy/30user/30user-policy.fdi</filename>. To
+        ease readability of the file, put everything between the
+        <angle brackets> and <merge></merge> tags on one
+        line. You must have at least one space character
+        <quote><keycap> </keycap></quote> where the backslashes
+        <quote><keycap>\</keycap></quote> are. The file would then look like
+        this (trimmed at the top and bottom to show only changed lines):</para>
+
+<screen><literal>  <device>
+    <match key="<replaceable>[text]</replaceable>" string="<replaceable>[text]</replaceable>">
+
+      <!-- Set the iocharset variable in the /etc/fstab file entry -->
+      <merge key="<replaceable>[iocharset text]</replaceable>" type="bool">true</merge>
+
+      <!-- Set the codepage variable in the /etc/fstab file entry -->
+      <merge key="<replaceable>[codepage text]</replaceable>" type="bool">true</merge>
+
+    </match>
+  </device></literal></screen>
+
+      </note>
+
     </sect3>
 
     <sect3  id="hal-init">
@@ -201,13 +396,13 @@
         <primary sortas="f-haldaemon">haldaemon</primary>
       </indexterm>
 
-      <note>
+      <important>
         <para>If the system-wide <application>D-BUS</application> daemon was
         running during the installation of <application>HAL</application>,
         ensure you stop and restart the <application>D-BUS</application>
         daemon before attempting to start the <command>hald</command>
         daemon.</para>
-      </note>
+      </important>
 
 <screen role="root"><userinput>make install-haldaemon</userinput></screen>
 
@@ -276,7 +471,12 @@
         <listitem>
           <para>shows a graphical respresentation of all the devices
           <application>HAL</application> is aware of. This program requires
-          <application>GNOME-Python</application>.</para>
+          <xref linkend="hal-runtime-dependencies"/>. Here is a <ulink
+          url="http://cvs.freedesktop.org/*checkout*/hal/hal/doc/spec/hal-devices1.png">
+          screenshot</ulink> of <command>hal-device-manager</command>
+          communicating with the HAL daemon and displaying a tree of device
+          objects. The shown properties in the screenshot are for a device
+          object representing a hard disk.</para>
           <indexterm zone="hal hal-device-manager">
             <primary sortas="b-hal-device-manager">hal-device-manager</primary>
           </indexterm>

Modified: trunk/BOOK/general.ent
===================================================================
--- trunk/BOOK/general.ent	2006-01-01 18:37:50 UTC (rev 5512)
+++ trunk/BOOK/general.ent	2006-01-02 00:16:38 UTC (rev 5513)
@@ -1,8 +1,8 @@
-<!ENTITY day          "01">
+<!ENTITY day          "02">
 <!ENTITY month        "01">
 <!ENTITY year         "2006">
 <!ENTITY version      "svn-&year;&month;&day;">
-<!ENTITY releasedate  "January &day;st, &year;">
+<!ENTITY releasedate  "January &day;nd, &year;">
 <!ENTITY pubdate      "&year;-&month;-&day;"> <!-- metadata req. by TLDP -->
 <!ENTITY blfs-version "svn">                  <!-- svn|[release #] -->
 <!ENTITY lfs-version  "development">          <!-- version|stable|testing|unstable|development] -->

Modified: trunk/BOOK/introduction/welcome/changelog.xml
===================================================================
--- trunk/BOOK/introduction/welcome/changelog.xml	2006-01-01 18:37:50 UTC (rev 5512)
+++ trunk/BOOK/introduction/welcome/changelog.xml	2006-01-02 00:16:38 UTC (rev 5513)
@@ -42,12 +42,30 @@
 -->
 
     <listitem>
+      <para>January 2nd, 2006</para>
+      <itemizedlist>
+        <listitem>
+          <para>[randy] - Added significant updates to the HAL instructions:
+          updated the dependencies, modified the command that changes the
+          storage device policy, added text and a visual chart to explain
+          the requirements of the hal-device-manager program, added commands
+          to allow for locale specific needs in the storage device policy,
+          and some general text cleanup.</para>
+        </listitem>
+        <listitem>
+          <para>[randy] - Updated the D-BUS instructions to include text that
+          identifies the needs of the HAL package.</para>
+        </listitem>
+      </itemizedlist>
+    </listitem>
+
+    <listitem>
       <para>December 31st, 2005</para>
       <itemizedlist>
         <listitem>
           <para>[randy] - Added a sed command to the D-Bus instructions to
-          change a 'jar' command to a 'fastjar' command due to the changes
-          in GCC-4.0.2.</para>
+          change a 'jar' command to 'fastjar' due to the changes in
+          GCC-4.0.x.</para>
         </listitem>
       </itemizedlist>
     </listitem>




More information about the blfs-book mailing list