Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libcloudproviders for 
openSUSE:Factory checked in at 2026-11-09 16:02:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libcloudproviders (Old)
 and      /work/SRC/openSUSE:Factory/.libcloudproviders.new.3759290 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libcloudproviders"

Mon Nov  9 16:02:41 2026 rev:15 rq:1395905 version:0.4.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libcloudproviders/libcloudproviders.changes      
2026-09-04 12:36:52.399131402 +0200
+++ 
/work/SRC/openSUSE:Factory/.libcloudproviders.new.3759290/libcloudproviders.changes
 2026-11-09 16:02:43.853001686 +0100
@@ -1,0 +2,10 @@
+Wed Nov  4 14:57:31 UTC 2026 - Bjørn Lie <[email protected]>
+
+- Update to version 0.4.2:
+  * Allow to use services installed on user side
+  * Prevent many possible crashes
+  * Plug several memory leaks
+  * Improve the D-Bus interface documentation
+- Update version dependencies according to meson.build.
+
+-------------------------------------------------------------------

Old:
----
  libcloudproviders-0.4.1.tar.xz

New:
----
  libcloudproviders-0.4.2.tar.xz

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

Other differences:
------------------
++++++ libcloudproviders.spec ++++++
--- /var/tmp/diff_new_pack.E2ROv9/_old  2026-11-09 16:02:44.671035977 +0100
+++ /var/tmp/diff_new_pack.E2ROv9/_new  2026-11-09 16:02:44.673036060 +0100
@@ -19,7 +19,7 @@
 %define _typelibdir %(pkg-config --variable=typelibdir 
gobject-introspection-1.0)
 %define _girdir %(pkg-config --variable=girdir gobject-introspection-1.0)
 Name:           libcloudproviders
-Version:        0.4.1
+Version:        0.4.2
 Release:        0
 Summary:        Library/Client to integrate cloud storage providers
 License:        LGPL-3.0-or-later
@@ -29,9 +29,9 @@
 
 BuildRequires:  meson >= 1.9.0
 BuildRequires:  pkgconfig
-BuildRequires:  pkgconfig(gio-2.0) >= 2.51.2
-BuildRequires:  pkgconfig(gio-unix-2.0) >= 2.51.2
-BuildRequires:  pkgconfig(glib-2.0) >= 2.51.2
+BuildRequires:  pkgconfig(gio-2.0) >= 2.64
+BuildRequires:  pkgconfig(gio-unix-2.0) >= 2.64
+BuildRequires:  pkgconfig(glib-2.0) >= 2.64
 BuildRequires:  pkgconfig(gobject-introspection-1.0)
 BuildRequires:  pkgconfig(systemd)
 BuildRequires:  pkgconfig(vapigen)

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.E2ROv9/_old  2026-11-09 16:02:44.701037234 +0100
+++ /var/tmp/diff_new_pack.E2ROv9/_new  2026-11-09 16:02:44.704037360 +0100
@@ -1,7 +1,7 @@
-mtime: 1788010007
-commit: cef613dacf79ca4c7818142bb7f1ff77bf4273419f0901bcd56194789b2ac2ac
+mtime: 1793804309
+commit: 1ea20b6da3977d6d4a0f1a9a7651989ecb073ffc834bb9a4333de90c1f7dd91f
 url: https://src.opensuse.org/GNOME/libcloudproviders
-revision: cef613dacf79ca4c7818142bb7f1ff77bf4273419f0901bcd56194789b2ac2ac
+revision: 1ea20b6da3977d6d4a0f1a9a7651989ecb073ffc834bb9a4333de90c1f7dd91f
 trackingbranch: factory
 projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj
 

++++++ _service ++++++
--- /var/tmp/diff_new_pack.E2ROv9/_old  2026-11-09 16:02:44.724038198 +0100
+++ /var/tmp/diff_new_pack.E2ROv9/_new  2026-11-09 16:02:44.728038366 +0100
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param 
name="url">https://gitlab.gnome.org/World/libcloudproviders.git</param>
-    <param name="revision">0.4.1</param>
+    <param name="revision">0.4.2</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">v?(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-11-04 15:58:29.000000000 +0100
@@ -0,0 +1,5 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
+osc-collab.*

