From 7ae25b6efe068c85942d8e58902c3e8ca57a2750 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 08:28:57 +0100 Subject: [PATCH 01/12] Howto build using flatpak-builder --- .gitignore | 1 + README.md | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/.gitignore b/.gitignore index 2a8844eb6f..96477c1975 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *~ build/* +.flatpak-builder/ \ No newline at end of file diff --git a/README.md b/README.md index 51f6c7dd12..1a99e15f33 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,33 @@ ## Building and Installation +### Build with Flatpak + +_Starting with elementary 6 Odin, Flatpak is the preferred build method._ + +You'll need to install the following dependencies: + +```bash +flatpak --user install flathub \ + org.gnome.Sdk//3.38 \ + io.elementary.BaseApp//juno-20.08 +``` + +Run `flatpak-builder` to build: + +```bash +flatpak-builder --force-clean build io.elementary.tasks.yml +``` + +To install, use `flatpak-builder --install`, then execute with `io.elementary.tasks`: + +```bash +flatpak-builder --install --user --force-clean build io.elementary.tasks.yml +io.elementary.tasks +``` + +### Build with Meson + You'll need the following dependencies: * glib-2.0 * gobject-2.0 From 153a9f4f7b10d01bbc76fe63a96eb2cb43313e48 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 08:39:38 +0100 Subject: [PATCH 02/12] Fixed wrong starting command --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1a99e15f33..ba93790795 100644 --- a/README.md +++ b/README.md @@ -21,11 +21,11 @@ Run `flatpak-builder` to build: flatpak-builder --force-clean build io.elementary.tasks.yml ``` -To install, use `flatpak-builder --install`, then execute with `io.elementary.tasks`: +To install, use `flatpak-builder --install`, then execute with `flatpak run io.elementary.tasks`: ```bash flatpak-builder --install --user --force-clean build io.elementary.tasks.yml -io.elementary.tasks +flatpak run io.elementary.tasks ``` ### Build with Meson From e2c408a5ceb992025a4d9053086f7b5eb16c7ce4 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 19:37:45 +0100 Subject: [PATCH 03/12] Experimenting with latest unstable EDS --- io.elementary.tasks.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/io.elementary.tasks.yml b/io.elementary.tasks.yml index 43ca3196e7..c1ea968cc5 100644 --- a/io.elementary.tasks.yml +++ b/io.elementary.tasks.yml @@ -69,7 +69,7 @@ modules: sources: - type: git url: https://gitlab.gnome.org/GNOME/evolution-data-server.git - tag: '3.38.1' + tag: '3.39.2' modules: - name: intltool cleanup: From e2b555c8071e1fb73fa4d8598c983c7f275424ff Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:07:52 +0100 Subject: [PATCH 04/12] Add support for API changes in newer EDS version --- meson.build | 1 + src/TaskModel.vala | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/meson.build b/meson.build index 7b850e82b4..6455b230b0 100644 --- a/meson.build +++ b/meson.build @@ -35,6 +35,7 @@ tasks_deps = [ ] if libecal_dep.version().version_compare('<=3.39') + add_project_arguments('--define=EDS_3_39', language: 'vala') tasks_deps += meson.get_compiler('vala').find_library('libecal-2.0-fixes', dirs: meson.current_source_dir() / 'vapi') endif diff --git a/src/TaskModel.vala b/src/TaskModel.vala index f1cf7280fc..2c8aa62949 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -241,8 +241,13 @@ public class Tasks.TaskModel : Object { Soup.URI? webdav_server_uri = null; GLib.Error? webdav_error = null; +#if EDS_3_39 E.webdav_discover_sources.begin ( collection_source, +#else + collection_source.webdav_discover_sources.begin ( +#endif + collection_source_extension.calendar_url, E.WebDAVDiscoverSupports.TASKS, credentials, @@ -254,6 +259,7 @@ public class Tasks.TaskModel : Object { GLib.SList webdav_calendar_user_addresses; try { +#if EDS_3_39 /** * TEMPORARY WORKAROUND: `E.webdav_discover_sources_finish` * Use `E.webdav_discover_sources.end` once the following commit of libedataserver is released: @@ -267,17 +273,30 @@ public class Tasks.TaskModel : Object { out webdav_discovered_sources, out webdav_calendar_user_addresses ); +#else + collection_source.webdav_discover_sources.end ( + collection_source, + res, + out webdav_certificate_pem, + out webdav_certificate_errors, + out webdav_discovered_sources, + out webdav_calendar_user_addresses + ); +#endif if (webdav_discovered_sources.length () > 0) { var webdav_discovered_source = webdav_discovered_sources.nth_data (0); webdav_server_uri = new Soup.URI (webdav_discovered_source.href.dup ()); } + +#if EDS_3_39 /** * TEMPORARY WORKAROUND: `E.webdav_discover_do_free_discovered_sources` * Remove this line, once the following commit of libedataserver is released: * https://gitlab.gnome.org/GNOME/evolution-data-server/-/commit/9d1505cd3518ff32bd03050fd898abf89d31d389 */ E.webdav_discover_do_free_discovered_sources ((owned) webdav_discovered_sources); +#endif if (webdav_server_uri == null) { throw new Tasks.TaskModelError.BACKEND_ERROR ("Unable to resolve the WebDAV uri from backend."); From acd50580d577007fb6a329ef6273a68778a74305 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:17:27 +0100 Subject: [PATCH 05/12] Fixed compiling errors for newer EDS --- src/TaskModel.vala | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/TaskModel.vala b/src/TaskModel.vala index 2c8aa62949..1cbd6fdfaf 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -275,7 +275,6 @@ public class Tasks.TaskModel : Object { ); #else collection_source.webdav_discover_sources.end ( - collection_source, res, out webdav_certificate_pem, out webdav_certificate_errors, @@ -346,12 +345,20 @@ public class Tasks.TaskModel : Object { display_name )); +#if EDS_3_39 E.webdav_session_update_properties_sync ( collection_source_webdav_session, source_webdav_extension.soup_uri.to_string (false), changes, null ); +#else + collection_source_webdav_session.update_properties_sync ( + source_webdav_extension.soup_uri.to_string (false), + changes, + null + ); +#endif registry.refresh_backend_sync (collection_source.uid, null); From 2fc2b299abe56556eb8ab2d28c985b275eebb18e Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:20:47 +0100 Subject: [PATCH 06/12] Added fix for webdav in newer EDS --- src/TaskModel.vala | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/TaskModel.vala b/src/TaskModel.vala index 2c8aa62949..a29d5f4a8b 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -275,7 +275,6 @@ public class Tasks.TaskModel : Object { ); #else collection_source.webdav_discover_sources.end ( - collection_source, res, out webdav_certificate_pem, out webdav_certificate_errors, @@ -346,12 +345,20 @@ public class Tasks.TaskModel : Object { display_name )); +#if EDS_3_39 E.webdav_session_update_properties_sync ( collection_source_webdav_session, source_webdav_extension.soup_uri.to_string (false), changes, null ); +#else + collection_source_webdav_session.update_properties_sync ( + source_webdav_extension.soup_uri.to_string (false), + changes, + null + ); +#endif registry.refresh_backend_sync (collection_source.uid, null); From 7ad54f99597e03733d113b69c0f8cb184d727c65 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:23:17 +0100 Subject: [PATCH 07/12] Fixed whitespace --- src/TaskModel.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskModel.vala b/src/TaskModel.vala index a29d5f4a8b..3b2e848f66 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -247,7 +247,7 @@ public class Tasks.TaskModel : Object { #else collection_source.webdav_discover_sources.begin ( #endif - + collection_source_extension.calendar_url, E.WebDAVDiscoverSupports.TASKS, credentials, From a7a9ca2c6307f3df9ff9269d131133236e1c901c Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:44:44 +0100 Subject: [PATCH 08/12] Reversed EDS version flag to improve readability --- meson.build | 5 +++-- src/TaskModel.vala | 47 ++++++++++++++-------------------------------- 2 files changed, 17 insertions(+), 35 deletions(-) diff --git a/meson.build b/meson.build index 6455b230b0..9254d12039 100644 --- a/meson.build +++ b/meson.build @@ -34,8 +34,9 @@ tasks_deps = [ dependency('libgdata') ] -if libecal_dep.version().version_compare('<=3.39') - add_project_arguments('--define=EDS_3_39', language: 'vala') +if libecal_dep.version().version_compare('>=3.39.2') + add_project_arguments('--define=HAS_EDS_3_40', language: 'vala') +else tasks_deps += meson.get_compiler('vala').find_library('libecal-2.0-fixes', dirs: meson.current_source_dir() / 'vapi') endif diff --git a/src/TaskModel.vala b/src/TaskModel.vala index 3b2e848f66..9c59fccceb 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -241,13 +241,12 @@ public class Tasks.TaskModel : Object { Soup.URI? webdav_server_uri = null; GLib.Error? webdav_error = null; -#if EDS_3_39 +#if HAS_EDS_3_40 + collection_source.webdav_discover_sources.begin ( +#else E.webdav_discover_sources.begin ( collection_source, -#else - collection_source.webdav_discover_sources.begin ( #endif - collection_source_extension.calendar_url, E.WebDAVDiscoverSupports.TASKS, credentials, @@ -259,41 +258,27 @@ public class Tasks.TaskModel : Object { GLib.SList webdav_calendar_user_addresses; try { -#if EDS_3_39 - /** - * TEMPORARY WORKAROUND: `E.webdav_discover_sources_finish` - * Use `E.webdav_discover_sources.end` once the following commit of libedataserver is released: - * https://gitlab.gnome.org/GNOME/evolution-data-server/-/commit/4f4ea2f45d5e2bffcf446b9fdc1bb65e94982d03 - */ + +#if HAS_EDS_3_40 + collection_source.webdav_discover_sources.end ( +#else E.webdav_discover_sources_finish ( collection_source, +#endif res, out webdav_certificate_pem, out webdav_certificate_errors, out webdav_discovered_sources, out webdav_calendar_user_addresses ); -#else - collection_source.webdav_discover_sources.end ( - res, - out webdav_certificate_pem, - out webdav_certificate_errors, - out webdav_discovered_sources, - out webdav_calendar_user_addresses - ); -#endif if (webdav_discovered_sources.length () > 0) { var webdav_discovered_source = webdav_discovered_sources.nth_data (0); webdav_server_uri = new Soup.URI (webdav_discovered_source.href.dup ()); } -#if EDS_3_39 - /** - * TEMPORARY WORKAROUND: `E.webdav_discover_do_free_discovered_sources` - * Remove this line, once the following commit of libedataserver is released: - * https://gitlab.gnome.org/GNOME/evolution-data-server/-/commit/9d1505cd3518ff32bd03050fd898abf89d31d389 - */ +#if HAS_EDS_3_40 +#else E.webdav_discover_do_free_discovered_sources ((owned) webdav_discovered_sources); #endif @@ -345,20 +330,16 @@ public class Tasks.TaskModel : Object { display_name )); -#if EDS_3_39 +#if HAS_EDS_3_40 + collection_source_webdav_session.update_properties_sync ( +#else E.webdav_session_update_properties_sync ( collection_source_webdav_session, +#endif source_webdav_extension.soup_uri.to_string (false), changes, null ); -#else - collection_source_webdav_session.update_properties_sync ( - source_webdav_extension.soup_uri.to_string (false), - changes, - null - ); -#endif registry.refresh_backend_sync (collection_source.uid, null); From 3a90527df0c8a33e0c5b96e896d488d3c38a62b2 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 20:49:26 +0100 Subject: [PATCH 09/12] Make Linter Happy --- src/TaskModel.vala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskModel.vala b/src/TaskModel.vala index 9c59fccceb..9ff85cac82 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -331,7 +331,7 @@ public class Tasks.TaskModel : Object { )); #if HAS_EDS_3_40 - collection_source_webdav_session.update_properties_sync ( + collection_source_webdav_session.update_properties_sync ( #else E.webdav_session_update_properties_sync ( collection_source_webdav_session, From 9331cebd752546e0357f68eba97cd0491df32f50 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 16 Feb 2021 21:22:01 +0100 Subject: [PATCH 10/12] Update src/TaskModel.vala MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Corentin Noël --- src/TaskModel.vala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/TaskModel.vala b/src/TaskModel.vala index 9ff85cac82..1e71eb78e0 100644 --- a/src/TaskModel.vala +++ b/src/TaskModel.vala @@ -277,8 +277,7 @@ public class Tasks.TaskModel : Object { webdav_server_uri = new Soup.URI (webdav_discovered_source.href.dup ()); } -#if HAS_EDS_3_40 -#else +#if !HAS_EDS_3_40 E.webdav_discover_do_free_discovered_sources ((owned) webdav_discovered_sources); #endif From dccf85d4b408c68bc092404e2cd5434f48d972dd Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Mon, 22 Feb 2021 19:13:22 +0100 Subject: [PATCH 11/12] Added support for calendar-order --- src/MainWindow.vala | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/MainWindow.vala b/src/MainWindow.vala index c7f984aab9..1cab413fd4 100644 --- a/src/MainWindow.vala +++ b/src/MainWindow.vala @@ -304,10 +304,15 @@ public class Tasks.MainWindow : Hdy.ApplicationWindow { } var row = (Tasks.SourceRow) lbrow; var before = (Tasks.SourceRow) lbbefore; + if (row.source.parent == null || before.source.parent == null) { return -1; } else if (row.source.parent == before.source.parent) { +#if HAS_EDS_3_40 + return E.util_source_compare_for_sort (row.source, before.source); +#else return row.source.display_name.collate (before.source.display_name); +#endif } else { return row.source.parent.collate (before.source.parent); } From 783077c1bff6c28977b13d5b249e3571e67a5558 Mon Sep 17 00:00:00 2001 From: Marco Betschart Date: Tue, 30 Mar 2021 08:20:47 +0200 Subject: [PATCH 12/12] Aligned libecal version compare with EDS stable release --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 9254d12039..98ad828d23 100644 --- a/meson.build +++ b/meson.build @@ -34,7 +34,7 @@ tasks_deps = [ dependency('libgdata') ] -if libecal_dep.version().version_compare('>=3.39.2') +if libecal_dep.version().version_compare('>=3.40.0') add_project_arguments('--define=HAS_EDS_3_40', language: 'vala') else tasks_deps += meson.get_compiler('vala').find_library('libecal-2.0-fixes', dirs: meson.current_source_dir() / 'vapi')