Hello community,

here is the log from the commit of package gvfs for openSUSE:Factory checked in 
at 2018-05-10 15:46:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gvfs (Old)
 and      /work/SRC/openSUSE:Factory/.gvfs.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gvfs"

Thu May 10 15:46:23 2018 rev:150 rq:605085 version:1.36.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/gvfs/gvfs.changes        2018-04-19 
15:22:32.344006119 +0200
+++ /work/SRC/openSUSE:Factory/.gvfs.new/gvfs.changes   2018-05-10 
15:46:26.555767080 +0200
@@ -1,0 +2,11 @@
+Mon May  7 09:55:50 UTC 2018 - [email protected]
+
+- Update to version 1.36.2:
+  + udisks2: Remove optical disc volumes/mounts if drive
+    disappears.
+  + daemon: Prevent deadlock and invalid read when closing
+    channels.
+  + metadata: Prevent usage of NULL if GUdevDevice is not found.
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  gvfs-1.36.1.tar.xz

New:
----
  gvfs-1.36.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gvfs.spec ++++++
--- /var/tmp/diff_new_pack.HgbdXq/_old  2018-05-10 15:46:27.223742599 +0200
+++ /var/tmp/diff_new_pack.HgbdXq/_new  2018-05-10 15:46:27.223742599 +0200
@@ -19,7 +19,7 @@
 %define with_udisks2 1
 %define with_cdda 1
 Name:           gvfs
-Version:        1.36.1
+Version:        1.36.2
 Release:        0
 Summary:        Virtual File System functionality for GLib
 License:        LGPL-2.0-or-later AND GPL-3.0-only

++++++ gvfs-1.36.1.tar.xz -> gvfs-1.36.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/NEWS new/gvfs-1.36.2/NEWS
--- old/gvfs-1.36.1/NEWS        2018-04-09 16:42:14.000000000 +0200
+++ new/gvfs-1.36.2/NEWS        2018-05-07 10:11:16.000000000 +0200
@@ -1,3 +1,10 @@
+Major changes in 1.36.2
+=======================
+* udisks2: Remove optical disc volumes/mounts if drive disappears
+* daemon: Prevent deadlock and invalid read when closing channels
+* metadata: Prevent usage of NULL if GUdevDevice is not found
+* Translation updates
+
 Major changes in 1.36.1
 =======================
 * backend: Fix crashes when "Volume is busy" prompt is shown
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/configure.ac new/gvfs-1.36.2/configure.ac
--- old/gvfs-1.36.1/configure.ac        2018-04-09 16:42:14.000000000 +0200
+++ new/gvfs-1.36.2/configure.ac        2018-05-07 10:11:16.000000000 +0200
@@ -1,6 +1,6 @@
 AC_PREREQ([2.64])
 
-AC_INIT([gvfs],[1.36.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=gvfs])
+AC_INIT([gvfs],[1.36.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=gvfs])
 AM_INIT_AUTOMAKE([1.11.1 no-dist-gzip dist-xz tar-ustar -Wno-portability])
 
 AC_CONFIG_HEADERS(config.h)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/daemon/gvfsdaemon.c 