++++++ libcloudproviders-0.4.1.tar.xz -> libcloudproviders-0.4.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcloudproviders-0.4.1/CHANGELOG 
new/libcloudproviders-0.4.2/CHANGELOG
--- old/libcloudproviders-0.4.1/CHANGELOG       2026-08-28 17:06:57.000000000 
+0200
+++ new/libcloudproviders-0.4.2/CHANGELOG       2026-11-04 15:49:46.000000000 
+0100
@@ -1,3 +1,10 @@
+0.4.2
+-----
+* Allow to use services installed on user side
+* Prevent many possible crashes
+* Plug several memory leaks
+* Improve the D-Bus interface documentation
+
 0.4.1
 -----
 * Complete the documentation to fix the validation test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcloudproviders-0.4.1/data/cloud-providers-dbus.xml 
new/libcloudproviders-0.4.2/data/cloud-providers-dbus.xml
--- old/libcloudproviders-0.4.1/data/cloud-providers-dbus.xml   2026-08-28 
17:06:57.000000000 +0200
+++ new/libcloudproviders-0.4.2/data/cloud-providers-dbus.xml   2026-11-04 
15:49:46.000000000 +0100
@@ -19,15 +19,78 @@
  SPDX-License-Identifier: LGPL-3.0-or-later
 -->
 <node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd";>
+  <!--
+    org.freedesktop.CloudProviders.Provider:
+    @short_description: A cloud storage provider
+
+    A provider can be for instance a cloud storage application.
+    As it implements the standard `org.freedesktop.DBus.ObjectManager`, clients
+    use it to discover the `org.freedesktop.CloudProviders.Account` objects and
+    to be notified when accounts are added or removed.
+  -->
   <interface name='org.freedesktop.CloudProviders.Provider'>
+    <!--
+      Name:
+
+      The human readable, localized name of the provider, suitable for display
+      in a user interface.
+    -->
     <property name="Name" type="s" access="read"/>
   </interface>
 
+  <!--
+    org.freedesktop.CloudProviders.Account:
+    @short_description: A cloud storage account
+
+    An account represents one logged-in account of a
+    `org.freedesktop.CloudProviders.Provider`. It is exported as a
+    child object of the provider.
+
+    A provider may also export, on the same bus connection and at the account's
+    object path, a menu (`org.gtk.Menus`) describing the entries clients may
+    show for the account, and an action group (`org.gtk.Actions`) activated by
+    the client when the user selects them.
+  -->
   <interface name='org.freedesktop.CloudProviders.Account'>
+    <!--
+      Name:
+
+      The human readable name of the account, typically the user name or the
+      server it is bound to. Suitable for display in a user interface.
+    -->
     <property name="Name" type="s" access="read"/>
+    <!--
+      Path:
+
+      The absolute URI or file path of the local folder where the account's
+      files are synchronized. Clients use it to open the folder, for example in
+      a file manager.
+    -->
     <property name="Path" type="s" access="read"/>
+    <!--
+      Icon:
+
+      The icon of the account, serialized with `g_icon_to_string()`. This is
+      either a themed icon name or a file path/URI.
+    -->
     <property name="Icon" type="s" access="read"/>
+    <!--
+      Status:
+
+      The synchronization status of the account:
+
+      - `0`: invalid, the initial state is not known yet
+      - `1`: idle, everything is synchronized
+      - `2`: syncing, data is currently being synchronized
+      - `3`: error, an error occurred; see StatusDetails
+    -->
     <property name="Status" type="i" access="read"/>
+    <!--
+      StatusDetails:
+
+      An optional, human readable, localized description of the current 
status, for
+      example the sync progress or the error message.
+    -->
     <property name="StatusDetails" type="s" access="read"/>
   </interface>
 </node>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcloudproviders-0.4.1/meson.build 
