# ChangeLog for sys-apps/hal
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/ChangeLog,v 1.163 2007/04/12 16:43:50 cardoe Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-apps/hal/ChangeLog,v 1.164 2007/04/13 01:26:05 cardoe Exp $
+
+ 13 Apr 2007; Doug Goldstein <cardoe@gentoo.org>
+ +files/0.5.9/08_contains_not_fdi_directive.patch,
+ +files/0.5.9/09_hald_addon_keyboard_start_one.patch, files/0.5.9/series:
+ upstream fixes for hal addon keyboard
12 Apr 2007; Doug Goldstein <cardoe@gentoo.org> hal-0.5.9.ebuild:
haldaemon groups tweak for FreeBSD
MD5 61d44f37a51f2e92054bda4df0b67688 files/0.5.9/07_malloc_h_for_stdlib_h.patch 1401
RMD160 2e1140954fd8818d412fc07750f12b25d04f7ada files/0.5.9/07_malloc_h_for_stdlib_h.patch 1401
SHA256 04749b15f3349e146523d9ed2571e5362804de5f0320f68cbcc85395debc6554 files/0.5.9/07_malloc_h_for_stdlib_h.patch 1401
+AUX 0.5.9/08_contains_not_fdi_directive.patch 3572 RMD160 78371b05ece90cfe34abdd3c64fceeca403a93ed SHA1 019f6c9a54a860eb4cce7f4d9d078d60d43ca2c9 SHA256 ebfa47c89693685c49a6c53aacd053433a9d9b4c49ac608449b97d58c3143ad5
+MD5 091f420c52ba7f3391d4419749294c97 files/0.5.9/08_contains_not_fdi_directive.patch 3572
+RMD160 78371b05ece90cfe34abdd3c64fceeca403a93ed files/0.5.9/08_contains_not_fdi_directive.patch 3572
+SHA256 ebfa47c89693685c49a6c53aacd053433a9d9b4c49ac608449b97d58c3143ad5 files/0.5.9/08_contains_not_fdi_directive.patch 3572
+AUX 0.5.9/09_hald_addon_keyboard_start_one.patch 1519 RMD160 161baddfab13ee3293092444fbb7315bafe395b8 SHA1 fcc019e63da0cc0f3c91f55cce7219d42235cc54 SHA256 697fbf2f234bb0d8f47b4086c0636e20674e00eb38181c303c02ecad3ee9bdb8
+MD5 a736ab94241050088914f7b0a19fde70 files/0.5.9/09_hald_addon_keyboard_start_one.patch 1519
+RMD160 161baddfab13ee3293092444fbb7315bafe395b8 files/0.5.9/09_hald_addon_keyboard_start_one.patch 1519
+SHA256 697fbf2f234bb0d8f47b4086c0636e20674e00eb38181c303c02ecad3ee9bdb8 files/0.5.9/09_hald_addon_keyboard_start_one.patch 1519
AUX 0.5.9/95_gentoo_man_page.patch 18159 RMD160 cd4bf6c16e84464b11de755323ef2d0f5c1a54f9 SHA1 f9de30d705eada8e2f631e51b715b9923f732fb4 SHA256 59d81dcb273f3cdc9c7fc9f195331529642fef2c2150b3eeb3fd98ea555b1893
MD5 f6d115e0eb501aba476f4df965bfeb6c files/0.5.9/95_gentoo_man_page.patch 18159
RMD160 cd4bf6c16e84464b11de755323ef2d0f5c1a54f9 files/0.5.9/95_gentoo_man_page.patch 18159
MD5 38976c1da85ba17ba6a46f56cd1de3bf files/0.5.9/96_plugdev_allow_send.patch 1781
RMD160 08f0cbb8960d4753d15d02c8694fae09a6ef2a02 files/0.5.9/96_plugdev_allow_send.patch 1781
SHA256 090d666c8df223fc0ea30f473fa3d52412ef22aff85c1eebf609a3f00dbd652a files/0.5.9/96_plugdev_allow_send.patch 1781
-AUX 0.5.9/series 285 RMD160 d92863c4c3cf329a51899563f188e1b77569d75d SHA1 634770c21f28025a21bc8a3da8e8c61d5b023de5 SHA256 a1e80a782c05f61626ba22634b4d1aa37d04b3a8a13ce3fc15493b01ac14e90f
-MD5 c63db3a969b89354f997be4d8a68e4c5 files/0.5.9/series 285
-RMD160 d92863c4c3cf329a51899563f188e1b77569d75d files/0.5.9/series 285
-SHA256 a1e80a782c05f61626ba22634b4d1aa37d04b3a8a13ce3fc15493b01ac14e90f files/0.5.9/series 285
+AUX 0.5.9/series 360 RMD160 f7684975bbad57132ec7205875f15355dae95fc2 SHA1 b76a1299719517d5e67ed634d354b0174054d3ea SHA256 4616a47af97e26404ba1cff554dd3095450ea9e168fbdead906710b6087d71c0
+MD5 41a50a4d45d866220c9054bbbbc6d8c9 files/0.5.9/series 360
+RMD160 f7684975bbad57132ec7205875f15355dae95fc2 files/0.5.9/series 360
+SHA256 4616a47af97e26404ba1cff554dd3095450ea9e168fbdead906710b6087d71c0 files/0.5.9/series 360
AUX fix-scsi-fake-host-event.patch 3108 RMD160 2bda406fcb2dd92c348781a6c0958d40c79d78ea SHA1 af1d5c9a2cde091bd7abe04ed5e91a4bb815b675 SHA256 199749c188e5fb4858e4c1dac8800525377daf6a680dcd13e7096e71266ed05d
MD5 3b6df9a24978d931781dc029c85288a9 files/fix-scsi-fake-host-event.patch 3108
RMD160 2bda406fcb2dd92c348781a6c0958d40c79d78ea files/fix-scsi-fake-host-event.patch 3108
MD5 192292871d72fa19e6632c7c0f83ed58 hal-0.5.9.ebuild 6763
RMD160 440c42459fab10c43d90d4ae9357fe21ed635315 hal-0.5.9.ebuild 6763
SHA256 d55f2c8f4056a4850bbf5b714f606293b89c7c4c7d1a38f72fb6cff4614b50ba hal-0.5.9.ebuild 6763
-MISC ChangeLog 26119 RMD160 d46a42a39c4979579f5c55fc6fe64d973ee37a4b SHA1 fd2836e919a0dc3e70a8b5497d7f8063f63cda35 SHA256 6eaeea012bcd4edc6e7b3ec44d6c9c9806981a0721f209d1ff85bf9e67b1bfa6
-MD5 53e5fe6dd166b28863cb8bc3c2af142a ChangeLog 26119
-RMD160 d46a42a39c4979579f5c55fc6fe64d973ee37a4b ChangeLog 26119
-SHA256 6eaeea012bcd4edc6e7b3ec44d6c9c9806981a0721f209d1ff85bf9e67b1bfa6 ChangeLog 26119
+MISC ChangeLog 26337 RMD160 f77b6149600ccdea7498a76bf4d3b8bb4fcd8c93 SHA1 9dc026d829837e627aa6871e83a8f7d0d67ac1d3 SHA256 1a7956e125a243659564c6a714fffb12109eb0d8cbea65b1b659ffe260f4af4f
+MD5 a4ddc17b05f4b13c5f2e2b1ff8f0fe05 ChangeLog 26337
+RMD160 f77b6149600ccdea7498a76bf4d3b8bb4fcd8c93 ChangeLog 26337
+SHA256 1a7956e125a243659564c6a714fffb12109eb0d8cbea65b1b659ffe260f4af4f ChangeLog 26337
MISC metadata.xml 345 RMD160 aa6e810e9546542453ebe5d6ca46804e99f447f2 SHA1 fef829210e8555807f9b69ba5afedffb8af8d02c SHA256 0c9aeabf473a6836c25a5db2ca86b880dec1efa9e52310725e08d1e0df93447d
MD5 3317c4000387b670183d305ef9937b75 metadata.xml 345
RMD160 aa6e810e9546542453ebe5d6ca46804e99f447f2 metadata.xml 345
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.3 (GNU/Linux)
-iD8DBQFGHmGtoeSe8B0zEfwRAsv8AJ99r7cTCrAo7xp27mMHSzAU4QZiGgCfe2/5
-9Tdwf7TreqcYfvudYQz+icM=
-=zVxo
+iD8DBQFGHtwToeSe8B0zEfwRAuwoAJ90goUu8JNeu2QwExLii2BjLGR4IQCfYWgV
+bEH5cDGlJWfa4eOxemhNFEE=
+=9sHF
-----END PGP SIGNATURE-----
--- /dev/null
+From: Danny Kukawka <danny.kukawka@web.de>
+Date: Thu, 12 Apr 2007 19:39:06 +0000 (-0400)
+Subject: fix contains_not fdi-directive
+X-Git-Tag: HAL_0_2
+X-Git-Url: http://gitweb.freedesktop.org/?p=hal.git;a=commitdiff;h=485f9aa6780690d915a13d813bc753501a3c899e
+
+fix contains_not fdi-directive
+
+This patch fixes the contains_not FDI file directive/rule to return true (let
+the match not fail) if the property is not set on the device. This allow to
+have this rule:
+
+ <match key="info.addons" contains_not="hald-addon-input">
+ <append key="info.addons" type="strlist">hald-addon-input</append>
+ </match>
+
+Without this patch this fails if info.addons is not already set. With the
+change it would match if:
+* info.addons is not available
+or
+* info.addons contains no string 'hald-addon-input'
+---
+
+--- a/doc/spec/hal-spec-fdi-files.xml
++++ b/doc/spec/hal-spec-fdi-files.xml
+@@ -156,10 +156,10 @@
+ <para>
+ <literal>contains_not</literal> - can only be used with strlist (string list)
+ and string properties.
+- For a string list this match if the given string is not match any of the
+- item of the list for a string this match of the property not contains the
+- (sub-)string. You can use this attribute to construct if/else blocks together
+- with e.g. <literal>contains</literal>.
++ For a string list this match if the given string not match any of the
++ item of the list (or the property is not set for the device). For a string
++ this match of the property not contains the (sub-)string. You can use this
++ attribute to construct if/else blocks together with e.g. <literal>contains</literal>.
+ </para>
+ </listitem>
+ <listitem>
+--- a/hald/device_info.c
++++ b/hald/device_info.c
+@@ -447,27 +447,28 @@ handle_match (struct rule *rule, HalDevi
+ {
+ dbus_bool_t contains = FALSE;
+
+- if (hal_device_property_get_type (d, prop_to_check) == HAL_PROPERTY_TYPE_STRING) {
+- if (hal_device_has_property (d, prop_to_check)) {
++ if (hal_device_has_property (d, prop_to_check) && value != NULL) {
++
++ if (hal_device_property_get_type (d, prop_to_check) == HAL_PROPERTY_TYPE_STRING) {
+ const char *haystack;
+
+ haystack = hal_device_property_get_string (d, prop_to_check);
+- if (value != NULL && haystack != NULL && (strstr(haystack, value) != NULL))
+- contains = TRUE;
+- }
+- } else if (hal_device_property_get_type (d, prop_to_check) == HAL_PROPERTY_TYPE_STRLIST && value != NULL) {
+- HalDeviceStrListIter iter;
+- for (hal_device_property_strlist_iter_init (d, prop_to_check, &iter);
+- hal_device_property_strlist_iter_is_valid (&iter);
+- hal_device_property_strlist_iter_next (&iter)) {
+- const char *str = hal_device_property_strlist_iter_get_value (&iter);
+- if (strcmp (str, value) == 0) {
++ if (haystack != NULL && (strstr(haystack, value) != NULL))
+ contains = TRUE;
+- break;
++ } else if (hal_device_property_get_type (d, prop_to_check) == HAL_PROPERTY_TYPE_STRLIST) {
++ HalDeviceStrListIter iter;
++ for (hal_device_property_strlist_iter_init (d, prop_to_check, &iter);
++ hal_device_property_strlist_iter_is_valid (&iter);
++ hal_device_property_strlist_iter_next (&iter)) {
++ const char *str = hal_device_property_strlist_iter_get_value (&iter);
++ if (strcmp (str, value) == 0) {
++ contains = TRUE;
++ break;
++ }
+ }
++ } else {
++ return FALSE;
+ }
+- } else {
+- return FALSE;
+ }
+
+ if (rule->type_match == MATCH_CONTAINS) {
--- /dev/null
+From: David Zeuthen <davidz@redhat.com>
+Date: Thu, 12 Apr 2007 19:46:26 +0000 (-0400)
+Subject: only start one hald-addon-keyboard addon
+X-Git-Tag: HAL_0_2
+X-Git-Url: http://gitweb.freedesktop.org/?p=hal.git;a=commitdiff;h=f22a37b7a7073b3398e9060e21bc1d12dc58783f
+
+only start one hald-addon-keyboard addon
+
+this patch fixes the problem that one device can have get started the
+same hald-addon-keyboard addon multiple times. This work only together
+with my patch for the contains_not FDI-file directive.
+
+(similar to commit 5745da44f3bb43dafd9b53cbfcfc1218619a5263 on master)
+---
+
+--- a/fdi/policy/10osvendor/10-keyboard-policy.fdi
++++ b/fdi/policy/10osvendor/10-keyboard-policy.fdi
+@@ -5,10 +5,14 @@
+ <device>
+ <match key="info.capabilities" contains="input">
+ <match key="info.capabilities" contains="button">
+- <append key="info.addons" type="strlist">hald-addon-keyboard</append>
++ <match key="info.addons" contains_not="hald-addon-keyboard">
++ <append key="info.addons" type="strlist">hald-addon-keyboard</append>
++ </match>
+ </match>
+ <match key="info.capabilities" contains="input.keyboard">
+- <append key="info.addons" type="strlist">hald-addon-keyboard</append>
++ <match key="info.addons" contains_not="hald-addon-keyboard">
++ <append key="info.addons" type="strlist">hald-addon-keyboard</append>
++ </match>
+ <match key="info.capabilities" contains_not="button">
+ <append key="info.capabilities" type="strlist">button</append>
+ </match>
05_freebsd_partutil_make_fix.patch
06_freebsd_backend_fix.patch
07_malloc_h_for_stdlib_h.patch
+08_contains_not_fdi_directive.patch
+09_hald_addon_keyboard_start_one.patch
95_gentoo_man_page.patch
96_plugdev_allow_send.patch