Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package evolution-data-server for 
openSUSE:Factory checked in at 2024-01-06 17:29:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/evolution-data-server (Old)
 and      /work/SRC/openSUSE:Factory/.evolution-data-server.new.28375 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "evolution-data-server"

Sat Jan  6 17:29:12 2024 rev:252 rq:1137098 version:3.50.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/evolution-data-server/evolution-data-server.changes  
    2023-12-02 17:12:13.307256435 +0100
+++ 
/work/SRC/openSUSE:Factory/.evolution-data-server.new.28375/evolution-data-server.changes
   2024-01-06 17:29:14.875775156 +0100
@@ -1,0 +2,11 @@
+Fri Jan  5 15:41:23 UTC 2024 - Dominique Leuenberger <dims...@opensuse.org>
+
+- Update to version 3.50.3:
+  + Camel: Ignore errors about missing messages during filtering.
+  + Bug Fixes:
+    - sqlite3_enable_shared_cache is deprecated
+    - Camel: Hide errors from for-offline download
+    - IMAP: Copy/move messages in smaller batches
+  + Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  evolution-data-server-3.50.2.tar.xz

New:
----
  evolution-data-server-3.50.3.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.JYTLCu/_old  2024-01-06 17:29:15.367793127 +0100
+++ /var/tmp/diff_new_pack.JYTLCu/_new  2024-01-06 17:29:15.367793127 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package evolution-data-server
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -32,7 +32,7 @@
 %bcond_without introspection
 
 Name:           evolution-data-server
-Version:        3.50.2
+Version:        3.50.3
 Release:        0
 Summary:        Evolution Data Server
 License:        LGPL-2.0-only

++++++ evolution-data-server-3.50.2.tar.xz -> 
evolution-data-server-3.50.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.50.2/CMakeLists.txt 
new/evolution-data-server-3.50.3/CMakeLists.txt
--- old/evolution-data-server-3.50.2/CMakeLists.txt     2023-12-01 
08:06:14.000000000 +0100
+++ new/evolution-data-server-3.50.3/CMakeLists.txt     2024-01-05 
08:57:54.000000000 +0100
@@ -4,7 +4,7 @@
 cmake_policy(VERSION 3.1)
 
 project(evolution-data-server
-       VERSION 3.50.2
+       VERSION 3.50.3
        LANGUAGES C CXX)
 set(PROJECT_BUGREPORT 
"https://gitlab.gnome.org/GNOME/evolution-data-server/issues/";)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.50.2/NEWS 
new/evolution-data-server-3.50.3/NEWS
--- old/evolution-data-server-3.50.2/NEWS       2023-12-01 08:06:14.000000000 
+0100
+++ new/evolution-data-server-3.50.3/NEWS       2024-01-05 08:57:54.000000000 
+0100
@@ -1,3 +1,18 @@
+Evolution-Data-Server 3.50.3 2024-01-05
+---------------------------------------
+
+Bug Fixes:
+       I#507 - sqlite3_enable_shared_cache is deprecated
+       I#511 - Camel: Hide errors from for-offline download
+       I#512 - IMAP: Copy/move messages in smaller batches
+
+Miscellaneous:
+       Camel: Ignore errors about missing messages during filtering
+
+Translations:
+       Boyuan Yang (zh_CN)
+       Martin (sl)
+
 Evolution-Data-Server 3.50.2 2023-12-01
 ---------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.50.2/po/sl.po 
new/evolution-data-server-3.50.3/po/sl.po
--- old/evolution-data-server-3.50.2/po/sl.po   2023-12-01 08:06:14.000000000 
+0100
+++ new/evolution-data-server-3.50.3/po/sl.po   2024-01-05 08:57:54.000000000 
+0100
@@ -11,8 +11,8 @@
 "Project-Id-Version: evolution-data-server master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/evolution-data-server/";
 "issues\n"
-"POT-Creation-Date: 2023-08-07 13:21+0000\n"
-"PO-Revision-Date: 2023-09-11 19:10+0200\n"
+"POT-Creation-Date: 2023-09-16 12:00+0000\n"
+"PO-Revision-Date: 2024-01-04 21:09+0100\n"
 "Last-Translator: Martin Srebotnjak <mi...@filmsi.net>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome...@googlegroups.com>\n"
 "Language: sl_SI\n"
@@ -48,7 +48,7 @@
 #: src/addressbook/backends/carddav/e-book-backend-carddav.c:1288
 #: src/calendar/backends/caldav/e-cal-backend-caldav.c:1518
 #: src/calendar/backends/webdav-notes/e-cal-backend-webdav-notes.c:1254
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Missing information about component URL, local cache is possibly incomplete "
 "or broken. You can try to remove it and restart background evolution-data-"
@@ -171,11 +171,11 @@
 #: src/calendar/libecal/e-cal-client.c:6648
 #: src/calendar/libecal/e-cal-client.c:6872
 #: src/calendar/libedata-cal/e-cal-cache.c:1837
-#: src/camel/camel-filter-driver.c:1758 src/camel/camel-filter-driver.c:1887
-#: src/camel/providers/imapx/camel-imapx-server.c:3330
+#: src/camel/camel-filter-driver.c:1831 src/camel/camel-filter-driver.c:1960
 #: src/camel/providers/imapx/camel-imapx-server.c:3336
-#: src/camel/providers/imapx/camel-imapx-server.c:3346
-#: src/camel/providers/imapx/camel-imapx-server.c:3358
+#: src/camel/providers/imapx/camel-imapx-server.c:3342
+#: src/camel/providers/imapx/camel-imapx-server.c:3352
+#: src/camel/providers/imapx/camel-imapx-server.c:3364
 #: src/camel/providers/nntp/camel-nntp-store.c:419
 #: src/libebackend/e-server-side-source.c:498 src/libedataserver/e-client.c:183
 #: src/libedataserver/e-soup-session.c:1025
@@ -1221,7 +1221,6 @@
 
 #: src/addressbook/libedata-book/e-book-meta-backend.c:1424
 #: src/calendar/libedata-cal/e-cal-meta-backend.c:1418
-#, fuzzy
 msgid "Refresh skipped due to being disabled on metered network."
 msgstr ""
 "Osveževanje preskočeno zaradi onemogočenosti na omrežni povezavi z "
@@ -2452,14 +2451,14 @@
 msgstr[2] "%d sekundi"
 msgstr[3] "%d sekunde"
 
-#: src/calendar/libecal/e-reminder-watcher.c:2946
+#: src/calendar/libecal/e-reminder-watcher.c:3010
 msgid "No Summary"
 msgstr "Brez povzetka"
 
 #. Translators: The first %s is replaced with the time string,
 #. the second %s with a duration, and the third %s with an event location,
 #. making it something like: "24.1.2018 10:30 (30 minutes) Meeting room A1"
-#: src/calendar/libecal/e-reminder-watcher.c:2962
+#: src/calendar/libecal/e-reminder-watcher.c:3026
 #, c-format
 msgctxt "overdue"
 msgid "%s (%s) %s"
@@ -2468,7 +2467,7 @@
 #. Translators: The first %s is replaced with the time string,
 #. the second %s with a duration, making is something like:
 #. "24.1.2018 10:30 (30 minutes)"
-#: src/calendar/libecal/e-reminder-watcher.c:2967
+#: src/calendar/libecal/e-reminder-watcher.c:3031
 #, c-format
 msgctxt "overdue"
 msgid "%s (%s)"
@@ -2477,7 +2476,7 @@
 #. Translators: The first %s is replaced with the time string,
 #. the second %s with an event location, making it something like:
 #. "24.1.2018 10:30 Meeting room A1"
-#: src/calendar/libecal/e-reminder-watcher.c:2972
+#: src/calendar/libecal/e-reminder-watcher.c:3036
 #, c-format
 msgctxt "overdue"
 msgid "%s %s"
@@ -2629,7 +2628,6 @@
 msgstr "Prejet predmet za UID »%s« ne vsebuje pričakovanih sestavnih delov"
 
 #: src/calendar/libedata-cal/e-cal-meta-backend.c:1971
-#, fuzzy
 msgid ""
 "Cannot modify all instances from a detached instance. Modify a series "
 "instance instead."
@@ -2765,89 +2763,89 @@
 #. Translators: The first “%s” is replaced with an account name and the 
second “%s”
 #. is replaced with a full path name. The spaces around “:” are 
intentional, as
 #. the whole “%s : %s” is meant as an absolute identification of the 
folder.
-#: src/camel/camel-filter-driver.c:264
+#: src/camel/camel-filter-driver.c:266
 #, c-format
 msgid "Transferring filtered messages in “%s : %s”"
 msgstr "Poteka prenašanje filtriranih sporočil iz »%s : %s«"
 
