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
