Please describe the problem.

The assistant prints "No known volume monitor available through dbus; falling back to mtab polling" on startup. Based on source code, it expects to find org.gtk.Private.UDisks2VolumeMonitor on the session bus.

However, gvfs 1.26 (on GNOME 3.18) has renamed the service to org.gtk.vfs.UDisks2VolumeMonitor instead, and git-annex doesn't know about that yet.

What steps will reproduce the problem?

Start the assistant on GNOME 3.18.

What version of git-annex are you using? On what operating system?

Arch Linux: git-annex 6.20160114-8 gvfs 1.26.2-1

Please provide any additional information below.

The signals seem to have the same format:

signal time=1453449272.593009 sender=:1.25 -> destination=(null destination) serial=2270 path=/org/gtk/Private/RemoteVolumeMonitor; interface=org.gtk.Private.RemoteVolumeMonitor; member=MountAdded
   string "org.gtk.vfs.UDisks2VolumeMonitor"
   string "0x1981b90"
   struct {
      string "0x1981b90"
      string "A0D8-7268"
      string ". GThemedIcon drive-harddisk-usb drive-harddisk drive"
      string ". GThemedIcon drive-harddisk-usb-symbolic drive-harddisk-symbolic drive-symbolic drive-harddisk-usb drive-harddisk drive"
      string ""
      string "file:///run/media/grawity/A0D8-7268"
      boolean true
      string "0x7f396402a400"
      array [
      ]
      string "gvfs.time_detected_usec.1453449272586665"
      array [
      ]
   }

The DBus interface looks like this:

$ gdbus introspect -e -d org.gtk.vfs.UDisks2VolumeMonitor -o / -r
node /org/gtk/Private/RemoteVolumeMonitor {
  interface org.freedesktop.DBus.Properties {
    methods:
      Get(in  s interface_name,
          in  s property_name,
          out v value);
      GetAll(in  s interface_name,
             out a{sv} properties);
      Set(in  s interface_name,
          in  s property_name,
          in  v value);
    signals:
      PropertiesChanged(s interface_name,
                        a{sv} changed_properties,
                        as invalidated_properties);
    properties:
  };
  interface org.freedesktop.DBus.Introspectable {
    methods:
      Introspect(out s xml_data);
    signals:
    properties:
  };
  interface org.freedesktop.DBus.Peer {
    methods:
      Ping();
      GetMachineId(out s machine_uuid);
    signals:
    properties:
  };
  interface org.gtk.Private.RemoteVolumeMonitor {
    methods:
      IsSupported(out b is_supported);
      List(out a(ssssbbbbbbbbuasa{ss}sa{sv}) drives,
           out a(ssssssbbssa{ss}sa{sv}) volumes,
           out a(ssssssbsassa{sv}) mounts);
      CancelOperation(in  s cancellation_id,
                      out b was_cancelled);
      MountUnmount(in  s id,
                   in  s cancellation_id,
                   in  u unmount_flags,
                   in  s mount_op_id);
      VolumeMount(in  s id,
                  in  s cancellation_id,
                  in  u mount_flags,
                  in  s mount_op_id);
      DriveEject(in  s id,
                 in  s cancellation_id,
                 in  u unmount_flags,
                 in  s mount_op_id);
      DrivePollForMedia(in  s id,
                        in  s cancellation_id);
      DriveStart(in  s id,
                 in  s cancellation_id,
                 in  u flags,
                 in  s mount_op_id);
      DriveStop(in  s id,
                in  s cancellation_id,
                in  u unmount_flags,
                in  s mount_op_id);
      MountOpReply(in  s mount_op_id,
                   in  i result,
                   in  s user_name,
                   in  s domain,
                   in  s encoded_password,
                   in  i password_save,
                   in  i choice,
                   in  b anonymous);
    signals:
      DriveChanged(s dbus_name,
                   s id,
                   (ssssbbbbbbbbuasa{ss}sa{sv}) drive);
      DriveConnected(s dbus_name,
                     s id,
                     (ssssbbbbbbbbuasa{ss}sa{sv}) drive);
      DriveDisconnected(s dbus_name,
                        s id,
                        (ssssbbbbbbbbuasa{ss}sa{sv}) drive);
      DriveEjectButton(s dbus_name,
                       s id,
                       (ssssbbbbbbbbuasa{ss}sa{sv}) drive);
      DriveStopButton(s dbus_name,
                      s id,
                      (ssssbbbbbbbbuasa{ss}sa{sv}) drive);
      VolumeChanged(s dbus_name,
                    s id,
                    (ssssssbbssa{ss}sa{sv}) volume);
      VolumeAdded(s dbus_name,
                  s id,
                  (ssssssbbssa{ss}sa{sv}) volume);
      VolumeRemoved(s dbus_name,
                    s id,
                    (ssssssbbssa{ss}sa{sv}) volume);
      MountChanged(s dbus_name,
                   s id,
                   (ssssssbsassa{sv}) mount);
      MountAdded(s dbus_name,
                 s id,
                 (ssssssbsassa{sv}) mount);
      MountPreUnmount(s dbus_name,
                      s id,
                      (ssssssbsassa{sv}) mount);
      MountRemoved(s dbus_name,
                   s id,
                   (ssssssbsassa{sv}) mount);
      MountOpAskPassword(s dbus_name,
                         s id,
                         s message_to_show,
                         s default_user,
                         s default_domain,
                         u flags);
      MountOpAskQuestion(s dbus_name,
                         s id,
                         s message_to_show,
                         as choices);
      MountOpShowProcesses(s dbus_name,
                           s id,
                           s message_to_show,
                           ai pid,
                           as choices);
      MountOpShowUnmountProgress(s dbus_name,
                                 s id,
                                 s message_to_show,
                                 x time_left,
                                 x bytes_left);
      MountOpAborted(s dbus_name,
                     s id);
    properties:
  };
};

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Works fine in general.

fixed --Joey