-#: src/camel/camel-filter-driver.c:1160 src/camel/camel-filter-search.c:936
+#: src/camel/camel-filter-driver.c:1233 src/camel/camel-filter-search.c:936
 #, c-format
 msgid "Failed to create child process “%s”: %s"
 msgstr "Ustvarjanje podrejenega opravila »%s« je spodletelo: %s"
 
-#: src/camel/camel-filter-driver.c:1214
+#: src/camel/camel-filter-driver.c:1287
 #, c-format
 msgid "Invalid message stream received from %s: %s"
 msgstr "Neveljaven tok sporočil, sprejet iz %s: %s"
 
-#: src/camel/camel-filter-driver.c:1438 src/camel/camel-filter-driver.c:1451
+#: src/camel/camel-filter-driver.c:1511 src/camel/camel-filter-driver.c:1524
 msgid "Syncing folders"
 msgstr "Usklajevanje mape"
 
-#: src/camel/camel-filter-driver.c:1559
+#: src/camel/camel-filter-driver.c:1632
 #, c-format
 msgid "Error parsing filter: %s: %s"
 msgstr "Napaka med razčlenjevanem filtra: %s: %s"
 
-#: src/camel/camel-filter-driver.c:1570
+#: src/camel/camel-filter-driver.c:1643
 #, c-format
 msgid "Error executing filter: %s: %s"
 msgstr "Napaka filtriranja: %s: %s"
 
-#: src/camel/camel-filter-driver.c:1668
+#: src/camel/camel-filter-driver.c:1741
 #, c-format
 msgid "Unable to open spool folder"
 msgstr "Ni mogoče odprti vrstilne mape"
 
-#: src/camel/camel-filter-driver.c:1680
+#: src/camel/camel-filter-driver.c:1753
 #, c-format
 msgid "Unable to process spool folder"
 msgstr "Ni mogoče obdelati vrstilne mape"
 
-#: src/camel/camel-filter-driver.c:1708
+#: src/camel/camel-filter-driver.c:1781
 #, c-format
 msgid "Getting message %d (%d%%)"
 msgstr "Pridobivanje sporočila %d (%d%%)"
 
-#: src/camel/camel-filter-driver.c:1717 src/camel/camel-filter-driver.c:1740
+#: src/camel/camel-filter-driver.c:1790 src/camel/camel-filter-driver.c:1813
 #, c-format
 msgid "Failed on message %d"
 msgstr "Spodletelo opravilo na sporočilu %d"
 
-#: src/camel/camel-filter-driver.c:1758 src/camel/camel-filter-driver.c:1887
+#: src/camel/camel-filter-driver.c:1831 src/camel/camel-filter-driver.c:1960
 #, c-format
 msgid "Failed to transfer messages: %s"
 msgstr "Prenos sporočil je spodletel: %s"
 
-#: src/camel/camel-filter-driver.c:1768 src/camel/camel-filter-driver.c:1912
+#: src/camel/camel-filter-driver.c:1841 src/camel/camel-filter-driver.c:1985
 msgid "Syncing folder"
 msgstr "Usklajevanje mape"
 
-#: src/camel/camel-filter-driver.c:1773 src/camel/camel-filter-driver.c:1920
+#: src/camel/camel-filter-driver.c:1846 src/camel/camel-filter-driver.c:1993
 msgid "Complete"
 msgstr "Končano"
 
-#: src/camel/camel-filter-driver.c:1841
+#: src/camel/camel-filter-driver.c:1914
 #, c-format
 msgid "Getting message %d of %d"
 msgstr "Dobivanje sporočila %d od %d"
 
-#: src/camel/camel-filter-driver.c:1859
+#: src/camel/camel-filter-driver.c:1932
 #, c-format
 msgid "Failed at message %d of %d"
 msgstr "Opravilo je spodletelo pri sporočilu %d od %d"
 
-#: src/camel/camel-filter-driver.c:2076 src/camel/camel-filter-driver.c:2100
+#: src/camel/camel-filter-driver.c:2149 src/camel/camel-filter-driver.c:2173
 #, c-format
 msgid "Execution of filter “%s” failed: "
 msgstr "Uveljavljanje filtra »%s« je spodletelo:"
 
-#: src/camel/camel-filter-driver.c:2090
+#: src/camel/camel-filter-driver.c:2163
 #, c-format
 msgid "Error parsing filter “%s”: %s: %s"
 msgstr "Napaka razčlenjevanja filtra »%s«: %s: %s"
 
-#: src/camel/camel-filter-driver.c:2109
+#: src/camel/camel-filter-driver.c:2182
 #, c-format
 msgid "Error executing filter “%s”: %s: %s"
 msgstr "Napaka filtriranja »%s«: %s: %s"
@@ -3036,18 +3034,18 @@
 msgid "Output from %s:"
 msgstr "Odvod %s:"
 
-#: src/camel/camel-gpg-context.c:1177 src/camel/camel-gpg-context.c:1182
-#: src/camel/camel-gpg-context.c:2061
+#: src/camel/camel-gpg-context.c:1179 src/camel/camel-gpg-context.c:1184
+#: src/camel/camel-gpg-context.c:2063
 #, c-format
 msgid "Failed to execute gpg: %s"
 msgstr "Izvajanje gpg je spodletelo: %s"
 
-#: src/camel/camel-gpg-context.c:1182
+#: src/camel/camel-gpg-context.c:1184
 #: src/camel/providers/smtp/camel-smtp-transport.c:1217
 msgid "Unknown"
 msgstr "neznano"
 
-#: src/camel/camel-gpg-context.c:1294
+#: src/camel/camel-gpg-context.c:1296
 #, c-format
 msgid ""
 "Unexpected GnuPG status message encountered:\n"
@@ -3058,17 +3056,17 @@
 "\n"
 "%s"
 
-#: src/camel/camel-gpg-context.c:1330
+#: src/camel/camel-gpg-context.c:1332
 #, c-format
 msgid "Failed to parse gpg userid hint."
 msgstr "Razčlenjevanje namiga za userid gpg je spodletelo."
 
-#: src/camel/camel-gpg-context.c:1355 src/camel/camel-gpg-context.c:1370
+#: src/camel/camel-gpg-context.c:1357 src/camel/camel-gpg-context.c:1372
 #, c-format
 msgid "Failed to parse gpg passphrase request."
 msgstr "Razčlenjevanje zahteve za šifrirno geslo gpg je spodletelo."
 
-#: src/camel/camel-gpg-context.c:1397
+#: src/camel/camel-gpg-context.c:1399
 #, c-format
 msgid ""
 "You need a PIN to unlock the key for your\n"
@@ -3077,7 +3075,7 @@
 "Zahtevana je koda PIN za odklepanje ključa\n"
 "pametne kartice: Ukaz »%s«"
 
-#: src/camel/camel-gpg-context.c:1401
+#: src/camel/camel-gpg-context.c:1403
 #, c-format
 msgid ""
 "You need a passphrase to unlock the key for\n"
@@ -3086,12 +3084,12 @@
 "Za odklepanje ključa uporabnika potrebujete\n"
 "šifrirno geslo: »%s«"
 
-#: src/camel/camel-gpg-context.c:1407
+#: src/camel/camel-gpg-context.c:1409
 #, c-format
 msgid "Unexpected request from GnuPG for “%s”"
 msgstr "Nepričakovana zahteva GnuPG za »%s«"
 
-#: src/camel/camel-gpg-context.c:1419
+#: src/camel/camel-gpg-context.c:1421
 msgid ""
 "Note the encrypted content doesn’t contain information about a recipient, "
 "thus there will be a password prompt for each of stored private key."
@@ -3099,33 +3097,33 @@
 "Å ifrirana vsebina ne vsebuje podatkov o prejemniku, zato bo sistem zahteval "
 "geslo za vsak shranjen zasebni ključ."
 
-#: src/camel/camel-gpg-context.c:1450 src/camel/camel-net-utils.c:524
+#: src/camel/camel-gpg-context.c:1452 src/camel/camel-net-utils.c:524
 #: src/camel/providers/nntp/camel-nntp-summary.c:393
 #: src/libedataserver/e-client.c:156
 #, c-format
 msgid "Cancelled"
 msgstr "Preklicano"
 
-#: src/camel/camel-gpg-context.c:1472
+#: src/camel/camel-gpg-context.c:1474
 #, c-format
 msgid "Failed to unlock secret key: 3 bad passphrases given."
 msgstr ""
 "Odklepanje tajnega ključa je spodletelo: trije napačni vnosi šifrirnega "
 "gesla."
 
