Please drop hal dependency

Bug #708502 reported by Martin Pitt
18
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Landscape Client
Fix Released
High
Thomas Herve
landscape-client (Ubuntu)
Fix Released
High
Unassigned
Karmic
Won't Fix
Undecided
Unassigned
Lucid
Fix Released
Undecided
Unassigned
Maverick
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: landscape-client

HAL has been deprecated and totally unsupported for several years now. landscape-client is one of the very few packages which still depend on it, and keep it in main.

It should be dropped, and hardware info should be taken from sysfs and libudev. There are gobject-introspection bindings for gudev these days, so you can comfortably use them from Python as well. As a first approximation, you can also use "udevadm info --export-db". Please let me know if you have questions about getting info about particular hardware pieces.

Thanks!

Related branches

Martin Pitt (pitti)
Changed in landscape-client (Ubuntu):
importance: Undecided → High
Revision history for this message
Jamu Kakar (jkakar) wrote :
Download full text (4.6 KiB)

Martin and I talked about it. The proposed idea of making 'hal' a
'Suggests' and conditionally enabling the hardware plugin if HAL is
available sounds like the best path forward until we have the time to
migrate to something better (udev, for example).

<jkakar> pitti: We're just talking about what to do about the HAL dependency in landscape-client.
 Re: bug #708502
<ubottu> Launchpad bug 708502 in landscape-client (Ubuntu) "Please drop hal dependency" [High,New] https://launchpad.net/bugs/708502
<jkakar> pitti: We don't really have the time/capacity to migrate to udev right now.
 pitti: We're wondering about making hal a 'Suggests', so that the client can be installed without it, and making some tweaks to the code so it won't blow up if HAL isn't there.
 pitti: The question is, will the hal package be moving to universe?
<pitti> jkakar: I was actually quite surprised that it still used it; I thought we already talked about it many years ago
 jkakar: I hope that we can move it to universe in natty or n+1
<jkakar> pitti: We did, we just haven't made time for it... too many bigger fires to deal with. :(
<persia> Riddell, Looks like upstream 1.1 is out, but still has the dependency on HAL, and I don't see any halsectomy related items on the 1.2 roadmap. qtmobility can be compiled to not use HAL, with "reduced functionality". I don't know of anyone actively using these APIs though, so I'd be tempted to compile with the reduced functionality (unless you know a user my apt-cache isn't finding).
<jkakar> pitti: Okay, so there's a chance it won't make it for natty.
<pitti> persia: it's not a compile-time thing; it only talks to the dbus interface
<persia> pitti, Is there a reason to move to universe, or can we just drop it?
<jkakar> pitti: I guess very few packages actually use it, right?
<pitti> persia: i. e. simply runtime
<persia> pitti, There's a compile-time option to tell it not to ask DBus about HAL.
 (or else I'm reading the docs wrong)
<pitti> jkakar: it's qtmobility and landscape-client, the rest was fixed or will be in the next days
<pitti> persia: right, but ideally it would just fail gracefully if hal isn't running (I haven't checked)
<pitti> jkakar: out of interest, what do you use it for?
<jkakar> I suppose one option for us is to make hal a Suggests and do a conditional import... if hal is unavailable (because the package is gone entirely) the hardware inventory will be simply unavailable.
 pitti: We pull the entire HAL device tree and send it to the server. We provide a view of that data to our users.
<pitti> jkakar: is that merely for display purposes, or do you actually do something with the data?
<jkakar> pitti: Honestly, the functionality we have isn't so useful.
 pitti: Merely for display purposes.
 pitti: But we don't have the time to replace it with something better right now, so we're trying to figure out how to keep it working if possible.
<pitti> jkakar: the hal tree is by and large the sysfs tree
<jkakar> pitti: True.
<pitti> an udevadm info --export-db usually gives enough info about the hardware, at least in the bugs that I am looking into
<jkakar> pitti: One issue is that udev provides really crappy data on <lucid.
...

Read more...

Changed in landscape-client:
milestone: none → 11.02
importance: Undecided → High
Thomas Herve (therve)
Changed in landscape-client:
assignee: nobody → Thomas Herve (therve)
Revision history for this message
Thomas Herve (therve) wrote :

Hey Martin,

> There are gobject-introspection bindings for gudev these days

Are you talking about the python-gudev package? Do you think it would be possible to move it to main?

Revision history for this message
Martin Pitt (pitti) wrote :

No, python-gudev was a temporary hack. The current method to do Python bindings is via gobject-introspection (http://live.gnome.org
/GObjectIntrospection), like this:

sudo apt-get install gir1.2-gudev-1.0

python
>>> from gi.repository import GUdev
>>> client = GUdev.Client.new(['usb'])
>>> devs = client.query_by_subsystem('block')
>>> devs[0].get_name()
'sda'
>>> devs[0].get_property('ID_MODEL')
'SAMSUNG_MMCRE28G8MXP-0VBL1'

