From 3a7c20eb60e778f6a920feaf5fa48bc52bea20c2 Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Tue, 8 Mar 2005 00:26:44 +0000 Subject: [PATCH] - Build with patch for new hal/dbus API's - require hal-devel >= 0.5.0 --- gnome-vfs-2.9.91-hal-api-2.patch | 637 +++++++++++++++++++++++++++++++ gnome-vfs2.spec | 13 +- 2 files changed, 648 insertions(+), 2 deletions(-) create mode 100644 gnome-vfs-2.9.91-hal-api-2.patch diff --git a/gnome-vfs-2.9.91-hal-api-2.patch b/gnome-vfs-2.9.91-hal-api-2.patch new file mode 100644 index 0000000..1193359 --- /dev/null +++ b/gnome-vfs-2.9.91-hal-api-2.patch @@ -0,0 +1,637 @@ +--- libgnomevfs/gnome-vfs-hal-mounts.c.orig 2005-02-26 17:51:58.000000000 -0500 ++++ libgnomevfs/gnome-vfs-hal-mounts.c 2005-02-26 16:46:28.000000000 -0500 +@@ -49,16 +49,9 @@ + + typedef struct { + GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; +- HalStoragePolicy *hal_storage_policy; ++ LibHalStoragePolicy *hal_storage_policy; + } GnomeVFSHalUserData; + +-static void +-_hal_mainloop_integration (LibHalContext *ctx, +- DBusConnection * dbus_connection) +-{ +- dbus_connection_setup_with_g_main (dbus_connection, NULL); +-} +- + static void + _hal_device_added (LibHalContext *hal_ctx, + const char *udi) +@@ -66,16 +59,16 @@ _hal_device_added (LibHalContext *hal_ct + GnomeVFSHalUserData *hal_userdata; + GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; + +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); ++ hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); + volume_monitor_daemon = hal_userdata->volume_monitor_daemon; + + /* Handle optical discs without data since these are not handled + * by GNOME VFS + */ +- if (hal_device_get_property_bool (hal_ctx, udi, "volume.is_disc")) { ++ if (libhal_device_get_property_bool (hal_ctx, udi, "volume.is_disc", NULL)) { + const char *storage_udi; + +- storage_udi = hal_device_get_property_string (hal_ctx, udi, "block.storage_device"); ++ storage_udi = libhal_device_get_property_string (hal_ctx, udi, "block.storage_device", NULL); + if (storage_udi != NULL) { + GnomeVFSDrive *drive; + +@@ -97,7 +90,7 @@ _hal_device_removed (LibHalContext *hal_ + GnomeVFSHalUserData *hal_userdata; + GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; + +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); ++ hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); + volume_monitor_daemon = hal_userdata->volume_monitor_daemon; + + drive = _gnome_vfs_volume_monitor_find_drive_by_hal_udi ( +@@ -122,153 +115,93 @@ _hal_device_removed (LibHalContext *hal_ + } + } + +-static void +-_hal_device_new_capability (LibHalContext *hal_ctx, +- const char *udi, +- const char *capability) +-{ +- GnomeVFSHalUserData *hal_userdata; +- GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; +- +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); +- volume_monitor_daemon = hal_userdata->volume_monitor_daemon; +- +- /* do nothing */ +-} +- +-static void +-_hal_device_lost_capability (LibHalContext *hal_ctx, +- const char *udi, +- const char *capability) +-{ +- GnomeVFSHalUserData *hal_userdata; +- GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; +- +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); +- volume_monitor_daemon = hal_userdata->volume_monitor_daemon; + +- /* do nothing */ +-} + +-static void +-_hal_device_property_modified (LibHalContext *hal_ctx, +- const char *udi, +- const char *key, +- dbus_bool_t is_removed, +- dbus_bool_t is_added) +-{ +- GnomeVFSHalUserData *hal_userdata; +- GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; +- +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); +- volume_monitor_daemon = hal_userdata->volume_monitor_daemon; +- +- /* do nothing */ +-} +- +-static void +-_hal_device_condition (LibHalContext *hal_ctx, +- const char *udi, +- const char *condition_name, +- DBusMessage *message) +-{ +- GnomeVFSHalUserData *hal_userdata; +- GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon; +- +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); +- volume_monitor_daemon = hal_userdata->volume_monitor_daemon; +- +- /* do nothing */ +-} +- +-static LibHalFunctions +-hal_functions = { _hal_mainloop_integration, +- _hal_device_added, +- _hal_device_removed, +- _hal_device_new_capability, +- _hal_device_lost_capability, +- _hal_device_property_modified, +- _hal_device_condition }; +- +-static HalStoragePolicyIconPair icon_mapping[] = { +- {HAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IDE, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_SCSI, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_USB, "gnome-dev-removable-usb"}, +- {HAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IEEE1394, "gnome-dev-removable-1394"}, +- {HAL_STORAGE_ICON_DRIVE_DISK, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_DISK_IDE, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_DISK_SCSI, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_DISK_USB, "gnome-dev-removable-usb"}, +- {HAL_STORAGE_ICON_DRIVE_DISK_IEEE1394, "gnome-dev-removable-1394"}, +- {HAL_STORAGE_ICON_DRIVE_CDROM, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_CDROM_IDE, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_CDROM_SCSI, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_CDROM_USB, "gnome-dev-removable-usb"}, +- {HAL_STORAGE_ICON_DRIVE_CDROM_IEEE1394, "gnome-dev-removable-1394"}, +- {HAL_STORAGE_ICON_DRIVE_FLOPPY, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_FLOPPY_IDE, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_FLOPPY_SCSI, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_FLOPPY_USB, "gnome-dev-removable-usb"}, +- {HAL_STORAGE_ICON_DRIVE_FLOPPY_IEEE1394, "gnome-dev-removable-1394"}, +- {HAL_STORAGE_ICON_DRIVE_TAPE, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_COMPACT_FLASH, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_MEMORY_STICK, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_SMART_MEDIA, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_SD_MMC, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_CAMERA, "gnome-dev-removable"}, +- {HAL_STORAGE_ICON_DRIVE_PORTABLE_AUDIO_PLAYER, "gnome-dev-removable"}, +- +- {HAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IDE, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_SCSI, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_USB, "gnome-dev-harddisk-usb"}, +- {HAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, +- {HAL_STORAGE_ICON_VOLUME_DISK, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_DISK_IDE, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_DISK_SCSI, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_DISK_USB, "gnome-dev-harddisk-usb"}, +- {HAL_STORAGE_ICON_VOLUME_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, +- {HAL_STORAGE_ICON_VOLUME_CDROM, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_VOLUME_CDROM_IDE, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_VOLUME_CDROM_SCSI, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_VOLUME_CDROM_USB, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_VOLUME_CDROM_IEEE1394, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_VOLUME_FLOPPY, "gnome-dev-floppy"}, +- {HAL_STORAGE_ICON_VOLUME_FLOPPY_IDE, "gnome-dev-floppy"}, +- {HAL_STORAGE_ICON_VOLUME_FLOPPY_SCSI, "gnome-dev-floppy"}, +- {HAL_STORAGE_ICON_VOLUME_FLOPPY_USB, "gnome-dev-floppy"}, +- {HAL_STORAGE_ICON_VOLUME_FLOPPY_IEEE1394, "gnome-dev-floppy"}, +- {HAL_STORAGE_ICON_VOLUME_TAPE, "gnome-dev-harddisk"}, +- {HAL_STORAGE_ICON_VOLUME_COMPACT_FLASH, "gnome-dev-media-cf"}, +- {HAL_STORAGE_ICON_VOLUME_MEMORY_STICK, "gnome-dev-media-ms"}, +- {HAL_STORAGE_ICON_VOLUME_SMART_MEDIA, "gnome-dev-media-sm"}, +- {HAL_STORAGE_ICON_VOLUME_SD_MMC, "gnome-dev-media-sdmmc"}, +- {HAL_STORAGE_ICON_VOLUME_CAMERA, "camera"}, +- {HAL_STORAGE_ICON_VOLUME_PORTABLE_AUDIO_PLAYER, "gnome-dev-ipod"}, +- +- {HAL_STORAGE_ICON_DISC_CDROM, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_DISC_CDR, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_DISC_CDRW, "gnome-dev-cdrom"}, +- {HAL_STORAGE_ICON_DISC_DVDROM, "gnome-dev-dvd"}, +- {HAL_STORAGE_ICON_DISC_DVDRAM, "gnome-dev-dvd"}, +- {HAL_STORAGE_ICON_DISC_DVDR, "gnome-dev-dvd"}, +- {HAL_STORAGE_ICON_DISC_DVDRW, "gnome-dev-dvd"}, +- {HAL_STORAGE_ICON_DISC_DVDPLUSR, "gnome-dev-dvd"}, +- {HAL_STORAGE_ICON_DISC_DVDPLUSRW, "gnome-dev-dvd"}, ++static LibHalStoragePolicyIconPair icon_mapping[] = { ++ {LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IDE, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_SCSI, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_USB, "gnome-dev-removable-usb"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_REMOVABLE_DISK_IEEE1394, "gnome-dev-removable-1394"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_DISK, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_DISK_IDE, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_DISK_SCSI, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_DISK_USB, "gnome-dev-removable-usb"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_DISK_IEEE1394, "gnome-dev-removable-1394"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CDROM, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CDROM_IDE, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CDROM_SCSI, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CDROM_USB, "gnome-dev-removable-usb"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CDROM_IEEE1394, "gnome-dev-removable-1394"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLOPPY, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IDE, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_SCSI, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_USB, "gnome-dev-removable-usb"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLOPPY_IEEE1394, "gnome-dev-removable-1394"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_TAPE, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_COMPACT_FLASH, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_MEMORY_STICK, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_SMART_MEDIA, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_SD_MMC, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_CAMERA, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_PORTABLE_AUDIO_PLAYER, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_ZIP, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_JAZ, "gnome-dev-removable"}, ++ {LIBHAL_STORAGE_ICON_DRIVE_FLASH_KEY, "gnome-dev-removable"}, ++ ++ {LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IDE, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_SCSI, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_USB, "gnome-dev-harddisk-usb"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_REMOVABLE_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_DISK, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_DISK_IDE, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_DISK_SCSI, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_DISK_USB, "gnome-dev-harddisk-usb"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_DISK_IEEE1394, "gnome-dev-harddisk-1394"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CDROM, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CDROM_IDE, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CDROM_SCSI, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CDROM_USB, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CDROM_IEEE1394, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLOPPY, "gnome-dev-floppy"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IDE, "gnome-dev-floppy"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_SCSI, "gnome-dev-floppy"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_USB, "gnome-dev-floppy"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLOPPY_IEEE1394, "gnome-dev-floppy"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_TAPE, "gnome-dev-harddisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_COMPACT_FLASH, "gnome-dev-media-cf"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_MEMORY_STICK, "gnome-dev-media-ms"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_SMART_MEDIA, "gnome-dev-media-sm"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_SD_MMC, "gnome-dev-media-sdmmc"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_CAMERA, "camera"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_PORTABLE_AUDIO_PLAYER, "gnome-dev-ipod"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_ZIP, "gnome-dev-zipdisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_JAZ, "gnome-dev-jazdisk"}, ++ {LIBHAL_STORAGE_ICON_VOLUME_FLASH_KEY, "gnome-dev-harddisk"}, + + /* +- {HAL_STORAGE_ICON_DISC_CDROM, "gnome-dev-disc-cdrom"}, +- {HAL_STORAGE_ICON_DISC_CDR, "gnome-dev-disc-cdr"}, +- {HAL_STORAGE_ICON_DISC_CDRW, "gnome-dev-disc-cdrw"}, +- {HAL_STORAGE_ICON_DISC_DVDROM, "gnome-dev-disc-dvdrom"}, +- {HAL_STORAGE_ICON_DISC_DVDRAM, "gnome-dev-disc-dvdram"}, +- {HAL_STORAGE_ICON_DISC_DVDR, "gnome-dev-disc-dvdr"}, +- {HAL_STORAGE_ICON_DISC_DVDRW, "gnome-dev-disc-dvdrw"}, +- {HAL_STORAGE_ICON_DISC_DVDPLUSR, "gnome-dev-disc-dvdr-plus"}, +- {HAL_STORAGE_ICON_DISC_DVDPLUSRW, "gnome-dev-disc-dvdrw-plus"}, ++ {LIBHAL_STORAGE_ICON_DISC_CDROM, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_DISC_CDR, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_DISC_CDRW, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDROM, "gnome-dev-dvd"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDRAM, "gnome-dev-dvd"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDR, "gnome-dev-dvd"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDRW, "gnome-dev-dvd"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDPLUSR, "gnome-dev-dvd"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDPLUSRW, "gnome-dev-dvd"}, + */ + ++ {LIBHAL_STORAGE_ICON_DISC_CDROM, "gnome-dev-cdrom"}, ++ {LIBHAL_STORAGE_ICON_DISC_CDR, "gnome-dev-disc-cdr"}, ++ {LIBHAL_STORAGE_ICON_DISC_CDRW, "gnome-dev-disc-cdrw"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDROM, "gnome-dev-disc-dvdrom"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDRAM, "gnome-dev-disc-dvdram"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDR, "gnome-dev-disc-dvdr"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDRW, "gnome-dev-disc-dvdrw"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDPLUSR, "gnome-dev-disc-dvdr-plus"}, ++ {LIBHAL_STORAGE_ICON_DISC_DVDPLUSRW, "gnome-dev-disc-dvdrw"}, /* missing -plus icon here! */ ++ + {0x00, NULL} + }; + +@@ -276,26 +209,52 @@ static HalStoragePolicyIconPair icon_map + gboolean + _gnome_vfs_hal_mounts_init (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) + { ++ DBusError error; ++ DBusConnection *dbus_connection; + GnomeVFSHalUserData *hal_userdata; +- HalStoragePolicy *hal_storage_policy; ++ LibHalStoragePolicy *hal_storage_policy; + + /* Initialise the connection to the hal daemon */ + if ((volume_monitor_daemon->hal_ctx = +- hal_initialize (&hal_functions, FALSE)) == NULL) { +- g_warning ("hal_initialize failed\n"); ++ libhal_ctx_new ()) == NULL) { ++ g_warning ("libhal_ctx_new failed\n"); ++ return FALSE; ++ } ++ ++ dbus_error_init (&error); ++ dbus_connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); ++ if (dbus_error_is_set (&error)) { ++ g_warning ("Error connecting to D-BUS system bus: %s\n", ++ error.message); ++ dbus_error_free (&error); ++ return FALSE; ++ } ++ dbus_connection_setup_with_g_main (dbus_connection, NULL); ++ ++ libhal_ctx_set_dbus_connection (volume_monitor_daemon->hal_ctx, ++ dbus_connection); ++ ++ libhal_ctx_set_device_added (volume_monitor_daemon->hal_ctx, ++ _hal_device_added); ++ libhal_ctx_set_device_removed (volume_monitor_daemon->hal_ctx, ++ _hal_device_removed); ++ ++ if (!libhal_ctx_init (volume_monitor_daemon->hal_ctx, &error)) { ++ g_warning ("libhal_ctx_init failed: %s\n", error.message); ++ dbus_error_free (&error); + return FALSE; + } + + + /* Setup GNOME specific policy - right now this is only icons */ +- hal_storage_policy = hal_storage_policy_new (); +- hal_storage_policy_set_icon_mapping (hal_storage_policy, icon_mapping); ++ hal_storage_policy = libhal_storage_policy_new (); ++ libhal_storage_policy_set_icon_mapping (hal_storage_policy, icon_mapping); + + /* Tie some data with the libhal context */ + hal_userdata = g_new0 (GnomeVFSHalUserData, 1); + hal_userdata->volume_monitor_daemon = volume_monitor_daemon; + hal_userdata->hal_storage_policy = hal_storage_policy; +- hal_ctx_set_user_data (volume_monitor_daemon->hal_ctx, ++ libhal_ctx_set_user_data (volume_monitor_daemon->hal_ctx, + hal_userdata); + return TRUE; + } +@@ -304,13 +263,22 @@ void + _gnome_vfs_hal_mounts_shutdown (GnomeVFSVolumeMonitorDaemon *volume_monitor_daemon) + { + GnomeVFSHalUserData *hal_userdata; ++ DBusError error; ++ ++ hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (volume_monitor_daemon->hal_ctx); ++ libhal_storage_policy_free (hal_userdata->hal_storage_policy); + +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (volume_monitor_daemon->hal_ctx); +- hal_storage_policy_free (hal_userdata->hal_storage_policy); ++ dbus_error_init (&error); ++ if (!libhal_ctx_shutdown (volume_monitor_daemon->hal_ctx, &error)) { ++ g_warning ("hal_shutdown failed: %s\n", error.message); ++ dbus_error_free (&error); ++ return; ++ } + +- if (hal_shutdown (volume_monitor_daemon->hal_ctx) != 0) { +- g_warning ("hal_shutdown failed\n"); ++ if (!libhal_ctx_free (volume_monitor_daemon->hal_ctx)) { ++ g_warning ("hal_shutdown failed - unable to free hal context\n"); + } ++ + } + + /**************************************************************************/ +@@ -330,10 +298,10 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + char *drive_icon; + char *unique_drive_name; + LibHalContext *hal_ctx; +- HalDrive *hal_drive; +- HalVolume *hal_volume; ++ LibHalDrive *hal_drive; ++ LibHalVolume *hal_volume; + GnomeVFSHalUserData *hal_userdata; +- HalStoragePolicy *hal_storage_policy; ++ LibHalStoragePolicy *hal_storage_policy; + char *target_mount_point; + + hal_drive = NULL; +@@ -342,7 +310,7 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + if ((hal_ctx = volume_monitor_daemon->hal_ctx) == NULL) + goto out; + +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); ++ hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); + hal_storage_policy = hal_userdata->hal_storage_policy; + + if (drive == NULL || drive->priv == NULL || drive->priv->device_path == NULL) +@@ -352,21 +320,21 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + * /dev/sda1 etc, however we get the Drive object for the parent if + * that is the case. This is a feature of libhal-storage. + */ +- if ((hal_drive = hal_drive_from_device_file (hal_ctx, drive->priv->device_path)) == NULL) { ++ if ((hal_drive = libhal_drive_from_device_file (hal_ctx, drive->priv->device_path)) == NULL) { + g_warning ("%s: no hal drive for device=%s", __FUNCTION__, drive->priv->device_path); + goto out; + } + + /* There may not be a volume object associated, so hal_volume may be NULL */ +- hal_volume = hal_volume_from_device_file (hal_ctx, drive->priv->device_path); ++ hal_volume = libhal_volume_from_device_file (hal_ctx, drive->priv->device_path); + + /* For optical discs, we manually add/remove GnomeVFSVolume optical discs without + * data (e.g. blank and pure audio) since these don't appear in the mounted filesystems + * file /etc/mtab + */ + if (hal_volume != NULL && +- hal_drive_get_type (hal_drive) == HAL_DRIVE_TYPE_CDROM && +- hal_volume_is_disc (hal_volume) && !hal_volume_disc_has_data (hal_volume)) { ++ libhal_drive_get_type (hal_drive) == LIBHAL_DRIVE_TYPE_CDROM && ++ libhal_volume_is_disc (hal_volume) && !libhal_volume_disc_has_data (hal_volume)) { + GnomeVFSVolume *volume; + char *volume_name; + char *volume_icon; +@@ -377,35 +345,35 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + gnome_vfs_volume_unref (volume); + } else { + +- volume_name = hal_volume_policy_compute_display_name ( ++ volume_name = libhal_volume_policy_compute_display_name ( + hal_drive, hal_volume, hal_storage_policy); + + /* set icon name; try dedicated icon name first... */ +- if (hal_drive_get_dedicated_icon_volume (hal_drive) != NULL) +- volume_icon = strdup (hal_drive_get_dedicated_icon_volume (hal_drive)); ++ if (libhal_drive_get_dedicated_icon_volume (hal_drive) != NULL) ++ volume_icon = strdup (libhal_drive_get_dedicated_icon_volume (hal_drive)); + else +- volume_icon = hal_volume_policy_compute_icon_name ( ++ volume_icon = libhal_volume_policy_compute_icon_name ( + hal_drive, hal_volume, hal_storage_policy); + + volume = g_object_new (GNOME_VFS_TYPE_VOLUME, NULL); +- volume->priv->hal_udi = g_strdup (hal_volume_get_udi (hal_volume)); ++ volume->priv->hal_udi = g_strdup (libhal_volume_get_udi (hal_volume)); + volume->priv->volume_type = GNOME_VFS_VOLUME_TYPE_MOUNTPOINT; + +- if (hal_volume_disc_is_blank (hal_volume)) { ++ if (libhal_volume_disc_is_blank (hal_volume)) { + /* Blank discs should open the burn:/// location */ +- volume->priv->device_path = g_strdup (hal_volume_get_device_file (hal_volume)); ++ volume->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume)); + volume->priv->activation_uri = g_strdup ("burn:///"); +- volume->priv->unix_device = makedev (hal_volume_get_device_major (hal_volume), +- hal_volume_get_device_minor (hal_volume)); +- volume->priv->filesystem_type = g_strdup (hal_volume_get_fstype (hal_volume)); +- } else if (hal_volume_disc_has_audio (hal_volume)) { ++ volume->priv->unix_device = makedev (libhal_volume_get_device_major (hal_volume), ++ libhal_volume_get_device_minor (hal_volume)); ++ volume->priv->filesystem_type = g_strdup (libhal_volume_get_fstype (hal_volume)); ++ } else if (libhal_volume_disc_has_audio (hal_volume)) { + /* Audio discs with data should open the cdda:///dev/cdrom location */ +- volume->priv->device_path = g_strdup (hal_volume_get_device_file (hal_volume)); ++ volume->priv->device_path = g_strdup (libhal_volume_get_device_file (hal_volume)); + volume->priv->activation_uri = g_strdup_printf ( +- "cdda://%s", hal_volume_get_device_file (hal_volume)); +- volume->priv->unix_device = makedev (hal_volume_get_device_major (hal_volume), +- hal_volume_get_device_minor (hal_volume)); +- volume->priv->filesystem_type = g_strdup (hal_volume_get_fstype (hal_volume)); ++ "cdda://%s", libhal_volume_get_device_file (hal_volume)); ++ volume->priv->unix_device = makedev (libhal_volume_get_device_major (hal_volume), ++ libhal_volume_get_device_minor (hal_volume)); ++ volume->priv->filesystem_type = g_strdup (libhal_volume_get_fstype (hal_volume)); + } + + volume->priv->is_read_only = TRUE; +@@ -419,6 +387,7 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + volume->priv->is_user_visible = TRUE; + + volume->priv->drive = drive; ++ + _gnome_vfs_drive_add_mounted_volume (drive, volume); + + _gnome_vfs_volume_monitor_mounted (GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), volume); +@@ -427,7 +396,7 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + free (volume_name); + free (volume_icon); + } +- } else if (hal_volume == NULL && hal_drive_get_type (hal_drive) == HAL_DRIVE_TYPE_CDROM) { ++ } else if (hal_volume == NULL && libhal_drive_get_type (hal_drive) == LIBHAL_DRIVE_TYPE_CDROM) { + GnomeVFSVolume *volume; + + /* Remove GnomeVFSVolume with same device file */ +@@ -444,10 +413,10 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + goto out; + + /* set whether we need to eject */ +- drive->priv->must_eject_at_unmount = hal_drive_requires_eject (hal_drive); ++ drive->priv->must_eject_at_unmount = libhal_drive_requires_eject (hal_drive); + + /* set display name */ +- drive_name = hal_drive_policy_compute_display_name (hal_drive, hal_volume, hal_storage_policy); ++ drive_name = libhal_drive_policy_compute_display_name (hal_drive, hal_volume, hal_storage_policy); + unique_drive_name = _gnome_vfs_volume_monitor_uniquify_drive_name ( + GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), drive_name); + if (drive->priv->display_name != NULL) +@@ -456,10 +425,10 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + free (drive_name); + + /* set icon name; try dedicated icon name first... */ +- if (hal_drive_get_dedicated_icon_drive (hal_drive) != NULL) +- drive_icon = strdup (hal_drive_get_dedicated_icon_drive (hal_drive)); ++ if (libhal_drive_get_dedicated_icon_drive (hal_drive) != NULL) ++ drive_icon = strdup (libhal_drive_get_dedicated_icon_drive (hal_drive)); + else +- drive_icon = hal_drive_policy_compute_icon_name (hal_drive, hal_volume, hal_storage_policy); ++ drive_icon = libhal_drive_policy_compute_icon_name (hal_drive, hal_volume, hal_storage_policy); + if (drive->priv->icon != NULL) + g_free (drive->priv->icon); + drive->priv->icon = g_strdup (drive_icon); +@@ -469,7 +438,7 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + target_mount_point = NULL; + if (hal_volume != NULL) { + const char *str; +- str = hal_volume_get_mount_point (hal_volume); ++ str = libhal_volume_get_mount_point (hal_volume); + if (str != NULL) + target_mount_point = g_strdup (str); + } +@@ -479,18 +448,18 @@ _gnome_vfs_hal_mounts_modify_drive (Gnom + target_mount_point = gnome_vfs_get_local_path_from_uri (drive->priv->activation_uri); + + /* if we don't use removable media and the volume shouldn't be visible, then hide the drive */ +- if(!hal_drive_uses_removable_media (hal_drive) && +- !hal_volume_policy_should_be_visible (hal_drive, hal_volume, hal_storage_policy, target_mount_point)) ++ if(!libhal_drive_uses_removable_media (hal_drive) && ++ !libhal_volume_policy_should_be_visible (hal_drive, hal_volume, hal_storage_policy, target_mount_point)) + drive->priv->is_user_visible = FALSE; + + g_free (target_mount_point); + + /* set hal udi */ +- drive->priv->hal_udi = g_strdup (hal_drive_get_udi (hal_drive)); ++ drive->priv->hal_udi = g_strdup (libhal_drive_get_udi (hal_drive)); + + out: +- hal_volume_free (hal_volume); +- hal_drive_free (hal_drive); ++ libhal_volume_free (hal_volume); ++ libhal_drive_free (hal_drive); + } + + void +@@ -501,10 +470,10 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + char *volume_icon; + char *unique_volume_name; + LibHalContext *hal_ctx; +- HalDrive *hal_drive; +- HalVolume *hal_volume; ++ LibHalDrive *hal_drive; ++ LibHalVolume *hal_volume; + GnomeVFSHalUserData *hal_userdata; +- HalStoragePolicy *hal_storage_policy; ++ LibHalStoragePolicy *hal_storage_policy; + char *target_mount_point; + + hal_volume = NULL; +@@ -515,7 +484,7 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + if (volume == NULL || volume->priv == NULL || volume->priv->device_path == NULL) + goto out; + +- hal_userdata = (GnomeVFSHalUserData *) hal_ctx_get_user_data (hal_ctx); ++ hal_userdata = (GnomeVFSHalUserData *) libhal_ctx_get_user_data (hal_ctx); + hal_storage_policy = hal_userdata->hal_storage_policy; + + /* Now, modify the drive with the hal stuff, unless we've already done so */ +@@ -526,17 +495,17 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + * /dev/sda1 etc, however we get the Drive object for the parent if + * that is the case. This is a feature of libhal-storage. + */ +- if ((hal_drive = hal_drive_from_device_file (hal_ctx, volume->priv->device_path)) == NULL) { ++ if ((hal_drive = libhal_drive_from_device_file (hal_ctx, volume->priv->device_path)) == NULL) { + g_warning ("%s: no hal drive for device=%s", __FUNCTION__, volume->priv->device_path); + goto out; + } +- if ((hal_volume = hal_volume_from_device_file (hal_ctx, volume->priv->device_path)) == NULL) { ++ if ((hal_volume = libhal_volume_from_device_file (hal_ctx, volume->priv->device_path)) == NULL) { + g_warning ("%s: no hal volume for device=%s", __FUNCTION__, volume->priv->device_path); + goto out; + } + + /* set display name */ +- volume_name = hal_volume_policy_compute_display_name (hal_drive, hal_volume, hal_storage_policy); ++ volume_name = libhal_volume_policy_compute_display_name (hal_drive, hal_volume, hal_storage_policy); + unique_volume_name = _gnome_vfs_volume_monitor_uniquify_volume_name ( + GNOME_VFS_VOLUME_MONITOR (volume_monitor_daemon), volume_name); + if (volume->priv->display_name != NULL) +@@ -545,10 +514,10 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + free (volume_name); + + /* set icon name; try dedicated icon name first... */ +- if (hal_drive_get_dedicated_icon_volume (hal_drive) != NULL) +- volume_icon = strdup (hal_drive_get_dedicated_icon_volume (hal_drive)); ++ if (libhal_drive_get_dedicated_icon_volume (hal_drive) != NULL) ++ volume_icon = strdup (libhal_drive_get_dedicated_icon_volume (hal_drive)); + else +- volume_icon = hal_volume_policy_compute_icon_name (hal_drive, hal_volume, hal_storage_policy); ++ volume_icon = libhal_volume_policy_compute_icon_name (hal_drive, hal_volume, hal_storage_policy); + if (volume->priv->icon != NULL) + g_free (volume->priv->icon); + volume->priv->icon = g_strdup (volume_icon); +@@ -558,7 +527,7 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + target_mount_point = NULL; + { + const char *str; +- str = hal_volume_get_mount_point (hal_volume); ++ str = libhal_volume_get_mount_point (hal_volume); + if (str != NULL) + target_mount_point = g_strdup (str); + } +@@ -569,16 +538,16 @@ _gnome_vfs_hal_mounts_modify_volume (Gno + + /* set whether it's visible on the desktop */ + volume->priv->is_user_visible = +- hal_volume_policy_should_be_visible (hal_drive, hal_volume, hal_storage_policy, target_mount_point) && +- (hal_drive_is_hotpluggable (hal_drive) || hal_drive_uses_removable_media (hal_drive)); ++ libhal_volume_policy_should_be_visible (hal_drive, hal_volume, hal_storage_policy, target_mount_point) && ++ (libhal_drive_is_hotpluggable (hal_drive) || libhal_drive_uses_removable_media (hal_drive)); + + g_free (target_mount_point); + + /* set hal udi */ +- volume->priv->hal_udi = g_strdup (hal_volume_get_udi (hal_volume)); ++ volume->priv->hal_udi = g_strdup (libhal_volume_get_udi (hal_volume)); + out: +- hal_drive_free (hal_drive); +- hal_volume_free (hal_volume); ++ libhal_drive_free (hal_drive); ++ libhal_volume_free (hal_volume); + } + + #endif /* USE_HAL */ diff --git a/gnome-vfs2.spec b/gnome-vfs2.spec index 0adef2b..aff760b 100644 --- a/gnome-vfs2.spec +++ b/gnome-vfs2.spec @@ -9,7 +9,7 @@ Summary: The GNOME virtual file-system libraries. Name: gnome-vfs2 Version: 2.9.91 -Release: 3 +Release: 5 License: LGPL Group: System Environment/Libraries Source0: gnome-vfs-%{version}.tar.bz2 @@ -33,7 +33,7 @@ BuildRequires: samba-common >= %{samba_version} BuildRequires: openssl-devel fam-devel BuildRequires: krb5-devel BuildRequires: howl-devel >= 0.9.8 -BuildRequires: hal-devel +BuildRequires: hal-devel >= 0.5.0 Prereq: GConf2 >= %{gconf2_version} Patch3: gnome-vfs-2.9.90-modules-conf.patch @@ -54,6 +54,9 @@ Patch104: gnome-vfs-2.8.2-browser_default.patch Patch201: gnome-vfs-2.8.1-console-mount-opt.patch +# send to upstream +Patch202: gnome-vfs-2.9.91-hal-api-2.patch + %description GNOME VFS is the GNOME virtual file system. It is the foundation of the Nautilus file manager. It provides a modular architecture and @@ -104,6 +107,9 @@ cp -f %{SOURCE1} modules %patch104 -p1 -b .browser_default %patch201 -p0 -b .console +#send to upstream +%patch202 -p0 -b .hal-api2 + %build # needed for patch6 (changing makefile to old vfolder backend) @@ -184,6 +190,9 @@ done %config %{_sysconfdir}/gnome-vfs-2.0/modules/smb-module.conf %changelog +* Mon Mar 7 2005 David Zeuthen - 2.9.91-5 +- Build with patch for new hal/dbus API's - require hal-devel >= 0.5.0 + * Wed Mar 2 2005 Tomas Mraz - 2.9.91-3 - rebuild with openssl-0.9.7e