-#: src/camel/camel-gpg-context.c:1485
+#: src/camel/camel-gpg-context.c:1487
 #, c-format
 msgid "Unexpected response from GnuPG: %s"
 msgstr "Nepričakovan odziv vstavka GnuPG: %s"
 
-#: src/camel/camel-gpg-context.c:1602
+#: src/camel/camel-gpg-context.c:1604
 #, c-format
 msgid "Failed to encrypt: No valid recipients specified."
 msgstr "Å ifriranje je spodletelo: ni navedenih veljavnih prejemnikov."
 
 #. Translators: The first '%s' is replaced with the e-mail address, like 
'<u...@example.com>';
 #. the second '%s' is replaced with the actual path and filename of the used 
gpg, like '/usr/bin/gpg2'
-#: src/camel/camel-gpg-context.c:1623
+#: src/camel/camel-gpg-context.c:1625
 #, c-format
 msgid ""
 "Failed to encrypt: Invalid recipient %s specified. A common issue is that "
@@ -3135,39 +3133,39 @@
 "v %s ni ustreznega javnega ključa za tega prejemnika."
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
-#: src/camel/camel-gpg-context.c:1630
+#: src/camel/camel-gpg-context.c:1632
 #, c-format
 msgid "Failed to encrypt: The public key for recipient %s was not found."
 msgstr ""
 "Šifriranje je spodletelo: javnega ključa za prejemnika %s ni mogoče najti."
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
-#: src/camel/camel-gpg-context.c:1637
+#: src/camel/camel-gpg-context.c:1639
 #, c-format
 msgid "Failed to encrypt: The key for recipient %s is revoked."
 msgstr "Šifriranje je spodletelo: ključ za prejemnika %s je preklican."
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
-#: src/camel/camel-gpg-context.c:1644
+#: src/camel/camel-gpg-context.c:1646
 #, c-format
 msgid "Failed to encrypt: The key for recipient %s is expired."
 msgstr "Šifriranje je spodletelo: ključ za prejemnika %s je potekel."
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
-#: src/camel/camel-gpg-context.c:1651
+#: src/camel/camel-gpg-context.c:1653
 #, c-format
 msgid "Failed to encrypt: The key for recipient %s is not trusted."
 msgstr "Šifriranje je spodletelo: ključ za prejemnika %s ni zaupanja vreden."
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
-#: src/camel/camel-gpg-context.c:1658
+#: src/camel/camel-gpg-context.c:1660
 #, c-format
 msgid "Failed to encrypt: The key for recipient %s is disabled."
 msgstr "Šifriranje je spodletelo: ključ za prejemnika %s je onemogočen."
 
 #. Translators: The first '%s' is replaced with the e-mail address, like 
'<u...@example.com>';
 #. the second '%s' is replaced with the actual path and filename of the used 
gpg, like '/usr/bin/gpg2'
-#: src/camel/camel-gpg-context.c:1666
+#: src/camel/camel-gpg-context.c:1668
 #, c-format
 msgid ""
 "Failed to encrypt: Invalid recipient %s specified (code %d). A common issue "
@@ -3176,79 +3174,79 @@
 "Å ifriranje je spodletelo: naveden je neustrezen prejemnik %s (koda %d). "
 "Splošna napaka je, da v %s ni ustreznega javnega ključa za tega prejemnika."
 
-#: src/camel/camel-gpg-context.c:1727 src/camel/camel-gpg-context.c:1738
+#: src/camel/camel-gpg-context.c:1729 src/camel/camel-gpg-context.c:1740
 #, c-format
 msgid "Failed to pass command to GPG: %s"
 msgstr "Posredovanje ukaza h GPG je spodletelo: %s"
 
-#: src/camel/camel-gpg-context.c:2585 src/camel/camel-smime-context.c:1041
+#: src/camel/camel-gpg-context.c:2587 src/camel/camel-smime-context.c:1041
 msgid "Could not generate signing data: "
 msgstr "Ni mogoče ustvariti podatkov za podpis:"
 
-#: src/camel/camel-gpg-context.c:2636 src/camel/camel-gpg-context.c:2875
-#: src/camel/camel-gpg-context.c:3016 src/camel/camel-gpg-context.c:3193
-#: src/camel/camel-gpg-context.c:3548 src/camel/camel-gpg-context.c:3635
-#: src/camel/camel-gpg-context.c:3928 src/camel/camel-gpg-context.c:4026
-#: src/camel/camel-gpg-context.c:4111 src/camel/camel-gpg-context.c:4178
+#: src/camel/camel-gpg-context.c:2638 src/camel/camel-gpg-context.c:2877
+#: src/camel/camel-gpg-context.c:3018 src/camel/camel-gpg-context.c:3195
+#: src/camel/camel-gpg-context.c:3550 src/camel/camel-gpg-context.c:3637
+#: src/camel/camel-gpg-context.c:3930 src/camel/camel-gpg-context.c:4028
+#: src/camel/camel-gpg-context.c:4113 src/camel/camel-gpg-context.c:4180
 msgid "Failed to execute gpg."
 msgstr "Izvajanje gpg je spodletelo."
 
-#: src/camel/camel-gpg-context.c:2743 src/camel/camel-gpg-context.c:2751
-#: src/camel/camel-gpg-context.c:2759 src/camel/camel-gpg-context.c:2779
+#: src/camel/camel-gpg-context.c:2745 src/camel/camel-gpg-context.c:2753
+#: src/camel/camel-gpg-context.c:2761 src/camel/camel-gpg-context.c:2781
 #: src/camel/camel-smime-context.c:1172 src/camel/camel-smime-context.c:1186
 #: src/camel/camel-smime-context.c:1198
 #, c-format
 msgid "Cannot verify message signature: Incorrect message format"
 msgstr "Ni mogoče preveriti podpisa sporočila: neveljavna oblika sporočila"
 
-#: src/camel/camel-gpg-context.c:2825
+#: src/camel/camel-gpg-context.c:2827
 msgid "Cannot verify message signature: "
 msgstr "Ni mogoče preveriti veljavnosti podpisa sporočila:"
 
-#: src/camel/camel-gpg-context.c:2974
+#: src/camel/camel-gpg-context.c:2976
 msgid "Could not generate encrypting data: "
 msgstr "Ni mogoče ustvariti podatkov za šifriranje:"
 
-#: src/camel/camel-gpg-context.c:3056
+#: src/camel/camel-gpg-context.c:3058
 msgid "This is a digitally encrypted message part"
 msgstr "To je digitalno podpisan del sporočila"
 
-#: src/camel/camel-gpg-context.c:3116 src/camel/camel-gpg-context.c:3125
-#: src/camel/camel-gpg-context.c:3148
+#: src/camel/camel-gpg-context.c:3118 src/camel/camel-gpg-context.c:3127
+#: src/camel/camel-gpg-context.c:3150
 #, c-format
 msgid "Cannot decrypt message: Incorrect message format"
 msgstr "Ni mogoče odšifrirati sporočila: neveljavna oblika sporočila"
 
-#: src/camel/camel-gpg-context.c:3136
+#: src/camel/camel-gpg-context.c:3138
 #, c-format
 msgid "Failed to decrypt MIME part: protocol error"
 msgstr "Odšifriranje dela MIME je spodletelo: napaka protokola"
 
-#: src/camel/camel-gpg-context.c:3208
+#: src/camel/camel-gpg-context.c:3210
 #, c-format
 msgid "Failed to decrypt MIME part: Secret key not found"
 msgstr "Dešifriranje MIME je spodletelo: skrivnega ključa ni mogoče najti"
 
-#: src/camel/camel-gpg-context.c:3245
+#: src/camel/camel-gpg-context.c:3247
 #, c-format
 msgid "GPG blob contains unencrypted text: %s"
 msgstr "Paket GPG vsebuje nešifrirano besedilo: %s"
 
-#: src/camel/camel-gpg-context.c:3247 src/camel/camel-smime-context.c:1724
+#: src/camel/camel-gpg-context.c:3249 src/camel/camel-smime-context.c:1724
 msgid "Encrypted content"
 msgstr "Å ifrirana vsebina"
 
-#: src/camel/camel-gpg-context.c:3555 src/camel/camel-gpg-context.c:3642
-#: src/camel/camel-gpg-context.c:3935 src/camel/camel-gpg-context.c:3946
+#: src/camel/camel-gpg-context.c:3557 src/camel/camel-gpg-context.c:3644
+#: src/camel/camel-gpg-context.c:3937 src/camel/camel-gpg-context.c:3948
 #, c-format
 msgid "Public key “%s” was not found"
 msgstr "Javnega ključa »%s« ni mogoče najti"
 
