diff -rupN hal.orig/Makefile hal/Makefile --- hal.orig/Makefile 2008-03-27 00:58:21.000000000 -0400 +++ hal/Makefile 2008-03-27 00:43:37.000000000 -0400 @@ -8,7 +8,7 @@ PORTNAME= hal DISTVERSION= 0.5.11rc2 -PORTREVISION= 4 +PORTREVISION= 5 CATEGORIES= sysutils MASTER_SITES= http://hal.freedesktop.org/releases/ @@ -102,6 +102,9 @@ post-patch: post-install: ${MKDIR} ${DATADIR}/dist ${INSTALL_DATA} ${WRKSRC}/hal.conf ${DATADIR}/dist + ${MKDIR} ${PREFIX}/share/hal/fdi/policy/10osvendor + ${INSTALL_DATA} ${FILESDIR}/10-mouse-sysmouse.fdi \ + ${PREFIX}/share/hal/fdi/policy/10osvendor @${SETENV} PKG_PREFIX=${PREFIX} PACKAGE_BUILDING=${PACKAGE_BUILDING} \ ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL .if !defined(PACKAGE_BUILDING) && defined(NEEDS_MEDIA) diff -rupN hal.orig/files/10-mouse-sysmouse.fdi hal/files/10-mouse-sysmouse.fdi --- hal.orig/files/10-mouse-sysmouse.fdi 1969-12-31 18:00:00.000000000 -0600 +++ hal/files/10-mouse-sysmouse.fdi 2008-03-27 00:53:30.000000000 -0400 @@ -0,0 +1,8 @@ + + + + + hald-addon-mouse-sysmouse + + + diff -rupN hal.orig/files/patch-fdi_policy_10osvendor_10-x11-input.fdi hal/files/patch-fdi_policy_10osvendor_10-x11-input.fdi --- hal.orig/files/patch-fdi_policy_10osvendor_10-x11-input.fdi 1969-12-31 18:00:00.000000000 -0600 +++ hal/files/patch-fdi_policy_10osvendor_10-x11-input.fdi 2008-03-27 13:48:39.000000000 -0400 @@ -0,0 +1,18 @@ +--- fdi/policy/10osvendor/10-x11-input.fdi.orig 2008-03-27 13:42:31.000000000 -0400 ++++ fdi/policy/10osvendor/10-x11-input.fdi 2008-03-27 13:48:06.000000000 -0400 +@@ -1,15 +1,6 @@ + + + +- +- +- mouse +- +- evdev +- +- +- + + diff -rupN hal.orig/files/patch-hald_freebsd_addons_Makefile.in hal/files/patch-hald_freebsd_addons_Makefile.in --- hal.orig/files/patch-hald_freebsd_addons_Makefile.in 1969-12-31 18:00:00.000000000 -0600 +++ hal/files/patch-hald_freebsd_addons_Makefile.in 2008-03-27 00:49:15.000000000 -0400 @@ -0,0 +1,92 @@ +--- hald/freebsd/addons/Makefile.in.orig 2008-03-27 00:45:50.000000000 -0400 ++++ hald/freebsd/addons/Makefile.in 2008-03-27 00:48:15.000000000 -0400 +@@ -33,7 +33,8 @@ POST_UNINSTALL = : + build_triplet = @build@ + host_triplet = @host@ + @HALD_COMPILE_FREEBSD_TRUE@libexec_PROGRAMS = \ +-@HALD_COMPILE_FREEBSD_TRUE@ hald-addon-storage$(EXEEXT) ++@HALD_COMPILE_FREEBSD_TRUE@ hald-addon-storage$(EXEEXT) \ ++@HALD_COMPILE_FREEBSD_TRUE@ hald-addon-mouse-sysmouse$(EXEEXT) + subdir = hald/freebsd/addons + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +@@ -47,6 +48,15 @@ CONFIG_CLEAN_FILES = + am__installdirs = "$(DESTDIR)$(libexecdir)" + libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM) + PROGRAMS = $(libexec_PROGRAMS) ++am_hald_addon_mouse_sysmouse_OBJECTS = \ ++ hald_addon_mouse_sysmouse-addon-mouse.$(OBJEXT) ++hald_addon_mouse_sysmouse_OBJECTS = \ ++ $(am_hald_addon_mouse_sysmouse_OBJECTS) ++hald_addon_mouse_sysmouse_DEPENDENCIES = $(top_builddir)/hald/freebsd/libprobe/libhald_freebsd_probe.la ++hald_addon_mouse_sysmouse_LINK = $(LIBTOOL) --tag=CC \ ++ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ ++ $(hald_addon_mouse_sysmouse_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ ++ $(LDFLAGS) -o $@ + am_hald_addon_storage_OBJECTS = addon-storage.$(OBJEXT) + hald_addon_storage_OBJECTS = $(am_hald_addon_storage_OBJECTS) + hald_addon_storage_DEPENDENCIES = $(top_builddir)/hald/freebsd/libprobe/libhald_freebsd_probe.la +@@ -62,8 +72,10 @@ CCLD = $(CC) + LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ + $(LDFLAGS) -o $@ +-SOURCES = $(hald_addon_storage_SOURCES) +-DIST_SOURCES = $(hald_addon_storage_SOURCES) ++SOURCES = $(hald_addon_mouse_sysmouse_SOURCES) \ ++ $(hald_addon_storage_SOURCES) ++DIST_SOURCES = $(hald_addon_mouse_sysmouse_SOURCES) \ ++ $(hald_addon_storage_SOURCES) + ETAGS = etags + CTAGS = ctags + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +@@ -227,6 +239,11 @@ hald_addon_storage_SOURCES = addon-stora + hald_addon_storage_LDADD = \ + $(top_builddir)/hald/freebsd/libprobe/libhald_freebsd_probe.la + ++hald_addon_mouse_sysmouse_SOURCES = addon-mouse.c ++hald_addon_mouse_sysmouse_CFLAGS = $(AM_CPPFLAGS) @GLIB_CFLAGS@ ++hald_addon_mouse_sysmouse_LDADD = @GLIB_LIBS@ \ ++ $(top_builddir)/hald/freebsd/libprobe/libhald_freebsd_probe.la ++ + all: all-am + + .SUFFIXES: +@@ -288,6 +305,9 @@ clean-libexecPROGRAMS: + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done ++hald-addon-mouse-sysmouse$(EXEEXT): $(hald_addon_mouse_sysmouse_OBJECTS) $(hald_addon_mouse_sysmouse_DEPENDENCIES) ++ @rm -f hald-addon-mouse-sysmouse$(EXEEXT) ++ $(hald_addon_mouse_sysmouse_LINK) $(hald_addon_mouse_sysmouse_OBJECTS) $(hald_addon_mouse_sysmouse_LDADD) $(LIBS) + hald-addon-storage$(EXEEXT): $(hald_addon_storage_OBJECTS) $(hald_addon_storage_DEPENDENCIES) + @rm -f hald-addon-storage$(EXEEXT) + $(LINK) $(hald_addon_storage_OBJECTS) $(hald_addon_storage_LDADD) $(LIBS) +@@ -299,6 +319,7 @@ distclean-compile: + -rm -f *.tab.c + + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addon-storage.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Po@am__quote@ + + .c.o: + @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@@ -321,6 +342,20 @@ distclean-compile: + @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ + @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + ++hald_addon_mouse_sysmouse-addon-mouse.o: addon-mouse.c ++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hald_addon_mouse_sysmouse_CFLAGS) $(CFLAGS) -MT hald_addon_mouse_sysmouse-addon-mouse.o -MD -MP -MF $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Tpo -c -o hald_addon_mouse_sysmouse-addon-mouse.o `test -f 'addon-mouse.c' || echo '$(srcdir)/'`addon-mouse.c ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Tpo $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='addon-mouse.c' object='hald_addon_mouse_sysmouse-addon-mouse.o' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hald_addon_mouse_sysmouse_CFLAGS) $(CFLAGS) -c -o hald_addon_mouse_sysmouse-addon-mouse.o `test -f 'addon-mouse.c' || echo '$(srcdir)/'`addon-mouse.c ++ ++hald_addon_mouse_sysmouse-addon-mouse.obj: addon-mouse.c ++@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hald_addon_mouse_sysmouse_CFLAGS) $(CFLAGS) -MT hald_addon_mouse_sysmouse-addon-mouse.obj -MD -MP -MF $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Tpo -c -o hald_addon_mouse_sysmouse-addon-mouse.obj `if test -f 'addon-mouse.c'; then $(CYGPATH_W) 'addon-mouse.c'; else $(CYGPATH_W) '$(srcdir)/addon-mouse.c'; fi` ++@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Tpo $(DEPDIR)/hald_addon_mouse_sysmouse-addon-mouse.Po ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='addon-mouse.c' object='hald_addon_mouse_sysmouse-addon-mouse.obj' libtool=no @AMDEPBACKSLASH@ ++@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ ++@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(hald_addon_mouse_sysmouse_CFLAGS) $(CFLAGS) -c -o hald_addon_mouse_sysmouse-addon-mouse.obj `if test -f 'addon-mouse.c'; then $(CYGPATH_W) 'addon-mouse.c'; else $(CYGPATH_W) '$(srcdir)/addon-mouse.c'; fi` ++ + mostlyclean-libtool: + -rm -f *.lo + diff -rupN hal.orig/files/patch-hald_freebsd_addons_addon-mouse.c hal/files/patch-hald_freebsd_addons_addon-mouse.c --- hal.orig/files/patch-hald_freebsd_addons_addon-mouse.c.orig 2008-03-27 20:10:27.000000000 -0400 +++ hal/files/patch-hald_freebsd_addons_addon-mouse.c 2008-03-27 20:16:26.000000000 -0400 @@ -0,0 +1,183 @@ +--- hald/freebsd/addons/addon-mouse.c.orig 2008-03-27 20:10:36.000000000 -0400 ++++ hald/freebsd/addons/addon-mouse.c 2008-03-27 20:14:47.000000000 -0400 +@@ -0,0 +1,180 @@ ++/*************************************************************************** ++ * CVSID: $Id$ ++ * ++ * addon-mouse.c : poll mice to disable moused(8) owned devices ++ * ++ * Copyright (C) 2008 Joe Marcus Clarke ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ * ++ **************************************************************************/ ++ ++#ifdef HAVE_CONFIG_H ++# include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++ ++#include "libhal/libhal.h" ++ ++#include "../libprobe/hfp.h" ++ ++#define CMD "/usr/bin/fstat %s" ++ ++#define MOUSE_DRIVER "mouse" ++#define MOUSED_PROC_NAME "moused" ++ ++static struct ++{ ++ const struct timespec update_interval; ++ char *device_file; ++ struct timespec next_update; ++} addon = { { 2, 0 } }; ++ ++static void ++poll_for_moused (void) ++{ ++ char **lines; ++ char *output; ++ char *cmd; ++ char *driver; ++ int i; ++ gboolean found = FALSE; ++ ++ cmd = g_strdup_printf(CMD, addon.device_file); ++ ++ if (! g_spawn_command_line_sync (cmd, &output, NULL, NULL, NULL)) ++ { ++ g_free(cmd); ++ goto done; ++ } ++ g_free(cmd); ++ ++ if (! output || strlen(output) == 0) ++ goto done; ++ ++ lines = g_strsplit(output, "\n", 0); ++ if (g_strv_length(lines) < 2) ++ { ++ g_strfreev(lines); ++ goto done; ++ } ++ ++ for (i = 1; lines[i]; i++) ++ { ++ char **fields; ++ guint len; ++ guint j; ++ ++ fields = g_strsplit_set(lines[i], " ", 0); ++ len = g_strv_length(fields); ++ if (len < 2) ++ { ++ g_strfreev(fields); ++ continue; ++ } ++ for (j = 1; j < len && fields[j] && *fields[j] == '\0'; j++) ++ ; ++ if (j < len && fields[j] && ! strcmp(fields[j], MOUSED_PROC_NAME)) ++ { ++ found = TRUE; ++ g_strfreev(fields); ++ continue; ++ } ++ g_strfreev(fields); ++ } ++ ++ g_strfreev(lines); ++ ++ driver = libhal_device_get_property_string(hfp_ctx, hfp_udi, "input.x11_driver", &hfp_error); ++ dbus_error_free(&hfp_error); ++ ++done: ++ g_free(output); ++ if (found && driver) ++ libhal_device_remove_property(hfp_ctx, hfp_udi, "input.x11_driver", &hfp_error); ++ else if (! (found || driver)) ++ libhal_device_set_property_string(hfp_ctx, hfp_udi, "input.x11_driver", MOUSE_DRIVER, &hfp_error); ++ ++ dbus_error_free(&hfp_error); ++ g_free(driver); ++ ++ hfp_clock_gettime(&addon.next_update); ++ hfp_timespecadd(&addon.next_update, &addon.update_interval); ++} ++ ++int ++main (int argc, char **argv) ++{ ++ DBusConnection *connection; ++ ++ if (! hfp_init(argc, argv)) ++ goto end; ++ ++ addon.device_file = getenv("HAL_PROP_FREEBSD_DEVICE_FILE"); ++ if (! addon.device_file) ++ goto end; ++ ++ setproctitle("%s", addon.device_file); ++ ++ if (! libhal_device_addon_is_ready(hfp_ctx, hfp_udi, &hfp_error)) ++ goto end; ++ dbus_error_free(&hfp_error); ++ ++ connection = libhal_ctx_get_dbus_connection(hfp_ctx); ++ assert(connection != NULL); ++ ++ while (TRUE) ++ { ++ /* process dbus traffic until update interval has elapsed */ ++ while (TRUE) ++ { ++ struct timespec now; ++ ++ hfp_clock_gettime(&now); ++ if (hfp_timespeccmp(&now, &addon.next_update, <)) ++ { ++ struct timespec timeout; ++ ++ timeout = addon.next_update; ++ hfp_timespecsub(&timeout, &now); ++ ++ if (timeout.tv_sec < 0) /* current time went backwards */ ++ timeout = addon.update_interval; ++ ++ dbus_connection_read_write_dispatch(connection, timeout.tv_sec * 1000 + timeout.tv_nsec / 1000000); ++ if (! dbus_connection_get_is_connected(connection)) ++ goto end; ++ } ++ else ++ break; ++ } ++ ++ if (g_file_test(addon.device_file, G_FILE_TEST_EXISTS)) ++ poll_for_moused(); ++ else ++ { ++ hfp_clock_gettime(&addon.next_update); ++ hfp_timespecadd(&addon.next_update, &addon.update_interval); ++ } ++ } ++ ++ end: ++ return 0; ++} diff -rupN hal.orig/files/patch-hald_freebsd_clock hal/files/patch-hald_freebsd_clock --- hal.orig/files/patch-hald_freebsd_clock 1969-12-31 18:00:00.000000000 -0600 +++ hal/files/patch-hald_freebsd_clock 2008-03-27 00:12:37.000000000 -0400 @@ -0,0 +1,175 @@ +--- hald/freebsd/libprobe/hfp.c.orig 2008-03-17 17:25:17.000000000 -0400 ++++ hald/freebsd/libprobe/hfp.c 2008-03-26 12:07:32.000000000 -0400 +@@ -216,55 +216,59 @@ hfp_getenv_bool (const char *variable) + } + + void +-hfp_gettimeofday (struct timeval *t) ++hfp_clock_gettime (struct timespec *t) + { + int status; + + assert(t != NULL); + +- status = gettimeofday(t, NULL); ++#ifdef CLOCK_MONOTONIC_FAST ++ status = clock_gettime(CLOCK_MONOTONIC_FAST, t); ++#else ++ status = clock_gettime(CLOCK_MONOTONIC, t); ++#endif + assert(status == 0); + } + +-/* timeval functions from sys/kern/kern_time.c */ ++/* timespec functions from sys/kern/kern_time.c */ + + static void +-hfp_timevalfix (struct timeval *t) ++hfp_timespecfix (struct timespec *t) + { + assert(t != NULL); + +- if (t->tv_usec < 0) ++ if (t->tv_nsec < 0) + { + t->tv_sec--; +- t->tv_usec += 1000000; ++ t->tv_nsec += 1000000000; + } +- if (t->tv_usec >= 1000000) ++ if (t->tv_nsec >= 1000000000) + { + t->tv_sec++; +- t->tv_usec -= 1000000; ++ t->tv_nsec -= 1000000000; + } + } + + void +-hfp_timevaladd (struct timeval *t1, const struct timeval *t2) ++hfp_timespecadd (struct timespec *t1, const struct timespec *t2) + { + assert(t1 != NULL); + assert(t2 != NULL); + + t1->tv_sec += t2->tv_sec; +- t1->tv_usec += t2->tv_usec; ++ t1->tv_nsec += t2->tv_nsec; + +- hfp_timevalfix(t1); ++ hfp_timespecfix(t1); + } + + void +-hfp_timevalsub (struct timeval *t1, const struct timeval *t2) ++hfp_timespecsub (struct timespec *t1, const struct timespec *t2) + { + assert(t1 != NULL); + assert(t2 != NULL); + + t1->tv_sec -= t2->tv_sec; +- t1->tv_usec -= t2->tv_usec; ++ t1->tv_nsec -= t2->tv_nsec; + +- hfp_timevalfix(t1); ++ hfp_timespecfix(t1); + } +--- hald/freebsd/libprobe/hfp.h.orig 2008-03-17 17:25:17.000000000 -0400 ++++ hald/freebsd/libprobe/hfp.h 2008-03-26 12:05:36.000000000 -0400 +@@ -29,8 +29,8 @@ + #endif + + #include ++#include + #include +-#include + + #include "libhal/libhal.h" + +@@ -84,14 +84,14 @@ void volume_id_log (const char *format, + + boolean hfp_getenv_bool (const char *variable); + +-void hfp_gettimeofday (struct timeval *t); +-void hfp_timevaladd (struct timeval *t1, const struct timeval *t2); +-void hfp_timevalsub (struct timeval *t1, const struct timeval *t2); ++void hfp_clock_gettime (struct timespec *t); ++void hfp_timespecadd (struct timespec *t1, const struct timespec *t2); ++void hfp_timespecsub (struct timespec *t1, const struct timespec *t2); + + /* from sys/time.h (_KERNEL) */ +-#define hfp_timevalcmp(t1, t2, cmp) \ ++#define hfp_timespeccmp(t1, t2, cmp) \ + (((t1)->tv_sec == (t2)->tv_sec \ +- ? ((t1)->tv_usec cmp (t2)->tv_usec) \ ++ ? ((t1)->tv_nsec cmp (t2)->tv_nsec) \ + : ((t1)->tv_sec cmp (t2)->tv_sec))) + + #endif /* _HFP_H */ +--- hald/freebsd/addons/addon-storage.c.orig 2008-03-26 12:05:36.000000000 -0400 ++++ hald/freebsd/addons/addon-storage.c 2008-03-26 12:05:36.000000000 -0400 +@@ -38,13 +38,13 @@ + + static struct + { +- const struct timeval update_interval; ++ const struct timespec update_interval; + char *device_file; + char *parent; + boolean is_cdrom; + boolean is_scsi_removable; + boolean had_media; +- struct timeval next_update; ++ struct timespec next_update; + } addon = { { 2, 0 } }; + + /* see MMC-3 Working Draft Revision 10 */ +@@ -144,8 +144,8 @@ hf_addon_storage_update (void) + } + } + +- hfp_gettimeofday(&addon.next_update); +- hfp_timevaladd(&addon.next_update, &addon.update_interval); ++ hfp_clock_gettime(&addon.next_update); ++ hfp_timespecadd(&addon.next_update, &addon.update_interval); + + return has_media; + } +@@ -280,20 +280,20 @@ main (int argc, char **argv) + /* process dbus traffic until update interval has elapsed */ + while (TRUE) + { +- struct timeval now; ++ struct timespec now; + +- hfp_gettimeofday(&now); +- if (hfp_timevalcmp(&now, &addon.next_update, <)) ++ hfp_clock_gettime(&now); ++ if (hfp_timespeccmp(&now, &addon.next_update, <)) + { +- struct timeval timeout; ++ struct timespec timeout; + + timeout = addon.next_update; +- hfp_timevalsub(&timeout, &now); ++ hfp_timespecsub(&timeout, &now); + + if (timeout.tv_sec < 0) /* current time went backwards */ + timeout = addon.update_interval; + +- dbus_connection_read_write_dispatch(connection, timeout.tv_sec * 1000 + timeout.tv_usec / 1000); ++ dbus_connection_read_write_dispatch(connection, timeout.tv_sec * 1000 + timeout.tv_nsec / 1000000); + if (! dbus_connection_get_is_connected(connection)) + goto end; + } +@@ -311,8 +311,8 @@ main (int argc, char **argv) + } + else + { +- hfp_gettimeofday(&addon.next_update); +- hfp_timevaladd(&addon.next_update, &addon.update_interval); ++ hfp_clock_gettime(&addon.next_update); ++ hfp_timespecadd(&addon.next_update, &addon.update_interval); + } + } + diff -rupN hal.orig/pkg-plist hal/pkg-plist --- hal.orig/pkg-plist 2008-03-27 00:58:21.000000000 -0400 +++ hal/pkg-plist 2008-03-27 00:52:58.000000000 -0400 @@ -61,6 +61,7 @@ libexec/hal/scripts/hal-system-power-sus libexec/hal/scripts/hal-system-wol-enable libexec/hal/scripts/hal-system-wol-enabled libexec/hal/scripts/hal-system-wol-supported +libexec/hald-addon-mouse-sysmouse libexec/hald-addon-storage libexec/hald-generate-fdi-cache libexec/hald-probe-hiddev @@ -78,6 +79,7 @@ sbin/hald %%DATADIR%%/fdi/policy/10osvendor/10-dockstation.fdi %%DATADIR%%/fdi/policy/10osvendor/10-input-policy.fdi %%DATADIR%%/fdi/policy/10osvendor/10-laptop-panel-mgmt-policy.fdi +%%DATADIR%%/fdi/policy/10osvendor/10-mouse-sysmouse.fdi %%DATADIR%%/fdi/policy/10osvendor/10-power-mgmt-policy.fdi %%DATADIR%%/fdi/policy/10osvendor/10-rfkill-switch.fdi %%DATADIR%%/fdi/policy/10osvendor/10-tabletPCs.fdi