From 27c4a485b725acd4fb0c81aafeb0f9fab8c8bac7 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 27 2022 09:02:38 +0000 Subject: import evolution-3.40.4-6.el9 --- diff --git a/SOURCES/evolution-3.40.4-google-contacts-to-carddav.patch b/SOURCES/evolution-3.40.4-google-contacts-to-carddav.patch new file mode 100644 index 0000000..3bbe829 --- /dev/null +++ b/SOURCES/evolution-3.40.4-google-contacts-to-carddav.patch @@ -0,0 +1,1124 @@ +diff -up evolution-3.40.4/.3 evolution-3.40.4/ +diff -up evolution-3.40.4/po/ca.po.3 evolution-3.40.4/po/ca.po +--- evolution-3.40.4/po/ca.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/ca.po 2022-04-05 10:00:37.396025268 +0200 +@@ -29878,3 +29878,11 @@ msgstr "Certificat importat" + + #~ msgid "Certificate details" + #~ msgstr "Detalls del certificat" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Llibreta d'adreces d'usuari per defecte" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Llibreta d'adreces:" +diff -up evolution-3.40.4/po/cs.po.3 evolution-3.40.4/po/cs.po +--- evolution-3.40.4/po/cs.po.3 2022-04-05 10:00:37.398025267 +0200 ++++ evolution-3.40.4/po/cs.po 2022-04-05 10:01:37.100998171 +0200 +@@ -28264,3 +28264,10 @@ msgstr "Nelze zapsat úložiště na dis + msgid "Imported Certificate" + msgstr "Importovaný certifikát" + ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Výchozí uživatelský adresář" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresář:" +diff -up evolution-3.40.4/po/da.po.3 evolution-3.40.4/po/da.po +--- evolution-3.40.4/po/da.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/da.po 2022-04-05 10:00:37.400025266 +0200 +@@ -28202,3 +28202,11 @@ msgstr "Kan ikke skrive lageret til disk + #: ../src/smime/lib/e-pkcs12.c:407 + msgid "Imported Certificate" + msgstr "Importeret certifikat" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Standard-brugeradressebog" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adressebog:" +diff -up evolution-3.40.4/po/de.po.3 evolution-3.40.4/po/de.po +--- evolution-3.40.4/po/de.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/de.po 2022-04-05 10:00:37.402025265 +0200 +@@ -28546,3 +28546,11 @@ msgstr "Importiertes Zertifikat" + + #~ msgid "%d/%m/%Y" + #~ msgstr "%d.%m.%Y" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Standard-Benutzer-Adressbuch" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adressbuch:" +diff -up evolution-3.40.4/po/el.po.3 evolution-3.40.4/po/el.po +--- evolution-3.40.4/po/el.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/el.po 2022-04-05 10:00:37.404025264 +0200 +@@ -36518,3 +36518,11 @@ msgstr "Εισηγμένο πιστοπ� + #~ msgstr "" + #~ "Ειδοποιεί τον χρήστη με ένα εικονίδιο στην περιοχή ειδοποίησης και με ένα " + #~ "μήνυμα ειδοποίησης κάθε φορά που φθάνει ένα νέο μήνυμα." ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Προεπιλεγμένο βιβλίο διευθύνσεων χρήστη" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Βιβλίο διευθύνσεων:" +diff -up evolution-3.40.4/po/eo.po.3 evolution-3.40.4/po/eo.po +--- evolution-3.40.4/po/eo.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/eo.po 2022-04-05 10:00:37.406025263 +0200 +@@ -27968,3 +27968,7 @@ msgstr "Enportita atestilo" + + #~ msgid "Read and write emails" + #~ msgstr "Legi kaj skribi retpoŝtojn" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresaro:" +diff -up evolution-3.40.4/po/es.po.3 evolution-3.40.4/po/es.po +--- evolution-3.40.4/po/es.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/es.po 2022-04-05 10:00:37.408025262 +0200 +@@ -29113,3 +29113,11 @@ msgstr "Certificado importado" + #~ msgstr "" + #~ "El calendario «%s» contiene %d citas que entran en conflicto con esta " + #~ "reunión" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Eliminar la libreta de direcciones de usuario predeterminada" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Libreta de direcciones:" +diff -up evolution-3.40.4/po/eu.po.3 evolution-3.40.4/po/eu.po +--- evolution-3.40.4/po/eu.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/eu.po 2022-04-05 10:00:37.409025262 +0200 +@@ -27204,3 +27204,11 @@ msgstr "Inportatutako ziurtagiria" + + #~ msgid "_Destination" + #~ msgstr "_Helburua" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Erabiltzailearen helbide-liburu lehenetsia" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Helbide-liburua:" +diff -up evolution-3.40.4/po/fi.po.3 evolution-3.40.4/po/fi.po +--- evolution-3.40.4/po/fi.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/fi.po 2022-04-05 10:00:37.411025261 +0200 +@@ -29750,3 +29750,7 @@ msgstr "Tuotu varmenne" + + #~ msgid "Certificate details" + #~ msgstr "Varmenteen yksityiskohdat" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Osoitekirja:" +diff -up evolution-3.40.4/po/fr.po.3 evolution-3.40.4/po/fr.po +--- evolution-3.40.4/po/fr.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/fr.po 2022-04-05 10:00:37.413025260 +0200 +@@ -28750,3 +28750,11 @@ msgstr "Certificat importé" + + #~ msgid "Preserve exiting reminder by default" + #~ msgstr "Conserver les rappels existants par défaut" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Carnet d’adresses par défaut de l’utilisateur" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Carnet d’adresses :" +diff -up evolution-3.40.4/po/fur.po.3 evolution-3.40.4/po/fur.po +--- evolution-3.40.4/po/fur.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/fur.po 2022-04-05 10:00:37.414025260 +0200 +@@ -29053,3 +29053,11 @@ msgstr "Certificât impuartât" + #~ msgctxt "PGPKeyDescription" + #~ msgid "%s - %s" + #~ msgstr "%s - %s" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Rubriche utent predefinît" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Rubriche:" +diff -up evolution-3.40.4/po/gl.po.3 evolution-3.40.4/po/gl.po +--- evolution-3.40.4/po/gl.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/gl.po 2022-04-05 10:00:37.416025259 +0200 +@@ -28502,3 +28502,11 @@ msgstr "Certificado importado" + + #~ msgid "Delivery Notification for “%s”" + #~ msgstr "Notificación de recepción para «%s»" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Axenda de enderezos predeterminada do usuario" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Caderno de enderezos:" +diff -up evolution-3.40.4/po/hr.po.3 evolution-3.40.4/po/hr.po +--- evolution-3.40.4/po/hr.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/hr.po 2022-04-05 10:00:37.418025258 +0200 +@@ -28303,3 +28303,11 @@ msgstr "Uvezena vjerodajnica" + + #~ msgid "This certificate is not viewable" + #~ msgstr "Ovaj potvrda nije vidljiva" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Zadani adresar korisnika" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresar:" +diff -up evolution-3.40.4/po/hu.po.3 evolution-3.40.4/po/hu.po +--- evolution-3.40.4/po/hu.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/hu.po 2022-04-05 10:00:37.419025257 +0200 +@@ -27314,3 +27314,11 @@ msgstr "Importált tanúsítvány" + + #~ msgid "_Destination" + #~ msgstr "_Cél" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Alapértelmezett felhasználói címjegyzék" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Címjegyzék:" +diff -up evolution-3.40.4/po/id.po.3 evolution-3.40.4/po/id.po +--- evolution-3.40.4/po/id.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/id.po 2022-04-05 10:00:37.421025257 +0200 +@@ -28288,3 +28288,11 @@ msgstr "Sertifikat Yang Diimpor" + + #~ msgid "Delivery Notification for “%s”" + #~ msgstr "Notifikasi Pengiriman untuk \"%s\"" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Buku Alamat Pengguna Bawaan" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Buku Alamat:" +diff -up evolution-3.40.4/po/it.po.3 evolution-3.40.4/po/it.po +--- evolution-3.40.4/po/it.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/it.po 2022-04-05 10:00:37.423025256 +0200 +@@ -29030,3 +29030,11 @@ msgstr "Impossibile scrivere il salvatag + #: ../src/smime/lib/e-pkcs12.c:407 + msgid "Imported Certificate" + msgstr "Certificato importato" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Rubrica predefinita dell'utente" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Rubrica:" +diff -up evolution-3.40.4/po/kk.po.3 evolution-3.40.4/po/kk.po +--- evolution-3.40.4/po/kk.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/kk.po 2022-04-05 10:00:37.424025255 +0200 +@@ -27302,3 +27302,7 @@ msgstr "Импортталған сер� + + #~ msgid "_PostScript" + #~ msgstr "_PostScript" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Адрестік кітапша:" +diff -up evolution-3.40.4/po/ko.po.3 evolution-3.40.4/po/ko.po +--- evolution-3.40.4/po/ko.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/ko.po 2022-04-05 10:00:37.426025254 +0200 +@@ -28272,3 +28272,11 @@ msgstr "디스크에 저장 내용을 � + #: ../src/smime/lib/e-pkcs12.c:407 + msgid "Imported Certificate" + msgstr "가져온 인증서" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "기본 사용자 주소록" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "주소록:" +diff -up evolution-3.40.4/po/lt.po.3 evolution-3.40.4/po/lt.po +--- evolution-3.40.4/po/lt.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/lt.po 2022-04-05 10:00:37.428025253 +0200 +@@ -29356,3 +29356,11 @@ msgstr "Importuotas liudijimas" + + #~ msgid "Certificate details" + #~ msgstr "Liudijimo informacija" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Numatytoji naudotojo adresų knyga" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresų knyga:" +diff -up evolution-3.40.4/po/lv.po.3 evolution-3.40.4/po/lv.po +--- evolution-3.40.4/po/lv.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/lv.po 2022-04-05 10:00:37.429025253 +0200 +@@ -26918,3 +26918,11 @@ msgstr "Importēts sertifikāts" + + #~ msgid "Evolution Web Inspector" + #~ msgstr "Evolution tīmekļa inspektors" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Noklusējuma lietotāja adrešu grāmata" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adrešu grāmata:" +diff -up evolution-3.40.4/po/nb.po.3 evolution-3.40.4/po/nb.po +--- evolution-3.40.4/po/nb.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/nb.po 2022-04-05 10:00:37.431025252 +0200 +@@ -27933,3 +27933,11 @@ msgstr "Kan ikke skrive lager til disk. + #: ../src/smime/lib/e-pkcs12.c:407 + msgid "Imported Certificate" + msgstr "Importert sertifikat" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Forvalgt adressebok for bruker" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adressebok:" +diff -up evolution-3.40.4/po/nl.po.3 evolution-3.40.4/po/nl.po +--- evolution-3.40.4/po/nl.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/nl.po 2022-04-05 10:00:37.432025252 +0200 +@@ -29667,3 +29667,11 @@ msgstr "Geïmporteerd certificaat" + # Herinnering geven [15] [minuten] voor het begin van elke afspraak + #~ msgid "Sh_ow a reminder" + #~ msgstr "Herinnering geven" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Standaardadresboek van gebruiker" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresboek:" +diff -up evolution-3.40.4/po/pl.po.3 evolution-3.40.4/po/pl.po +--- evolution-3.40.4/po/pl.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/pl.po 2022-04-05 10:00:37.434025251 +0200 +@@ -28409,3 +28409,11 @@ msgstr "Nie można zapisać przechowalni + #: ../src/smime/lib/e-pkcs12.c:407 + msgid "Imported Certificate" + msgstr "Zaimportowany certyfikat" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Domyślna książka adresowa użytkownika" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Książka adresowa:" +diff -up evolution-3.40.4/po/POTFILES.in.3 evolution-3.40.4/po/POTFILES.in +--- evolution-3.40.4/po/POTFILES.in.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/POTFILES.in 2022-04-05 10:00:37.392025269 +0200 +@@ -406,6 +406,7 @@ src/modules/backup-restore/org-gnome-bac + src/modules/bogofilter/evolution-bogofilter.c + src/modules/bogofilter/org.gnome.Evolution-bogofilter.metainfo.xml.in + src/modules/book-config-carddav/evolution-book-config-carddav.c ++src/modules/book-config-google/e-google-book-chooser-button.c + src/modules/book-config-google/evolution-book-config-google.c + src/modules/book-config-ldap/evolution-book-config-ldap.c + src/modules/cal-config-caldav/evolution-cal-config-caldav.c +diff -up evolution-3.40.4/po/pt_BR.po.3 evolution-3.40.4/po/pt_BR.po +--- evolution-3.40.4/po/pt_BR.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/pt_BR.po 2022-04-05 10:00:37.438025249 +0200 +@@ -29031,3 +29031,11 @@ msgstr "Certificado importado" + + #~ msgid "Save name format for drag-and-drop operation" + #~ msgstr "Salvar formato de nome para operação de arrastar e soltar" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Catálogo de endereços do usuário padrão" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Catálogo de endereços:" +diff -up evolution-3.40.4/po/pt.po.3 evolution-3.40.4/po/pt.po +--- evolution-3.40.4/po/pt.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/pt.po 2022-04-05 10:00:37.436025250 +0200 +@@ -32805,3 +32805,11 @@ msgstr "Certificado importado" + + #~ msgid "Checks incoming mail messages to be Junk" + #~ msgstr "Verificar nas mensagens recebidas se são Não Solicitadas" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Livro de endereços predefinido do utilizador" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Livro de endereços:" +diff -up evolution-3.40.4/po/ro.po.3 evolution-3.40.4/po/ro.po +--- evolution-3.40.4/po/ro.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/ro.po 2022-04-05 10:00:37.439025249 +0200 +@@ -26328,3 +26328,11 @@ msgstr "Certificatul importat" + + #~ msgid "_Destination" + #~ msgstr "_Destinație" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Agenda utilizatorului implicit" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Agendă:" +diff -up evolution-3.40.4/po/ru.po.3 evolution-3.40.4/po/ru.po +--- evolution-3.40.4/po/ru.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/ru.po 2022-04-05 10:00:37.441025248 +0200 +@@ -28144,3 +28144,11 @@ msgstr "Импортированный � + #~ msgstr "" + #~ "Этот параметр будет использовать токен доступа OAuth 2.0 для подключения " + #~ "к серверу" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Адресная книга пользователя по умолчанию" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Адресная книга:" +diff -up evolution-3.40.4/po/sk.po.3 evolution-3.40.4/po/sk.po +--- evolution-3.40.4/po/sk.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/sk.po 2022-04-05 10:00:37.443025247 +0200 +@@ -29840,3 +29840,7 @@ msgstr "Importovaný certifikát" + # MČ: podpis certifikátu. Až ďalej sa určuje, či sa tento certifikát môže použiť na podpisovanie + #~ msgid "Certificate Signature Value" + #~ msgstr "Hodnota podpisu certifikátu" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adresár kontaktov:" +diff -up evolution-3.40.4/po/sl.po.3 evolution-3.40.4/po/sl.po +--- evolution-3.40.4/po/sl.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/sl.po 2022-04-05 10:00:37.444025246 +0200 +@@ -28539,3 +28539,11 @@ msgstr "Uvoženo potrdilo" + + #~ msgid "Certificate" + #~ msgstr "Potrdilo" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Privzeti uporabniški imenik" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Imenik:" +diff -up evolution-3.40.4/po/sr.po.3 evolution-3.40.4/po/sr.po +--- evolution-3.40.4/po/sr.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/sr.po 2022-04-05 10:00:37.447025245 +0200 +@@ -29869,3 +29869,11 @@ msgstr "Увежено уверење" + + #~ msgid "Certificate Signature Value" + #~ msgstr "Вредност потписа уверења" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Основни корисников именик" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Именик:" +diff -up evolution-3.40.4/po/sv.po.3 evolution-3.40.4/po/sv.po +--- evolution-3.40.4/po/sv.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/sv.po 2022-04-05 10:00:37.450025244 +0200 +@@ -29371,3 +29371,11 @@ msgstr "Importerat certifikat" + + #~ msgid "User declined to provide a password" + #~ msgstr "Användare avböjde att tillhandahålla ett lösenord" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Standardadressbok för användare" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adressbok:" +diff -up evolution-3.40.4/po/tr.po.3 evolution-3.40.4/po/tr.po +--- evolution-3.40.4/po/tr.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/tr.po 2022-04-05 10:00:37.452025243 +0200 +@@ -28728,3 +28728,11 @@ msgstr "Aktarılmış Sertifika" + + #~ msgid "Evolution Web Inspector" + #~ msgstr "Evolution Web Denetçisi" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Öntanımlı Kullanıcı Adres Defteri" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Adres Defteri:" +diff -up evolution-3.40.4/po/uk.po.3 evolution-3.40.4/po/uk.po +--- evolution-3.40.4/po/uk.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/uk.po 2022-04-05 10:00:37.455025241 +0200 +@@ -28418,3 +28418,11 @@ msgstr "Імпортований сер� + + #~ msgid "Background Image" + #~ msgstr "Зображення тла" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "Типова адресна книга користувача" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "Адресна книга:" +diff -up evolution-3.40.4/po/zh_CN.po.3 evolution-3.40.4/po/zh_CN.po +--- evolution-3.40.4/po/zh_CN.po.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/po/zh_CN.po 2022-04-05 10:00:37.457025241 +0200 +@@ -32853,3 +32853,11 @@ msgstr "导入的证书" + + #~ msgid "Local Calendars" + #~ msgstr "载入日历" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "默认用户通讯录" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "通讯录:" +diff -up evolution-3.40.4/po/ja.po.5 evolution-3.40.4/po/ja.po +--- evolution-3.40.4/po/ja.po.3 2022-04-08 13:42:12.782532717 +0200 ++++ evolution-3.40.4/po/ja.po 2022-04-08 13:42:38.886527919 +0200 +@@ -28035,3 +28035,11 @@ msgstr "インポートした証明書" + + #~ msgid "Certificate Signature Value" + #~ msgstr "証明書の署名の値" ++ ++#: ../src/modules/book-config-google/e-google-book-chooser-button.c:134 ++msgid "Default User Address Book" ++msgstr "デフォルトのユーザーアドレス帳" ++ ++#: ../src/modules/book-config-google/evolution-book-config-google.c:75 ++msgid "Address Book:" ++msgstr "アドレス帳:" +diff -up evolution-3.40.4/src/e-util/e-source-config.c.3 evolution-3.40.4/src/e-util/e-source-config.c +--- evolution-3.40.4/src/e-util/e-source-config.c.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/src/e-util/e-source-config.c 2022-04-05 10:00:37.457025241 +0200 +@@ -505,9 +505,10 @@ source_config_init_for_editing_source (E + backend_name = e_source_backend_get_backend_name (extension); + g_return_if_fail (backend_name != NULL); + +- /* Special-case Google calendars to use 'google' editor, instead +- of the 'caldav' editor, even they use 'caldav' calendar backend. */ +- if (g_ascii_strcasecmp (backend_name, "caldav") == 0 && ++ /* Special-case Google books and calendars to use 'google' editor, instead ++ of the 'carddav'/'caldav' editor, even they use 'carddav'/'caldav' backend. */ ++ if ((g_ascii_strcasecmp (backend_name, "caldav") == 0 || ++ g_ascii_strcasecmp (backend_name, "carddav") == 0) && + g_strcmp0 (e_source_get_parent (original_source), "google-stub") == 0) + backend_name = "google"; + +diff -up evolution-3.40.4/src/modules/book-config-google/CMakeLists.txt.3 evolution-3.40.4/src/modules/book-config-google/CMakeLists.txt +--- evolution-3.40.4/src/modules/book-config-google/CMakeLists.txt.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/src/modules/book-config-google/CMakeLists.txt 2022-04-05 10:00:37.457025241 +0200 +@@ -1,5 +1,7 @@ + set(extra_deps) + set(sources ++ e-google-book-chooser-button.c ++ e-google-book-chooser-button.h + evolution-book-config-google.c + ) + set(extra_defines) +diff -up evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.c.3 evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.c +--- evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.c.3 2022-04-05 10:00:37.457025241 +0200 ++++ evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.c 2022-04-05 10:00:37.457025241 +0200 +@@ -0,0 +1,402 @@ ++/* ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, see . ++ * ++ */ ++ ++#include "evolution-config.h" ++ ++#include ++ ++#include ++ ++#include "e-google-book-chooser-button.h" ++ ++struct _EGoogleBookChooserButtonPrivate { ++ ESource *source; ++ ESourceConfig *config; ++ GtkWidget *label; ++}; ++ ++enum { ++ PROP_0, ++ PROP_SOURCE, ++ PROP_CONFIG ++}; ++ ++G_DEFINE_DYNAMIC_TYPE_EXTENDED (EGoogleBookChooserButton, e_google_book_chooser_button, GTK_TYPE_BUTTON, 0, ++ G_ADD_PRIVATE_DYNAMIC (EGoogleBookChooserButton)) ++ ++static void ++google_book_chooser_button_set_source (EGoogleBookChooserButton *button, ++ ESource *source) ++{ ++ g_return_if_fail (E_IS_SOURCE (source)); ++ g_return_if_fail (button->priv->source == NULL); ++ ++ button->priv->source = g_object_ref (source); ++} ++ ++static void ++google_book_chooser_button_set_config (EGoogleBookChooserButton *button, ++ ESourceConfig *config) ++{ ++ g_return_if_fail (E_IS_SOURCE_CONFIG (config)); ++ g_return_if_fail (button->priv->config == NULL); ++ ++ button->priv->config = g_object_ref (config); ++} ++ ++static void ++google_book_chooser_button_set_property (GObject *object, ++ guint property_id, ++ const GValue *value, ++ GParamSpec *pspec) ++{ ++ switch (property_id) { ++ case PROP_SOURCE: ++ google_book_chooser_button_set_source ( ++ E_GOOGLE_BOOK_CHOOSER_BUTTON (object), ++ g_value_get_object (value)); ++ return; ++ ++ case PROP_CONFIG: ++ google_book_chooser_button_set_config ( ++ E_GOOGLE_BOOK_CHOOSER_BUTTON (object), ++ g_value_get_object (value)); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++google_book_chooser_button_get_property (GObject *object, ++ guint property_id, ++ GValue *value, ++ GParamSpec *pspec) ++{ ++ switch (property_id) { ++ case PROP_SOURCE: ++ g_value_set_object ( ++ value, ++ e_google_book_chooser_button_get_source ( ++ E_GOOGLE_BOOK_CHOOSER_BUTTON (object))); ++ return; ++ ++ case PROP_CONFIG: ++ g_value_set_object ( ++ value, ++ e_google_book_chooser_button_get_config ( ++ E_GOOGLE_BOOK_CHOOSER_BUTTON (object))); ++ return; ++ } ++ ++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); ++} ++ ++static void ++google_book_chooser_button_dispose (GObject *object) ++{ ++ EGoogleBookChooserButton *button = E_GOOGLE_BOOK_CHOOSER_BUTTON (object); ++ ++ g_clear_object (&button->priv->source); ++ g_clear_object (&button->priv->config); ++ g_clear_object (&button->priv->label); ++ ++ /* Chain up to parent's dispose() method. */ ++ G_OBJECT_CLASS (e_google_book_chooser_button_parent_class)->dispose (object); ++} ++ ++static void ++google_book_chooser_button_constructed (GObject *object) ++{ ++ EGoogleBookChooserButton *button; ++ ESourceWebdav *webdav_extension; ++ GBindingFlags binding_flags; ++ GtkWidget *widget; ++ const gchar *display_name; ++ ++ button = E_GOOGLE_BOOK_CHOOSER_BUTTON (object); ++ ++ /* Chain up to parent's constructed() method. */ ++ G_OBJECT_CLASS (e_google_book_chooser_button_parent_class)->constructed (object); ++ ++ widget = gtk_label_new (_("Default User Address Book")); ++ gtk_misc_set_alignment (GTK_MISC (widget), 0.0, 0.5); ++ gtk_container_add (GTK_CONTAINER (button), widget); ++ button->priv->label = g_object_ref (widget); ++ gtk_widget_show (widget); ++ ++ webdav_extension = e_source_get_extension ( ++ button->priv->source, E_SOURCE_EXTENSION_WEBDAV_BACKEND); ++ display_name = e_source_webdav_get_display_name (webdav_extension); ++ ++ binding_flags = G_BINDING_DEFAULT; ++ if (display_name != NULL && *display_name != '\0') ++ binding_flags |= G_BINDING_SYNC_CREATE; ++ ++ e_binding_bind_property ( ++ webdav_extension, "display-name", ++ button->priv->label, "label", ++ binding_flags); ++} ++ ++static GtkWindow * ++google_config_get_dialog_parent_cb (ECredentialsPrompter *prompter, ++ GtkWindow *dialog) ++{ ++ return dialog; ++} ++ ++static void ++google_book_chooser_button_clicked (GtkButton *btn) ++{ ++ EGoogleBookChooserButton *button; ++ gpointer parent; ++ ESourceRegistry *registry; ++ ECredentialsPrompter *prompter; ++ ESourceWebdav *webdav_extension; ++ ESourceAuthentication *authentication_extension; ++ SoupURI *uri; ++ gchar *base_url; ++ GtkDialog *dialog; ++ gulong handler_id; ++ guint supports_filter = 0; ++ const gchar *title = NULL; ++ ++ button = E_GOOGLE_BOOK_CHOOSER_BUTTON (btn); ++ ++ parent = gtk_widget_get_toplevel (GTK_WIDGET (button)); ++ parent = gtk_widget_is_toplevel (parent) ? parent : NULL; ++ ++ registry = e_source_config_get_registry (button->priv->config); ++ ++ authentication_extension = e_source_get_extension (button->priv->source, E_SOURCE_EXTENSION_AUTHENTICATION); ++ webdav_extension = e_source_get_extension (button->priv->source, E_SOURCE_EXTENSION_WEBDAV_BACKEND); ++ ++ uri = e_source_webdav_dup_soup_uri (webdav_extension); ++ ++ e_google_book_chooser_button_construct_default_uri (uri, e_source_authentication_get_user (authentication_extension)); ++ ++ /* Prefer 'Google', aka internal OAuth2, authentication method, if available */ ++ e_source_authentication_set_method (authentication_extension, "Google"); ++ ++ /* See https://developers.google.com/people/carddav */ ++ soup_uri_set_host (uri, "www.googleapis.com"); ++ soup_uri_set_path (uri, "/.well-known/carddav"); ++ ++ /* Google's CardDAV interface requires a secure connection. */ ++ soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS); ++ ++ e_source_webdav_set_soup_uri (webdav_extension, uri); ++ ++ prompter = e_credentials_prompter_new (registry); ++ e_credentials_prompter_set_auto_prompt (prompter, FALSE); ++ ++ supports_filter = E_WEBDAV_DISCOVER_SUPPORTS_CONTACTS; ++ title = _("Choose an Address Book"); ++ base_url = soup_uri_to_string (uri, FALSE); ++ ++ dialog = e_webdav_discover_dialog_new (parent, title, prompter, button->priv->source, base_url, supports_filter); ++ ++ if (parent != NULL) ++ e_binding_bind_property ( ++ parent, "icon-name", ++ dialog, "icon-name", ++ G_BINDING_SYNC_CREATE); ++ ++ handler_id = g_signal_connect (prompter, "get-dialog-parent", ++ G_CALLBACK (google_config_get_dialog_parent_cb), dialog); ++ ++ e_webdav_discover_dialog_refresh (dialog); ++ ++ if (gtk_dialog_run (dialog) == GTK_RESPONSE_ACCEPT) { ++ gchar *href = NULL, *display_name = NULL, *color = NULL, *email; ++ guint supports = 0, order = 0; ++ GtkWidget *content; ++ ++ content = e_webdav_discover_dialog_get_content (dialog); ++ ++ if (e_webdav_discover_content_get_selected (content, 0, &href, &supports, &display_name, &color, &order)) { ++ soup_uri_free (uri); ++ uri = soup_uri_new (href); ++ ++ if (uri) { ++ ESourceAddressBook *addressbook_extension; ++ ++ addressbook_extension = e_source_get_extension (button->priv->source, E_SOURCE_EXTENSION_ADDRESS_BOOK); ++ ++ e_source_set_display_name (button->priv->source, display_name); ++ ++ e_source_webdav_set_display_name (webdav_extension, display_name); ++ e_source_webdav_set_soup_uri (webdav_extension, uri); ++ e_source_webdav_set_order (webdav_extension, order); ++ ++ e_source_address_book_set_order (addressbook_extension, order); ++ } ++ ++ g_clear_pointer (&href, g_free); ++ g_clear_pointer (&display_name, g_free); ++ g_clear_pointer (&color, g_free); ++ } ++ ++ email = e_webdav_discover_content_get_user_address (content); ++ if (email && *email) ++ e_source_webdav_set_email_address (webdav_extension, email); ++ g_free (email); ++ } ++ ++ g_signal_handler_disconnect (prompter, handler_id); ++ ++ gtk_widget_destroy (GTK_WIDGET (dialog)); ++ ++ g_object_unref (prompter); ++ if (uri) ++ soup_uri_free (uri); ++ g_free (base_url); ++} ++ ++static void ++e_google_book_chooser_button_class_init (EGoogleBookChooserButtonClass *class) ++{ ++ GObjectClass *object_class; ++ GtkButtonClass *button_class; ++ ++ object_class = G_OBJECT_CLASS (class); ++ object_class->set_property = google_book_chooser_button_set_property; ++ object_class->get_property = google_book_chooser_button_get_property; ++ object_class->dispose = google_book_chooser_button_dispose; ++ object_class->constructed = google_book_chooser_button_constructed; ++ ++ button_class = GTK_BUTTON_CLASS (class); ++ button_class->clicked = google_book_chooser_button_clicked; ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_SOURCE, ++ g_param_spec_object ( ++ "source", ++ NULL, ++ NULL, ++ E_TYPE_SOURCE, ++ G_PARAM_READWRITE | ++ G_PARAM_CONSTRUCT_ONLY)); ++ ++ g_object_class_install_property ( ++ object_class, ++ PROP_CONFIG, ++ g_param_spec_object ( ++ "config", ++ NULL, ++ NULL, ++ E_TYPE_SOURCE_CONFIG, ++ G_PARAM_READWRITE | ++ G_PARAM_CONSTRUCT_ONLY)); ++} ++ ++static void ++e_google_book_chooser_button_class_finalize (EGoogleBookChooserButtonClass *class) ++{ ++} ++ ++static void ++e_google_book_chooser_button_init (EGoogleBookChooserButton *button) ++{ ++ button->priv = e_google_book_chooser_button_get_instance_private (button); ++} ++ ++void ++e_google_book_chooser_button_type_register (GTypeModule *type_module) ++{ ++ /* XXX G_DEFINE_DYNAMIC_TYPE declares a static type registration ++ * function, so we have to wrap it with a public function in ++ * order to register types from a separate compilation unit. */ ++ e_google_book_chooser_button_register_type (type_module); ++} ++ ++GtkWidget * ++e_google_book_chooser_button_new (ESource *source, ++ ESourceConfig *config) ++{ ++ g_return_val_if_fail (E_IS_SOURCE (source), NULL); ++ ++ return g_object_new ( ++ E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON, ++ "source", source, ++ "config", config, NULL); ++} ++ ++ESource * ++e_google_book_chooser_button_get_source (EGoogleBookChooserButton *button) ++{ ++ g_return_val_if_fail (E_IS_GOOGLE_BOOK_CHOOSER_BUTTON (button), NULL); ++ ++ return button->priv->source; ++} ++ ++ESourceConfig * ++e_google_book_chooser_button_get_config (EGoogleBookChooserButton *button) ++{ ++ g_return_val_if_fail (E_IS_GOOGLE_BOOK_CHOOSER_BUTTON (button), NULL); ++ ++ return button->priv->config; ++} ++ ++static gchar * ++google_book_chooser_decode_user (const gchar *user) ++{ ++ gchar *decoded_user; ++ ++ if (user == NULL || *user == '\0') ++ return NULL; ++ ++ /* Decode any encoded 'at' symbols ('%40' -> '@'). */ ++ if (strstr (user, "%40") != NULL) { ++ gchar **segments; ++ ++ segments = g_strsplit (user, "%40", 0); ++ decoded_user = g_strjoinv ("@", segments); ++ g_strfreev (segments); ++ ++ /* If no domain is given, append "@gmail.com". */ ++ } else if (strstr (user, "@") == NULL) { ++ decoded_user = g_strconcat (user, "@gmail.com", NULL); ++ ++ /* Otherwise the user name should be fine as is. */ ++ } else { ++ decoded_user = g_strdup (user); ++ } ++ ++ return decoded_user; ++} ++ ++void ++e_google_book_chooser_button_construct_default_uri (SoupURI *soup_uri, ++ const gchar *username) ++{ ++ gchar *decoded_user, *path; ++ ++ decoded_user = google_book_chooser_decode_user (username); ++ if (!decoded_user) ++ return; ++ ++ path = g_strdup_printf ("/carddav/v1/principals/%s/lists/default/", decoded_user); ++ ++ soup_uri_set_scheme (soup_uri, SOUP_URI_SCHEME_HTTPS); ++ soup_uri_set_user (soup_uri, decoded_user); ++ soup_uri_set_host (soup_uri, "www.googleapis.com"); ++ soup_uri_set_path (soup_uri, path); ++ ++ g_free (decoded_user); ++ g_free (path); ++} +diff -up evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.h.3 evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.h +--- evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.h.3 2022-04-05 10:00:37.457025241 +0200 ++++ evolution-3.40.4/src/modules/book-config-google/e-google-book-chooser-button.h 2022-04-05 10:00:37.457025241 +0200 +@@ -0,0 +1,70 @@ ++/* ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU Lesser General Public License as published by ++ * the Free Software Foundation. ++ * ++ * This program is distributed in the hope that it will be useful, but ++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ * for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public License ++ * along with this program; if not, see . ++ * ++ */ ++ ++#ifndef E_GOOGLE_BOOK_CHOOSER_BUTTON_H ++#define E_GOOGLE_BOOK_CHOOSER_BUTTON_H ++ ++#include ++ ++/* Standard GObject macros */ ++#define E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON \ ++ (e_google_book_chooser_button_get_type ()) ++#define E_GOOGLE_BOOK_CHOOSER_BUTTON(obj) \ ++ (G_TYPE_CHECK_INSTANCE_CAST \ ++ ((obj), E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON, EGoogleBookChooserButton)) ++#define E_GOOGLE_BOOK_CHOOSER_BUTTON_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_CAST \ ++ ((cls), E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON, EGoogleBookChooserButtonClass)) ++#define E_IS_GOOGLE_BOOK_CHOOSER_BUTTON(obj) \ ++ (G_TYPE_CHECK_INSTANCE_TYPE \ ++ ((obj), E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON)) ++#define E_IS_GOOGLE_BOOK_CHOOSER_BUTTON_CLASS(cls) \ ++ (G_TYPE_CHECK_CLASS_TYPE \ ++ ((cls), E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON)) ++#define E_GOOGLE_BOOK_CHOOSER_BUTTON_GET_CLASS(obj) \ ++ (G_TYPE_INSTANCE_GET_CLASS \ ++ ((obj), E_TYPE_GOOGLE_BOOK_CHOOSER_BUTTON, EGoogleBookChooserButtonClass)) ++ ++G_BEGIN_DECLS ++ ++typedef struct _EGoogleBookChooserButton EGoogleBookChooserButton; ++typedef struct _EGoogleBookChooserButtonClass EGoogleBookChooserButtonClass; ++typedef struct _EGoogleBookChooserButtonPrivate EGoogleBookChooserButtonPrivate; ++ ++struct _EGoogleBookChooserButton { ++ GtkButton parent; ++ EGoogleBookChooserButtonPrivate *priv; ++}; ++ ++struct _EGoogleBookChooserButtonClass { ++ GtkButtonClass parent_class; ++}; ++ ++GType e_google_book_chooser_button_get_type (void); ++void e_google_book_chooser_button_type_register ++ (GTypeModule *type_module); ++GtkWidget * e_google_book_chooser_button_new(ESource *source, ++ ESourceConfig *config); ++ESource * e_google_book_chooser_button_get_source ++ (EGoogleBookChooserButton *button); ++ESourceConfig * e_google_book_chooser_button_get_config ++ (EGoogleBookChooserButton *button); ++void e_google_book_chooser_button_construct_default_uri ++ (SoupURI *soup_uri, ++ const gchar *username); ++ ++G_END_DECLS ++ ++#endif /* E_GOOGLE_BOOK_CHOOSER_BUTTON_H */ +diff -up evolution-3.40.4/src/modules/book-config-google/evolution-book-config-google.c.3 evolution-3.40.4/src/modules/book-config-google/evolution-book-config-google.c +--- evolution-3.40.4/src/modules/book-config-google/evolution-book-config-google.c.3 2021-08-13 11:50:35.000000000 +0200 ++++ evolution-3.40.4/src/modules/book-config-google/evolution-book-config-google.c 2022-04-05 10:00:37.458025240 +0200 +@@ -23,6 +23,8 @@ + + #include + ++#include "e-google-book-chooser-button.h" ++ + typedef ESourceConfigBackend EBookConfigGoogle; + typedef ESourceConfigBackendClass EBookConfigGoogleClass; + +@@ -55,6 +57,7 @@ book_config_google_insert_widgets (ESour + ESource *scratch_source) + { + ESourceConfig *config; ++ GtkWidget *widget; + Context *context; + const gchar *uid; + +@@ -68,6 +71,10 @@ book_config_google_insert_widgets (ESour + + context->user_entry = e_source_config_add_user_entry (config, scratch_source); + ++ widget = e_google_book_chooser_button_new (scratch_source, config); ++ e_source_config_insert_widget (config, scratch_source, _("Address Book:"), widget); ++ gtk_widget_show (widget); ++ + e_source_config_add_refresh_interval (config, scratch_source); + } + +@@ -101,23 +108,32 @@ book_config_google_commit_changes (ESour + { + ESource *collection_source; + ESourceConfig *config; ++ ESourceBackend *addressbook_extension; ++ ESourceWebdav *webdav_extension; + ESourceAuthentication *extension; ++ SoupURI *soup_uri; + const gchar *extension_name; + const gchar *user; + + config = e_source_config_backend_get_config (backend); + collection_source = e_source_config_get_collection_source (config); + ++ addressbook_extension = e_source_get_extension (scratch_source, E_SOURCE_EXTENSION_ADDRESS_BOOK); ++ webdav_extension = e_source_get_extension (scratch_source, E_SOURCE_EXTENSION_WEBDAV_BACKEND); ++ + extension_name = E_SOURCE_EXTENSION_AUTHENTICATION; + extension = e_source_get_extension (scratch_source, extension_name); + +- if (!collection_source || ( +- !e_source_has_extension (collection_source, E_SOURCE_EXTENSION_GOA) && +- !e_source_has_extension (collection_source, E_SOURCE_EXTENSION_UOA))) { +- e_source_authentication_set_host (extension, "www.google.com"); ++ if (!collection_source || ++ !e_source_authentication_get_is_external (extension)) { ++ e_source_authentication_set_host (extension, "www.googleapis.com"); + e_source_authentication_set_method (extension, "Google"); + } + ++ /* The backend name is "carddav" even though the ESource is ++ * a child of the built-in "Google" source. */ ++ e_source_backend_set_backend_name (addressbook_extension, "carddav"); ++ + user = e_source_authentication_get_user (extension); + g_return_if_fail (user != NULL); + +@@ -129,6 +145,19 @@ book_config_google_commit_changes (ESour + e_source_authentication_set_user (extension, full_user); + g_free (full_user); + } ++ ++ soup_uri = e_source_webdav_dup_soup_uri (webdav_extension); ++ ++ if (!soup_uri->path || !*soup_uri->path || g_strcmp0 (soup_uri->path, "/") == 0) { ++ e_google_book_chooser_button_construct_default_uri (soup_uri, e_source_authentication_get_user (extension)); ++ } ++ ++ /* Google's CalDAV interface requires a secure connection. */ ++ soup_uri_set_scheme (soup_uri, SOUP_URI_SCHEME_HTTPS); ++ ++ e_source_webdav_set_soup_uri (webdav_extension, soup_uri); ++ ++ soup_uri_free (soup_uri); + } + + static void +@@ -159,6 +188,7 @@ e_book_config_google_init (ESourceConfig + G_MODULE_EXPORT void + e_module_load (GTypeModule *type_module) + { ++ e_google_book_chooser_button_type_register (type_module); + e_book_config_google_register_type (type_module); + } + diff --git a/SOURCES/webkitgtk-2.36.0-dark-theme.patch b/SOURCES/webkitgtk-2.36.0-dark-theme.patch new file mode 100644 index 0000000..025ea9e --- /dev/null +++ b/SOURCES/webkitgtk-2.36.0-dark-theme.patch @@ -0,0 +1,51 @@ +From ac15857f14eecd83a3a1950588a2f1edb9cb70de Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Fri, 18 Mar 2022 09:45:20 +0100 +Subject: [PATCH] I#1835 - Mail: Preview uses wrong colors for HTML mail with + dark theme + +Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1835 +--- + data/webkit/e-web-view.js | 12 ++++++++++-- + src/em-format/e-mail-formatter-text-html.c | 2 +- + 2 files changed, 11 insertions(+), 3 deletions(-) + +diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js +index 7f47fe4b26..a8f99c4668 100644 +--- a/data/webkit/e-web-view.js ++++ b/data/webkit/e-web-view.js +@@ -695,8 +695,16 @@ Evo.initialize = function(elem) + + if (doc.documentElement.style.getPropertyValue("color") == "" || + doc.documentElement.style.getPropertyValue("color") == "text") { +- doc.documentElement.style.setProperty("color", "inherit"); +- doc.documentElement.style.setProperty("background-color", "inherit"); ++ if (doc.defaultView && doc.defaultView.frameElement && !doc.defaultView.frameElement.hasAttribute("x-e-unset-colors") && ++ doc.defaultView.frameElement.ownerDocument && ++ doc.defaultView.frameElement.ownerDocument.defaultView && ++ doc.defaultView.frameElement.ownerDocument.defaultView.window) { ++ var style = doc.defaultView.frameElement.ownerDocument.defaultView.window.getComputedStyle(doc.defaultView.frameElement); ++ if (style) { ++ doc.documentElement.style.setProperty("color", style.color); ++ doc.documentElement.style.setProperty("background-color", style.backgroundColor); ++ } ++ } + } + + elems = doc.querySelectorAll("input, textarea, select, button, label"); +diff --git a/src/em-format/e-mail-formatter-text-html.c b/src/em-format/e-mail-formatter-text-html.c +index 708c29a5e4..8a938212ff 100644 +--- a/src/em-format/e-mail-formatter-text-html.c ++++ b/src/em-format/e-mail-formatter-text-html.c +@@ -369,7 +369,7 @@ emfe_text_html_format (EMailFormatterExtension *extension, + e_mail_part_get_id (part), + e_mail_part_get_id (part), + e_mail_part_get_frame_security_style (part), +- g_settings_get_boolean (settings, "preview-unset-html-colors") ? "x-e-unset-colors=\"1\"" : "style=\"background-color: #ffffff;\""); ++ g_settings_get_boolean (settings, "preview-unset-html-colors") ? "x-e-unset-colors=\"1\"" : "style=\"background-color:white; color:black;\""); + + g_output_stream_write_all ( + stream, str, strlen (str), +-- +GitLab + diff --git a/SOURCES/webkitgtk-2.36.0-disable-hw-accel.patch b/SOURCES/webkitgtk-2.36.0-disable-hw-accel.patch new file mode 100644 index 0000000..e669f43 --- /dev/null +++ b/SOURCES/webkitgtk-2.36.0-disable-hw-accel.patch @@ -0,0 +1,27 @@ +From eb62ccaa28bbbca7668913ce7d8056a6d75f9b05 Mon Sep 17 00:00:00 2001 +From: Milan Crha +Date: Thu, 21 Apr 2022 16:59:34 +0200 +Subject: [PATCH] Disable hardware acceleration for WebKitGTK + +This should help with crashes related to hardware acceleration +on some machines, as being discussed at: +https://bugs.webkit.org/show_bug.cgi?id=239429 +--- + src/e-util/e-web-view.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/e-util/e-web-view.c b/src/e-util/e-web-view.c +index 9ab13b69cc..68f86e8c59 100644 +--- a/src/e-util/e-web-view.c ++++ b/src/e-util/e-web-view.c +@@ -3617,6 +3617,7 @@ e_web_view_get_default_webkit_settings (void) + "enable-plugins", FALSE, + "enable-smooth-scrolling", FALSE, + "media-playback-allows-inline", FALSE, ++ "hardware-acceleration-policy", WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER, + NULL); + + e_web_view_utils_apply_minimum_font_size (settings); +-- +GitLab + diff --git a/SPECS/evolution.spec b/SPECS/evolution.spec index 53a7f3e..dbd97a1 100644 --- a/SPECS/evolution.spec +++ b/SPECS/evolution.spec @@ -43,7 +43,7 @@ Name: evolution Version: 3.40.4 -Release: 3%{?dist} +Release: 6%{?dist} Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL URL: https://wiki.gnome.org/Apps/Evolution @@ -54,6 +54,9 @@ Source3: emoji.data Patch01: evolution-3.40.4-empty-emoji-picker.patch Patch02: evolution-3.40.4-comp-editor-timezone-reset.patch +Patch03: evolution-3.40.4-google-contacts-to-carddav.patch +Patch04: webkitgtk-2.36.0-dark-theme.patch +Patch05: webkitgtk-2.36.0-disable-hw-accel.patch # Approximate version number Provides: bundled(libgnomecanvas) = 2.30.0 @@ -569,6 +572,16 @@ grep -v "%{_datadir}/locale" evolution.lang > help.lang %endif %changelog +* Mon Apr 25 2022 Milan Crha - 3.40.4-6 +- Resolves: #2078369 (Disable hardware acceleration for WebKitGTK) + +* Fri Apr 08 2022 Milan Crha - 3.40.4-5 +- Related: #2071056 (Update zh_CN and ja translations in the patch) + +* Tue Apr 05 2022 Milan Crha - 3.40.4-4 +- Resolves: #2071056 (Addressbook: Switch from GData Contacts API to CardDAV API for Google books) +- Resolves: #2071742 (Add patch to use correct colors in mail preview with webkit2gtk3 2.36.x) + * Mon Feb 14 2022 Milan Crha - 3.40.4-3 - Resolves: #2054084 (ECompEditor: Timezone can be reset on component save)