-#: src/camel/camel-gpg-context.c:4033
+#: src/camel/camel-gpg-context.c:4035
 msgid "No public key was found in the provided data"
 msgstr "V posredovanih podatkih javnega ključa ni mogoče najti"
 
-#: src/camel/camel-gpg-context.c:4046
+#: src/camel/camel-gpg-context.c:4048
 msgid "Key information was not found in the provided data"
 msgstr "V posredovanih podatkih podatkov o ključu ni mogoče najti"
 
@@ -3782,7 +3780,7 @@
 msgstr "Vpisan je neveljaven predmet GType za protokol »%s«"
 
 #: src/camel/camel-session.c:508
-#: src/camel/providers/imapx/camel-imapx-server.c:3251
+#: src/camel/providers/imapx/camel-imapx-server.c:3257
 #: src/camel/providers/pop3/camel-pop3-store.c:305
 #: src/camel/providers/pop3/camel-pop3-store.c:809
 #: src/camel/providers/smtp/camel-smtp-transport.c:700
@@ -4158,7 +4156,7 @@
 msgstr "Za dokončanje tega opravila je treba biti povezan v omrežje (%s)"
 
 #: src/camel/providers/imapx/camel-imapx-conn-manager.c:987
-#: src/camel/providers/imapx/camel-imapx-server.c:3423
+#: src/camel/providers/imapx/camel-imapx-server.c:3429
 #: src/camel/providers/nntp/camel-nntp-store.c:348
 #: src/camel/providers/nntp/camel-nntp-store.c:1343
 #: src/camel/providers/nntp/camel-nntp-store.c:2156
@@ -4391,41 +4389,41 @@
 msgid "For reading and storing mail on IMAP servers."
 msgstr "Za branje in hranjenje pošte na strežnikih IMAP."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:1157
+#: src/camel/providers/imapx/camel-imapx-server.c:1158
 msgid "Error writing to cache stream"
 msgstr "Napaka med pisanjem v predpomnilnik pretoka"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3046
-#: src/camel/providers/imapx/camel-imapx-server.c:3133
-#: src/camel/providers/imapx/camel-imapx-server.c:3456
+#: src/camel/providers/imapx/camel-imapx-server.c:3052
+#: src/camel/providers/imapx/camel-imapx-server.c:3139
+#: src/camel/providers/imapx/camel-imapx-server.c:3462
 msgid "Failed to get capabilities"
 msgstr "Napaka med pridobivanjem podatkov funkcionalnosti"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3065
+#: src/camel/providers/imapx/camel-imapx-server.c:3071
 #, c-format
 msgid "Failed to connect to IMAP server %s in secure mode: %s"
 msgstr "Povezava s strežnikom IMAP %s v varnem načinu je spodletela: %s"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3066
+#: src/camel/providers/imapx/camel-imapx-server.c:3072
 #: src/camel/providers/smtp/camel-smtp-transport.c:287
 msgid "STARTTLS not supported"
 msgstr "STARTTLS ni podprt"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3075
+#: src/camel/providers/imapx/camel-imapx-server.c:3081
 msgid "Failed to issue STARTTLS"
 msgstr "Izvajanje ukaza STARTTLS je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3122
+#: src/camel/providers/imapx/camel-imapx-server.c:3128
 #, c-format
 msgid "Failed to connect to IMAP server %s in secure mode: "
 msgstr "Povezava s strežnikom IMAP %s v varnem načinu je spodletela:"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3238
+#: src/camel/providers/imapx/camel-imapx-server.c:3244
 #, c-format
 msgid "IMAP server %s does not support %s authentication"
 msgstr "Strežnik IMAP %s ne podpira zahtevanega načina overitve %s."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3264
+#: src/camel/providers/imapx/camel-imapx-server.c:3270
 #, c-format
 msgid ""
 "Plaintext authentication disallowed on insecure connections. Change "
@@ -4434,180 +4432,180 @@
 "Besedilna overitev ne dovoljena na varnih povezavah. Spremeniti je treba "
 "šifriranje na STARTTLS or TLS za račun »%s«."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3277
+#: src/camel/providers/imapx/camel-imapx-server.c:3283
 #: src/camel/providers/nntp/camel-nntp-store.c:454
 #: src/camel/providers/nntp/camel-nntp-store.c:596
 msgid "Cannot authenticate without a username"
 msgstr "Brez uporabniškega imena ni mogoče overiti povezave."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3286
+#: src/camel/providers/imapx/camel-imapx-server.c:3292
 #: src/camel/providers/nntp/camel-nntp-store.c:605
 #: src/camel/providers/pop3/camel-pop3-store.c:709
 #: src/camel/providers/pop3/camel-pop3-store.c:747
 msgid "Authentication password not available"
 msgstr "Geslo za overitev ni na voljo."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3296
-#: src/camel/providers/imapx/camel-imapx-server.c:3309
+#: src/camel/providers/imapx/camel-imapx-server.c:3302
+#: src/camel/providers/imapx/camel-imapx-server.c:3315
 msgid "Failed to authenticate"
 msgstr "Overitev je spodletela"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3381
+#: src/camel/providers/imapx/camel-imapx-server.c:3387
 msgid "Failed to issue ID"
 msgstr "Izvajanje določila ID je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3483
+#: src/camel/providers/imapx/camel-imapx-server.c:3489
 msgid "Failed to issue ENABLE UTF8=ACCEPT"
 msgstr "Spodletela je uporaba možnosti ENABLE UTF8=ACCEPT"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3505
+#: src/camel/providers/imapx/camel-imapx-server.c:3511
 msgid "Failed to issue NAMESPACE"
 msgstr "Izvajanje ukaza NAMESPACE je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3523
+#: src/camel/providers/imapx/camel-imapx-server.c:3529
 msgid "Failed to enable QResync"
 msgstr "Omogočanje QResync je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:3560
+#: src/camel/providers/imapx/camel-imapx-server.c:3566
 msgid "Failed to issue NOTIFY"
 msgstr "Izvajanje ukaza NOTIFY je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4039
+#: src/camel/providers/imapx/camel-imapx-server.c:4046
 msgid "Failed to select mailbox"
 msgstr "Napaka izbiranja poštnega predala"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4139
+#: src/camel/providers/imapx/camel-imapx-server.c:4147
 msgid "Cannot issue command, no stream available"
 msgstr "Ni mogoče izvesti ukaza. Pretok ni na voljo."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4405
+#: src/camel/providers/imapx/camel-imapx-server.c:4414
 #, c-format
 msgid "Cannot get message with message ID %s: %s"
 msgstr "Ni mogoče dobiti sporočila zID %s: %s"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4406
+#: src/camel/providers/imapx/camel-imapx-server.c:4415
 msgid "No such message available."
 msgstr "Na voljo ni takšnega sporočila."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4455
-#: src/camel/providers/imapx/camel-imapx-server.c:4480
-#: src/camel/providers/imapx/camel-imapx-server.c:4519
+#: src/camel/providers/imapx/camel-imapx-server.c:4464
+#: src/camel/providers/imapx/camel-imapx-server.c:4489
+#: src/camel/providers/imapx/camel-imapx-server.c:4528
 msgid "Error fetching message"
 msgstr "Napaka med pridobivanjem sporočila"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4497
-#: src/camel/providers/imapx/camel-imapx-server.c:5270
+#: src/camel/providers/imapx/camel-imapx-server.c:4506
+#: src/camel/providers/imapx/camel-imapx-server.c:5279
 msgid "Error performing NOOP"
 msgstr "Napaka med izvajanjem ukaza NOOP"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4512
+#: src/camel/providers/imapx/camel-imapx-server.c:4521
 msgid "Failed to close the tmp stream"
 msgstr "Zapiranje pretoka tmp je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4543
+#: src/camel/providers/imapx/camel-imapx-server.c:4552
 msgid "Failed to copy the tmp file"
 msgstr "Kopiranje datoteke tmp je spodletelo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4781
+#: src/camel/providers/imapx/camel-imapx-server.c:4790
 msgid "Error moving messages"
 msgstr "Napaka med premikanjem sporočil"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:4781
+#: src/camel/providers/imapx/camel-imapx-server.c:4790
 msgid "Error copying messages"
 msgstr "Napaka med kopiranjem sporočil"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:5060
-#: src/camel/providers/imapx/camel-imapx-server.c:5081
+#: src/camel/providers/imapx/camel-imapx-server.c:5069
+#: src/camel/providers/imapx/camel-imapx-server.c:5090
 msgid "Cannot create spool file: "
 msgstr "Ni mogoče ustvariti vrstilne datoteke:"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:5167
