diff options
author | 2020-03-17 22:01:31 +0200 | |
---|---|---|
committer | 2020-03-17 22:01:31 +0200 | |
commit | bc0019fe9e47fda41b2a89fda9497e6e536356a1 (patch) | |
tree | 7b3524b155978e7dbb167a3b99bebbf7df962bac | |
parent | app-office/gnome-todo: ebuild touchups (diff) | |
download | gnome-bc0019fe9e47fda41b2a89fda9497e6e536356a1.tar.gz gnome-bc0019fe9e47fda41b2a89fda9497e6e536356a1.tar.bz2 gnome-bc0019fe9e47fda41b2a89fda9497e6e536356a1.zip |
app-office/gnome-todo: evolution-data-server-3.33 compatibility revbump
Package-Manager: Portage-2.3.84, Repoman-2.3.20
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
-rw-r--r-- | app-office/gnome-todo/files/gnome-todo-eds-libecal-2.0.patch | 570 | ||||
-rw-r--r-- | app-office/gnome-todo/gnome-todo-3.28.1-r1.ebuild | 67 |
2 files changed, 637 insertions, 0 deletions
diff --git a/app-office/gnome-todo/files/gnome-todo-eds-libecal-2.0.patch b/app-office/gnome-todo/files/gnome-todo-eds-libecal-2.0.patch new file mode 100644 index 00000000..df4151b8 --- /dev/null +++ b/app-office/gnome-todo/files/gnome-todo-eds-libecal-2.0.patch @@ -0,0 +1,570 @@ +Taken from Fedora from +https://src.fedoraproject.org/rpms/gnome-todo/raw/master/f/gnome-todo-eds-libecal-2.0.patch + +diff --git a/plugins/eds/gtd-eds-autoptr.h b/plugins/eds/gtd-eds-autoptr.h +index eb9b011..78bd944 100644 +--- a/plugins/eds/gtd-eds-autoptr.h ++++ b/plugins/eds/gtd-eds-autoptr.h +@@ -23,6 +23,5 @@ + #include <libecal/libecal.h> + + G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponent, g_object_unref); +-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponentId, e_cal_component_free_id); ++G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalComponentId, e_cal_component_id_free); + G_DEFINE_AUTOPTR_CLEANUP_FUNC (ECalClient, g_object_unref); +-G_DEFINE_AUTOPTR_CLEANUP_FUNC (ESource, g_object_unref); +diff --git a/plugins/eds/gtd-provider-eds.c b/plugins/eds/gtd-provider-eds.c +index a403226..def4235 100644 +--- a/plugins/eds/gtd-provider-eds.c ++++ b/plugins/eds/gtd-provider-eds.c +@@ -554,6 +554,7 @@ gtd_provider_eds_create_task (GtdProvider *provider, + + e_cal_client_create_object (client, + e_cal_component_get_icalcomponent (component), ++ E_CAL_OPERATION_FLAG_NONE, + NULL, + (GAsyncReadyCallback) on_task_created_cb, + new_task); +@@ -587,6 +588,7 @@ gtd_provider_eds_update_task (GtdProvider *provider, + e_cal_client_modify_object (client, + e_cal_component_get_icalcomponent (component), + E_CAL_OBJ_MOD_THIS, ++ E_CAL_OPERATION_FLAG_NONE, + NULL, + (GAsyncReadyCallback) on_task_modified_cb, + task); +@@ -616,9 +618,10 @@ gtd_provider_eds_remove_task (GtdProvider *provider, + gtd_object_push_loading (GTD_OBJECT (provider)); + + e_cal_client_remove_object (client, +- id->uid, +- id->rid, ++ e_cal_component_id_get_uid (id), ++ e_cal_component_id_get_rid (id), + E_CAL_OBJ_MOD_THIS, ++ E_CAL_OPERATION_FLAG_NONE, + NULL, + (GAsyncReadyCallback) on_task_removed_cb, + provider); +diff --git a/plugins/eds/gtd-task-eds.c b/plugins/eds/gtd-task-eds.c +index 2c8cd8e..bd8f7ac 100644 +--- a/plugins/eds/gtd-task-eds.c ++++ b/plugins/eds/gtd-task-eds.c +@@ -46,19 +46,19 @@ static GParamSpec *properties [N_PROPS]; + */ + + static GDateTime* +-convert_icaltime (const icaltimetype *date) ++convert_icaltime (const ICalTime *date) + { + GDateTime *dt; + + if (!date) + return NULL; + +- dt = g_date_time_new_utc (date->year, +- date->month, +- date->day, +- date->is_date ? 0 : date->hour, +- date->is_date ? 0 : date->minute, +- date->is_date ? 0 : date->second); ++ dt = g_date_time_new_utc (i_cal_time_get_year (date), ++ i_cal_time_get_month (date), ++ i_cal_time_get_day (date), ++ i_cal_time_is_date (date) ? 0 : i_cal_time_get_hour (date), ++ i_cal_time_is_date (date) ? 0 : i_cal_time_get_minute (date), ++ i_cal_time_is_date (date) ? 0 : i_cal_time_get_second (date)); + + return dt; + } +@@ -67,19 +67,20 @@ static void + set_description (GtdTaskEds *self, + const gchar *description) + { +- ECalComponentText text; ++ ECalComponentText *text; + GSList note; + +- text.value = description && *description ? description : ""; +- text.altrep = NULL; ++ text = e_cal_component_text_new (description ? description : "", NULL); + +- note.data = &text; ++ note.data = text; + note.next = NULL; + + g_clear_pointer (&self->description, g_free); + self->description = g_strdup (description); + +- e_cal_component_set_description_list (self->component, ¬e); ++ e_cal_component_set_descriptions (self->component, (description && *description) ? ¬e : NULL); ++ ++ e_cal_component_text_free (text); + } + + static void +@@ -90,7 +91,7 @@ setup_description (GtdTaskEds *self) + GSList *l; + + /* concatenates the multiple descriptions a task may have */ +- e_cal_component_get_description_list (self->component, &text_list); ++ text_list = e_cal_component_get_descriptions (self->component); + + for (l = text_list; l != NULL; l = l->next) + { +@@ -105,21 +106,21 @@ setup_description (GtdTaskEds *self) + { + carrier = g_strconcat (desc, + "\n", +- text->value, ++ e_cal_component_text_get_value (text), + NULL); + g_free (desc); + desc = carrier; + } + else + { +- desc = g_strdup (text->value); ++ desc = g_strdup (e_cal_component_text_get_value (text)); + } + } + } + + set_description (self, desc); + +- e_cal_component_free_text_list (text_list); ++ g_slist_free_full (text_list, e_cal_component_text_free); + } + + +@@ -138,7 +139,7 @@ gtd_task_eds_get_uid (GtdObject *object) + self = GTD_TASK_EDS (object); + + if (self->component) +- e_cal_component_get_uid (self->component, &uid); ++ uid = e_cal_component_get_uid (self->component); + else + uid = NULL; + +@@ -159,7 +160,7 @@ gtd_task_eds_set_uid (GtdObject *object, + if (!self->component) + return; + +- e_cal_component_get_uid (self->component, ¤t_uid); ++ current_uid = e_cal_component_get_uid (self->component); + + if (g_strcmp0 (current_uid, uid) != 0) + { +@@ -177,7 +178,7 @@ gtd_task_eds_set_uid (GtdObject *object, + static gboolean + gtd_task_eds_get_complete (GtdTask *task) + { +- icalproperty_status status; ++ ICalPropertyStatus status; + GtdTaskEds *self; + gboolean completed; + +@@ -185,8 +186,8 @@ gtd_task_eds_get_complete (GtdTask *task) + + self = GTD_TASK_EDS (task); + +- e_cal_component_get_status (self->component, &status); +- completed = status == ICAL_STATUS_COMPLETED; ++ status = e_cal_component_get_status (self->component); ++ completed = status == I_CAL_STATUS_COMPLETED; + + return completed; + } +@@ -195,8 +196,8 @@ static void + gtd_task_eds_set_complete (GtdTask *task, + gboolean complete) + { +- icalproperty_status status; +- icaltimetype *dt; ++ ICalPropertyStatus status; ++ ICalTime *dt; + GtdTaskEds *self; + gint percent; + +@@ -209,54 +210,54 @@ gtd_task_eds_set_complete (GtdTask *task, + percent = 100; + status = ICAL_STATUS_COMPLETED; + +- dt = g_new0 (icaltimetype, 1); +- dt->year = g_date_time_get_year (now); +- dt->month = g_date_time_get_month (now); +- dt->day = g_date_time_get_day_of_month (now); +- dt->hour = g_date_time_get_hour (now); +- dt->minute = g_date_time_get_minute (now); +- dt->second = g_date_time_get_seconds (now); +- dt->zone = icaltimezone_get_utc_timezone (); ++ dt = i_cal_time_new_null_time (); ++ i_cal_time_set_date (dt, ++ g_date_time_get_year (now), ++ g_date_time_get_month (now), ++ g_date_time_get_day_of_month (now)); ++ i_cal_time_set_time (dt, ++ g_date_time_get_hour (now), ++ g_date_time_get_minute (now), ++ g_date_time_get_seconds (now)); ++ i_cal_time_set_timezone (dt, i_cal_timezone_get_utc_timezone ()); + + /* convert timezone + * + * FIXME: This does not do anything until we have an ical + * timezone associated with the task + */ +- icaltimezone_convert_time (dt, NULL, icaltimezone_get_utc_timezone ()); ++ i_cal_time_convert_timezone (dt, NULL, i_cal_timezone_get_utc_timezone ()); + } + else + { + dt = NULL; + percent = 0; +- status = ICAL_STATUS_NEEDSACTION; ++ status = I_CAL_STATUS_NEEDSACTION; + } + +- e_cal_component_set_percent_as_int (self->component, percent); ++ e_cal_component_set_percent_complete (self->component, percent); + e_cal_component_set_status (self->component, status); + e_cal_component_set_completed (self->component, dt); + +- if (dt) +- e_cal_component_free_icaltimetype (dt); ++ g_clear_object (&dt); + } + + static GDateTime* + gtd_task_eds_get_creation_date (GtdTask *task) + { +- icaltimetype *idt; ++ ICalTime *idt; + GtdTaskEds *self; + GDateTime *dt; + + self = GTD_TASK_EDS (task); +- idt = NULL; + dt = NULL; + +- e_cal_component_get_created (self->component, &idt); ++ idt = e_cal_component_get_created (self->component); + + if (idt) + dt = convert_icaltime (idt); + +- g_clear_pointer (&idt, e_cal_component_free_icaltimetype); ++ g_clear_object (&idt); + + return dt; + } +@@ -286,7 +287,7 @@ gtd_task_eds_set_description (GtdTask *task, + static GDateTime* + gtd_task_eds_get_due_date (GtdTask *task) + { +- ECalComponentDateTime comp_dt; ++ ECalComponentDateTime *comp_dt; + GtdTaskEds *self; + GDateTime *date; + +@@ -294,10 +295,12 @@ gtd_task_eds_get_due_date (GtdTask *task) + + self = GTD_TASK_EDS (task); + +- e_cal_component_get_due (self->component, &comp_dt); ++ comp_dt = e_cal_component_get_due (self->component); ++ if (!comp_dt) ++ return NULL; + +- date = convert_icaltime (comp_dt.value); +- e_cal_component_free_datetime (&comp_dt); ++ date = convert_icaltime (e_cal_component_datetime_get_value (comp_dt)); ++ e_cal_component_datetime_free (comp_dt); + + return date; + } +@@ -317,11 +320,10 @@ gtd_task_eds_set_due_date (GtdTask *task, + + if (dt != current_dt) + { +- ECalComponentDateTime comp_dt; +- icaltimetype *idt; ++ ECalComponentDateTime *comp_dt; ++ ICalTime *idt; + +- comp_dt.value = NULL; +- comp_dt.tzid = NULL; ++ comp_dt = NULL; + idt = NULL; + + if (!current_dt || +@@ -329,36 +331,34 @@ gtd_task_eds_set_due_date (GtdTask *task, + dt && + g_date_time_compare (current_dt, dt) != 0)) + { +- idt = g_new0 (icaltimetype, 1); ++ idt = i_cal_time_new_null_time (); + + g_date_time_ref (dt); + + /* Copy the given dt */ +- idt->year = g_date_time_get_year (dt); +- idt->month = g_date_time_get_month (dt); +- idt->day = g_date_time_get_day_of_month (dt); +- idt->hour = g_date_time_get_hour (dt); +- idt->minute = g_date_time_get_minute (dt); +- idt->second = g_date_time_get_seconds (dt); +- idt->is_date = (idt->hour == 0 && +- idt->minute == 0 && +- idt->second == 0); +- +- comp_dt.tzid = g_strdup ("UTC"); ++ i_cal_time_set_date (idt, ++ g_date_time_get_year (dt), ++ g_date_time_get_month (dt), ++ g_date_time_get_day_of_month (dt)); ++ i_cal_time_set_time (idt, ++ g_date_time_get_hour (dt), ++ g_date_time_get_minute (dt), ++ g_date_time_get_seconds (dt)); ++ i_cal_time_set_is_date (idt, ++ i_cal_time_get_hour (idt) == 0 && ++ i_cal_time_get_minute (idt) == 0 && ++ i_cal_time_get_second (idt) == 0); + +- comp_dt.value = idt; ++ comp_dt = e_cal_component_datetime_new_take (idt, g_strdup ("UTC")); + +- e_cal_component_set_due (self->component, &comp_dt); ++ e_cal_component_set_due (self->component, comp_dt); + +- e_cal_component_free_datetime (&comp_dt); ++ e_cal_component_datetime_free (comp_dt); + + g_date_time_unref (dt); + } + else if (!dt) + { +- idt = NULL; +- comp_dt.tzid = NULL; +- + e_cal_component_set_due (self->component, NULL); + } + } +@@ -369,19 +369,13 @@ gtd_task_eds_set_due_date (GtdTask *task, + static gint32 + gtd_task_eds_get_priority (GtdTask *task) + { +- g_autofree gint *priority = NULL; + GtdTaskEds *self; + + g_assert (GTD_IS_TASK_EDS (task)); + + self = GTD_TASK_EDS (task); + +- e_cal_component_get_priority (self->component, &priority); +- +- if (!priority) +- return -1; +- +- return *priority; ++ return e_cal_component_get_priority (self->component); + } + + static void +@@ -394,29 +388,26 @@ gtd_task_eds_set_priority (GtdTask *task, + + self = GTD_TASK_EDS (task); + +- e_cal_component_set_priority (self->component, &priority); ++ e_cal_component_set_priority (self->component, priority); + } + + static const gchar* + gtd_task_eds_get_title (GtdTask *task) + { +- ECalComponentText summary; + GtdTaskEds *self; + + g_return_val_if_fail (GTD_IS_TASK_EDS (task), NULL); + + self = GTD_TASK_EDS (task); + +- e_cal_component_get_summary (self->component, &summary); +- +- return summary.value; ++ return i_cal_component_get_summary (e_cal_component_get_icalcomponent (self->component)); + } + + static void + gtd_task_eds_set_title (GtdTask *task, + const gchar *title) + { +- ECalComponentText new_summary; ++ ECalComponentText *new_summary; + GtdTaskEds *self; + + g_return_if_fail (GTD_IS_TASK_EDS (task)); +@@ -424,10 +415,11 @@ gtd_task_eds_set_title (GtdTask *task, + + self = GTD_TASK_EDS (task); + +- new_summary.value = title; +- new_summary.altrep = NULL; ++ new_summary = e_cal_component_text_new (title, NULL); + +- e_cal_component_set_summary (self->component, &new_summary); ++ e_cal_component_set_summary (self->component, new_summary); ++ ++ e_cal_component_text_free (new_summary); + } + + +@@ -436,10 +428,10 @@ gtd_task_eds_subtask_added (GtdTask *task, + GtdTask *subtask) + { + g_autoptr (GList) subtasks = NULL; +- ECalComponentId *id; ++ const gchar *uid; + ECalComponent *comp; +- icalcomponent *ical_comp; +- icalproperty *property; ++ ICalComponent *ical_comp; ++ ICalProperty *property; + GtdTaskEds *subtask_self; + GtdTaskEds *self; + +@@ -450,17 +442,17 @@ gtd_task_eds_subtask_added (GtdTask *task, + /* Hook with parent's :subtask_added */ + GTD_TASK_CLASS (gtd_task_eds_parent_class)->subtask_added (task, subtask); + +- id = e_cal_component_get_id (self->component); ++ uid = e_cal_component_get_uid (self->component); + comp = subtask_self->component; + ical_comp = e_cal_component_get_icalcomponent (comp); +- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY); ++ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY); + + if (property) +- icalproperty_set_relatedto (property, id->uid); ++ i_cal_property_set_relatedto (property, uid); + else +- icalcomponent_add_property (ical_comp, icalproperty_new_relatedto (id->uid)); ++ i_cal_component_take_property (ical_comp, i_cal_property_new_relatedto (uid)); + +- e_cal_component_free_id (id); ++ g_clear_object (&property); + } + + static void +@@ -468,8 +460,8 @@ gtd_task_eds_subtask_removed (GtdTask *task, + GtdTask *subtask) + { + g_autoptr (GList) subtasks = NULL; +- icalcomponent *ical_comp; +- icalproperty *property; ++ ICalComponent *ical_comp; ++ ICalProperty *property; + GtdTaskEds *subtask_self; + + subtask_self = GTD_TASK_EDS (subtask); +@@ -480,12 +472,13 @@ gtd_task_eds_subtask_removed (GtdTask *task, + + /* Remove the parent link from the subtask's component */ + ical_comp = e_cal_component_get_icalcomponent (subtask_self->component); +- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY); ++ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY); + + if (!property) + return; + +- icalcomponent_remove_property (ical_comp, property); ++ i_cal_component_remove_property (ical_comp, property); ++ g_object_unref (property); + } + + +diff --git a/plugins/eds/gtd-task-list-eds.c b/plugins/eds/gtd-task-list-eds.c +index eb48a73..5b71718 100644 +--- a/plugins/eds/gtd-task-list-eds.c ++++ b/plugins/eds/gtd-task-list-eds.c +@@ -85,19 +85,19 @@ setup_parent_task (GtdTaskListEds *self, + GtdTask *task) + { + ECalComponent *component; +- icalcomponent *ical_comp; +- icalproperty *property; ++ ICalComponent *ical_comp; ++ ICalProperty *property; + GtdTask *parent_task; + const gchar *parent_uid; + + component = gtd_task_eds_get_component (GTD_TASK_EDS (task)); + ical_comp = e_cal_component_get_icalcomponent (component); +- property = icalcomponent_get_first_property (ical_comp, ICAL_RELATEDTO_PROPERTY); ++ property = i_cal_component_get_first_property (ical_comp, I_CAL_RELATEDTO_PROPERTY); + + if (!property) + return; + +- parent_uid = icalproperty_get_relatedto (property); ++ parent_uid = i_cal_property_get_relatedto (property); + parent_task = gtd_task_list_get_task_by_id (GTD_TASK_LIST (self), parent_uid); + + if (parent_task) +@@ -112,6 +112,8 @@ setup_parent_task (GtdTaskListEds *self, + + g_ptr_array_add (self->pending_subtasks, data); + } ++ ++ g_object_unref (property); + } + + static void +@@ -161,8 +163,8 @@ on_view_objects_added_cb (ECalClientView *view, + GtdTask *task; + const gchar *uid; + +- component = e_cal_component_new_from_string (icalcomponent_as_ical_string (l->data)); +- e_cal_component_get_uid (component, &uid); ++ component = e_cal_component_new_from_icalcomponent (i_cal_component_clone (l->data)); ++ uid = e_cal_component_get_uid (component); + + task = gtd_task_list_get_task_by_id (self, uid); + +@@ -211,8 +213,8 @@ on_view_objects_modified_cb (ECalClientView *view, + GtdTask *task; + const gchar *uid; + +- component = e_cal_component_new_from_string (icalcomponent_as_ical_string (l->data)); +- e_cal_component_get_uid (component, &uid); ++ component = e_cal_component_new_from_icalcomponent (i_cal_component_clone (l->data)); ++ uid = e_cal_component_get_uid (component); + + task = gtd_task_list_get_task_by_id (self, uid); + +@@ -244,7 +246,7 @@ on_view_objects_removed_cb (ECalClientView *view, + GtdTask *task; + + id = l->data; +- task = gtd_task_list_get_task_by_id (self, id->uid); ++ task = gtd_task_list_get_task_by_id (self, e_cal_component_id_get_uid (id)); + + if (!task) + continue; +diff --git a/plugins/eds/meson.build b/plugins/eds/meson.build +index ea84426..b37f0c6 100644 +--- a/plugins/eds/meson.build ++++ b/plugins/eds/meson.build +@@ -8,10 +8,9 @@ plugins_ldflags += ['-Wl,--undefined=gtd_plugin_eds_register_types'] + ################ + + eds_plugin_deps = [ +- dependency('libecal-1.2', version: '>= 3.13.90'), ++ dependency('libecal-2.0', version: '>= 3.33.1'), + dependency('libedataserver-1.2', version: '>= 3.17.1'), + dependency('libedataserverui-1.2', version: '>= 3.17.1'), +- dependency('libical', version: '>= 0.43'), + ] + + eds_plugin_deps += gnome_todo_deps diff --git a/app-office/gnome-todo/gnome-todo-3.28.1-r1.ebuild b/app-office/gnome-todo/gnome-todo-3.28.1-r1.ebuild new file mode 100644 index 00000000..7a8b9d67 --- /dev/null +++ b/app-office/gnome-todo/gnome-todo-3.28.1-r1.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit gnome.org gnome2-utils meson xdg + +DESCRIPTION="Personal task manager" +HOMEPAGE="https://wiki.gnome.org/Apps/Todo" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="gtk-doc +introspection" + +RDEPEND=" + >=dev-libs/glib-2.43.4:2 + >=x11-libs/gtk+-3.22.0:3[introspection?] + >=net-libs/gnome-online-accounts-3.25.3 + >=dev-libs/libpeas-1.17 + >=gnome-extra/evolution-data-server-3.33.1:=[gtk] + net-libs/rest:0.7 + dev-libs/json-glib + introspection? ( >=dev-libs/gobject-introspection-1.42:= ) +" +DEPEND="${RDEPEND} + dev-libs/libxml2:2 + dev-util/glib-utils + gtk-doc? ( dev-util/gtk-doc + app-text/docbook-xml-dtd:4.3 ) + >=sys-devel/gettext-0.19.8 + virtual/pkgconfig +" + +PATCHES=( + "${FILESDIR}"/gnome-todo-eds-libecal-2.0.patch +) + +src_configure() { + # TODO: There aren't any consumers of the introspection outside gnome-todo's own plugins, so maybe we + # TODO: should just always build introspection support as an application that needs it for full functionality? + # Todoist plugin requires 3.25.3 GOA for being able to add a Todoist account + local emesonargs=( + -Dbackground_plugin=true + -Ddark_theme_plugin=true + -Dscheduled_panel_plugin=true + -Dscore_plugin=true + -Dtoday_panel_plugin=true + -Dunscheduled_panel_plugin=true + -Dtodo_txt_plugin=true + -Dtodoist_plugin=true + -Dtracing=false + $(meson_use gtk-doc gtk_doc) + $(meson_use introspection) + ) + meson_src_configure +} + +pkg_postinst() { + xdg_pkg_postinst + gnome2_schemas_update +} + +pkg_postrm() { + xdg_pkg_postrm + gnome2_schemas_update +} |