From e3100762b61b156dbf730eb6b4ae903088819895 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Lopez?= Date: Sat, 14 Mar 2026 00:36:27 +0100 Subject: [PATCH] gnu: gnome-contacts: Update to 49.0. * gnu/packages/gnome.scm (gnome-contacts): Update to 49.0. [source]: Add compatibility patch from version 50.alpha. * gnu/packages/patches/gnome-contacts-evolution-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register the patch. Change-Id: If192104170bede40da385c50b7571ccb72f47489 Signed-off-by: Maxim Cournoyer --- gnu/local.mk | 1 + gnu/packages/gnome.scm | 10 ++- .../gnome-contacts-evolution-compat.patch | 69 +++++++++++++++++++ 3 files changed, 77 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/gnome-contacts-evolution-compat.patch diff --git a/gnu/local.mk b/gnu/local.mk index ce130b04f7..9669fce411 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1507,6 +1507,7 @@ dist_patch_DATA = \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ %D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gnome-2048-fix-positional-argument.patch \ + %D%/packages/patches/gnome-contacts-evolution-compat.patch \ %D%/packages/patches/gnome-control-center-firmware-security.patch \ %D%/packages/patches/gnome-control-center-libexecdir.patch \ %D%/packages/patches/gnome-dictionary-meson-i18n.patch \ diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 1a6cf4758d..4ec683fa1e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2021,7 +2021,7 @@ commonly used macros.") (define-public gnome-contacts (package (name "gnome-contacts") - (version "48.0") + (version "49.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/gnome-contacts/" @@ -2029,7 +2029,10 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "1df1xhvlcqzd2y9c3mqclxr7n1rp9rcvaa2z30zyq9wlnnajjxm2")))) + "1bz4hns4vd9ifw0s4j7jgys143a650ny5lww5pppvmr9pikirwi5")) + (patches + ;; Included in version 50.alpha. + (search-patches "gnome-contacts-evolution-compat.patch")))) (build-system meson-build-system) (arguments (list @@ -2045,7 +2048,8 @@ commonly used macros.") (("gtk_update_icon_cache: true") "gtk_update_icon_cache: false"))))))) (native-inputs - (list desktop-file-utils + (list blueprint-compiler + desktop-file-utils docbook-xml docbook-xml-4.2 docbook-xsl diff --git a/gnu/packages/patches/gnome-contacts-evolution-compat.patch b/gnu/packages/patches/gnome-contacts-evolution-compat.patch new file mode 100644 index 0000000000..0a3387397b --- /dev/null +++ b/gnu/packages/patches/gnome-contacts-evolution-compat.patch @@ -0,0 +1,69 @@ +From 45cb9a2d7e8cffd17bab05e29ee38f0463743a9c Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 17 Oct 2025 11:10:09 +0200 +Subject: [PATCH] vcard-export: Adapt to evolution-data-server 3.59.1 EVCard + API changes + +The e_vcard_to_string() newly does not have any argument, the vCard +is saved in a version it is stored in the structure. To export in +a specific version, one can use e_vcard_convert_to_string(). +--- + meson.build | 3 +++ + src/io/contacts-io-vcard-export-operation.vala | 10 ++++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/meson.build b/meson.build +index e2a70a98..b90cb36d 100644 +--- a/meson.build ++++ b/meson.build +@@ -52,6 +52,9 @@ libadwaita_dep = dependency('libadwaita-1', version: '>= 1.8.alpha') + # E-D-S + libebook = dependency('libebook-1.2', version: '>=' + min_eds_version) + libedataserver = dependency('libedataserver-1.2', version: '>=' + min_eds_version) ++if libebook.version().version_compare('>=3.59.1') ++ add_project_arguments('-D', 'HAVE_EDS_3_59_1', language: 'vala') ++endif + # Camera + libportal_dep = dependency('libportal-gtk4', version: '>= 0.7') + gstreamer_dep = dependency('gstreamer-1.0') +diff --git a/src/io/contacts-io-vcard-export-operation.vala b/src/io/contacts-io-vcard-export-operation.vala +index 74ed6572..a692a67d 100644 +--- a/src/io/contacts-io-vcard-export-operation.vala ++++ b/src/io/contacts-io-vcard-export-operation.vala +@@ -16,7 +16,9 @@ public class Contacts.Io.VCardExportOperation : ExportOperation { + + // We _could_ parameterize this with our own enum, but there's no need for + // that at the moment. ++#if !HAVE_EDS_3_59_1 + private E.VCardFormat vcard_format = E.VCardFormat.@30; ++#endif + + // This should always be on false, except for debugging/troubleshooting + // purposes. It forces E-D-S personas to use our manual serialization instead +@@ -53,7 +55,11 @@ public class Contacts.Io.VCardExportOperation : ExportOperation { + // that's an E.VCard already + if (persona is Edsf.Persona && !avoid_eds) { + unowned var contact = ((Edsf.Persona) persona).contact; ++#if HAVE_EDS_3_59_1 ++ return contact.to_string (); ++#else + return contact.to_string (this.vcard_format); ++#endif + } + + var vcard = new E.VCard (); +@@ -104,7 +110,11 @@ public class Contacts.Io.VCardExportOperation : ExportOperation { + vcard_set_webservice_details (vcard, (WebServiceDetails) persona); + */ + ++#if HAVE_EDS_3_59_1 ++ return vcard.to_string (); ++#else + return vcard.to_string (this.vcard_format); ++#endif + } + + private void vcard_set_avatar_details (E.VCard vcard, +-- +GitLab +