+#: src/camel/providers/imapx/camel-imapx-server.c:5176
 msgid "Error appending message"
 msgstr "Napaka med pripenjanjem sporočila"
 
 #. Translators: The first “%s” is replaced with an account name and the 
second “%s”
 #. is replaced with a full path name. The spaces around “:” are 
intentional, as
 #. the whole “%s : %s” is meant as an absolute identification of the 
folder.
-#: src/camel/providers/imapx/camel-imapx-server.c:5438
+#: src/camel/providers/imapx/camel-imapx-server.c:5447
 #, c-format
 msgid "Scanning for changed messages in “%s : %s”"
 msgstr "Preiskovanje za spremenjena sporočila v »%s : %s«"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:5442
+#: src/camel/providers/imapx/camel-imapx-server.c:5451
 msgid "Error scanning changes"
 msgstr "Napaka preiskovanja sprememb"
 
 #. Translators: The first “%s” is replaced with an account name and the 
second “%s”
 #. is replaced with a full path name. The spaces around “:” are 
intentional, as
 #. the whole “%s : %s” is meant as an absolute identification of the 
folder.
-#: src/camel/providers/imapx/camel-imapx-server.c:5465
+#: src/camel/providers/imapx/camel-imapx-server.c:5474
 #, c-format
 msgid "Fetching summary information for new messages in “%s : %s”"
 msgstr "Pridobivanje podatkov povzetka za nova sporočila v »%s : %s«."
 
-#: src/camel/providers/imapx/camel-imapx-server.c:5492
+#: src/camel/providers/imapx/camel-imapx-server.c:5501
 msgid "Error fetching message info"
 msgstr "Napaka med pridobivanjem podrobnosti sporočila"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:5675
+#: src/camel/providers/imapx/camel-imapx-server.c:5685
 msgid "Error running STATUS"
 msgstr "Napaka zagona ukaza STATUS"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6270
-#: src/camel/providers/imapx/camel-imapx-server.c:6325
-#: src/camel/providers/imapx/camel-imapx-server.c:6408
+#: src/camel/providers/imapx/camel-imapx-server.c:6289
+#: src/camel/providers/imapx/camel-imapx-server.c:6344
+#: src/camel/providers/imapx/camel-imapx-server.c:6427
 msgid "Error syncing changes"
 msgstr "Napaka med usklajevanjem sprememb"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6283
-#: src/camel/providers/imapx/camel-imapx-server.c:6335
-#: src/camel/providers/imapx/camel-imapx-server.c:6427
-#: src/camel/providers/imapx/camel-imapx-server.c:6568
+#: src/camel/providers/imapx/camel-imapx-server.c:6302
+#: src/camel/providers/imapx/camel-imapx-server.c:6354
+#: src/camel/providers/imapx/camel-imapx-server.c:6446
+#: src/camel/providers/imapx/camel-imapx-server.c:6587
 msgid "Error expunging message"
 msgstr "Napaka med uničevanjem sporočila"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6650
+#: src/camel/providers/imapx/camel-imapx-server.c:6669
 msgid "Error fetching folders"
 msgstr "Napaka med pridobivanjem map"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6658
+#: src/camel/providers/imapx/camel-imapx-server.c:6677
 msgid "Error fetching subscribed folders"
 msgstr "Napaka pridobivanja naročenih map"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6715
+#: src/camel/providers/imapx/camel-imapx-server.c:6734
 msgid "Error creating folder"
 msgstr "Napaka med ustvarjanjem mape"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6765
+#: src/camel/providers/imapx/camel-imapx-server.c:6784
 msgid "Error deleting folder"
 msgstr "Napaka med brisanjem mape"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6811
+#: src/camel/providers/imapx/camel-imapx-server.c:6830
 msgid "Error renaming folder"
 msgstr "Napaka med preimenovanjem mape"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6843
+#: src/camel/providers/imapx/camel-imapx-server.c:6862
 msgid "Error subscribing to folder"
 msgstr "Napaka naročanja na mapo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6879
+#: src/camel/providers/imapx/camel-imapx-server.c:6898
 msgid "Error unsubscribing from folder"
 msgstr "Napaka odjavljanja naročnine na mapo"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6919
+#: src/camel/providers/imapx/camel-imapx-server.c:6938
 msgid "IMAP server does not support quotas"
 msgstr "Strežnik IMAP ne podpira količinskih omejitev"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6931
+#: src/camel/providers/imapx/camel-imapx-server.c:6950
 msgid "Error retrieving quota information"
 msgstr "Napaka pridobivanja podatkov količinske omejitve"
 
-#: src/camel/providers/imapx/camel-imapx-server.c:6996
+#: src/camel/providers/imapx/camel-imapx-server.c:7015
 msgid "Search failed"
 msgstr "Iskanje je spodletelo"
 
 #. Blocks, until the DONE is issued or on inactivity timeout, error, ...
-#: src/camel/providers/imapx/camel-imapx-server.c:7124
+#: src/camel/providers/imapx/camel-imapx-server.c:7143
 msgid "Error running IDLE"
 msgstr "Napaka med zagonom IDLE"
 
@@ -6219,9 +6217,8 @@
 msgstr "Uporabniško določen čas dremeža v minutah"
 
 #: data/org.gnome.evolution-data-server.calendar.gschema.xml.in:103
-#, fuzzy
 msgid "Delete meeting from calendar on Decline"
-msgstr "Izbriši sestanek iz koledarja ob Zavrni"
+msgstr "Izbriši sestanek iz koledarja ob zavrnitvi"
 
 #: data/org.gnome.evolution-data-server.gschema.xml.in:5
 msgid "Whether the migration of old setting was already done"
@@ -8194,17 +8191,13 @@
 msgid "Show cards as vcard or csv file"
 msgstr "Pokaži kartice kot vcard ali datoteke csv"
 
-#: src/tools/addressbook-export/addressbook-export.c:930
-msgid "[vcard|csv]"
-msgstr "[vcard|csv]"
-
-#: src/tools/addressbook-export/addressbook-export.c:978
+#: src/tools/addressbook-export/addressbook-export.c:979
 msgid ""
 "Command line arguments error, please use --help option to see the usage."
 msgstr ""
 "Napaka argumentov ukazne vrstice. Uporabite možnost --help za ogled uporabe."
 
-#: src/tools/addressbook-export/addressbook-export.c:992
+#: src/tools/addressbook-export/addressbook-export.c:993
 msgid "Only support csv or vcard format."
 msgstr "Podpira le zapisa csv ali vcard."
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.50.2/po/zh_CN.po 
new/evolution-data-server-3.50.3/po/zh_CN.po
--- old/evolution-data-server-3.50.2/po/zh_CN.po        2023-12-01 
08:06:14.000000000 +0100
+++ new/evolution-data-server-3.50.3/po/zh_CN.po        2024-01-05 
08:57:54.000000000 +0100
@@ -24,8 +24,8 @@
 "Project-Id-Version: evolution-data-server master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/evolution-data-server/";
 "issues\n"
-"POT-Creation-Date: 2023-09-16 12:00+0000\n"
-"PO-Revision-Date: 2023-11-07 13:32-0500\n"
+"POT-Creation-Date: 2023-11-07 18:33+0000\n"
+"PO-Revision-Date: 2023-12-01 10:48-0500\n"
 "Last-Translator: Boyuan Yang <073p...@gmail.com>\n"
 "Language-Team: Chinese - China <i18n...@googlegroups.com>\n"
 "Language: zh_CN\n"
@@ -33,7 +33,7 @@
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.4.1\n"
+"X-Generator: Poedit 2.4.3\n"
 
 #: src/addressbook/backends/carddav/e-book-backend-carddav.c:276
 #, c-format
@@ -191,8 +191,8 @@
 #: src/libebackend/e-server-side-source.c:498 src/libedataserver/e-client.c:183
 #: src/libedataserver/e-soup-session.c:1025
 #: src/libedataserver/e-soup-session.c:1905
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:266
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:853
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:272
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:951
 #: src/libedataserverui/e-reminders-widget.c:2141
 #: src/tools/list-sources/list-sources.c:429
 msgid "Unknown error"
@@ -3057,31 +3057,27 @@
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
 #: src/camel/camel-gpg-context.c:1639
-#, fuzzy, c-format
-#| msgid "Failed to encrypt: No valid recipients specified."
+#, c-format
 msgid "Failed to encrypt: The key for recipient %s is revoked."
