Since r249508 (http://svnweb.freebsd.org/changeset/base/249508) on HEAD disk labels are duplicated to /dev/diskid/. HAL creates entries for both copies. Fix: Discard any GEOM object with device name matching "diskid/*". It appears there is no other obvious information which can be used to match the devices easily, so a string check is the quicker solution (volume-uuid would work only for some kind of entries). The patch has obviously no effect on FreeBSD 9-. Patch attached with submission follows: How-To-Repeat: Insert an USB drive and check lshal(1) for entries with the same volume-uuid.
Responsible Changed From-To: freebsd-ports-bugs->gnome Over to maintainer (via the GNATS Auto Assign Tool)
Responsible Changed From-To: gnome->avilla Taking after maintainer timeout.
Author: avilla Date: Mon Oct 14 13:41:51 2013 New Revision: 330321 URL: http://svnweb.freebsd.org/changeset/ports/330321 Log: - Remove disk duplicate entries on FreeBSD 10+. - Bump PORTREVISION. PR: 179469 Submitted by: avilla (myself) Approved by: gnome (maintainer timeout) Modified: head/sysutils/hal/Makefile head/sysutils/hal/files/patch-hald_hf-storage.c (contents, props changed) Modified: head/sysutils/hal/Makefile ============================================================================== --- head/sysutils/hal/Makefile Mon Oct 14 13:40:48 2013 (r330320) +++ head/sysutils/hal/Makefile Mon Oct 14 13:41:51 2013 (r330321) @@ -4,7 +4,7 @@ PORTNAME= hal DISTVERSION= 0.5.14 -PORTREVISION= 20 +PORTREVISION= 21 CATEGORIES= sysutils MASTER_SITES= http://hal.freedesktop.org/releases/ Modified: head/sysutils/hal/files/patch-hald_hf-storage.c ============================================================================== --- head/sysutils/hal/files/patch-hald_hf-storage.c Mon Oct 14 13:40:48 2013 (r330320) +++ head/sysutils/hal/files/patch-hald_hf-storage.c Mon Oct 14 13:41:51 2013 (r330321) @@ -1,5 +1,5 @@ ---- hald/freebsd/hf-storage.c.orig 2009-08-24 08:42:29.000000000 -0400 -+++ hald/freebsd/hf-storage.c 2011-07-20 20:52:51.000000000 -0400 +--- ./hald/freebsd/hf-storage.c.orig 2009-08-24 14:42:29.000000000 +0200 ++++ ./hald/freebsd/hf-storage.c 2013-06-10 16:22:36.080280935 +0200 @@ -30,6 +30,7 @@ #include <limits.h> #include <inttypes.h> @@ -8,7 +8,18 @@ #include <sys/param.h> #include <sys/types.h> #include <sys/disklabel.h> -@@ -418,10 +419,41 @@ hf_storage_parse_conftxt (const char *co +@@ -174,6 +175,10 @@ hf_storage_device_probe_geom (HalDevice + if (! geom_obj) + return; + ++ /* Exclude /dev/diskid/ labels as they are duplicates. */ ++ if (strncmp(geom_obj->dev, "diskid/", 7) == 0) ++ return; ++ + node = g_node_find(hf_storage_geom_tree, G_PRE_ORDER, G_TRAVERSE_ALL, + GUINT_TO_POINTER(geom_obj->hash)); + +@@ -418,10 +423,41 @@ hf_storage_parse_conftxt (const char *co continue; } @@ -50,7 +61,7 @@ geom_obj->type = -1; /* We use -1 here to denote a missing type. */ geom_obj->hash = hash; -@@ -458,6 +490,13 @@ hf_storage_parse_conftxt (const char *co +@@ -458,6 +494,13 @@ hf_storage_parse_conftxt (const char *co { g_free(geom_obj->class); geom_obj->class = g_strdup(fields[12]); @@ -64,7 +75,7 @@ } } } -@@ -589,11 +628,18 @@ hf_storage_devd_notify (const char *syst +@@ -589,11 +632,18 @@ hf_storage_devd_notify (const char *syst char *conftxt; GSList *new_disks; @@ -84,7 +95,7 @@ new_disks = hf_storage_parse_conftxt(conftxt); g_free(conftxt); -@@ -669,7 +715,7 @@ hf_storage_conftxt_timeout_cb (gpointer +@@ -669,7 +719,7 @@ hf_storage_conftxt_timeout_cb (gpointer if (hf_is_waiting) return TRUE; _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Patch committed.