No longer maintaining Gentoo’s HAL

Cardoe wrote this in the late afternoon:

There’s a few reasons for this. Mainly because I’m disenfranchised by the development process. Also, many Gentoo users and developers dislike HAL and are against it so I’m constantly fighting an uphill battle. But mainly it’s the development process.

For a long time I’ve felt that the development has been very one sided, by one individual. No design review, no peer review just simple code dumps every few weeks or months. Feedback is always encouraged but never read and acted upon. Bug reports go ignored.

I brought this up in the past in on the HAL ML, here. Issues with another mandatory component of HAL having code stagnating and then big code drops were brought up by a Debian developer, countered by a Fedora developer, SuSE disproves the counter as do I and another Fedora developer disagree with the counter, all in all a fun thread. Then we have David making a big code drop to which, a Debian developer and I expressed similar concerns with on the thread. And on the #hal IRC channel,  another SuSE developer and Mandriva developer expressed similar concerns.

This was followed up by an IRC conversation with Rob Taylor which I have included here, the conversation takes place after receiving my reply to the last thread I’ve linked.

My biggest issue is that HAL and friends are suppose to be a FreeDesktop.org project that provides a simple and universal API to all DEs and really anything that needs hardware information and it’s designed behind closed doors and a lot of code is written behind closed doors. It’s depended on and used in projects when it’s not mature enough, for example GNOME using the 0.4 version of HAL. If David’s latest rewrite takes place that will be 3 full rewrites before it’s even hit 1.0.

Now if app was written in an open source manner, a lot of issues and problems could be addressed with the design from the get go and the code could be properly peer reviewed and we could move forward from there. Instead we have distros commonly shipping HAL with over a dozen some odd patches, not to mention the patches necessary to it’s associated utilities. I bring this point up for a very good reason, the front of FreeDesktop.org’s website states, “freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops.” Yet HAL developers will clearly admit that this project does not follow this principles and even argue that it should not follow those principles.

Because of these issues, I have given up on HAL and will no longer maintain it. In fact, I’m no longer interested in having it installed on my system. It’s time to choose another DE to use instead of GNOME.

HAL 0.5.10 and Things TODO before hitting the tree

Cardoe wrote this in the late afternoon:

Basically some people keep asking when HAL 0.5.10 is going to hit the Portage tree. Well there’s a few more things that need to be hashed out first.

  • Do we really want to go with the PolicyKit route? Right now I’m leaning towards yes since this allows for granualar controls of permissions from HAL and future versions of HAL will require it so might as well bite the bullet. But this will require some more discussion with the other distro maintainers since David Zeuthen has pretty much disappeared from developement. If we go with PolicyKit that will require some more bits:
    • Document and explain PolicyKit and how it works and why it exists.
    • Work with Diego to merge in the necessary ConsoleKit bits into the PAM configuration. Test and evaluate the non-PAM routes for users like compnerd.
    • Clean up the few gotchas that testing has uncovered with PolicyKit.
  • dberkholz, seemant, dang, leio and a few users in #gentoo-desktop have been having problems with the HAL version in Gentopia, we need to work with each of these users to resolve the issues and get those fixes into the ebuild or the code.
  • Test KDE. No idea if it works with the new HAL.
  • Document the new xorg-server interactions with HAL and how users can solve their configuration issues. Also work up some proper defaults if need be.
  • Fix all the known memory leaks and merge the necessary patches from upstream and from the mailing list.
  • Review all the issues that SuSE and Debian unstable have had in switching to HAL 0.5.10 and ensure we have all those use cases covered.
  • Decide what our minimum supported kernel is. Technically, HAL supports as low as kernel 2.6.19 but there are still some issues.
  • Publish a git tree with all of the patches

Right now the only machine that I have HAL working nicely on is running about 25 extra patches, all of which have been cherry picked from upstream or the ML or written by others to addresses issues we’ve found. I haven’t had the time necessary to do much maintenance and code writing for HAL so I’ve been a bit neglectful of the package.

I hope this answers everyone’s questions of what needs to happen with HAL 0.5.10 before it hits the tree.

Having HAL ignore devices

Cardoe wrote this mid-afternoon:

Robin was having issues with a CD-ROM drive that caused his system to hard lock whenever HAL was started. Now HAL ships with hal-disable-polling that allows you disable polling of the CD-ROM drive for media changes however this still does not prevent HAL from scanning the drive when HAL starts up. When HAL starts up it sends your ATAPI devices a capabilities query and it appears this query is what’s causing robbat2’s issue. So we had to come up with a custom FDI file to make HAL ignore the device entirely.

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="block.device" string="/dev/hda">
<merge key="info.ignore" type="bool">true</merge>
</match>
</device>
</deviceinfo>

Drop into a file and save it into /etc/hal/fdi/preprobe and viola, HAL will completely ignore this device and you will be all set.

Edit: I was asked to provide a license under which the above snippet is under. Basically, do with the above what you wish. So it’s under a 2-clause BSD license, copyright to me, Doug Goldstein (Doug Klima) effective from the date this post was made. A copy of a 2-clause BSD license is available at: http://www.freebsd.org/copyright/freebsd-license.html