-msgstr "加密失败:没有指定有效的收件人。"
+msgstr "加密失败:收件人 %s 的密钥已被吊销。"
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
 #: src/camel/camel-gpg-context.c:1646
-#, fuzzy, c-format
-#| msgid "Failed to encrypt: No valid recipients specified."
+#, c-format
 msgid "Failed to encrypt: The key for recipient %s is expired."
-msgstr "加密失败:没有指定有效的收件人。"
+msgstr "加密失败:收件人 %s 的密钥已过期。"
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
 #: src/camel/camel-gpg-context.c:1653
-#, fuzzy, c-format
-#| msgid "Failed to encrypt: No valid recipients specified."
+#, c-format
 msgid "Failed to encrypt: The key for recipient %s is not trusted."
-msgstr "加密失败:没有指定有效的收件人。"
+msgstr "加密失败:收件人 %s 的密钥不可信。"
 
 #. Translators: The '%s' is replaced with the e-mail address, like 
'<u...@example.com>'
 #: src/camel/camel-gpg-context.c:1660
-#, fuzzy, c-format
-#| msgid "Failed to encrypt: No valid recipients specified."
+#, c-format
 msgid "Failed to encrypt: The key for recipient %s is disabled."
-msgstr "加密失败:没有指定有效的收件人。"
+msgstr "加密失败:收件人 %s 的密钥已被禁用。"
 
 #. Translators: The first '%s' is replaced with the e-mail address, like 
'<u...@example.com>';
 #. the second '%s' is replaced with the actual path and filename of the used 
gpg, like '/usr/bin/gpg2'
@@ -3106,71 +3102,71 @@
 msgid "Could not generate signing data: "
 msgstr "无法生成签名数据:"
 
-#: src/camel/camel-gpg-context.c:2638 src/camel/camel-gpg-context.c:2877
-#: src/camel/camel-gpg-context.c:3018 src/camel/camel-gpg-context.c:3195
-#: src/camel/camel-gpg-context.c:3550 src/camel/camel-gpg-context.c:3637
-#: src/camel/camel-gpg-context.c:3930 src/camel/camel-gpg-context.c:4028
-#: src/camel/camel-gpg-context.c:4113 src/camel/camel-gpg-context.c:4180
+#: src/camel/camel-gpg-context.c:2638 src/camel/camel-gpg-context.c:2878
+#: src/camel/camel-gpg-context.c:3019 src/camel/camel-gpg-context.c:3196
+#: src/camel/camel-gpg-context.c:3551 src/camel/camel-gpg-context.c:3638
+#: src/camel/camel-gpg-context.c:3931 src/camel/camel-gpg-context.c:4029
+#: src/camel/camel-gpg-context.c:4114 src/camel/camel-gpg-context.c:4181
 msgid "Failed to execute gpg."
 msgstr "执行 gpg 失败。"
 
-#: src/camel/camel-gpg-context.c:2745 src/camel/camel-gpg-context.c:2753
-#: src/camel/camel-gpg-context.c:2761 src/camel/camel-gpg-context.c:2781
+#: src/camel/camel-gpg-context.c:2746 src/camel/camel-gpg-context.c:2754
+#: src/camel/camel-gpg-context.c:2762 src/camel/camel-gpg-context.c:2782
 #: src/camel/camel-smime-context.c:1172 src/camel/camel-smime-context.c:1186
 #: src/camel/camel-smime-context.c:1198
 #, c-format
 msgid "Cannot verify message signature: Incorrect message format"
 msgstr "无法校验消息签名:消息格式不对"
 
-#: src/camel/camel-gpg-context.c:2827
+#: src/camel/camel-gpg-context.c:2828
 msgid "Cannot verify message signature: "
 msgstr "无法校验消息签名:"
 
-#: src/camel/camel-gpg-context.c:2976
+#: src/camel/camel-gpg-context.c:2977
 msgid "Could not generate encrypting data: "
 msgstr "无法生成加密数据:"
 
-#: src/camel/camel-gpg-context.c:3058
+#: src/camel/camel-gpg-context.c:3059
 msgid "This is a digitally encrypted message part"
 msgstr "这是消息的数字加密部分"
 
-#: src/camel/camel-gpg-context.c:3118 src/camel/camel-gpg-context.c:3127
-#: src/camel/camel-gpg-context.c:3150
+#: src/camel/camel-gpg-context.c:3119 src/camel/camel-gpg-context.c:3128
+#: src/camel/camel-gpg-context.c:3151
 #, c-format
 msgid "Cannot decrypt message: Incorrect message format"
 msgstr "无法解密消息:消息格式不对"
 
-#: src/camel/camel-gpg-context.c:3138
+#: src/camel/camel-gpg-context.c:3139
 #, c-format
 msgid "Failed to decrypt MIME part: protocol error"
 msgstr "解密 MIME 部分失败:协议错误"
 
-#: src/camel/camel-gpg-context.c:3210
+#: src/camel/camel-gpg-context.c:3211
 #, c-format
 msgid "Failed to decrypt MIME part: Secret key not found"
 msgstr "解密 MIME 部分失败:未找到密钥"
 
-#: src/camel/camel-gpg-context.c:3247
+#: src/camel/camel-gpg-context.c:3248
 #, c-format
 msgid "GPG blob contains unencrypted text: %s"
 msgstr "GPG blob 包含未加密的文本:%s"
 
-#: src/camel/camel-gpg-context.c:3249 src/camel/camel-smime-context.c:1724
+#: src/camel/camel-gpg-context.c:3250 src/camel/camel-smime-context.c:1724
 msgid "Encrypted content"
 msgstr "加密内容"
 
-#: src/camel/camel-gpg-context.c:3557 src/camel/camel-gpg-context.c:3644
-#: src/camel/camel-gpg-context.c:3937 src/camel/camel-gpg-context.c:3948
+#: src/camel/camel-gpg-context.c:3558 src/camel/camel-gpg-context.c:3645
+#: src/camel/camel-gpg-context.c:3938 src/camel/camel-gpg-context.c:3949
 #, fuzzy, c-format
 #| msgid "Object “%s” not found"
 msgid "Public key “%s” was not found"
 msgstr "未找到对象“%s”"
 
-#: src/camel/camel-gpg-context.c:4035
+#: src/camel/camel-gpg-context.c:4036
 msgid "No public key was found in the provided data"
 msgstr ""
 
-#: src/camel/camel-gpg-context.c:4048
+#: src/camel/camel-gpg-context.c:4049
 msgid "Key information was not found in the provided data"
 msgstr ""
 
@@ -4225,7 +4221,7 @@
 
 #: src/camel/providers/imapx/camel-imapx-provider.c:76
 msgid "Ignore other users namespace"
-msgstr ""
+msgstr "忽略其他用户的命名空间"
 
 #: src/camel/providers/imapx/camel-imapx-provider.c:78
 #, fuzzy
@@ -4276,7 +4272,7 @@
 
 #: src/camel/providers/imapx/camel-imapx-provider.c:97
 msgid "Single client mode"
-msgstr ""
+msgstr "单客户端模式"
 
 #: src/camel/providers/imapx/camel-imapx-provider.c:103
 msgid "Default IMAP port"
@@ -6093,7 +6089,7 @@
 
 #: data/org.gnome.evolution-data-server.calendar.gschema.xml.in:103
 msgid "Delete meeting from calendar on Decline"
-msgstr ""
+msgstr "拒绝时从日历删除会议"
 
 #: data/org.gnome.evolution-data-server.gschema.xml.in:5
 msgid "Whether the migration of old setting was already done"
@@ -6306,7 +6302,7 @@
 
 #: data/org.gnome.evolution-data-server.gschema.xml.in:91
 msgid "Whether to limit operations in Power Saver mode"
-msgstr ""
+msgstr "是否在节电模式下限制操作"
 
 #: data/org.gnome.evolution-data-server.gschema.xml.in:92
 msgid ""
@@ -6808,7 +6804,7 @@
 
 #: src/libedataserver/e-soup-session.c:1753
 msgid "Too many redirects"
-msgstr ""
+msgstr "重定向过多"
 
 #: src/libedataserver/e-source.c:772
 #, c-format
@@ -7220,10 +7216,8 @@
 msgstr "密钥加密"
 
 #: src/libedataserverui/e-certificate-widget.c:411
-#, fuzzy
-#| msgid "PGP Certificate"
 msgid "Certificate"
-msgstr "PGP 证书"
+msgstr "证书"
 
 #: src/libedataserverui/e-certificate-widget.c:411
 #, fuzzy
@@ -7255,10 +7249,8 @@
 
 #: src/libedataserverui/e-certificate-widget.c:416
 #: src/libedataserverui/e-certificate-widget.c:425