new/gvfs-1.36.2/daemon/gvfsdaemon.c
--- old/gvfs-1.36.1/daemon/gvfsdaemon.c 2018-04-09 16:42:15.000000000 +0200
+++ new/gvfs-1.36.2/daemon/gvfsdaemon.c 2018-05-07 10:11:16.000000000 +0200
@@ -1125,13 +1125,29 @@
                                    GVfsBackend *backend)
 {
   GList *l;
+  GVfsChannel *channel_to_close;
 
-  g_mutex_lock (&daemon->lock);
+  do
+    {
+      channel_to_close = NULL;
 
-  for (l = daemon->job_sources; l != NULL; l = l->next)
-    if (G_VFS_IS_CHANNEL (l->data) &&
-        g_vfs_channel_get_backend (G_VFS_CHANNEL (l->data)) == backend)
-      g_vfs_channel_force_close (G_VFS_CHANNEL (l->data));
+      g_mutex_lock (&daemon->lock);
+      for (l = daemon->job_sources; l != NULL; l = l->next)
+        {
+          if (G_VFS_IS_CHANNEL (l->data) &&
+              g_vfs_channel_get_backend (G_VFS_CHANNEL (l->data)) == backend)
+            {
+              channel_to_close = g_object_ref (G_VFS_CHANNEL (l->data));
+              break;
+            }
+        }
+      g_mutex_unlock (&daemon->lock);
 
-  g_mutex_unlock (&daemon->lock);
+      if (channel_to_close)
+        {
+          g_vfs_channel_force_close (channel_to_close);
+          g_object_unref (channel_to_close);
+        }
+    }
+  while (channel_to_close != NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/meson.build new/gvfs-1.36.2/meson.build
--- old/gvfs-1.36.1/meson.build 2018-04-09 16:42:15.000000000 +0200
+++ new/gvfs-1.36.2/meson.build 2018-05-07 10:11:16.000000000 +0200
@@ -1,6 +1,6 @@
 project(
   'gvfs', 'c',
-  version: '1.36.1',
+  version: '1.36.2',
   license: 'LGPL2+',
   default_options: [
     'b_lundef=true',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/metadata/meta-daemon.c 
new/gvfs-1.36.2/metadata/meta-daemon.c
--- old/gvfs-1.36.1/metadata/meta-daemon.c      2018-04-09 16:42:15.000000000 
+0200
+++ new/gvfs-1.36.2/metadata/meta-daemon.c      2018-05-07 10:11:16.000000000 
+0200
@@ -319,13 +319,15 @@
     g_once_init_leave (&gudev_client, g_udev_client_new (NULL));
 
   device = g_udev_client_query_by_device_number (gudev_client, 
G_UDEV_DEVICE_TYPE_BLOCK, devnum);
+  if (device != NULL)
+    {
+      if (g_udev_device_has_property (device, "ID_FS_UUID_ENC"))
+        res = g_strconcat ("uuid-", g_udev_device_get_property (device, 
"ID_FS_UUID_ENC"), NULL);
+      else if (g_udev_device_has_property (device, "ID_FS_LABEL_ENC"))
+        res = g_strconcat ("label-", g_udev_device_get_property (device, 
"ID_FS_LABEL_ENC"), NULL);
 
-  if (g_udev_device_has_property (device, "ID_FS_UUID_ENC"))
-    res = g_strconcat ("uuid-", g_udev_device_get_property (device, 
"ID_FS_UUID_ENC"), NULL);
-  else if (g_udev_device_has_property (device, "ID_FS_LABEL_ENC"))
-    res = g_strconcat ("label-", g_udev_device_get_property (device, 
"ID_FS_LABEL_ENC"), NULL);
-
-  g_clear_object (&device);
+      g_clear_object (&device);
+    }
 #endif
 
   gvfs_metadata_complete_get_tree_from_device (object, invocation, res ? res : 
"");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gvfs-1.36.1/monitor/udisks2/gvfsudisks2volumemonitor.c 
new/gvfs-1.36.2/monitor/udisks2/gvfsudisks2volumemonitor.c
--- old/gvfs-1.36.1/monitor/udisks2/gvfsudisks2volumemonitor.c  2018-04-09 
16:42:15.000000000 +0200
+++ new/gvfs-1.36.2/monitor/udisks2/gvfsudisks2volumemonitor.c  2018-05-07 
10:11:16.000000000 +0200
@@ -972,62 +972,19 @@
 /* 
----------------------------------------------------------------------------------------------------
 */
 
 static GVfsUDisks2Volume *
-find_disc_volume_for_udisks_drive (GVfsUDisks2VolumeMonitor *monitor,
-                                   UDisksDrive              *udisks_drive)
+find_disc_volume_for_block (GVfsUDisks2VolumeMonitor *monitor,
+                            UDisksBlock              *block)
 {
   GVfsUDisks2Volume *ret = NULL;
   GList *l;
 
   for (l = monitor->disc_volumes; l != NULL; l = l->next)
     {
-      GVolume *volume = G_VOLUME (l->data);
-      GDrive *drive = g_volume_get_drive (volume);
-      if (drive != NULL)
-        {
-          if (gvfs_udisks2_drive_get_udisks_drive (GVFS_UDISKS2_DRIVE (drive)) 
== udisks_drive)
-            {
-              ret = GVFS_UDISKS2_VOLUME (volume);
-              g_object_unref (drive);
-              goto out;
-            }
-          g_object_unref (drive);
-        }
-    }
-
- out:
-  return ret;
-}
-
-/* 
----------------------------------------------------------------------------------------------------
 */
-
-static GVfsUDisks2Mount *
-find_disc_mount_for_udisks_drive (GVfsUDisks2VolumeMonitor *monitor,
-                                  UDisksDrive              *udisks_drive)
-{
-  GVfsUDisks2Mount *ret = NULL;
-  GList *l;
-
-  for (l = monitor->disc_mounts; l != NULL; l = l->next)
-    {
-      GMount *mount = G_MOUNT (l->data);
-      GVolume *volume;
-
-      volume = g_mount_get_volume (mount);
-      if (volume != NULL)
+      GVfsUDisks2Volume *volume = GVFS_UDISKS2_VOLUME (l->data);
+      if (gvfs_udisks2_volume_get_block (volume) == block)
         {
-          GDrive *drive = g_volume_get_drive (volume);
-          if (drive != NULL)
-            {
-              if (gvfs_udisks2_drive_get_udisks_drive (GVFS_UDISKS2_DRIVE 
(drive)) == udisks_drive)
-                {
-                  ret = GVFS_UDISKS2_MOUNT (mount);
-                  g_object_unref (volume);
-                  g_object_unref (drive);
-                  goto out;
-                }
-              g_object_unref (drive);
-            }
-          g_object_unref (volume);
+          ret = volume;
+          goto out;
         }
     }
 
@@ -1800,11 +1757,10 @@
               gboolean                   coldplug)
 {
   GList *objects;
-  GList *cur_disc_drives;
-  GList *new_disc_drives;
+  GList *cur_disc_block_volumes;
+  GList *new_disc_block_volumes;
   GList *removed, *added;
   GList *l;
-  GVfsUDisks2Drive *drive;
   GVfsUDisks2Volume *volume;
   GVfsUDisks2Mount *mount;
 
@@ -1817,22 +1773,19 @@
 
   objects = g_dbus_object_manager_get_objects 
(udisks_client_get_object_manager (monitor->client));
 
-  cur_disc_drives = NULL;
+  cur_disc_block_volumes = NULL;
   for (l = monitor->disc_volumes; l != NULL; l = l->next)
     {
-      volume = GVFS_UDISKS2_VOLUME (l->data);
-      drive = GVFS_UDISKS2_DRIVE (g_volume_get_drive (G_VOLUME (volume)));
-      if (drive != NULL)
-        {
-          cur_disc_drives = g_list_prepend (cur_disc_drives, 
gvfs_udisks2_drive_get_udisks_drive (drive));
-          g_object_unref (drive);
-        }
+      cur_disc_block_volumes = g_list_prepend (cur_disc_block_volumes,
+                                               gvfs_udisks2_volume_get_block 
(GVFS_UDISKS2_VOLUME (l->data)));
     }
 
-  new_disc_drives = NULL;
+  new_disc_block_volumes = NULL;
   for (l = objects; l != NULL; l = l->next)
     {
       UDisksDrive *udisks_drive = udisks_object_peek_drive (UDISKS_OBJECT 
(l->data));
+      UDisksBlock *block;
+
       if (udisks_drive == NULL)
         continue;
 
@@ -1844,20 +1797,25 @@
             udisks_drive_get_optical_num_audio_tracks (udisks_drive) > 0))
         continue;
 
-      new_disc_drives = g_list_prepend (new_disc_drives, udisks_drive);
+      block = udisks_client_get_block_for_drive (monitor->client, 
udisks_drive, FALSE);
+      if (block != NULL)
+        new_disc_block_volumes = g_list_prepend (new_disc_block_volumes, 
block);
     }
 
-  cur_disc_drives = g_list_sort (cur_disc_drives, (GCompareFunc) 
udisks_drive_compare);
-  new_disc_drives = g_list_sort (new_disc_drives, (GCompareFunc) 
udisks_drive_compare);
-  diff_sorted_lists (cur_disc_drives, new_disc_drives, (GCompareFunc) 
udisks_drive_compare,
+  cur_disc_block_volumes = g_list_sort (cur_disc_block_volumes, (GCompareFunc) 
block_compare);
+  new_disc_block_volumes = g_list_sort (new_disc_block_volumes, (GCompareFunc) 
block_compare);
+  diff_sorted_lists (cur_disc_block_volumes, new_disc_block_volumes, 
(GCompareFunc) block_compare,
                      &added, &removed, NULL);
 
   for (l = removed; l != NULL; l = l->next)
     {
-      UDisksDrive *udisks_drive = UDISKS_DRIVE (l->data);
+      UDisksBlock *block = UDISKS_BLOCK (l->data);
+
+      volume = find_disc_volume_for_block (monitor, block);
 
-      volume = find_disc_volume_for_udisks_drive (monitor, udisks_drive);
-      mount = find_disc_mount_for_udisks_drive (monitor, udisks_drive);
+      mount = NULL;
+      if (volume != NULL)
+        mount = GVFS_UDISKS2_MOUNT (g_volume_get_mount (G_VOLUME (volume)));
 
       if (mount != NULL)
         {
@@ -1875,17 +1833,19 @@
 
   for (l = added; l != NULL; l = l->next)
     {
-      UDisksDrive *udisks_drive = UDISKS_DRIVE (l->data);
-      UDisksBlock *block;
+      UDisksBlock *block = UDISKS_BLOCK (l->data);
 
-      block = udisks_client_get_block_for_drive (monitor->client, 
udisks_drive, FALSE);
-      if (block != NULL)
+      volume = find_disc_volume_for_block (monitor, block);
+      if (volume == NULL)
         {
-          volume = find_disc_volume_for_udisks_drive (monitor, udisks_drive);
-          if (volume == NULL)
+          UDisksDrive *udisks_drive;
+
+          udisks_drive = udisks_client_get_drive_for_block (monitor->client, 
block);
+          if (udisks_drive != NULL)
             {
               gchar *uri;
               GFile *activation_root;
+
               if (udisks_drive_get_optical_blank (udisks_drive))
                 {
                   uri = g_strdup ("burn://");
@@ -1923,16 +1883,17 @@
 
               g_object_unref (activation_root);
               g_free (uri);
+              g_object_unref (udisks_drive);
             }
-          g_object_unref (block);
         }
+      g_object_unref (block);
     }
 
   g_list_free (added);
   g_list_free (removed);
 
-  g_list_free (new_disc_drives);
-  g_list_free (cur_disc_drives);
+  g_list_free (new_disc_block_volumes);
+  g_list_free (cur_disc_block_volumes);
 
   g_list_free_full (objects, g_object_unref);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gvfs-1.36.1/po/sl.po new/gvfs-1.36.2/po/sl.po
--- old/gvfs-1.36.1/po/sl.po    2018-04-09 16:42:15.000000000 +0200
+++ new/gvfs-1.36.2/po/sl.po    2018-05-07 10:11:16.000000000 +0200
@@ -105,7 +105,7 @@
 #: monitor/proxy/gproxymount.c:502 monitor/proxy/gproxymount.c:587
 #: monitor/proxy/gproxyvolume.c:863 monitor/proxy/gproxyvolume.c:927
 msgid "Operation was cancelled"
-msgstr "Opravilo je bilo preklicano."
+msgstr "Opravilo je preklicano."
 
 #: client/gdaemonfileinputstream.c:1355 client/gdaemonfileoutputstream.c:1035
 msgid "Seek not supported on stream"
@@ -113,7 +113,7 @@
 
 #: client/gdaemonfileoutputstream.c:1204
 msgid "Truncate not supported on stream"
-msgstr "Razčlenitev ni podprta na pretoku"
+msgstr "Razčlenjevanje na pretoku ni podprto"
 
 #: client/gdaemonvfs.c:781
 #, c-format
@@ -127,7 +127,7 @@
 #: common/gvfsdnssdresolver.c:208
 #, c-format
 msgid "Error initializing Avahi: %s"
-msgstr "Napaka med začenjanjem Avahi: %s"
+msgstr "Napaka med začenjanjem programa Avahi: %s"
 
 #. Translators:
 #. * - the first %s refers to the service type
@@ -148,11 +148,9 @@
 #: common/gvfsdnssdresolver.c:1109
 #, c-format
 msgid ""
-"Error resolving “%s” service “%s” on domain “%s”. One or more TXT records "
-"are missing. Keys required: “%s”."
+"Error resolving “%s” service “%s” on domain “%s”. One or more TXT records are 
missing. Keys required: “%s”."
 msgstr ""
-"Napaka med razreševanjem storitve »%s« »%s« na domeni »%s«. Manjka en ali "
-"več besedilnih zapisov. Zahtevan ključ: »%s«."
+"Napaka med razreševanjem storitve »%s« »%s« na domeni »%s«. Manjka en ali več 
besedilnih zapisov. Zahtevan ključ: »%s«."
 
 #. Translators:
 #. * - the first %s refers to the service type
@@ -162,7 +160,7 @@
 #: common/gvfsdnssdresolver.c:1124
 #, c-format
 msgid "Timed out resolving “%s” service “%s” on domain “%s”"
-msgstr "Časovni pretek razreševanja storitve »%s« »%s« na domeni »%s«"
+msgstr "Razreševanje storitve »%s« »%s« na domeni »%s« je časovno poteklo."
 
 #: common/gvfsdnssdresolver.c:1164
 msgid "Error initializing Avahi resolver"
@@ -172,7 +170,7 @@
 #: common/gvfsdnssdutils.c:280
 #, c-format
 msgid "Malformed DNS-SD encoded_triple “%s”"
-msgstr "Neveljaven zapis DNS-SD predmeta encoded_triple »%s«"
+msgstr "Neveljaven zapis predmeta DNS-SD encoded_triple »%s«"
 
 #: common/gvfsicon.c:250
 #, c-format
@@ -284,20 +282,16 @@
 #: daemon/gvfsafpserver.c:729
 #, c-format
 msgid ""
-"Unable to connect to the server “%s”. No suitable authentication mechanism "
-"was found."
+"Unable to connect to the server “%s”. No suitable authentication mechanism 
was found."
 msgstr ""
-"Prijava na strežnik »%s« je spodletela. Ustreznega načina overitve ni mogoče "
-"najti."
+"Prijava na strežnik »%s« je spodletela. Ustreznega načina overitve ni mogoče 
najti."
 
 #: daemon/gvfsafpserver.c:804
 #, c-format
 msgid ""
-"Unable to connect to the server “%s”. The server doesn’t support AFP version "
-"3.0 or later."
+"Unable to connect to the server “%s”. The server doesn’t support AFP version 
3.0 or later."
 msgstr ""
-"Povezava na strežnik »%s« ni uspela. Strežnik ne podpira različice AFP 3.0 "
-"ali novejše."
+"Povezava na strežnik »%s« ni uspela. Strežnik ne podpira različice AFP 3.0 
ali novejše."
 
 #: daemon/gvfsafpserver.c:915
 msgid "Permission denied."
@@ -337,8 +331,7 @@
 
 #: daemon/gvfsafpserver.c:1366 daemon/gvfsafpserver.c:1766
 msgid "Unable to connect to the server. A communication problem occurred."
-msgstr ""
-"Povezava na strežnik ni uspela. Prišlo je do težave pri izmenjavi podatkov."
+msgstr "Povezava na strežnik ni uspela. Prišlo je do težave pri izmenjavi 
podatkov."
 
 #: daemon/gvfsafpserver.c:1722
 msgid "Identification not found."
@@ -2187,8 +2180,8 @@
 "%s can be safely unplugged\n"
 "Device can be removed."
 msgstr ""
-"Naprave %s ni mogoče varno odklopiti.\n"
-"Trenutno naprave ni mogoče odstraniti."
+"Napravo %s je mogoče varno odklopiti.\n"
+"Napravo je mogoče odstraniti."
 
 #. Translators: This is used for encrypted volumes.
 #. *              The first %s is the formatted size (e.g. "42.0 MB").
@@ -2223,7 +2216,7 @@
 
 #: monitor/udisks2/gvfsudisks2volume.c:1218
 msgid "The unlocked device does not have a recognizable file system on it"
-msgstr "Odklenjena naprava ne vsebuje prepoznavnega datotečnega sistema."
+msgstr "Odklenjena naprava je brez prepoznanega datotečnega sistema."
 
 #: monitor/udisks2/gvfsudisks2volume.c:1247
 #, c-format


Reply via email to