I. e. it uses the very same API as the C one, so you can use the existing documentation (via devhelp, or http://www.kernel.org/pub/linux/utils/kernel/hotplug/gudev/).

Revision history for this message
Thomas Herve (therve) wrote :

Thanks for the precision. Is it same to assume that it only works on natty and forward? gir1.0-gudev-1.0 doesn't seem to provide the same functionality.

Revision history for this message
Martin Pitt (pitti) wrote :

Note that unfortunately this only works in current natty (udev >= 165-0ubuntu2), as in earlier versions the GI typelib file was broken due to a build error. So if you need something that works the same across all supported releases, I suggest "udevadm info --export-db".

Changed in landscape-client (Ubuntu):
status: New → Triaged
Thomas Herve (therve)
Changed in landscape-client:
status: New → In Progress
Thomas Herve (therve)
Changed in landscape-client:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package landscape-client - 11.02-0ubuntu0.11.04.0

---------------
landscape-client (11.02-0ubuntu0.11.04.0) natty; urgency=low

  * New upstream version (LP: #727324)

    - Exit gracefully instead of crashing when the filesystem is
      read-only (LP: #649997).

    - Drop hal requirement (LP: #708502).

    - Enable HTTP compression in Curl (LP: #297623).

    - Explicitly name log files that need to be rotated (LP: #634236).

    - Assorted test suite fixes
 -- Andreas Hasenack <email address hidden> Tue, 01 Mar 2011 15:38:11 -0300

Changed in landscape-client (Ubuntu):
status: Triaged → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote :

Awesome, thank you! With that upload, hal can go to universe.

Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Accepted landscape-client into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in landscape-client (Ubuntu Lucid):
status: New → Fix Committed
tags: added: verification-needed
Revision history for this message
Martin Pitt (pitti) wrote :

Accepted landscape-client into maverick-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in landscape-client (Ubuntu Maverick):
status: New → Fix Committed
Revision history for this message
Martin Pitt (pitti) wrote :

Accepted landscape-client into karmic-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in landscape-client (Ubuntu Karmic):
status: New → Fix Committed
Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Accepted landscape-client into lucid-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Accepted landscape-client into karmic-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Revision history for this message
Martin Pitt (pitti) wrote :

This package has been in karmic-proposed for some time without verification. I removed it as karmic is end-of-life now.

Changed in landscape-client (Ubuntu Karmic):
status: Fix Committed → Won't Fix
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Verified fixed for maverick and lucid in the landscape-client proposed packages:
- 11.02-0ubuntu0.10.04.1
- 11.02-0ubuntu0.10.10.1

Martin Pitt (pitti)
tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package landscape-client - 11.02-0ubuntu0.10.10.1

---------------
landscape-client (11.02-0ubuntu0.10.10.1) maverick-proposed; urgency=low

  * debian/control, debian/rules: Add quilt
  * debian/patches/fix-landscape-monitor.patch: Fix landscape
    monitoring with gir1.0-gudev-1.0 installed. (LP: #747498)

landscape-client (11.02-0ubuntu0.10.10.0) maverick-proposed; urgency=low

  * New upstream version (LP: #727324)

    - Exit gracefully instead of crashing when the filesystem is
      read-only (LP: #649997).

    - Drop hal requirement (LP: #708502).

    - Enable HTTP compression in Curl (LP: #297623).

    - Explicitly name log files that need to be rotated (LP: #634236).

    - Assorted test suite fixes

    - Use a better load check for the sysinfo wrapper, taking into account the
      number of cores (LP: #643565).

    - Add an option to bootstrap cloud instances using cloud-init
      (LP: #701972).

    - Fix packaging for Natty (LP: #688115).

    - Force deletion of all the persist data for the monitoring plugins at
      resynchronization, instead of relying each one of them to do
      (LP: #688161).

    - Don't send the mount-activity message to the server anymore
      (LP: #688514).

    - Workaround a new behavior in NetworkManager where getfqdn would report
      localhost instead of useful hostname (LP: #649142).

landscape-client (1.5.5.1-0ubuntu0.10.10.0) maverick; urgency=low

  * The client network plugin would send erroneous data if a network
    interface was removed (and its kernel module removed as well) and
    then readded (LP: #641264).
 -- Chuck Short <email address hidden> Tue, 12 Apr 2011 13:56:38 -0400

Changed in landscape-client (Ubuntu Maverick):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package landscape-client - 11.02-0ubuntu0.10.04.1

---------------
landscape-client (11.02-0ubuntu0.10.04.1) lucid-proposed; urgency=low

  * debian/control, debian/rules: Add quilt
  * debian/patches/fix-landscape-monitor.patch: Fix landscape:
    monitoring with gir1.0-gudev-1.0 installed. (LP: #747498)

landscape-client (11.02-0ubuntu0.10.04.0) lucid-proposed; urgency=low

  * New upstream version (LP: #727324)

    - Exit gracefully instead of crashing when the filesystem is
      read-only (LP: #649997).

    - Drop hal requirement (LP: #708502).

    - Enable HTTP compression in Curl (LP: #297623).

    - Explicitly name log files that need to be rotated (LP: #634236).

    - Assorted test suite fixes

    - Use a better load check for the sysinfo wrapper, taking into account the
      number of cores (LP: #643565).

    - Add an option to bootstrap cloud instances using cloud-init
      (LP: #701972).

    - Fix packaging for Natty (LP: #688115).

    - Force deletion of all the persist data for the monitoring plugins at
      resynchronization, instead of relying each one of them to do
      (LP: #688161).

    - Don't send the mount-activity message to the server anymore
      (LP: #688514).

    - Workaround a new behavior in NetworkManager where getfqdn would report
      localhost instead of useful hostname (LP: #649142).
 -- Chuck Short <email address hidden> Tue, 12 Apr 2011 14:38:20 -0400

Changed in landscape-client (Ubuntu Lucid):
status: Fix Committed → Fix Released
Changed in landscape-client:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.