-#, fuzzy
-#| msgid "Email 1"
 msgid "Email"
-msgstr "电子邮件 1"
+msgstr "电子邮件"
 
 #: src/libedataserverui/e-certificate-widget.c:418
 #: src/libedataserverui/e-certificate-widget.c:427
@@ -7298,10 +7290,8 @@
 
 #: src/libedataserverui/e-certificate-widget.c:432
 #: src/libedataserverui/e-certificate-widget.c:440
-#, fuzzy
-#| msgid "SHA1 Fingerprint"
 msgid "SHA-256 Fingerprint"
-msgstr "SHA1 指纹"
+msgstr "SHA-256 指纹"
 
 #: src/libedataserverui/e-certificate-widget.c:433
 msgid "Details"
@@ -7334,10 +7324,8 @@
 msgstr ""
 
 #: src/libedataserverui/e-certificate-widget.c:439
-#, fuzzy
-#| msgid "Signature algorithm unknown"
 msgid "Signature Algorithm"
-msgstr "签名算法未知"
+msgstr "签名算法"
 
 #: src/libedataserverui/e-certificate-widget.c:441
 #, fuzzy
@@ -7346,10 +7334,8 @@
 msgstr "证书持有者的公钥"
 
 #: src/libedataserverui/e-certificate-widget.c:441
-#, fuzzy
-#| msgid "Algorithm Identifier"
 msgid "Algorithm"
-msgstr "算法标识"
+msgstr "算法"
 
 #: src/libedataserverui/e-credentials-prompter.c:260
 #: src/libedataserverui/e-credentials-prompter.c:1755
@@ -7362,12 +7348,12 @@
 msgid "Source “%s” doesn’t support prompt for credentials"
 msgstr "源“%s”不支持提示请求凭据"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:264
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:270
 #, c-format
 msgid "Failed to obtain access token from address “%s”: %s"
 msgstr "无法从地址“%s”获取访问令牌:%s"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:295
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:301
 #, fuzzy
 #| msgid "Requesting access token, please wait..."
 msgid "Requesting access token, please wait…"
@@ -7375,35 +7361,35 @@
 
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google Address Book authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:569
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:575
 #, c-format
 msgid "%s Address Book authentication request"
 msgstr "%s 地址簿认证请求"
 
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google Calendar authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:574
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:580
 #, c-format
 msgid "%s Calendar authentication request"
 msgstr "%s 日历认证请求"
 
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google Memo List authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:579
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:585
 #, c-format
 msgid "%s Memo List authentication request"
 msgstr "%s 备忘录列表认证请求"
 
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google Task List authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:584
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:590
 #, c-format
 msgid "%s Task List authentication request"
 msgstr "%s 任务列表认证请求"
 
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google Mail authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:590
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:596
 #, c-format
 msgid "%s Mail authentication request"
 msgstr "%s 邮件认证请求"
@@ -7411,7 +7397,7 @@
 #. generic account prompt
 #. Translators: The %s is replaced with an OAuth2 service display name, like 
the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Google account authentication request".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:595
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:601
 #, c-format
 msgid "%s account authentication request"
 msgstr "%s 帐号认证请求"
@@ -7419,7 +7405,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:609
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:615
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your "
@@ -7429,7 +7415,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:616
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:622
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your "
@@ -7439,7 +7425,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:623
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:629
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your mail "
@@ -7449,7 +7435,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:630
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:636
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your mail "
@@ -7459,7 +7445,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:637
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:643
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your memo "
@@ -7469,7 +7455,7 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:644
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:650
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your task "
@@ -7479,45 +7465,45 @@
 #. Translators: The first %s is replaced with an OAuth2 service display name, 
like the strings from "OAuth2Service" translation context,
 #. thus it can form a string like "Login to your Google account and...". The 
second %s is the actual source display name,
 #. like "On This Computer : Personal".
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:651
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:657
 #, c-format
 msgid ""
 "Login to your %s account and accept conditions in order to access your "
 "account “%s”."
 msgstr "登录到您的 %s 
帐户并接受条款,以便访问您的帐户“%s”。"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:853
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:951
 #, c-format
 msgid "Failed to open browser: %s"
 msgstr "打开浏览器失败:%s"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:954
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1048
 #: src/libedataserverui/e-credentials-prompter-impl-password.c:243
 #: src/libedataserverui/e-trust-prompt.c:117
 #: src/libedataserverui/e-webdav-discover-widget.c:1149
 msgid "_Cancel"
 msgstr "取消(_C)"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1036
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1130
 msgid "URL:"
 msgstr "URL:"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1066
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1160
 msgid "Click here to open the URL"
-msgstr ""
+msgstr "单击此处打开该 URL 地址"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1104
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1200
 msgid ""
 "Open the above URL in a browser and go through the OAuth2 wizard there. Copy "
 "the resulting authorization code, or the URL the OAuth2 wizard finished "
 "with, below to continue the authentication process."
 msgstr ""
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1141
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1237
 msgid "_Authorization code:"
-msgstr ""
+msgstr "授权码(_A):"
 
-#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1154
+#: src/libedataserverui/e-credentials-prompter-impl-oauth2.c:1250
 msgid "C_ontinue"
 msgstr "ç»§ç»­(_O)"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/evolution-data-server-3.50.2/src/camel/camel-db.c 
new/evolution-data-server-3.50.3/src/camel/camel-db.c
--- old/evolution-data-server-3.50.2/src/camel/camel-db.c       2023-12-01 
08:06:14.000000000 +0100
+++ new/evolution-data-server-3.50.3/src/camel/camel-db.c       2024-01-05 
08:57:54.000000000 +0100
@@ -446,9 +446,6 @@
 
        sqlite3_vfs_register (&vfs, 1);
 
-       if (g_getenv ("CAMEL_SQLITE_SHARED_CACHE"))
-               sqlite3_enable_shared_cache (TRUE);
-
        return NULL;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.50.2/src/camel/camel-filter-driver.c 
new/evolution-data-server-3.50.3/src/camel/camel-filter-driver.c
--- old/evolution-data-server-3.50.2/src/camel/camel-filter-driver.c    
2023-12-01 08:06:14.000000000 +0100
+++ new/evolution-data-server-3.50.3/src/camel/camel-filter-driver.c    
2024-01-05 08:57:54.000000000 +0100
@@ -771,7 +771,7 @@
                                driver->priv->message = 
camel_folder_get_message_sync (
                                        driver->priv->source,
                                        driver->priv->uid, NULL,
-                                       &driver->priv->error);
+                                       NULL);
 
                        if (!driver->priv->message)
                                continue;
@@ -827,7 +827,7 @@
                                if (driver->priv->message == NULL)
                                        /* FIXME Pass a GCancellable */
                                        driver->priv->message = 
camel_folder_get_message_sync (
-                                               driver->priv->source, 
driver->priv->uid, NULL, &driver->priv->error);
+                                               driver->priv->source, 
driver->priv->uid, NULL, NULL);
 
                                if (!driver->priv->message)
                                        continue;
@@ -1203,9 +1203,16 @@
        if (driver->priv->message == NULL) {
                /* FIXME Pass a GCancellable */
                driver->priv->message = camel_folder_get_message_sync (
-                       driver->priv->source, driver->priv->uid, NULL, 
&driver->priv->error);
-               if (driver->priv->message == NULL)
+                       driver->priv->source, driver->priv->uid, NULL, &error);
+               if (driver->priv->message == NULL) {
+                       if (g_error_matches (error, CAMEL_FOLDER_ERROR, 
CAMEL_FOLDER_ERROR_INVALID_UID)) {
+                               g_clear_error (&error);
+                               return 0;
+                       }
+                       if (error)
+                               driver->priv->error = g_steal_pointer (&error);
                        return -1;
+               }
        }
 
        args = g_ptr_array_new ();
@@ -1926,6 +1933,12 @@
                if (camel_folder_has_summary_capability (folder))
                        g_clear_object (&info);
 
