From 37bb2810459d72e2572294572ff9c35247a51037 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 6 Aug 2011 01:58:24 -0400 Subject: [PATCH 01/16] Make dynamically loaded modules resident. --- evolution-3.1.4-resident-modules.patch | 29 ++++++++++++++++++++++++++ evolution.spec | 14 ++++++++++--- 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 evolution-3.1.4-resident-modules.patch diff --git a/evolution-3.1.4-resident-modules.patch b/evolution-3.1.4-resident-modules.patch new file mode 100644 index 0000000..b4cc53a --- /dev/null +++ b/evolution-3.1.4-resident-modules.patch @@ -0,0 +1,29 @@ +diff -up evolution-3.1.4/e-util/e-module.c.resident-modules evolution-3.1.4/e-util/e-module.c +--- evolution-3.1.4/e-util/e-module.c.resident-modules 2011-06-13 10:25:40.000000000 -0400 ++++ evolution-3.1.4/e-util/e-module.c 2011-08-05 09:45:15.830757214 -0400 +@@ -139,6 +139,25 @@ module_load (GTypeModule *type_module) + + priv->load (type_module); + ++ /* XXX This is a Band-Aid for a design flaw in EExtension. If the ++ * "extensible_type" member of EExtensionClass is set to a GType ++ * that hasn't already been registered, then when the extension's ++ * module is unloaded the GType registration that was triggered ++ * by setting "extensible_type" will be invalidated and cause ++ * Evolution to malfunction when the module is loaded again. ++ * ++ * Extension modules get loaded and unloaded repeatedly by ++ * e_extensible_load_extensions(), which temporarily references ++ * all extension classes and picks out the ones it needs for a ++ * given EExtensible instance based on the "extensible_type" ++ * class member. ++ * ++ * Making the module resident prevents the aforementioned GType ++ * registration from being invalidated when the extension class ++ * is unreferenced. ++ */ ++ g_module_make_resident (priv->module); ++ + return TRUE; + + fail: diff --git a/evolution.spec b/evolution.spec index 448b1c7..5f33489 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.1.4 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -45,7 +45,10 @@ Obsoletes: libgal2 <= %{last_libgal2_version} Patch10: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 -Patch13: evolution-2.30.1-help-contents.patch +Patch11: evolution-2.30.1-help-contents.patch + +# Make all dynamically-loaded modules resident. +Patch12: evolution-3.1.4-resident-modules.patch ## Dependencies ### @@ -202,7 +205,8 @@ This package contains the plugin to import Microsoft Personal Storage Table %prep %setup -q -n evolution-%{version} %patch10 -p1 -b .ldaphack -%patch13 -p1 -b .help-contents +%patch11 -p1 -b .help-contents +%patch12 -p1 -b .resident-modules mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -633,6 +637,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Aug 05 2011 Matthew Barnes - 3.1.4-2 +- Add patch to make all dynamically-loaded modules resident to avoid a + potential crash on startup. + * Sat Jul 23 2011 Matthew Barnes - 3.1.4-1 - Update to 3.1.4 From 6674911764ca2ec791c3c6236d7537c210b8e8ac Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 15 Aug 2011 12:11:10 +0200 Subject: [PATCH 02/16] Update to 3.1.5 --- .gitignore | 1 + evolution-3.1.4-resident-modules.patch | 29 -------------------------- evolution.spec | 12 +++++------ sources | 2 +- 4 files changed, 8 insertions(+), 36 deletions(-) delete mode 100644 evolution-3.1.4-resident-modules.patch diff --git a/.gitignore b/.gitignore index 1da36f8..6b98c3f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.2.tar.bz2 /evolution-3.1.3.tar.bz2 /evolution-3.1.4.tar.bz2 +/evolution-3.1.5.tar.bz2 diff --git a/evolution-3.1.4-resident-modules.patch b/evolution-3.1.4-resident-modules.patch deleted file mode 100644 index b4cc53a..0000000 --- a/evolution-3.1.4-resident-modules.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff -up evolution-3.1.4/e-util/e-module.c.resident-modules evolution-3.1.4/e-util/e-module.c ---- evolution-3.1.4/e-util/e-module.c.resident-modules 2011-06-13 10:25:40.000000000 -0400 -+++ evolution-3.1.4/e-util/e-module.c 2011-08-05 09:45:15.830757214 -0400 -@@ -139,6 +139,25 @@ module_load (GTypeModule *type_module) - - priv->load (type_module); - -+ /* XXX This is a Band-Aid for a design flaw in EExtension. If the -+ * "extensible_type" member of EExtensionClass is set to a GType -+ * that hasn't already been registered, then when the extension's -+ * module is unloaded the GType registration that was triggered -+ * by setting "extensible_type" will be invalidated and cause -+ * Evolution to malfunction when the module is loaded again. -+ * -+ * Extension modules get loaded and unloaded repeatedly by -+ * e_extensible_load_extensions(), which temporarily references -+ * all extension classes and picks out the ones it needs for a -+ * given EExtensible instance based on the "extensible_type" -+ * class member. -+ * -+ * Making the module resident prevents the aforementioned GType -+ * registration from being invalidated when the extension class -+ * is unreferenced. -+ */ -+ g_module_make_resident (priv->module); -+ - return TRUE; - - fail: diff --git a/evolution.spec b/evolution.spec index 5f33489..5825f6c 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,8 +27,8 @@ ### Abstract ### Name: evolution -Version: 3.1.4 -Release: 2%{?dist} +Version: 3.1.5 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -47,9 +47,6 @@ Patch10: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch11: evolution-2.30.1-help-contents.patch -# Make all dynamically-loaded modules resident. -Patch12: evolution-3.1.4-resident-modules.patch - ## Dependencies ### Requires(pre): GConf2 @@ -206,7 +203,6 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch10 -p1 -b .ldaphack %patch11 -p1 -b .help-contents -%patch12 -p1 -b .resident-modules mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -637,6 +633,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Aug 15 2011 Milan Crha - 3.1.5-1 +- Update to 3.1.5 +- Remove patch for resident modules (fixed upstream) + * Fri Aug 05 2011 Matthew Barnes - 3.1.4-2 - Add patch to make all dynamically-loaded modules resident to avoid a potential crash on startup. diff --git a/sources b/sources index 81d6f06..3f32bad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -eff3a714a3fa97a3ceb624a0a8fd1059 evolution-3.1.4.tar.bz2 +01d2534c78884a2a1982d202d8e7896a evolution-3.1.5.tar.bz2 From e354318f30637eb6994492bd03a35206af1a7ffa Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 15 Aug 2011 14:59:30 +0200 Subject: [PATCH 03/16] Help .omf files gone, try other directory for 'help' subpackage --- evolution.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evolution.spec b/evolution.spec index 5825f6c..4036986 100644 --- a/evolution.spec +++ b/evolution.spec @@ -604,7 +604,7 @@ rm -rf $RPM_BUILD_ROOT %files help -f help.lang %defattr(-, root, root) -%dir %{_datadir}/omf/evolution +%dir %{_datadir}/gnome/help/evolution %files bogofilter %defattr(-, root, root) From 3e912bece9781fe319305309b731f217cbd4d54f Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 29 Aug 2011 08:32:26 +0200 Subject: [PATCH 04/16] Update to 3.1.90 --- .gitignore | 1 + evolution.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 6b98c3f..8fe36a9 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.3.tar.bz2 /evolution-3.1.4.tar.bz2 /evolution-3.1.5.tar.bz2 +/evolution-3.1.90.tar.xz diff --git a/evolution.spec b/evolution.spec index 4036986..0996508 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,14 +27,14 @@ ### Abstract ### Name: evolution -Version: 3.1.5 +Version: 3.1.90 Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL URL: http://projects.gnome.org/evolution/ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Source: http://download.gnome.org/sources/%{name}/3.1/%{name}-%{version}.tar.bz2 +Source: http://download.gnome.org/sources/%{name}/3.1/%{name}-%{version}.tar.xz Obsoletes: anjal <= %{last_anjal_version} Obsoletes: libgal2 <= %{last_libgal2_version} @@ -633,6 +633,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Aug 29 2011 Milan Crha - 3.1.90-1 +- Update to 3.1.90 + * Mon Aug 15 2011 Milan Crha - 3.1.5-1 - Update to 3.1.5 - Remove patch for resident modules (fixed upstream) diff --git a/sources b/sources index 3f32bad..5eb5cc5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -01d2534c78884a2a1982d202d8e7896a evolution-3.1.5.tar.bz2 +73b0c97283c0a5d3756c60123fa8fd1f evolution-3.1.90.tar.xz From cdb08cb04c106aae7c48c658f2a72dc605731261 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 7 Sep 2011 14:01:52 +0200 Subject: [PATCH 05/16] Update to 3.1.91 --- .gitignore | 1 + evolution.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8fe36a9..e8a020a 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.4.tar.bz2 /evolution-3.1.5.tar.bz2 /evolution-3.1.90.tar.xz +/evolution-3.1.91.tar.xz diff --git a/evolution.spec b/evolution.spec index 0996508..8e1ea9d 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,7 +27,7 @@ ### Abstract ### Name: evolution -Version: 3.1.90 +Version: 3.1.91 Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME @@ -633,6 +633,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed Sep 07 2011 Milan Crha - 3.1.91-1 +- Update to 3.1.91 + * Mon Aug 29 2011 Milan Crha - 3.1.90-1 - Update to 3.1.90 diff --git a/sources b/sources index 5eb5cc5..ca9a2b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -73b0c97283c0a5d3756c60123fa8fd1f evolution-3.1.90.tar.xz +e1a5da45f18a4c5bc2f6a5f6e2eb443a evolution-3.1.91.tar.xz From 59f28af5406a5be68712be6d4ce041eff7dfa303 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 7 Sep 2011 17:14:36 -0400 Subject: [PATCH 06/16] rebuild --- evolution.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/evolution.spec b/evolution.spec index 8e1ea9d..0f234eb 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.1.91 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -633,6 +633,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed Sep 7 2011 Matthias Clasen - 3.1.91-2 +- Rebuild against a newer glib + * Wed Sep 07 2011 Milan Crha - 3.1.91-1 - Update to 3.1.91 From c3bdc199a150cecb2fb715d880bbe282f937144e Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 19 Sep 2011 15:20:50 +0200 Subject: [PATCH 07/16] Update to 3.1.92 --- .gitignore | 1 + evolution.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e8a020a..3a50200 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.5.tar.bz2 /evolution-3.1.90.tar.xz /evolution-3.1.91.tar.xz +/evolution-3.1.92.tar.xz diff --git a/evolution.spec b/evolution.spec index 0f234eb..d67813d 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,8 +27,8 @@ ### Abstract ### Name: evolution -Version: 3.1.91 -Release: 2%{?dist} +Version: 3.1.92 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -246,6 +246,7 @@ intltoolize --force autoconf %configure \ + --disable-maintainer-mode \ --disable-image-inline \ --enable-gtk-doc \ --with-sub-version=" (%{version}-%{release})" \ @@ -633,6 +634,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Sep 19 2011 Milan Crha - 3.1.92-1 +- Update to 3.1.92 + * Wed Sep 7 2011 Matthias Clasen - 3.1.91-2 - Rebuild against a newer glib diff --git a/sources b/sources index ca9a2b2..1116eea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -e1a5da45f18a4c5bc2f6a5f6e2eb443a evolution-3.1.91.tar.xz +d4ce49224821c4f75805820df25d5382 evolution-3.1.92.tar.xz From d08898befe61127d1463792af911a4b1b2351875 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 26 Sep 2011 08:32:00 +0200 Subject: [PATCH 08/16] Update to 3.2.0 --- .gitignore | 1 + evolution.spec | 28 +++++++++++++++++++++++----- sources | 2 +- 3 files changed, 25 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 3a50200..74c2528 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.90.tar.xz /evolution-3.1.91.tar.xz /evolution-3.1.92.tar.xz +/evolution-3.2.0.tar.xz diff --git a/evolution.spec b/evolution.spec index d67813d..874c883 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,14 +27,14 @@ ### Abstract ### Name: evolution -Version: 3.1.92 +Version: 3.2.0 Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL URL: http://projects.gnome.org/evolution/ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -Source: http://download.gnome.org/sources/%{name}/3.1/%{name}-%{version}.tar.xz +Source: http://download.gnome.org/sources/%{name}/3.2/%{name}-%{version}.tar.xz Obsoletes: anjal <= %{last_anjal_version} Obsoletes: libgal2 <= %{last_libgal2_version} @@ -337,7 +337,11 @@ fi %pre bogofilter export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/bogo-junk-plugin.schemas > /dev/null || : +gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/evolution-bogofilter.schemas > /dev/null || : + +%pre spamassassin +export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` +gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/evolution-spamassassin.schemas > /dev/null || : %post /sbin/ldconfig @@ -357,7 +361,11 @@ gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/evolution-mail. %post bogofilter export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/bogo-junk-plugin.schemas > /dev/null || : +gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/evolution-bogofilter.schemas > /dev/null || : + +%post spamassassin +export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` +gconftool-2 --makefile-install-rule %{_sysconfdir}/gconf/schemas/evolution-spamassassin.schemas > /dev/null || : %preun if [ "$1" -eq 0 ] ; then @@ -377,7 +385,13 @@ fi %preun bogofilter if [ "$1" -eq 0 ] ; then export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` -gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/bogo-junk-plugin.schemas > /dev/null || : +gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/evolution-bogofilter.schemas > /dev/null || : +fi + +%preun spamassassin +if [ "$1" -eq 0 ] ; then +export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source` +gconftool-2 --makefile-uninstall-rule %{_sysconfdir}/gconf/schemas/evolution-spamassassin.schemas > /dev/null || : fi %postun @@ -634,6 +648,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Sep 26 2011 Milan Crha - 3.2.0-1 +- Update to 3.2.0 +- Manage properly schemas files for evolution-bogofilter/spamassassin + * Mon Sep 19 2011 Milan Crha - 3.1.92-1 - Update to 3.1.92 diff --git a/sources b/sources index 1116eea..c0f9290 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -d4ce49224821c4f75805820df25d5382 evolution-3.1.92.tar.xz +7c2143fe69343158ca220903b4f4b569 evolution-3.2.0.tar.xz From beedaef76a7826b582374dd8b3fae78b8cd23488 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 17 Oct 2011 09:16:59 +0200 Subject: [PATCH 09/16] Update to 3.2.1 --- .gitignore | 1 + evolution.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 74c2528..d71ef64 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.91.tar.xz /evolution-3.1.92.tar.xz /evolution-3.2.0.tar.xz +/evolution-3.2.1.tar.xz diff --git a/evolution.spec b/evolution.spec index 874c883..4e04671 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,7 +27,7 @@ ### Abstract ### Name: evolution -Version: 3.2.0 +Version: 3.2.1 Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME @@ -648,6 +648,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Oct 17 2011 Milan Crha - 3.2.1-1 +- Update to 3.2.1 + * Mon Sep 26 2011 Milan Crha - 3.2.0-1 - Update to 3.2.0 - Manage properly schemas files for evolution-bogofilter/spamassassin diff --git a/sources b/sources index c0f9290..6ec873c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7c2143fe69343158ca220903b4f4b569 evolution-3.2.0.tar.xz +8a8ed82060fa06ec057cbc0e960e3405 evolution-3.2.1.tar.xz From 11ccb4b2a8d42413f1af6af3d6f2fdf3bee3d4d1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 28 Oct 2011 13:13:16 -0400 Subject: [PATCH 10/16] Fix detection of evolution-help package. --- evolution-2.30.1-help-contents.patch | 5 +++-- evolution.spec | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/evolution-2.30.1-help-contents.patch b/evolution-2.30.1-help-contents.patch index 1c90903..e2b75a2 100644 --- a/evolution-2.30.1-help-contents.patch +++ b/evolution-2.30.1-help-contents.patch @@ -1,7 +1,7 @@ diff -up evolution-2.30.1.2/shell/e-shell-window-actions.c.help-contents evolution-2.30.1.2/shell/e-shell-window-actions.c --- evolution-2.30.1.2/shell/e-shell-window-actions.c.help-contents 2010-04-26 09:13:18.000000000 -0400 +++ evolution-2.30.1.2/shell/e-shell-window-actions.c 2010-05-07 21:29:06.269059830 -0400 -@@ -2001,6 +2001,14 @@ e_shell_window_actions_init (EShellWindo +@@ -2001,6 +2001,15 @@ e_shell_window_actions_init (EShellWindo if (path == NULL) gtk_action_set_visible (ACTION (SUBMIT_BUG), FALSE); g_free (path); @@ -9,7 +9,8 @@ diff -up evolution-2.30.1.2/shell/e-shell-window-actions.c.help-contents evoluti + /* Viewing user documentation requires the evolution-help + * Fedora package. Look for one of the files it installs. */ + path = g_build_filename ( -+ EVOLUTION_DATADIR, "omf", PACKAGE, "evolution-C.omf", NULL); ++ EVOLUTION_DATADIR, "gnome", "help", ++ PACKAGE, "C", "index.page", NULL); + if (!g_file_test (path, G_FILE_TEST_IS_REGULAR)) + gtk_action_set_visible (ACTION (CONTENTS), FALSE); + g_free (path); diff --git a/evolution.spec b/evolution.spec index 4e04671..b08a4d5 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.2.1 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -648,6 +648,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Fri Oct 28 2011 Matthew Barnes - 3.2.1-2 +- Fix detection of evolution-help (not using OMF files anymore). + * Mon Oct 17 2011 Milan Crha - 3.2.1-1 - Update to 3.2.1 From a4cc095e60a3215857463556fadb3ae764a30778 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 14 Nov 2011 14:01:23 +0100 Subject: [PATCH 11/16] Update to 3.2.2 --- .gitignore | 1 + evolution.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index d71ef64..5a0cc4c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.1.92.tar.xz /evolution-3.2.0.tar.xz /evolution-3.2.1.tar.xz +/evolution-3.2.2.tar.xz diff --git a/evolution.spec b/evolution.spec index b08a4d5..23e18c8 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,8 +27,8 @@ ### Abstract ### Name: evolution -Version: 3.2.1 -Release: 2%{?dist} +Version: 3.2.2 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -648,6 +648,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Nov 14 2011 Milan Crha - 3.2.2-1 +- Update to 3.2.2 + * Fri Oct 28 2011 Matthew Barnes - 3.2.1-2 - Fix detection of evolution-help (not using OMF files anymore). diff --git a/sources b/sources index 6ec873c..138c1d0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -8a8ed82060fa06ec057cbc0e960e3405 evolution-3.2.1.tar.xz +1c661fb7a982ba6b3624becaa3079eb8 evolution-3.2.2.tar.xz From b9461f095dd558e7ca83a2f29946559a6f4ea272 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 30 Nov 2011 07:32:03 -0600 Subject: [PATCH 12/16] CVE-2011-3201 --- evolution-3.2.2-CVE-2011-3201.patch | 56 +++++++++++++++++++++++++++++ evolution.spec | 9 ++++- 2 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 evolution-3.2.2-CVE-2011-3201.patch diff --git a/evolution-3.2.2-CVE-2011-3201.patch b/evolution-3.2.2-CVE-2011-3201.patch new file mode 100644 index 0000000..7b6ce55 --- /dev/null +++ b/evolution-3.2.2-CVE-2011-3201.patch @@ -0,0 +1,56 @@ +diff -up evolution-3.2.2/composer/e-msg-composer.c.CVE-2011-3201 evolution-3.2.2/composer/e-msg-composer.c +--- evolution-3.2.2/composer/e-msg-composer.c.CVE-2011-3201 2011-10-20 05:38:02.000000000 -0500 ++++ evolution-3.2.2/composer/e-msg-composer.c 2011-11-30 07:30:00.504101491 -0600 +@@ -4003,6 +4003,35 @@ merge_always_cc_and_bcc (EComposerHeader + e_destination_freev (addrv); + } + ++static const gchar *blacklist[] = { ".", "etc", ".." }; ++ ++static gboolean ++file_is_blacklisted (const gchar *filename) ++{ ++ gboolean blacklisted = FALSE; ++ guint ii, jj, n_parts; ++ gchar **parts; ++ ++ parts = g_strsplit (filename, G_DIR_SEPARATOR_S, -1); ++ n_parts = g_strv_length (parts); ++ ++ for (ii = 0; ii < G_N_ELEMENTS (blacklist); ii++) { ++ for (jj = 0; jj < n_parts; jj++) { ++ if (g_str_has_prefix (parts[jj], blacklist[ii])) { ++ blacklisted = TRUE; ++ break; ++ } ++ } ++ } ++ ++ g_strfreev (parts); ++ ++ if (blacklisted) ++ g_message ("Skipping suspicious attachment: %s", filename); ++ ++ return blacklisted; ++} ++ + static void + handle_mailto (EMsgComposer *composer, + const gchar *mailto) +@@ -4096,6 +4125,8 @@ handle_mailto (EMsgComposer *composer, + EAttachment *attachment; + + camel_url_decode (content); ++ if (file_is_blacklisted (content)) ++ goto next; + if (g_ascii_strncasecmp (content, "file:", 5) == 0) + attachment = e_attachment_new_for_uri (content); + else +@@ -4115,6 +4146,7 @@ handle_mailto (EMsgComposer *composer, + e_msg_composer_add_header (composer, header, content); + } + ++next: + g_free (content); + + p += clen; diff --git a/evolution.spec b/evolution.spec index 23e18c8..3d75169 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.2.2 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -47,6 +47,9 @@ Patch10: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch11: evolution-2.30.1-help-contents.patch +# CVE-2011-3201 +Patch12: evolution-3.2.2-CVE-2011-3201.patch + ## Dependencies ### Requires(pre): GConf2 @@ -203,6 +206,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch10 -p1 -b .ldaphack %patch11 -p1 -b .help-contents +%patch12 -p1 -b .CVE-2011-3201 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -648,6 +652,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed Nov 30 2011 Matthew Barnes - 3.2.2-2 +- Add patch for RH bug #757164 (CVE-2011-3201). + * Mon Nov 14 2011 Milan Crha - 3.2.2-1 - Update to 3.2.2 From b8aca75c97573fae790705b53cc49d388007b7d7 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 9 Jan 2012 16:46:57 +0100 Subject: [PATCH 13/16] Update to 3.2.3 --- .gitignore | 1 + evolution-3.2.2-CVE-2011-3201.patch | 56 ----------------------------- evolution.spec | 12 +++---- sources | 2 +- 4 files changed, 8 insertions(+), 63 deletions(-) delete mode 100644 evolution-3.2.2-CVE-2011-3201.patch diff --git a/.gitignore b/.gitignore index 5a0cc4c..d1801b9 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ evolution-2.31.5.tar.bz2 /evolution-3.2.0.tar.xz /evolution-3.2.1.tar.xz /evolution-3.2.2.tar.xz +/evolution-3.2.3.tar.xz diff --git a/evolution-3.2.2-CVE-2011-3201.patch b/evolution-3.2.2-CVE-2011-3201.patch deleted file mode 100644 index 7b6ce55..0000000 --- a/evolution-3.2.2-CVE-2011-3201.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff -up evolution-3.2.2/composer/e-msg-composer.c.CVE-2011-3201 evolution-3.2.2/composer/e-msg-composer.c ---- evolution-3.2.2/composer/e-msg-composer.c.CVE-2011-3201 2011-10-20 05:38:02.000000000 -0500 -+++ evolution-3.2.2/composer/e-msg-composer.c 2011-11-30 07:30:00.504101491 -0600 -@@ -4003,6 +4003,35 @@ merge_always_cc_and_bcc (EComposerHeader - e_destination_freev (addrv); - } - -+static const gchar *blacklist[] = { ".", "etc", ".." }; -+ -+static gboolean -+file_is_blacklisted (const gchar *filename) -+{ -+ gboolean blacklisted = FALSE; -+ guint ii, jj, n_parts; -+ gchar **parts; -+ -+ parts = g_strsplit (filename, G_DIR_SEPARATOR_S, -1); -+ n_parts = g_strv_length (parts); -+ -+ for (ii = 0; ii < G_N_ELEMENTS (blacklist); ii++) { -+ for (jj = 0; jj < n_parts; jj++) { -+ if (g_str_has_prefix (parts[jj], blacklist[ii])) { -+ blacklisted = TRUE; -+ break; -+ } -+ } -+ } -+ -+ g_strfreev (parts); -+ -+ if (blacklisted) -+ g_message ("Skipping suspicious attachment: %s", filename); -+ -+ return blacklisted; -+} -+ - static void - handle_mailto (EMsgComposer *composer, - const gchar *mailto) -@@ -4096,6 +4125,8 @@ handle_mailto (EMsgComposer *composer, - EAttachment *attachment; - - camel_url_decode (content); -+ if (file_is_blacklisted (content)) -+ goto next; - if (g_ascii_strncasecmp (content, "file:", 5) == 0) - attachment = e_attachment_new_for_uri (content); - else -@@ -4115,6 +4146,7 @@ handle_mailto (EMsgComposer *composer, - e_msg_composer_add_header (composer, header, content); - } - -+next: - g_free (content); - - p += clen; diff --git a/evolution.spec b/evolution.spec index 3d75169..0f043eb 100644 --- a/evolution.spec +++ b/evolution.spec @@ -27,8 +27,8 @@ ### Abstract ### Name: evolution -Version: 3.2.2 -Release: 2%{?dist} +Version: 3.2.3 +Release: 1%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -47,9 +47,6 @@ Patch10: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch11: evolution-2.30.1-help-contents.patch -# CVE-2011-3201 -Patch12: evolution-3.2.2-CVE-2011-3201.patch - ## Dependencies ### Requires(pre): GConf2 @@ -206,7 +203,6 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch10 -p1 -b .ldaphack %patch11 -p1 -b .help-contents -%patch12 -p1 -b .CVE-2011-3201 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -652,6 +648,10 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Jan 09 2012 Milan Crha - 3.2.3-1 +- Update to 3.2.3 +- Remove patch for RH bug #757164 (fixed upstream). + * Wed Nov 30 2011 Matthew Barnes - 3.2.2-2 - Add patch for RH bug #757164 (CVE-2011-3201). diff --git a/sources b/sources index 138c1d0..d1e4370 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -1c661fb7a982ba6b3624becaa3079eb8 evolution-3.2.2.tar.xz +27b2e4ec00c7b9af03f9f034a3ad5dcd evolution-3.2.3.tar.xz From 4c4001e2738ea3a159522994861abb23b4fcba49 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 9 Jan 2012 18:05:05 +0100 Subject: [PATCH 14/16] Add patch for Gnome bug #667346 (build with libpst-0.6.54) --- evolution-3.2.3-libpst-0.6.54.patch | 51 +++++++++++++++++++++++++++++ evolution.spec | 7 +++- 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 evolution-3.2.3-libpst-0.6.54.patch diff --git a/evolution-3.2.3-libpst-0.6.54.patch b/evolution-3.2.3-libpst-0.6.54.patch new file mode 100644 index 0000000..4f61b9d --- /dev/null +++ b/evolution-3.2.3-libpst-0.6.54.patch @@ -0,0 +1,51 @@ +From 270b7b481529b23fced67a0624243da1c75c4c00 Mon Sep 17 00:00:00 2001 +From: Vincent Untz +Date: Thu, 5 Jan 2012 12:00:07 +0100 +Subject: [PATCH] pst-import: Fix build with libpst 0.6.54 and require this + version + +pst_open() requires an additional argument now. + +https://bugzilla.gnome.org/show_bug.cgi?id=667346 +--- + configure.ac | 4 ++-- + plugins/pst-import/pst-importer.c | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/configure.ac b/configure.ac +index ce88950..b34ec77 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -47,7 +47,7 @@ m4_define([libgdata_minimum_version], [0.10]) + m4_define([libsoup_minimum_version], [2.31.2]) + m4_define([libxml_minimum_version], [2.7.3]) + m4_define([shared_mime_info_minimum_version], [0.22]) +-m4_define([libpst_minimum_version], [0.6.41]) ++m4_define([libpst_minimum_version], [0.6.54]) + m4_define([libnotify_minimum_version], [0.5.1]) + + dnl Optional Packages +@@ -1479,7 +1479,7 @@ AC_ARG_ENABLE([pst-import], + [enable_pst="$enableval"], [enable_pst=yes]) + + if test "x$enable_pst" = "xyes"; then +- PKG_CHECK_MODULES(LIBPST, libpst, have_pst=yes, have_pst=no) ++ PKG_CHECK_MODULES(LIBPST, libpst >= libpst_minimum_version, have_pst=yes, have_pst=no) + AC_SUBST(LIBPST_CFLAGS) + AC_SUBST(LIBPST_LIBS) + +diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c +index 5b99053..4305827 100644 +--- a/plugins/pst-import/pst-importer.c ++++ b/plugins/pst-import/pst-importer.c +@@ -2219,7 +2219,7 @@ pst_init (pst_file *pst, + DEBUG_REGISTER_CLOSE (); + #endif + +- if (pst_open (pst, filename) < 0) { ++ if (pst_open (pst, filename, NULL) < 0) { + pst_error_msg ("Error opening PST file %s", filename); + return -1; + } +-- +1.7.7.3 \ No newline at end of file diff --git a/evolution.spec b/evolution.spec index 0f043eb..b89fb9c 100644 --- a/evolution.spec +++ b/evolution.spec @@ -47,6 +47,9 @@ Patch10: evolution-1.4.4-ldap-x86_64-hack.patch # RH bug #589555 Patch11: evolution-2.30.1-help-contents.patch +# Gnome bug #667346 - build with libpst-0.6.54 +Patch12: evolution-3.2.3-libpst-0.6.54.patch + ## Dependencies ### Requires(pre): GConf2 @@ -115,7 +118,7 @@ BuildRequires: libnotify-devel %endif %if %{libpst_support} -BuildRequires: libpst-devel +BuildRequires: libpst-devel >= 0.6.54 BuildRequires: libytnef-devel %endif @@ -203,6 +206,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %setup -q -n evolution-%{version} %patch10 -p1 -b .ldaphack %patch11 -p1 -b .help-contents +%patch12 -p1 -b .libpst-0.6.54 mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -651,6 +655,7 @@ rm -rf $RPM_BUILD_ROOT * Mon Jan 09 2012 Milan Crha - 3.2.3-1 - Update to 3.2.3 - Remove patch for RH bug #757164 (fixed upstream). +- Add patch for Gnome bug #667346 (build with libpst-0.6.54) * Wed Nov 30 2011 Matthew Barnes - 3.2.2-2 - Add patch for RH bug #757164 (CVE-2011-3201). From 28c507358dd150bd5346e02843a33e8a15229cb1 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Wed, 7 Mar 2012 08:41:05 +0100 Subject: [PATCH 15/16] Add patch for RH bug #799489 (set composer dirty on failed send) --- evolution-3.2.3-composer-dirty.patch | 128 +++++++++++++++++++++++++++ evolution.spec | 9 +- 2 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 evolution-3.2.3-composer-dirty.patch diff --git a/evolution-3.2.3-composer-dirty.patch b/evolution-3.2.3-composer-dirty.patch new file mode 100644 index 0000000..4887c41 --- /dev/null +++ b/evolution-3.2.3-composer-dirty.patch @@ -0,0 +1,128 @@ +diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c +index 9f32d8c..c9f41d5 100644 +--- a/composer/e-msg-composer.c ++++ b/composer/e-msg-composer.c +@@ -3518,6 +3518,10 @@ msg_composer_send_cb (EMsgComposer *composer, + + g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message)); + ++ /* The callback can set editor 'changed' if anything failed. */ ++ editor = GTKHTML_EDITOR (composer); ++ gtkhtml_editor_set_changed (editor, FALSE); ++ + g_signal_emit ( + composer, signals[SEND], 0, + message, context->activity); +@@ -3525,10 +3529,6 @@ msg_composer_send_cb (EMsgComposer *composer, + g_object_unref (message); + + async_context_free (context); +- +- /* XXX This should be elsewhere. */ +- editor = GTKHTML_EDITOR (composer); +- gtkhtml_editor_set_changed (editor, FALSE); + } + + /** +@@ -3610,6 +3610,10 @@ msg_composer_save_to_drafts_cb (EMsgComposer *composer, + + g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message)); + ++ /* The callback can set editor 'changed' if anything failed. */ ++ editor = GTKHTML_EDITOR (composer); ++ gtkhtml_editor_set_changed (editor, FALSE); ++ + g_signal_emit ( + composer, signals[SAVE_TO_DRAFTS], + 0, message, context->activity); +@@ -3617,10 +3621,6 @@ msg_composer_save_to_drafts_cb (EMsgComposer *composer, + g_object_unref (message); + + async_context_free (context); +- +- /* XXX This should be elsewhere. */ +- editor = GTKHTML_EDITOR (composer); +- gtkhtml_editor_set_changed (editor, FALSE); + } + + /** +diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c +index 23c1755..ef5476f 100644 +--- a/mail/em-composer-utils.c ++++ b/mail/em-composer-utils.c +@@ -510,11 +510,13 @@ composer_send_completed (EMailSession *session, + AsyncContext *context) + { + GError *error = NULL; ++ gboolean set_changed = FALSE; + + e_mail_session_send_to_finish (session, result, &error); + + if (e_activity_handle_cancellation (context->activity, error)) { + g_error_free (error); ++ set_changed = TRUE; + goto exit; + } + +@@ -549,6 +551,7 @@ composer_send_completed (EMailSession *session, + if (response == GTK_RESPONSE_ACCEPT) /* Save to Outbox */ + e_msg_composer_save_to_outbox (context->composer); + g_error_free (error); ++ set_changed = TRUE; + goto exit; + } + +@@ -561,6 +564,9 @@ composer_send_completed (EMailSession *session, + gtk_widget_destroy, context->composer); + + exit: ++ if (set_changed) ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); ++ + async_context_free (context); + } + +@@ -649,9 +655,11 @@ composer_save_to_drafts_complete (EMailSession *session, + e_mail_session_handle_draft_headers_finish (session, result, &error); + + if (e_activity_handle_cancellation (context->activity, error)) { ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + g_error_free (error); + + } else if (error != NULL) { ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + g_warning ("%s", error->message); + g_error_free (error); + +@@ -688,6 +696,7 @@ composer_save_to_drafts_cleanup (CamelFolder *drafts_folder, + + if (e_activity_handle_cancellation (context->activity, error)) { + g_warn_if_fail (context->message_uid == NULL); ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + async_context_free (context); + g_error_free (error); + return; +@@ -698,6 +707,7 @@ composer_save_to_drafts_cleanup (CamelFolder *drafts_folder, + alert_sink, + "mail-composer:save-to-drafts-error", + error->message, NULL); ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + async_context_free (context); + g_error_free (error); + return; +@@ -761,6 +771,7 @@ composer_save_to_drafts_got_folder (EMailSession *session, + + if (e_activity_handle_cancellation (context->activity, error)) { + g_warn_if_fail (drafts_folder == NULL); ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + async_context_free (context); + g_error_free (error); + return; +@@ -780,6 +791,7 @@ composer_save_to_drafts_got_folder (EMailSession *session, + GTK_WINDOW (context->composer), + "mail:ask-default-drafts", NULL); + if (response != GTK_RESPONSE_YES) { ++ gtkhtml_editor_set_changed (GTKHTML_EDITOR (context->composer), TRUE); + async_context_free (context); + return; + } diff --git a/evolution.spec b/evolution.spec index b89fb9c..c105343 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.2.3 -Release: 1%{?dist} +Release: 2%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -50,6 +50,9 @@ Patch11: evolution-2.30.1-help-contents.patch # Gnome bug #667346 - build with libpst-0.6.54 Patch12: evolution-3.2.3-libpst-0.6.54.patch +# Gnome bug #617557/RH bug #799489 +Patch13: evolution-3.2.3-composer-dirty.patch + ## Dependencies ### Requires(pre): GConf2 @@ -207,6 +210,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %patch10 -p1 -b .ldaphack %patch11 -p1 -b .help-contents %patch12 -p1 -b .libpst-0.6.54 +%patch13 -p1 -b .composer-dirty mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -652,6 +656,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Wed Mar 07 2012 Milan Crha - 3.2.3-2 +- Add patch for RH bug #799489 (set composer dirty on failed send) + * Mon Jan 09 2012 Milan Crha - 3.2.3-1 - Update to 3.2.3 - Remove patch for RH bug #757164 (fixed upstream). From 2475cc60ebfe5eaf36e5aa7adb137a4cb5cb6001 Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 23 Apr 2012 09:22:09 +0200 Subject: [PATCH 16/16] Add patch for RH bug #814663 (broken result of Save as mbox) --- evolution-3.2.3-save-as-mbox.patch | 67 ++++++++++++++++++++++++++++++ evolution.spec | 9 +++- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 evolution-3.2.3-save-as-mbox.patch diff --git a/evolution-3.2.3-save-as-mbox.patch b/evolution-3.2.3-save-as-mbox.patch new file mode 100644 index 0000000..77706a3 --- /dev/null +++ b/evolution-3.2.3-save-as-mbox.patch @@ -0,0 +1,67 @@ +diff -up evolution-3.2.3/mail/e-mail-folder-utils.c.save-as-mbox evolution-3.2.3/mail/e-mail-folder-utils.c +--- evolution-3.2.3/mail/e-mail-folder-utils.c.save-as-mbox 2011-09-28 02:22:16.000000000 +0200 ++++ evolution-3.2.3/mail/e-mail-folder-utils.c 2012-04-23 09:20:46.594366070 +0200 +@@ -1178,8 +1178,8 @@ e_mail_folder_save_messages_sync (CamelF + GError **error) + { + GFileOutputStream *file_output_stream; ++ CamelStream *base_stream = NULL; + GByteArray *byte_array; +- CamelStream *base_stream; + gboolean success = TRUE; + guint ii; + +@@ -1208,9 +1208,7 @@ e_mail_folder_save_messages_sync (CamelF + return FALSE; + } + +- /* CamelStreamMem takes ownership of the GByteArray. */ + byte_array = g_byte_array_new (); +- base_stream = camel_stream_mem_new_with_byte_array (byte_array); + + for (ii = 0; ii < message_uids->len; ii++) { + CamelMimeMessage *message; +@@ -1221,6 +1219,17 @@ e_mail_folder_save_messages_sync (CamelF + gint percent; + gint retval; + ++ if (base_stream != NULL) ++ g_object_unref (base_stream); ++ ++ /* CamelStreamMem does NOT take ownership of the byte ++ * array when set with camel_stream_mem_set_byte_array(). ++ * This allows us to reuse the same memory slab for each ++ * message, which is slightly more efficient. */ ++ base_stream = camel_stream_mem_new (); ++ camel_stream_mem_set_byte_array ( ++ CAMEL_STREAM_MEM (base_stream), byte_array); ++ + uid = g_ptr_array_index (message_uids, ii); + + message = camel_folder_get_message_sync ( +@@ -1278,18 +1287,19 @@ e_mail_folder_save_messages_sync (CamelF + percent = ((ii + 1) * 100) / message_uids->len; + camel_operation_progress (cancellable, percent); + +- /* Flush the buffer for the next message. +- * For memory streams this never fails. */ +- g_seekable_seek ( +- G_SEEKABLE (base_stream), +- 0, G_SEEK_SET, NULL, NULL); ++ /* Reset the byte array for the next message. */ ++ g_byte_array_set_size (byte_array, 0); + + g_object_unref (message); + } + + exit: ++ if (base_stream != NULL) ++ g_object_unref (base_stream); ++ ++ g_byte_array_free (byte_array, TRUE); ++ + g_object_unref (file_output_stream); +- g_object_unref (base_stream); + + camel_operation_pop_message (cancellable); + diff --git a/evolution.spec b/evolution.spec index c105343..9dac51c 100644 --- a/evolution.spec +++ b/evolution.spec @@ -28,7 +28,7 @@ Name: evolution Version: 3.2.3 -Release: 2%{?dist} +Release: 3%{?dist} Group: Applications/Productivity Summary: Mail and calendar client for GNOME License: GPLv2+ and GFDL @@ -53,6 +53,9 @@ Patch12: evolution-3.2.3-libpst-0.6.54.patch # Gnome bug #617557/RH bug #799489 Patch13: evolution-3.2.3-composer-dirty.patch +# RH bug #814663 +Patch14: evolution-3.2.3-save-as-mbox.patch + ## Dependencies ### Requires(pre): GConf2 @@ -211,6 +214,7 @@ This package contains the plugin to import Microsoft Personal Storage Table %patch11 -p1 -b .help-contents %patch12 -p1 -b .libpst-0.6.54 %patch13 -p1 -b .composer-dirty +%patch14 -p1 -b .save-as-mbox mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -656,6 +660,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Mon Apr 23 2012 Milan Crha - 3.2.3-3 +- Add patch for RH bug #814663 (broken result of Save as mbox) + * Wed Mar 07 2012 Milan Crha - 3.2.3-2 - Add patch for RH bug #799489 (set composer dirty on failed send)