Building HAL-0.4.6 [LONG]

Joseph E. Sacco, Ph.D. joseph_sacco at comcast.net
Thu Jan 20 17:15:31 MST 2005


I have managed to build and install HAL-0.4.6 under YDL-4.0.

What is HAL? 
-----------

HAL stands for "Hardware Abstraction Layer". See

	http://www.freedesktop.org/Software/hal

for details.


Why do we care?
--------------

[taken from the GARNOME README]
                                                                                             "Since the release of GNOME 2.8.0, a number of features have been added to the core GNOME desktop that allows enhanced file system features, device-management and more.
                                                                                                   The downside to this, is some portions of GNOME now depend on a 2.6.x or newer kernel, as well as 'hal', 'dbus' and several other components."
                                                                                                   
Where are we now?
-------------------

YDL-4.0 comes with gnome-2.6.0, dbus-0.20-4, and no hal. The current
stable version of gnome is gnome-2.8.2.1. The current development
version is gnome-2.9.4. At some point in time YDL-4 will update the
GNOME desktop, which will require a working version of HAL.

=============================================================================

Issues
--------

* Earlier versions of HAL do not run under YDL-4.0. 

The hal daemon would segfault due to an attempt to free unallocated
memory. A workaround has been implemented in hal-0.4.6 and tested under
YDL-4.0 [by me].

Note:
This bug took a far amount of patience to identify from within gdb.
Linking the hal daemon with one of your favorite malloc debuggers like
mcheck or Electric Fence made the problem "go away".  That tells me that
there may be issues with the implementation of malloc/free within the
current version of libc. David Zeuthen, an author and maintainer of
HAL,  was unable to replicate the problem on a 12" G4 Powerbook running
a later version of Fedora for PPC.



* Red Hat requirement over-specification

I asked David what was required to build hal-0.4.5.

David responded:

        "Same as the rest of 0.4.x; basically just 2.6.8, a recent udev
        and dbus-0.22 or so."
        
YDL-4.0 comes with:
* dbus-0.20-4
* udev-024-6

I updated dbus to 0.22-12 using a Fedora SRPM,  which seems to be "good
enough for now".

Earlier I decided to attempt to update to hal-0.4.5 using current Fedora
source.  That decision quickly cast me into dependency hell. At one
point I had built and installed:

* hal-0.4.5-1
* MAKEDEV-3.1.6-3
* udev-050-1
* mkinitrd-4.1.20-1
* installscripts-8.0.3-1
* ppc64-utils-0.7-5   <<===  [I have a 32 bit machine :-)]

These installations took me to a place I had never been since rc.sysinit
changed rather drastically.  While rebooting, I got a message that said
"cannot create a console" and then the screen when black. The machine
chugged along for a while and then a boot prompt magically appeared.  I
logged on and looked around and things "seemed OK", but one never knows
so I retreated back to my previous environment.

In hindsight,  I probably could have resolved the vanishing console
problem by rerunning mkinitd to regenerate the initial ram disk image
for pre-loading modules. That's another mountain to climb later...

Anyway... The point is the requirements listed the the Fedora RPM SPEC
file for hal-0.4.5-1 appear to reflect the current state of the body of
Fedora code rather than the minimum set of requirements needed to build
hal-0.4.5-1. 

I don't really have a problem with that, since that says is "these
things are known to work together".

Based upon what's coming for the next YDL update, some decisions will
need to be made on what's needed to build hal.


-Joseph


-- 
joseph_sacco[at]comcast[dot]net



More information about the yellowdog-general mailing list