summaryrefslogtreecommitdiffstats
path: root/sysutils/hal/files/patch-tools_hal-storage-shared.c
diff options
context:
space:
mode:
authormarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2008-10-27 03:42:57 +0800
committermarcus <marcus@df743ca5-7f9a-e211-a948-0013205c9059>2008-10-27 03:42:57 +0800
commitc460de34c8a97fec7522b83576deb9d381496b13 (patch)
tree06e27b7a8b5ba3b810135cd8394685580a9c9d54 /sysutils/hal/files/patch-tools_hal-storage-shared.c
parentc485145cd1aedb916b619b1908e7e90940873867 (diff)
downloadmarcuscom-ports-c460de34c8a97fec7522b83576deb9d381496b13.tar.gz
marcuscom-ports-c460de34c8a97fec7522b83576deb9d381496b13.tar.zst
marcuscom-ports-c460de34c8a97fec7522b83576deb9d381496b13.zip
Re-add fuse support with some documentation and a helper script to make it
work. Also, temporarily revert the keyboard patch until X.Org 7.4 is committed. git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@11737 df743ca5-7f9a-e211-a948-0013205c9059
Diffstat (limited to 'sysutils/hal/files/patch-tools_hal-storage-shared.c')
-rw-r--r--sysutils/hal/files/patch-tools_hal-storage-shared.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/sysutils/hal/files/patch-tools_hal-storage-shared.c b/sysutils/hal/files/patch-tools_hal-storage-shared.c
new file mode 100644
index 000000000..1ed7fe907
--- /dev/null
+++ b/sysutils/hal/files/patch-tools_hal-storage-shared.c
@@ -0,0 +1,45 @@
+--- tools/hal-storage-shared.c.orig 2008-05-07 19:24:24.000000000 -0400
++++ tools/hal-storage-shared.c 2008-10-20 14:53:35.000000000 -0400
+@@ -297,6 +297,9 @@ handle_unmount (LibHalContext *hal_ctx,
+ char *mount_point_to_unmount;
+ gboolean mounted_by_other_uid;
+ FILE *hal_mtab_new;
++#ifdef __FreeBSD__
++ char *rdevice = NULL;
++#endif
+
+ #ifdef DEBUG
+ printf ("device = %s\n", device);
+@@ -473,7 +476,20 @@ line_found:
+ #endif
+ if (option_force)
+ args[na++] = "-f";
+- args[na++] = (char *) device;
++#ifdef __FreeBSD__
++ dbus_error_init (&error);
++ if (libhal_device_property_exists (hal_ctx, udi, "volume.freebsd.real_mounted_device", NULL)) {
++ rdevice = libhal_device_get_property_string (hal_ctx, udi, "volume.freebsd.real_mounted_device", &error);
++ if (dbus_error_is_set (&error)) {
++ dbus_error_free (&error);
++ unknown_error ("Error while getting volume.freebsd.real_mounted_device");
++ }
++ }
++ if (rdevice)
++ args[na++] = rdevice;
++ else
++#endif
++ args[na++] = (char *) device;
+ args[na++] = NULL;
+
+ #ifdef DEBUG
+@@ -497,6 +513,10 @@ line_found:
+ unknown_error ("Cannot spawn " UMOUNT);
+ }
+
++#ifdef __FreeBSD__
++ g_free (rdevice);
++#endif
++
+ /* check if unmount was succesful */
+ if (exit_status != 0) {
+ printf ("%s error %d, stdout='%s', stderr='%s'\n", UMOUNT, exit_status, sout, serr);