Package: hal
Version: 0.5.11-3
Tags: patch
User: [EMAIL PROTECTED]
Usertags: origin-ubuntu intrepid ubuntu-patch

Hi!

It already occurred several times to me that people had trouble with
FDI files which were apparently not "picked up" by hal. One particular
case is https://bugs.launchpad.net/bugs/275825, where I finally saw
the light: time-based comparison of .fdi files vs. the cache, as done
in di_cache_coherency_check(), doesn't work with dpkg, which maintains
the original file timestamps on unpack.

The quick fix for this is to remove the cache in the init script,
which I just did in Ubuntu (we are close to release). It sacrifices
most of the startup speed improvement unfortunately, and hal still
won't pick up fdi changes immediately, but at least it will work after
a reboot.

The more correct long-term solution could be to create a
dh_install_hal_fdi which generates
/usr/lib/hal/hald-generate-fdi-cache postinst snippets, and convert
all packages shipping .fdi files to use it. But that's not really
adequate for Lenny, and with DeviceKit being on the horizon, it might
be obsolete before we even finish..

Thanks,

Martin

-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
=== modified file 'debian/changelog'
--- debian/changelog    2008-09-29 12:58:55 +0000
+++ debian/changelog    2008-10-02 14:50:35 +0000
@@ -1,3 +1,12 @@
+hal (0.5.11-3~ubuntu10) UNRELEASED; urgency=low
+
+  * debian/hal.init: Remove the FDI cache before startup. dpkg preserves
+    original timestamps of unpacked fdi files in packages, so changes in those
+    will never get picked up on upgrade, not even after a reboot.
+    (LP: #275825)
+
+ -- Martin Pitt <[EMAIL PROTECTED]>  Thu, 02 Oct 2008 16:48:50 +0200
+
 hal (0.5.11-3~ubuntu9) intrepid; urgency=low
 
   * debian/10-x11-keymap.fdi: Disable -evdev for the ThinkPad extra buttons;

=== modified file 'debian/hal.init'
--- debian/hal.init     2008-07-30 20:10:31 +0000
+++ debian/hal.init     2008-10-02 14:50:35 +0000
@@ -37,6 +37,11 @@
         # temporarily disabling automount (see LP #134712)
         rm -f /usr/share/hal/fdi/policy/gparted-disable-automount.fdi || true
 
+        # the time stamp based cache obsolescence check does not really work
+        # with .debs, since dpkg maintains the original timestamps on the
+        # files, and thus new fdi files from packages would never be picked up
+        rm -f /var/cache/hald/fdi-cache
+
        if [ ! -d $PIDDIR ]; then
                mkdir -p $PIDDIR
        fi

Attachment: signature.asc
Description: Digital signature

Reply via email to