new/libcloudproviders-0.4.2/meson.build
--- old/libcloudproviders-0.4.1/meson.build     2026-08-28 17:06:57.000000000 
+0200
+++ new/libcloudproviders-0.4.2/meson.build     2026-11-04 15:49:46.000000000 
+0100
@@ -1,5 +1,5 @@
 project ('libcloudproviders', 'c',
-  version: '0.4.1',
+  version: '0.4.2',
   meson_version: '>=1.9.0',
   license: 'LGPL-3.0-or-later',
   default_options: [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcloudproviders-0.4.1/src/cloudprovidersaccount.c 
new/libcloudproviders-0.4.2/src/cloudprovidersaccount.c
--- old/libcloudproviders-0.4.1/src/cloudprovidersaccount.c     2026-08-28 
17:06:57.000000000 +0200
+++ new/libcloudproviders-0.4.2/src/cloudprovidersaccount.c     2026-11-04 
15:49:46.000000000 +0100
@@ -100,7 +100,7 @@
                  GParamSpec            *pspec,
                  CloudProvidersAccount *self)
 {
-    GError *error = NULL;
+    g_autoptr(GError) error = NULL;
 
     g_clear_object (&self->icon);
     self->icon = g_icon_new_for_string (cloud_providers_dbus_account_get_icon 
(self->proxy), &error);
@@ -127,7 +127,7 @@
     GMenuModel *menu_model;
     GActionGroup *action_group;
     GIcon *icon = NULL;
-    GError *error = NULL;
+    g_autoptr(GError) error = NULL;
     g_autofree gchar *bus_name = NULL;
     const gchar *object_path;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcloudproviders-0.4.1/src/cloudproviderscollector.c 
new/libcloudproviders-0.4.2/src/cloudproviderscollector.c
--- old/libcloudproviders-0.4.1/src/cloudproviderscollector.c   2026-08-28 
17:06:57.000000000 +0200
+++ new/libcloudproviders-0.4.2/src/cloudproviderscollector.c   2026-11-04 
15:49:46.000000000 +0100
@@ -173,13 +173,13 @@
 {
     g_autoptr(CloudProvidersProvider) provider = NULL;
 
-    provider = cloud_providers_provider_new (bus_name, object_path);
     if (g_hash_table_contains (self->providers_bus_names, bus_name))
     {
         g_debug ("Skipped duplicate provider: %s %s\n", bus_name, object_path);
         return;
     }
 
+    provider = cloud_providers_provider_new (bus_name, object_path);
     self->providers = g_list_append (self->providers, g_object_ref (provider));
     g_hash_table_add (self->providers_bus_names, g_strdup (bus_name));
     g_signal_connect_swapped (provider, "removed",
@@ -188,7 +188,7 @@
     g_debug ("Client loading provider: %s %s\n", bus_name, object_path);
 }
 
-static void
+static gboolean
 load_cloud_provider_from_desktop_file (CloudProvidersCollector *self,
                                        GFile                   *file)
 {
@@ -202,14 +202,14 @@
     path = g_file_get_path (file);
     if (!g_str_has_suffix (path, ".desktop"))
     {
-        return;
+        return FALSE;
     }
 
     key_file = g_key_file_new ();
     if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, &error))
     {
         g_warning ("Error loading .desktop file at %s: %s", path, 
error->message);
-        return;
+        return FALSE;
     }
 
     implements = g_key_file_get_string_list (key_file, 
G_KEY_FILE_DESKTOP_GROUP, "Implements", NULL, &error);
@@ -220,12 +220,12 @@
             g_warning ("Error loading Implements key from %s: %s", path, 
error->message);
         }
 
-        return;
+        return FALSE;
     }
 
     if (!g_strv_contains((const gchar * const *) implements, 
XDG_DESKTOP_IMPLEMENTS))
     {
-        return;
+        return FALSE;
     }
 
     bus_name = g_key_file_get_string (key_file, XDG_DESKTOP_IMPLEMENTS, 
"BusName", NULL);
@@ -234,10 +234,11 @@
     if (!bus_name || !object_path)
     {
         g_warning ("Unable to find BusName or ObjectPath keys in 
"XDG_DESKTOP_IMPLEMENTS" section from %s", path);
-        return;
+        return FALSE;
     }
 
     add_cloud_provider (self, bus_name, object_path);
+    return TRUE;
 }
 
 static void