+               if (g_error_matches (local_error, CAMEL_FOLDER_ERROR, 
CAMEL_FOLDER_ERROR_INVALID_UID)) {
+                       g_clear_error (&local_error);
+                       status = 0;
+                       continue;
+               }
+
                if (local_error != NULL || status == -1) {
                        report_status (
                                driver, CAMEL_FILTER_STATUS_END, 100,
@@ -2144,6 +2157,11 @@
                        camel_filter_driver_log (driver, FILTER_LOG_INFO, "   
Execution of filter '%s' failed: %s\n",
                                rule->name, driver->priv->error ? 
driver->priv->error->message : "Unknown error");
 
+                       if (g_error_matches (driver->priv->error, 
CAMEL_FOLDER_ERROR, CAMEL_FOLDER_ERROR_INVALID_UID)) {
+                               g_clear_error (&driver->priv->error);
+                               goto message_gone;
+                       }
+
                        g_prefix_error (
                                &driver->priv->error,
                                _("Execution of filter “%s” failed: "),
@@ -2261,6 +2279,7 @@
                }
        }
 
+ message_gone:
        if (driver->priv->message)
                g_object_unref (driver->priv->message);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.50.2/src/camel/camel-offline-folder.c 
new/evolution-data-server-3.50.3/src/camel/camel-offline-folder.c
--- old/evolution-data-server-3.50.2/src/camel/camel-offline-folder.c   
2023-12-01 08:06:14.000000000 +0100
+++ new/evolution-data-server-3.50.3/src/camel/camel-offline-folder.c   
2024-01-05 08:57:54.000000000 +0100
@@ -186,6 +186,7 @@
                uid_added = data->changes->uid_added;
 
                for (ii = 0; success && ii < uid_added->len; ii++) {
+                       GError *local_error = NULL;
                        const gchar *uid;
                        gint percent;
 
@@ -210,19 +211,52 @@
                                        continue;
                        }
 
-                       success = 
offline_folder_synchronize_message_wrapper_sync (
-                               data->folder, uid, cancellable, error);
+                       success = 
offline_folder_synchronize_message_wrapper_sync (data->folder, uid, 
cancellable, &local_error);
+
+                       if (!success) {
+                               if (g_error_matches (local_error, 
CAMEL_FOLDER_ERROR, CAMEL_FOLDER_ERROR_INVALID_UID)) {
+                                       /* The message can be moved away before 
the offline download gets to it */
+                                       success = TRUE;
+                               }
+
+                               if (camel_debug ("downsync")) {
+                                       printf ("[downsync]          %p: (%s : 
%s): failed to download uid '%s' with error '%s', will %s\n",
+                                               camel_folder_get_parent_store 
(data->folder),
+                                               camel_service_get_display_name 
(CAMEL_SERVICE (camel_folder_get_parent_store (data->folder))),
+                                               camel_folder_get_full_name 
(data->folder),
+                                               uid,
+                                               local_error ? 
local_error->message : "Unknown error",
+                                               success ? "continue" : "stop");
+                               }
+                       }
+
+                       /* Do not bother the user with background for-offline 
download errors */
+                       g_clear_error (&local_error);
                }
        } else {
                gchar *expression = NULL;
+               gboolean success;
+               GError *local_error = NULL;
 
                if (limit_time > 0)
                        expression = g_strdup_printf ("(match-all (> 
(get-sent-date) %" G_GINT64_FORMAT ")", limit_time);
 
-               camel_offline_folder_downsync_sync (
+               success = camel_offline_folder_downsync_sync (
                        CAMEL_OFFLINE_FOLDER (data->folder),
-                       expression ? expression : "(match-all)", cancellable, 
error);
+                       expression ? expression : "(match-all)", cancellable, 
&local_error);
 
+               if (camel_debug ("downsync")) {
+                       printf ("[downsync]          %p: (%s : %s): download of 
UID-s with%s time limit %s%s\n",
+                               camel_folder_get_parent_store (data->folder),
+                               camel_service_get_display_name (CAMEL_SERVICE 
(camel_folder_get_parent_store (data->folder))),
+                               camel_folder_get_full_name (data->folder),
+                               expression ? "" : "out",
+                               success ? "succeeded" : "failed: ",
+                               success ? "" : (local_error ? 
local_error->message : "Unknown error"));
+               }
+
+               /* Do not bother the user with background for-offline download 
errors */
+               g_clear_error (&local_error);
                g_free (expression);
        }
 
@@ -432,16 +466,25 @@
                                camel_service_get_display_name (CAMEL_SERVICE 
(camel_folder_get_parent_store (folder))),
                                camel_folder_get_full_display_name (folder));
 
-                       /* Stop on failure */
+                       /* Maybe stop on failure */
                        if (!offline_folder_synchronize_message_wrapper_sync 
(folder, uid, cancellable, &local_error)) {
+                               gboolean can_continue;
+
+                               /* The message can be moved away before the 
offline download gets to it */
+                               can_continue = g_error_matches (local_error, 
CAMEL_FOLDER_ERROR, CAMEL_FOLDER_ERROR_INVALID_UID);
+
                                if (camel_debug ("downsync")) {
-                                       printf ("[downsync]          %p: (%s : 
%s): aborting, failed to download uid:%s error:%s\n", 
camel_folder_get_parent_store (folder),
+                                       printf ("[downsync]          %p: (%s : 
%s): failed to download uid:%s error:%s; will %s\n", 
camel_folder_get_parent_store (folder),
                                                camel_service_get_display_name 
(CAMEL_SERVICE (camel_folder_get_parent_store (folder))), 
camel_folder_get_full_name (folder),
-                                               uid, local_error ? 
local_error->message : "Unknown error");
+                                               uid, local_error ? 
local_error->message : "Unknown error", can_continue ? "continue" : "stop");
                                }
                                g_clear_error (&local_error);
                                camel_operation_pop_message (cancellable);
-                               break;
+
+                               if (can_continue)
+                                       continue;
+                               else
+                                       break;
                        }
 
                        camel_operation_pop_message (cancellable);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/evolution-data-server-3.50.2/src/camel/providers/imapx/camel-imapx-server.c 
new/evolution-data-server-3.50.3/src/camel/providers/imapx/camel-imapx-server.c
--- 
old/evolution-data-server-3.50.2/src/camel/providers/imapx/camel-imapx-server.c 
    2023-12-01 08:06:14.000000000 +0100
+++ 
new/evolution-data-server-3.50.3/src/camel/providers/imapx/camel-imapx-server.c 
    2024-01-05 08:57:54.000000000 +0100
@@ -56,7 +56,7 @@
 /* Try pipelining fetch requests, 'in bits' */
 #define MULTI_SIZE (32768 * 8)
 
-#define MAX_COMMAND_LEN 1000
+#define MAX_UIDSET_ITEMS 100
 
 /* Allow up to this number of message infos in a folder with message headers
    stored in memory, to not use too much memory when fetching new messages. */
@@ -4763,7 +4763,7 @@
                struct _uidset_state uidset;
                gint last_index = ii;
 
-               imapx_uidset_init (&uidset, 0, MAX_COMMAND_LEN);
+               imapx_uidset_init (&uidset, 0, MAX_UIDSET_ITEMS);
 
                if (use_move_command)
                        ic = camel_imapx_command_new (is, 
CAMEL_IMAPX_JOB_MOVE_MESSAGE, "UID MOVE ");
@@ -5465,7 +5465,7 @@
                GSList *link;
 
                ic = NULL;
-               imapx_uidset_init (&uidset, 0, 100);
+               imapx_uidset_init (&uidset, 0, MAX_UIDSET_ITEMS);
 
                camel_operation_push_message (cancellable,
                        /* Translators: The first “%s” is replaced with an 
account name and the second “%s”
@@ -6205,7 +6205,7 @@
                return FALSE;
        }
 
-       imapx_uidset_init (&uidset_expunge, 0, 100);
+       imapx_uidset_init (&uidset_expunge, 0, MAX_UIDSET_ITEMS);
 
        has_uidplus_capability = CAMEL_IMAPX_HAVE_CAPABILITY (is->priv->cinfo, 
UIDPLUS);
        expunge_deleted = is_real_trash_folder && !remove_deleted_flags;
@@ -6225,7 +6225,7 @@
                                continue;
 
                        c (is->priv->tagprefix, "checking/storing %s flags 
'%s'\n", on ? "on" : "off", flags_table[jj].name);
-                       imapx_uidset_init (&uidset, 0, 100);
+                       imapx_uidset_init (&uidset, 0, MAX_UIDSET_ITEMS);
                        for (i = 0; i < changed_uids->len && success; i++) {
                                CamelMessageInfo *info;
                                CamelIMAPXMessageInfo *xinfo;
@@ -6379,7 +6379,7 @@
                        for (jj = 0; jj < user_set->len && success; jj++) {
                                struct _imapx_flag_change *c = &g_array_index 
(user_set, struct _imapx_flag_change, jj);
 
-                               imapx_uidset_init (&uidset, 0, 100);
+                               imapx_uidset_init (&uidset, 0, 
MAX_UIDSET_ITEMS);
                                for (i = 0; i < c->infos->len; i++) {
                                        CamelMessageInfo *info = 
c->infos->pdata[i];
 

Reply via email to