aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/hal
diff options
context:
space:
mode:
authormarcus <marcus@FreeBSD.org>2010-08-30 01:51:18 +0800
committermarcus <marcus@FreeBSD.org>2010-08-30 01:51:18 +0800
commit8a966fe7570db9616e910359329bb46d7bb24ad2 (patch)
tree6e85d813fe53a84ebd8d1eaaab11be83396656f4 /sysutils/hal
parentaf8e4887814f0df90c2a1ac51d28677b075a484f (diff)
downloadfreebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.tar.gz
freebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.tar.zst
freebsd-ports-gnome-8a966fe7570db9616e910359329bb46d7bb24ad2.zip
Fix a bug where UFS file systems could not be properly unmounted. Part of this
was due to a logic bug introduced when I added support for "ufs/" labels. Thanks to Andriy Gapon for ctching that. PR: 149134
Diffstat (limited to 'sysutils/hal')
-rw-r--r--sysutils/hal/Makefile2
-rw-r--r--sysutils/hal/files/patch-hald_hf-storage.c12
2 files changed, 8 insertions, 6 deletions
diff --git a/sysutils/hal/Makefile b/sysutils/hal/Makefile
index 7329d92126ac..52a5324338cd 100644
--- a/sysutils/hal/Makefile
+++ b/sysutils/hal/Makefile
@@ -8,7 +8,7 @@
PORTNAME= hal
DISTVERSION= 0.5.14
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= sysutils
MASTER_SITES= http://hal.freedesktop.org/releases/
diff --git a/sysutils/hal/files/patch-hald_hf-storage.c b/sysutils/hal/files/patch-hald_hf-storage.c
index 162079ac7086..99755c770568 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 2009-08-24 08:42:29.000000000 -0400
-+++ hald/freebsd/hf-storage.c 2010-02-26 08:29:38.000000000 -0500
++++ hald/freebsd/hf-storage.c 2010-08-29 12:22:03.000000000 -0400
@@ -30,6 +30,7 @@
#include <limits.h>
#include <inttypes.h>
@@ -20,8 +20,8 @@
+ if ((! strcmp(fields[1], "LABEL") ||
+ ! strcmp(fields[1], "BSD") ||
+ ! strcmp(fields[1], "PART")) &&
-+ ! (strncmp(fields[2], "ufsid/", strlen("ufsid/")) ||
-+ ! strncmp(fields[2], "ufs/", strlen("ufs/"))))
++ (! strncmp(fields[2], "ufsid/", strlen("ufsid/")) ||
++ ! strncmp(fields[2], "ufs/", strlen("ufs/"))))
+ {
+ g_strfreev(fields);
+ continue;
@@ -50,12 +50,14 @@
geom_obj->type = -1; /* We use -1 here to denote a missing type. */
geom_obj->hash = hash;
-@@ -589,11 +621,16 @@ hf_storage_devd_notify (const char *syst
+@@ -589,11 +621,18 @@ hf_storage_devd_notify (const char *syst
char *conftxt;
GSList *new_disks;
- if (strcmp(system, "DEVFS") || strcmp(subsystem, "CDEV") ||
+ if (! data || strcmp(system, "DEVFS") || strcmp(subsystem, "CDEV") ||
++ ! strncmp(data, "cdev=ufs/", strlen("cdev=ufs/")) ||
++ ! strncmp(data, "cdev=ufsid/", strlen("cdev=ufsid/")) ||
(strcmp(type, "CREATE") && strcmp(type, "DESTROY")))
return FALSE;
@@ -68,7 +70,7 @@
new_disks = hf_storage_parse_conftxt(conftxt);
g_free(conftxt);
-@@ -669,7 +706,7 @@ hf_storage_conftxt_timeout_cb (gpointer
+@@ -669,7 +708,7 @@ hf_storage_conftxt_timeout_cb (gpointer
if (hf_is_waiting)
return TRUE;