Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libcloudproviders for openSUSE:Factory checked in at 2023-09-20 13:21:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libcloudproviders (Old) and /work/SRC/openSUSE:Factory/.libcloudproviders.new.16627 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libcloudproviders" Wed Sep 20 13:21:16 2023 rev:9 rq:1110507 version:0.3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/libcloudproviders/libcloudproviders.changes 2023-08-12 15:05:50.994370947 +0200 +++ /work/SRC/openSUSE:Factory/.libcloudproviders.new.16627/libcloudproviders.changes 2023-09-20 13:21:28.718070415 +0200 @@ -1,0 +2,9 @@ +Wed Sep 6 19:32:55 UTC 2023 - Bjørn Lie <bjorn....@gmail.com> + +- Update to version 0.3.4: + + Re-release due to release tarball issue +- Changes from version 0.3.3: + + Use a new way to register providers using .desktop files +- Drop libcloudproviders-rpmlintrc file/source: No longer needed. + +------------------------------------------------------------------- Old: ---- libcloudproviders-0.3.2.tar.xz libcloudproviders-rpmlintrc New: ---- libcloudproviders-0.3.4.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libcloudproviders.spec ++++++ --- /var/tmp/diff_new_pack.yQ68Rz/_old 2023-09-20 13:21:29.898112690 +0200 +++ /var/tmp/diff_new_pack.yQ68Rz/_new 2023-09-20 13:21:29.898112690 +0200 @@ -19,14 +19,14 @@ %define _typelibdir %(pkg-config --variable=typelibdir gobject-introspection-1.0) %define _girdir %(pkg-config --variable=girdir gobject-introspection-1.0) Name: libcloudproviders -Version: 0.3.2 +Version: 0.3.4 Release: 0 Summary: Library/Client to integrate cloud storage providers License: LGPL-3.0-or-later Group: System/GUI/GNOME URL: https://gitlab.gnome.org/World/libcloudproviders Source0: https://download.gnome.org/sources/libcloudproviders/0.3/%{name}-%{version}.tar.xz -Source99: %{name}-rpmlintrc + BuildRequires: gtk-doc BuildRequires: meson >= 0.42.0 BuildRequires: pkgconfig ++++++ libcloudproviders-0.3.2.tar.xz -> libcloudproviders-0.3.4.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/.gitlab-ci.yml new/libcloudproviders-0.3.4/.gitlab-ci.yml --- old/libcloudproviders-0.3.2/.gitlab-ci.yml 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/.gitlab-ci.yml 2023-09-06 16:14:23.000000000 +0200 @@ -1,11 +1,25 @@ image: fedora:37 stages: - build + - deploy before_script: - dnf install -y gcc meson ninja-build gettext gtk-doc glib2-devel gobject-introspection-devel vala redhat-rpm-config + build-libcloudproviders: stage: build script: - meson _build . - ninja -C _build - ninja -C _build install + +pages: + stage: deploy + script: + - meson _build . -Denable-gtk-doc=true + - ninja libcloudproviders-doc -C _build + - mv _build/docs/reference/html public + artifacts: + paths: + - public + rules: + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/CHANGELOG new/libcloudproviders-0.3.4/CHANGELOG --- old/libcloudproviders-0.3.2/CHANGELOG 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/CHANGELOG 2023-09-06 16:14:23.000000000 +0200 @@ -1,3 +1,11 @@ +0.3.4 +----- +* Re-release du to release tarball issue + +0.3.3 +----- +* Use a new way to register providers using .desktop files + 0.3.0 ----- * Provide Vala bindings (Fernando da Silva) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/README.md new/libcloudproviders-0.3.4/README.md --- old/libcloudproviders-0.3.2/README.md 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/README.md 2023-09-06 16:14:23.000000000 +0200 @@ -8,7 +8,7 @@ ## API Documentation -See the [API documentation](https://csoriano.gitlab.io/libcloudprovidersweb/) for +See the [API documentation](https://world.pages.gitlab.gnome.org/libcloudproviders/) for further details. # Integrated by @@ -16,4 +16,4 @@ - Nextcloud client 2.5 ### Client - GNOME Nautilus (file manager used by default in Fedora, Ubuntu, OpenSuse, Debian, RHEL, Suse..) -- Elementary OS on Juno +- elementary OS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/docs/reference/integration-server.xml new/libcloudproviders-0.3.4/docs/reference/integration-server.xml --- old/libcloudproviders-0.3.2/docs/reference/integration-server.xml 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/docs/reference/integration-server.xml 2023-09-06 16:14:23.000000000 +0200 @@ -15,10 +15,28 @@ that can be set using the #CloudProvidersProviderExporter API. </para> <para> - To register your cloud provider you also need to provide a file in DATADIR/cloud-providers. + To register your cloud provider, you need to expose the interface it is implementing in its desktop file </para> <example> - <title>Example file to register a cloud provider</title> + <title>Example desktop file to register a cloud provider</title> + <programlisting> + [Desktop Entry] + Type=Application + Name=mycloudprovider example server + NoDisplay=true + Implements=org.freedesktop.CloudProviders + + [org.freedesktop.CloudProviders] + BusName=org.mycloudprovider.CloudProviders.ServerExample + ObjectPath=/org/mycloudprovider/CloudProviders/ServerExample + </programlisting> + </example> + <para> + In previous versions, to register your cloud provider you needed to provide a file in DATADIR/cloud-providers. + This way of registering providers is still working but is not compatible with containerization. + </para> + <example> + <title>Example file to register a cloud provider in previous versions</title> <programlisting> [Cloud Provider] BusName=org.mycloudprovider.CloudProviders.ServerExample diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/docs/reference/libcloudproviders-docs.xml new/libcloudproviders-0.3.4/docs/reference/libcloudproviders-docs.xml --- old/libcloudproviders-0.3.2/docs/reference/libcloudproviders-docs.xml 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/docs/reference/libcloudproviders-docs.xml 2023-09-06 16:14:23.000000000 +0200 @@ -80,8 +80,9 @@ <xi:include href="generated-docs-org.freedesktop.CloudProviders.Account.xml"/> <xi:include href="generated-docs-org.freedesktop.CloudProviders.Provider.xml"/> </part> - <index id="index-all"> + <index id="index-all"> <title>Index of all symbols</title> </index> + <xi:include href="xml/annotation-glossary.xml"><xi:fallback/></xi:include> </book> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/docs/reference/libcloudproviders-sections.txt new/libcloudproviders-0.3.4/docs/reference/libcloudproviders-sections.txt --- old/libcloudproviders-0.3.2/docs/reference/libcloudproviders-sections.txt 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/docs/reference/libcloudproviders-sections.txt 2023-09-06 16:14:23.000000000 +0200 @@ -2,6 +2,7 @@ <FILE>cloudprovidersaccount</FILE> <TITLE>CloudProvidersAccount</TITLE> CloudProvidersAccountStatus +CLOUD_PROVIDERS_ACCOUNT_DBUS_IFACE CLOUD_PROVIDERS_TYPE_ACCOUNT CloudProvidersAccountClass cloud_providers_account_new @@ -29,7 +30,6 @@ cloud_providers_account_exporter_set_action_group cloud_providers_account_exporter_set_path CloudProvidersAccountExporter -CloudProvidersProviderExporter </SECTION> <SECTION> @@ -39,6 +39,7 @@ CloudProvidersCollectorClass cloud_providers_collector_dup_singleton cloud_providers_collector_get_providers +cloud_providers_collector_update CloudProvidersCollector </SECTION> @@ -46,8 +47,6 @@ <FILE>cloudprovidersprovider</FILE> <TITLE>CloudProvidersProvider</TITLE> CLOUD_PROVIDERS_PROVIDER_DBUS_IFACE -CLOUD_PROVIDERS_PROVIDER_DBUS_NAME -CLOUD_PROVIDERS_PROVIDER_DBUS_PATH CLOUD_PROVIDERS_TYPE_PROVIDER cloud_providers_provider_new cloud_providers_provider_get_name @@ -60,9 +59,9 @@ <TITLE>CloudProvidersProviderExporter</TITLE> CLOUD_PROVIDERS_TYPE_PROVIDER_EXPORTER CloudProvidersProviderExporterClass +cloud_providers_provider_exporter_new cloud_providers_provider_exporter_remove_account cloud_providers_provider_exporter_set_name cloud_providers_provider_exporter_get_name -cloud_providers_provider_exporter_new CloudProvidersProviderExporter </SECTION> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/meson.build new/libcloudproviders-0.3.4/meson.build --- old/libcloudproviders-0.3.2/meson.build 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/meson.build 2023-09-06 16:14:23.000000000 +0200 @@ -1,5 +1,5 @@ project ('libcloudproviders', 'c', - version: '0.3.2', + version: '0.3.4', meson_version: '>=0.54.0', license: 'LGPL3+', default_options: [ @@ -33,7 +33,7 @@ endforeach add_project_arguments(global_cflags, language: 'c') -glib_ver = '>= 2.51.2' +glib_ver = '>= 2.56' glib = dependency ('glib-2.0', version: glib_ver) gio = dependency ('gio-2.0', version: glib_ver) @@ -45,8 +45,8 @@ endif add_project_arguments( - '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_52', - '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_52', + '-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_56', + '-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_56', language: 'c' ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/src/cloudprovidersaccount.c new/libcloudproviders-0.3.4/src/cloudprovidersaccount.c --- old/libcloudproviders-0.3.2/src/cloudprovidersaccount.c 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/src/cloudprovidersaccount.c 2023-09-06 16:14:23.000000000 +0200 @@ -51,7 +51,7 @@ * #CloudProvidersAccount is the basic object used to construct the integrator UI * and actions that a provider will present to the user, from the client side. * Integrators of the cloud providers can use this object to poll the - * #CloudProvider menus, status and actions. + * #CloudProvidersProvider menus, status and actions. */ enum @@ -245,7 +245,7 @@ * @proxy: DBus proxy * * A #CloudProvidersAccount object are used to fetch details about cloud providers from DBus. - * Object are usually fetched from cloud_providers_get_providers() as a list. + * Object are usually fetched from cloud_providers_provider_get_accounts() as a list. */ CloudProvidersAccount* cloud_providers_account_new (GDBusProxy *proxy) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/src/cloudproviderscollector.c new/libcloudproviders-0.3.4/src/cloudproviderscollector.c --- old/libcloudproviders-0.3.2/src/cloudproviderscollector.c 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/src/cloudproviderscollector.c 2023-09-06 16:14:23.000000000 +0200 @@ -26,12 +26,14 @@ #include <gio/gio.h> #define KEY_FILE_GROUP "Cloud Providers" +#define XDG_DESKTOP_IMPLEMENTS "org.freedesktop.CloudProviders" struct _CloudProvidersCollector { GObject parent; GList *providers; + GHashTable *providers_bus_names; GDBusConnection *bus; GCancellable *cancellable; GList *monitors; @@ -82,7 +84,7 @@ } static void -cloud_providers_collector_finalize (GObject *object) +cloud_providers_collector_dispose (GObject *object) { CloudProvidersCollector *self = (CloudProvidersCollector *)object; GList *l; @@ -97,10 +99,14 @@ { g_signal_handlers_disconnect_by_data (G_OBJECT (l->data), self); } + g_clear_pointer (&self->providers_bus_names, g_hash_table_unref); g_list_free_full (self->providers, g_object_unref); + self->providers = NULL; g_list_free_full (self->monitors, g_object_unref); + self->monitors = NULL; + g_clear_object (&self->bus); - G_OBJECT_CLASS (cloud_providers_collector_parent_class)->finalize (object); + G_OBJECT_CLASS (cloud_providers_collector_parent_class)->dispose (object); } static void @@ -108,7 +114,7 @@ { GObjectClass *object_class = G_OBJECT_CLASS (klass); - object_class->finalize = cloud_providers_collector_finalize; + object_class->dispose = cloud_providers_collector_dispose; /** * CloudProviderCollector::providers-changed @@ -130,6 +136,7 @@ cloud_providers_collector_init (CloudProvidersCollector *self) { self->cancellable = g_cancellable_new (); + self->providers_bus_names = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); g_bus_get (G_BUS_TYPE_SESSION, self->cancellable, @@ -155,43 +162,115 @@ } static void -load_cloud_provider (CloudProvidersCollector *self, - GFile *file) +add_cloud_provider (CloudProvidersCollector *self, + const gchar *bus_name, + const gchar *object_path) { - GKeyFile *key_file; - gchar *path; + 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; + } + + 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", + G_CALLBACK (on_provider_removed), self); + + g_debug ("Client loading provider: %s %s\n", bus_name, object_path); +} + +static void +load_cloud_provider_from_desktop_file (CloudProvidersCollector *self, + GFile *file) +{ + g_autoptr(GKeyFile) key_file = NULL; + g_autoptr(GError) error = NULL; + g_autofree gchar *path = NULL; + g_auto(GStrv) implements = NULL; + g_autofree gchar *bus_name = NULL; + g_autofree gchar *object_path = NULL; + + path = g_file_get_path (file); + if (!g_str_has_suffix (path, ".desktop")) + { + return; + } + + 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; + } + + implements = g_key_file_get_string_list (key_file, G_KEY_FILE_DESKTOP_GROUP, "Implements", NULL, &error); + if (implements == NULL) + { + if (!g_error_matches (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_KEY_NOT_FOUND)) + { + g_warning ("Error loading Implements key from %s: %s", path, error->message); + } + + return; + } + + if (!g_strv_contains((const gchar * const *) implements, XDG_DESKTOP_IMPLEMENTS)) + { + return; + } + + bus_name = g_key_file_get_string (key_file, XDG_DESKTOP_IMPLEMENTS, "BusName", NULL); + object_path = g_key_file_get_string (key_file, XDG_DESKTOP_IMPLEMENTS, "ObjectPath", NULL); + + if (!bus_name || !object_path) + { + g_warning ("Unable to find BusName or ObjectPath keys in "XDG_DESKTOP_IMPLEMENTS" section from %s", path); + return; + } + + add_cloud_provider (self, bus_name, object_path); +} + +static void +load_cloud_provider_from_key_file (CloudProvidersCollector *self, + GFile *file) +{ + g_autoptr(GKeyFile) key_file = g_key_file_new (); + g_autofree gchar *path = NULL; GError *error = NULL; - gchar *bus_name; - gchar *object_path; - gboolean success = FALSE; + g_autofree gchar *bus_name = NULL; + g_autofree gchar *object_path = NULL; CloudProvidersProvider *provider; - key_file = g_key_file_new (); path = g_file_get_path (file); g_key_file_load_from_file (key_file, path, G_KEY_FILE_NONE, &error); if (error != NULL) { - g_debug ("test 1"); - goto out; + g_debug ("Error while loading cloud provider key file at %s with error %s", path, error->message); + return; } if (!g_key_file_has_group (key_file, KEY_FILE_GROUP)) { - g_debug ("test 2"); - goto out; + g_debug ("Error while loading cloud provider key file at %s with error %s", path, error->message); + return; } bus_name = g_key_file_get_string (key_file, KEY_FILE_GROUP, "BusName", &error); if (error != NULL) { - g_debug ("test 3"); - goto out; + 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) { - g_debug ("test 4"); - goto out; + 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); @@ -200,18 +279,6 @@ G_CALLBACK (on_provider_removed), self); g_debug("Client loading provider: %s %s\n", bus_name, object_path); - - success = TRUE; - g_free (bus_name); - g_free (object_path); -out: - if (!success) - { - g_warning ("Error while loading cloud provider key file at %s with error %s", path, error != NULL ? error->message : NULL); - } - g_key_file_free (key_file); - g_object_unref (file); - g_free (path); } static void @@ -224,47 +291,61 @@ load_cloud_providers (CloudProvidersCollector *self) { const gchar* const *data_dirs; - gint i; - gint len; + const gchar *data_subdirs[] = {"applications", "cloud-providers"}; + guint i; + gsize j; data_dirs = g_get_system_data_dirs (); - len = g_strv_length ((gchar **)data_dirs); - for (i = 0; i < len; i++) + for (i = 0; data_dirs[i] != NULL; i++) { - g_autofree gchar *key_files_directory_path = NULL; - g_autoptr (GFile) key_files_directory_file = NULL; - g_autoptr (GError) error = NULL; - g_autoptr (GFileEnumerator) file_enumerator = NULL; - g_autoptr (GFileInfo) info = NULL; - GFileMonitor *monitor; - - key_files_directory_path = g_build_filename (data_dirs[i], "cloud-providers", NULL); - key_files_directory_file = g_file_new_for_path (key_files_directory_path); - monitor = g_file_monitor (key_files_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, monitor); - file_enumerator = g_file_enumerate_children (key_files_directory_file, - "standard::name,standard::type", - G_FILE_QUERY_INFO_NONE, - NULL, - &error); - if (error) + for (j = 0; j < G_N_ELEMENTS (data_subdirs); j++) { - continue; - } + g_autoptr (GFile) directory_file = NULL; + g_autoptr (GFileInfo) info = NULL; + g_autoptr (GFileEnumerator) file_enumerator = NULL; + g_autoptr (GFileMonitor) monitor = NULL; + g_autoptr (GError) error = NULL; + + directory_file = g_file_new_build_filename (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)); + file_enumerator = g_file_enumerate_children (directory_file, + "standard::name,standard::type", + G_FILE_QUERY_INFO_NONE, + NULL, + &error); + if (error) + { + g_clear_error (&error); + continue; + } - info = g_file_enumerator_next_file (file_enumerator, NULL, &error); - if (error) - { - g_warning ("Error while enumerating file %s error: %s\n", key_files_directory_path, error->message); - continue; - } - while (info != NULL && error == NULL) - { - load_cloud_provider (self, g_file_enumerator_get_child (file_enumerator, info)); - g_clear_object (&info); info = g_file_enumerator_next_file (file_enumerator, NULL, &error); + if (error) + { + g_autofree gchar *directory_path = g_file_get_path (directory_file); + g_warning ("Error while enumerating file %s error: %s\n", directory_path, error->message); + g_clear_error (&error); + continue; + } + + 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 + { + load_cloud_provider_from_key_file (self, child); + } + + g_clear_object (&info); + info = g_file_enumerator_next_file (file_enumerator, NULL, &error); + } } } } @@ -285,6 +366,7 @@ { g_signal_handlers_disconnect_by_data (G_OBJECT (l->data), self); } + g_hash_table_remove_all (self->providers_bus_names); g_list_free_full (self->providers, g_object_unref); g_list_free_full (self->monitors, g_object_unref); self->providers = NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/src/cloudprovidersproviderexporter.c new/libcloudproviders-0.3.4/src/cloudprovidersproviderexporter.c --- old/libcloudproviders-0.3.2/src/cloudprovidersproviderexporter.c 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/src/cloudprovidersproviderexporter.c 2023-09-06 16:14:23.000000000 +0200 @@ -344,7 +344,7 @@ /** * cloud_providers_provider_exporter_new - * @bus: A #GDbusConnection to export the objects to + * @bus: A #GDBusConnection to export the objects to * @bus_name: A DBus name to bind to * @bus_path: A DBus object path */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/test/meson.build new/libcloudproviders-0.3.4/test/meson.build --- old/libcloudproviders-0.3.2/test/meson.build 2023-08-09 16:36:01.000000000 +0200 +++ new/libcloudproviders-0.3.4/test/meson.build 2023-09-06 16:14:23.000000000 +0200 @@ -21,6 +21,8 @@ configuration: service_conf, install_dir: servicedir, ) + applications = join_paths (datadir, 'applications') cloudprovidersdata = join_paths (datadir, 'cloud-providers') + install_data('org.freedesktop.CloudProviders.ServerExample.desktop', install_dir: applications) install_data('org.freedesktop.CloudProviders.ServerExample.ini', install_dir: cloudprovidersdata) endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libcloudproviders-0.3.2/test/org.freedesktop.CloudProviders.ServerExample.desktop new/libcloudproviders-0.3.4/test/org.freedesktop.CloudProviders.ServerExample.desktop --- old/libcloudproviders-0.3.2/test/org.freedesktop.CloudProviders.ServerExample.desktop 1970-01-01 01:00:00.000000000 +0100 +++ new/libcloudproviders-0.3.4/test/org.freedesktop.CloudProviders.ServerExample.desktop 2023-09-06 16:14:23.000000000 +0200 @@ -0,0 +1,9 @@ +[Desktop Entry] +Type=Application +Name=libcloudproviders example server +NoDisplay=true +Implements=org.freedesktop.CloudProviders + +[org.freedesktop.CloudProviders] +BusName=org.freedesktop.CloudProviders.ServerExample +ObjectPath=/org/freedesktop/CloudProviders/ServerExample \ No newline at end of file