aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2009-05-24 05:19:02 +0800
committermarcus <marcus@FreeBSD.org>2009-05-24 05:19:02 +0800
commit525698097d1ad94688c207f4cc8a7c1e8724c086 (patch)
treebab933a9d5ab58b7c47164434dd285ffec05e8ca /sysutils
parent10109da7f66d74bce205dda47013e52b039aae9a (diff)
downloadfreebsd-ports-525698097d1ad94688c207f4cc8a7c1e8724c086.tar.gz
freebsd-ports-525698097d1ad94688c207f4cc8a7c1e8724c086.tar.zst
freebsd-ports-525698097d1ad94688c207f4cc8a7c1e8724c086.zip
* Correct a potential infinite recursion loop triggered by the new GEOM
classes [1] * Fix some minor issues with usb2 support [2] PR: 134731 [1] Submitted by: hselasky [2]
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/hal/Makefile2
-rw-r--r--sysutils/hal/files/patch-configure2
-rw-r--r--sysutils/hal/files/patch-configure.in2
-rw-r--r--sysutils/hal/files/patch-hald_freebsd_probing_probe-usb2-device.c9
-rw-r--r--sysutils/hal/files/patch-hald_hf-storage.c45
5 files changed, 33 insertions, 27 deletions
diff --git a/sysutils/hal/Makefile b/sysutils/hal/Makefile
index 0e1b42ce3397..68058566b0db 100644
--- a/sysutils/hal/Makefile
+++ b/sysutils/hal/Makefile
@@ -8,7 +8,7 @@
PORTNAME= hal
DISTVERSION= 0.5.11
-PORTREVISION= 23
+PORTREVISION= 24
CATEGORIES= sysutils
MASTER_SITES= http://hal.freedesktop.org/releases/
diff --git a/sysutils/hal/files/patch-configure b/sysutils/hal/files/patch-configure
index 65173c754872..e70d7d60f497 100644
--- a/sysutils/hal/files/patch-configure
+++ b/sysutils/hal/files/patch-configure
@@ -325,7 +325,7 @@
+if test $ac_cv_lib_usb_libusb20_dev_get_info = yes; then
+ USE_LIBUSB=yes
+else
-+ USE_LIBUSB=np
++ USE_LIBUSB=no
+fi
+
+fi
diff --git a/sysutils/hal/files/patch-configure.in b/sysutils/hal/files/patch-configure.in
index d6017b521d81..37fb1534e484 100644
--- a/sysutils/hal/files/patch-configure.in
+++ b/sysutils/hal/files/patch-configure.in
@@ -18,7 +18,7 @@
+ AC_CHECK_LIB([usb20], [libusb20_dev_get_info], [USE_LIBUSB20=yes], [USE_LIBUSB20=no])
+fi
+if test "x$USE_LIBUSB20" = "xno"; then
-+ AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=np])
++ AC_CHECK_LIB([usb], [libusb20_dev_get_info], [USE_LIBUSB=yes], [USE_LIBUSB=no])
+fi
+AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB20" = "xyes"])
+AM_CONDITIONAL([HAVE_LIBUSB20],[test "x$USE_LIBUSB" = "xyes"])
diff --git a/sysutils/hal/files/patch-hald_freebsd_probing_probe-usb2-device.c b/sysutils/hal/files/patch-hald_freebsd_probing_probe-usb2-device.c
index 90d61c6d35bb..f36ad02ae094 100644
--- a/sysutils/hal/files/patch-hald_freebsd_probing_probe-usb2-device.c
+++ b/sysutils/hal/files/patch-hald_freebsd_probing_probe-usb2-device.c
@@ -1,6 +1,6 @@
---- hald/freebsd/probing/probe-usb2-device.c.orig 2009-02-24 00:36:27.000000000 -0500
-+++ hald/freebsd/probing/probe-usb2-device.c 2009-02-24 00:39:54.000000000 -0500
-@@ -0,0 +1,203 @@
+--- hald/freebsd/probing/probe-usb2-device.c.orig 2009-05-23 15:56:54.000000000 -0400
++++ hald/freebsd/probing/probe-usb2-device.c 2009-05-23 17:14:06.000000000 -0400
+@@ -0,0 +1,204 @@
+/***************************************************************************
+ * CVSID: $Id$
+ *
@@ -96,7 +96,7 @@
+ pcfg = libusb20_dev_alloc_config(pdev, curr_config);
+ cdesc = &(pcfg->desc);
+
-+ if (libusb20_dev_get_info(pdev, &di))
++ if (pcfg == NULL || libusb20_dev_get_info(pdev, &di))
+ {
+ free(pcfg);
+ continue;
@@ -196,6 +196,7 @@
+ libhal_device_set_property_string(hfp_ctx, hfp_udi,
+ "info.vendor", di.udi_vendor, &hfp_error);
+
++ libusb20_dev_close(pdev);
+ free(pcfg);
+ }
+end:
diff --git a/sysutils/hal/files/patch-hald_hf-storage.c b/sysutils/hal/files/patch-hald_hf-storage.c
index 58d00a8963e0..cfe7e202350f 100644
--- a/sysutils/hal/files/patch-hald_hf-storage.c
+++ b/sysutils/hal/files/patch-hald_hf-storage.c
@@ -1,5 +1,5 @@
--- hald/freebsd/hf-storage.c.orig 2008-05-07 19:23:57.000000000 -0400
-+++ hald/freebsd/hf-storage.c 2009-02-25 16:38:35.000000000 -0500
++++ hald/freebsd/hf-storage.c 2009-05-23 17:07:00.000000000 -0400
@@ -30,6 +30,7 @@
#include <limits.h>
#include <inttypes.h>
@@ -50,15 +50,7 @@
return FALSE;
}
-@@ -146,6 +152,7 @@ hf_storage_geom_is_swap (const Geom_Obje
-
- return (! strcmp(geom_obj->class, "BSD") && geom_obj->type == FS_SWAP)
- || ((! strcmp(geom_obj->class, "MBR") ||
-+ ! strcmp(geom_obj->class, "PART") ||
- ! strcmp(geom_obj->class, "MBREXT"))
- && (geom_obj->type == 0x18 /* AST Windows swapfile */
- || geom_obj->type == 0x42 /* SFS or Linux swap */
-@@ -294,7 +301,7 @@ hf_storage_device_probe (HalDevice *devi
+@@ -294,7 +300,7 @@ hf_storage_device_probe (HalDevice *devi
{
g_return_if_fail(HAL_IS_DEVICE(device));
@@ -67,12 +59,13 @@
if (hf_runner_run_sync(device, 0, "hald-probe-storage",
"HF_HAS_CHILDREN", HF_BOOL_TO_STRING(hf_storage_device_has_partitions(device)),
-@@ -433,6 +440,29 @@ hf_storage_parse_conftxt (const char *co
+@@ -433,11 +439,42 @@ hf_storage_parse_conftxt (const char *co
if (! strcmp (geom_obj->class, "GPT") ||
! strcmp (geom_obj->class, "APPLE"))
geom_obj->str_type = g_strdup(fields[10]);
+ else if (! strcmp (geom_obj->class, "PART"))
+ {
++ geom_obj->str_type = g_strdup(fields[10]);
+ if (g_strv_length(fields) >= 15)
+ {
+ if (! strcmp(fields[13], "xt"))
@@ -97,7 +90,19 @@
else
geom_obj->type = atoi(fields[10]);
}
-@@ -541,15 +571,20 @@ hf_storage_device_rescan_real (HalDevice
+ }
+
++ if (g_hash_table_lookup(table, GUINT_TO_POINTER(hash)) != NULL)
++ {
++ hf_storage_geom_free(geom_obj);
++ curr_depth = depth;
++ continue;
++ }
++
+ g_hash_table_insert (table, GUINT_TO_POINTER(hash), geom_obj);
+
+ if (depth > curr_depth)
+@@ -541,15 +578,20 @@ hf_storage_device_rescan_real (HalDevice
}
static gboolean
@@ -121,7 +126,7 @@
conftxt = hf_get_string_sysctl(NULL, "kern.geom.conftxt");
new_disks = hf_storage_parse_conftxt(conftxt);
-@@ -572,6 +607,7 @@ hf_storage_conftxt_timeout_cb (gpointer
+@@ -572,6 +614,7 @@ hf_storage_conftxt_timeout_cb (gpointer
if (! hf_storage_find_disk(disks, disk->name))
{
osspec_probe(); /* catch new disk(s) */
@@ -129,7 +134,7 @@
break;
}
}
-@@ -593,7 +629,10 @@ hf_storage_conftxt_timeout_cb (gpointer
+@@ -593,7 +636,10 @@ hf_storage_conftxt_timeout_cb (gpointer
device = hf_devtree_find_from_name(hald_get_gdl(), disk->name);
if (device && hal_device_has_capability(device, "storage") &&
! hf_storage_device_has_addon(device))
@@ -141,7 +146,7 @@
}
}
else
-@@ -601,7 +640,10 @@ hf_storage_conftxt_timeout_cb (gpointer
+@@ -601,7 +647,10 @@ hf_storage_conftxt_timeout_cb (gpointer
/* disk removed */
device = hf_devtree_find_from_name(hald_get_gdl(), disk->name);
if (device && hal_device_has_capability(device, "storage"))
@@ -153,7 +158,7 @@
}
}
}
-@@ -610,17 +652,30 @@ hf_storage_conftxt_timeout_cb (gpointer
+@@ -610,17 +659,30 @@ hf_storage_conftxt_timeout_cb (gpointer
g_slist_free(disks);
disks = new_disks;
@@ -186,7 +191,7 @@
return;
conftxt = hf_get_string_sysctl(NULL, "kern.geom.conftxt");
-@@ -636,8 +691,10 @@ hf_storage_init_geom (void)
+@@ -636,8 +698,10 @@ hf_storage_init_geom (void)
static void
hf_storage_init (void)
{
@@ -198,7 +203,7 @@
}
void
-@@ -720,8 +777,6 @@ hf_storage_device_add (HalDevice *device
+@@ -720,8 +784,6 @@ hf_storage_device_add (HalDevice *device
{
g_return_if_fail(HAL_IS_DEVICE(device));
@@ -207,7 +212,7 @@
if (hf_device_preprobe(device))
{
hf_storage_device_probe(device, FALSE);
-@@ -739,7 +794,7 @@ hf_storage_get_geoms (const char *devnam
+@@ -739,7 +801,7 @@ hf_storage_get_geoms (const char *devnam
g_return_val_if_fail(devname != NULL, NULL);
@@ -216,7 +221,7 @@
hash = g_str_hash(devname);
node = g_node_find(hf_storage_geom_tree, G_PRE_ORDER, G_TRAVERSE_ALL,
-@@ -802,3 +857,7 @@ HFHandler hf_storage_handler = {
+@@ -802,3 +864,7 @@ HFHandler hf_storage_handler = {
.probe = hf_storage_probe,
.device_rescan = hf_storage_device_rescan
};