@@ -245,15 +246,13 @@
                                    GFile                   *file)
 {
     g_autoptr(GKeyFile) key_file = g_key_file_new ();
+    g_autoptr(GError) error = NULL;
     g_autofree gchar *path = NULL;
-    GError *error = NULL;
     g_autofree gchar *bus_name = NULL;
     g_autofree gchar *object_path = NULL;
-    CloudProvidersProvider *provider;
 
     path = g_file_get_path (file);
-    g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, &error);
-    if (error != NULL)
+    if (!g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, &error))
     {
         g_debug ("Error while loading cloud provider key file at %s with error 
%s", path, error->message);
         return;
@@ -261,29 +260,24 @@
 
     if (!g_key_file_has_group (key_file, KEY_FILE_GROUP))
     {
-        g_debug ("Error while loading cloud provider key file at %s with error 
%s", path, error->message);
+        g_debug ("Cloud provider key file at %s has no group "KEY_FILE_GROUP, 
path);
         return;
     }
 
     bus_name = g_key_file_get_string (key_file, KEY_FILE_GROUP, "BusName", 
&error);
-    if (error != NULL)
+    if (!bus_name)
     {
         g_debug ("Error while loading cloud provider key file at %s with error 
%s", path, error->message);
         return;
     }
     object_path = g_key_file_get_string (key_file, KEY_FILE_GROUP, 
"ObjectPath", &error);
-    if (error != NULL)
+    if (!object_path)
     {
         g_debug ("Error while loading cloud provider key file at %s with error 
%s", path, error->message);
         return;
     }
 
-    provider = cloud_providers_provider_new (bus_name, object_path);
-    self->providers = g_list_append (self->providers, provider);
-    g_signal_connect_swapped (provider, "removed",
-                              G_CALLBACK (on_provider_removed), self);
-
-    g_debug("Client loading provider: %s %s\n", bus_name, object_path);
+    add_cloud_provider (self, bus_name, object_path);
 }
 
 static void
@@ -295,13 +289,20 @@
 static void
 load_cloud_providers (CloudProvidersCollector *self)
 {
-    const gchar* const *data_dirs;
+    const gchar* const *system_dirs;
+    g_autoptr (GPtrArray) data_dirs = g_ptr_array_new ();
     const gchar *data_subdirs[] = {"applications", "cloud-providers"};
     guint i;
     gsize j;
 
-    data_dirs = g_get_system_data_dirs ();
-    for (i = 0; data_dirs[i] != NULL; i++)
+    g_ptr_array_add (data_dirs, (gpointer) g_get_user_data_dir ());
+    system_dirs = g_get_system_data_dirs ();
+    for (i = 0; system_dirs[i] != NULL; i++)
+    {
+        g_ptr_array_add (data_dirs, (gpointer) system_dirs[i]);
+    }
+
+    for (i = 0; i < data_dirs->len; i++)
     {
         for (j = 0; j < G_N_ELEMENTS (data_subdirs); j++)
         {
@@ -311,13 +312,16 @@
             g_autoptr (GFileMonitor) monitor = NULL;
             g_autoptr (GError) error = NULL;
 
-            directory_file = g_file_new_build_filename (data_dirs[i], 
data_subdirs[j], NULL);
+            directory_file = g_file_new_build_filename (g_ptr_array_index 
(data_dirs, i), data_subdirs[j], NULL);
             monitor = g_file_monitor (directory_file, 
G_FILE_MONITOR_WATCH_MOVES,
                                       self->cancellable, NULL);
-            g_signal_connect_swapped (monitor, "changed", G_CALLBACK 
(on_providers_file_changed), self);
-            self->monitors = g_list_append (self->monitors, g_steal_pointer 
(&monitor));
+            if (monitor) {
+                g_signal_connect_swapped (monitor, "changed", G_CALLBACK 
(on_providers_file_changed), self);
+                self->monitors = g_list_append (self->monitors, 
g_steal_pointer (&monitor));
+            }
+
             file_enumerator = g_file_enumerate_children (directory_file,
-                                                         
"standard::name,standard::type",
+                                                         
G_FILE_ATTRIBUTE_STANDARD_NAME","G_FILE_ATTRIBUTE_STANDARD_TYPE,
                                                          
G_FILE_QUERY_INFO_NONE,
                                                          NULL,
                                                          &error);
@@ -339,12 +343,7 @@
             while (info != NULL && error == NULL)
             {
                 g_autoptr(GFile) child = g_file_enumerator_get_child 
(file_enumerator, info);
-                if (strcmp (data_subdirs[j], "applications") == 0)
-                {
-                    load_cloud_provider_from_desktop_file (self, child);
-                }
-                else
-                {
+                if (!load_cloud_provider_from_desktop_file (self, child)) {
                     load_cloud_provider_from_key_file (self, child);
                 }
 
@@ -379,7 +378,7 @@
 
     load_cloud_providers (self);
 
-    g_signal_emit_by_name (G_OBJECT (self), "providers-changed");
+    g_signal_emit (G_OBJECT (self), signals[PROVIDERS_CHANGED], 0);
 }
 
 static gpointer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcloudproviders-0.4.1/src/cloudprovidersprovider.c 
new/libcloudproviders-0.4.2/src/cloudprovidersprovider.c
--- old/libcloudproviders-0.4.1/src/cloudprovidersprovider.c    2026-08-28 
17:06:57.000000000 +0200
+++ new/libcloudproviders-0.4.2/src/cloudprovidersprovider.c    2026-11-04 
15:49:46.000000000 +0100
@@ -291,6 +291,9 @@
                                                  
CLOUD_PROVIDERS_PROVIDER_DBUS_IFACE);
         if (interface != NULL)
         {
+            if (self->proxy)
+                g_signal_handlers_disconnect_by_func (self->proxy, G_CALLBACK 
(on_name_changed), self);
+            g_clear_object (&self->proxy);
             self->proxy = cloud_providers_dbus_object_get_provider (object);
             g_signal_connect_swapped (self->proxy, "notify::name", G_CALLBACK 
(on_name_changed), self);
             on_name_changed (self);
@@ -315,7 +318,7 @@
 
     g_list_free_full (objects, g_object_unref);
 
-    g_signal_emit_by_name (G_OBJECT (self), "accounts-changed", NULL);
+    g_signal_emit (G_OBJECT (self), signals[ACCOUNTS_CHANGED], 0);
 }
 
 static void
@@ -334,9 +337,8 @@
                                                   GDBusObject        *object,
                                                   gpointer            
user_data)
 {
-    CloudProvidersProvider *self;
+    CloudProvidersProvider *self = CLOUD_PROVIDERS_PROVIDER (user_data);
 
-    self = CLOUD_PROVIDERS_PROVIDER (user_data);
     update_cloud_providers_accounts (self);
 }
 
@@ -345,10 +347,9 @@
                                                       GParamSpec *pspec,
                                                       gpointer    user_data)
 {
-    CloudProvidersProvider *self;
+    CloudProvidersProvider *self = CLOUD_PROVIDERS_PROVIDER (user_data);
 
-    self = CLOUD_PROVIDERS_PROVIDER (user_data);
-    g_signal_emit_by_name (G_OBJECT (self), "removed", NULL);
+    g_signal_emit (G_OBJECT (self), signals[REMOVED], 0);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libcloudproviders-0.4.1/src/cloudprovidersproviderexporter.c 
new/libcloudproviders-0.4.2/src/cloudprovidersproviderexporter.c
--- old/libcloudproviders-0.4.1/src/cloudprovidersproviderexporter.c    
2026-08-28 17:06:57.000000000 +0200
+++ new/libcloudproviders-0.4.2/src/cloudprovidersproviderexporter.c    
2026-11-04 15:49:46.000000000 +0100
@@ -138,7 +138,7 @@
     unexport_account (self, account);
     removed_account = g_list_find (self->accounts, account);
     g_return_if_fail (removed_account != NULL);
-    self->accounts = g_list_remove (self->accounts, removed_account);
+    self->accounts = g_list_delete_link (self->accounts, removed_account);
     g_object_unref (account);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libcloudproviders-0.4.1/src/meson.build 
new/libcloudproviders-0.4.2/src/meson.build
--- old/libcloudproviders-0.4.1/src/meson.build 2026-08-28 17:06:57.000000000 
+0200
+++ new/libcloudproviders-0.4.2/src/meson.build 2026-11-04 15:49:46.000000000 
+0100
@@ -25,7 +25,7 @@
 gdbus_generated_sources = gnome.gdbus_codegen(
   'cloudproviders-generated', '../data/cloud-providers-dbus.xml',
   extra_args: '--glib-min-required=@0@'.format(glib_req_version),
-  interface_prefix: 'org.freedesktop.CloudProviders',
+  interface_prefix: 'org.freedesktop.CloudProviders.',
   namespace: 'CloudProvidersDbus',
   markdown: 'dbus',
   object_manager: true

++++++ libcloudproviders.obsinfo ++++++
--- /var/tmp/diff_new_pack.E2ROv9/_old  2026-11-09 16:02:44.936047085 +0100
+++ /var/tmp/diff_new_pack.E2ROv9/_new  2026-11-09 16:02:44.940047253 +0100
@@ -1,5 +1,5 @@
 name: libcloudproviders
-version: 0.4.1
-mtime: 1787929617
-commit: 74def66cd39ab692b0d477f18250add12aafd394
+version: 0.4.2
+mtime: 1793803786
+commit: fffdc5c391807e8d00b26adf11182ccad4be8350
 

Reply via email to