openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2009
- 1 participants
- 1177 discussions
Hello community,
here is the log from the commit of package gcc43 for openSUSE:Factory
checked in at Thu Jan 8 18:06:32 CET 2009.
--------
--- gcc43/cross-avr-gcc43.changes 2008-11-27 17:59:59.000000000 +0100
+++ /mounts/work_src_done/STABLE/gcc43/cross-avr-gcc43.changes 2009-01-08 14:39:08.000000000 +0100
@@ -1,0 +2,8 @@
+Wed Jan 7 10:06:40 CET 2009 - rguenther(a)suse.de
+
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
+
+-------------------------------------------------------------------
cross-hppa-gcc-icecream-backend.changes: same change
cross-i386-gcc-icecream-backend.changes: same change
cross-ia64-gcc-icecream-backend.changes: same change
cross-ppc64-gcc-icecream-backend.changes: same change
cross-ppc-gcc-icecream-backend.changes: same change
cross-s390-gcc-icecream-backend.changes: same change
cross-s390x-gcc-icecream-backend.changes: same change
cross-spu-gcc.changes: same change
cross-spu-gcc-static.changes: same change
cross-x86_64-gcc-icecream-backend.changes: same change
gcc43.changes: same change
libgcj43.changes: same change
calling whatdependson for head-i586
New:
----
gcc43-ecj-link.patch
nvl428413.patch
pr38171.diff
pr38752.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cross-avr-gcc43.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:01.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:01.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cross-avr-gcc43 (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -66,7 +66,7 @@
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -90,6 +90,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -100,15 +101,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -233,6 +237,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -245,17 +250,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -530,6 +538,11 @@
%defattr(-,root,root)
%{_prefix}
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
++++++ cross-hppa-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:01.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:01.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cross-hppa-gcc-icecream-backend (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -43,7 +43,7 @@
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -67,6 +67,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -77,15 +78,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -213,6 +217,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -225,17 +230,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -547,6 +555,11 @@
/usr/share/icecream-envs
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
cross-i386-gcc-icecream-backend.spec: same change
cross-ia64-gcc-icecream-backend.spec: same change
cross-ppc64-gcc-icecream-backend.spec: same change
cross-ppc-gcc-icecream-backend.spec: same change
cross-s390-gcc-icecream-backend.spec: same change
cross-s390x-gcc-icecream-backend.spec: same change
++++++ cross-spu-gcc.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:02.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cross-spu-gcc (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -57,7 +57,7 @@
Url: http://gcc.gnu.org/
License: GPL v2 or later
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -81,6 +81,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -91,15 +92,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -219,6 +223,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -231,17 +236,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -516,6 +524,11 @@
%defattr(-,root,root)
%{_prefix}
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
cross-spu-gcc-static.spec: same change
++++++ cross-x86_64-gcc-icecream-backend.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:02.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package cross-x86_64-gcc-icecream-backend (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -43,7 +43,7 @@
Url: http://gcc.gnu.org/
License: BSD 3-Clause; GPL v2 or later; LGPL v2.1 or later; X11/MIT
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -67,6 +67,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -77,15 +78,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -213,6 +217,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -225,17 +230,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -547,6 +555,11 @@
/usr/share/icecream-envs
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
++++++ gcc43.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:02.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gcc43 (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -116,7 +116,7 @@
Url: http://gcc.gnu.org/
License: GPL v3 or later
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -153,6 +153,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -163,15 +164,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -1396,6 +1400,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -1408,17 +1413,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -2532,6 +2540,11 @@
%endif
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
++++++ libgcj43.spec ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:02.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:02.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package libgcj43 (Version 4.3.3_20081022)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -127,7 +127,7 @@
Url: http://gcc.gnu.org/
License: GPL v2 or later; LGPL v2.1 or later
Version: 4.3.3_20081022
-Release: 9
+Release: 10
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
%define snapshot_date %(echo %version | sed 's/[34]\.[0-4]\.[0-6]//' | sed 's/_/-/')
@@ -164,6 +164,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -174,15 +175,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -630,6 +634,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -642,17 +647,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
@@ -1331,6 +1339,11 @@
%endif
%changelog
+* Wed Jan 07 2009 rguenther(a)suse.de
+- Do not link ecj1 against libgcj.
+- Fix TOC clobbering on ppc. [bnc#428413]
+- Add patch for PR38171. [bnc#457593]
+- Add patch for PR38752. [bnc#459344]
* Thu Nov 27 2008 rguenther(a)suse.de
- Add capability to process default_spec from a defaults.spec specs
file if that exists.
++++++ gcc43-ecj-link.patch ++++++
Index: libjava/Makefile.in
===================================================================
*** libjava/Makefile.in.orig 2009-01-07 10:19:47.000000000 +0100
--- libjava/Makefile.in 2009-01-07 10:21:49.000000000 +0100
*************** DIST_COMMON = README $(am__configure_dep
*** 76,82 ****
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT)
@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_16 = libgcj_bc.la
! @XLIB_AWT_TRUE@am__append_17 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
--- 76,83 ----
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT)
@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_16 = libgcj_bc.la
! @NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__append_17 = libgcj.la
! @XLIB_AWT_TRUE@am__append_18 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
*************** libjvm_la_OBJECTS = $(am_libjvm_la_OBJEC
*** 447,454 ****
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS)
! am_ecjx_OBJECTS =
ecjx_OBJECTS = $(am_ecjx_OBJECTS)
am_gappletviewer_OBJECTS =
gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS)
am_gc_analyze_OBJECTS =
--- 448,456 ----
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS)
! am_ecjx_OBJECTS = ecjx.$(OBJEXT)
ecjx_OBJECTS = $(am_ecjx_OBJECTS)
+ @NATIVE_TRUE@@USE_LIBGCJ_BC_FALSE@am__DEPENDENCIES_6 = libgcj.la
am_gappletviewer_OBJECTS =
gappletviewer_OBJECTS = $(am_gappletviewer_OBJECTS)
am_gc_analyze_OBJECTS =
*************** USING_WIN32_THREADS_TRUE = @USING_WIN32_
*** 728,733 ****
--- 730,736 ----
VERSION = @VERSION@
XLIB_AWT_FALSE = @XLIB_AWT_FALSE@
XLIB_AWT_TRUE = @XLIB_AWT_TRUE@
+ XMKMF = @XMKMF@
X_AWT_FALSE = @X_AWT_FALSE@
X_AWT_TRUE = @X_AWT_TRUE@
X_CFLAGS = @X_CFLAGS@
*************** ZIP = @ZIP@
*** 739,752 ****
ZLIBS = @ZLIBS@
ZLIBSPEC = @ZLIBSPEC@
ZLIBTESTSPEC = @ZLIBTESTSPEC@
- ac_ct_AR = @ac_ct_AR@
- ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
- ac_ct_LD = @ac_ct_LD@
- ac_ct_RANLIB = @ac_ct_RANLIB@
- ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
--- 742,750 ----
*************** build_os = @build_os@
*** 767,773 ****
--- 765,774 ----
build_subdir = @build_subdir@
build_vendor = @build_vendor@
datadir = @datadir@
+ datarootdir = @datarootdir@
dbexecdir = @dbexecdir@
+ docdir = @docdir@
+ dvidir = @dvidir@
exec_prefix = @exec_prefix@
extra_gij_ldflags = @extra_gij_ldflags@
extra_ldflags = @extra_ldflags@
*************** host_exeext = @host_exeext@
*** 782,793 ****
--- 783,796 ----
host_os = @host_os@
host_subdir = @host_subdir@
host_vendor = @host_vendor@
+ htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
libstdcxx_incdir = @libstdcxx_incdir@
+ localedir = @localedir@
localstatedir = @localstatedir@
lt_ECHO = @lt_ECHO@
mandir = @mandir@
*************** mkdir_p = @mkdir_p@
*** 795,802 ****
--- 798,807 ----
mkinstalldirs = @mkinstalldirs@
multi_basedir = @multi_basedir@
oldincludedir = @oldincludedir@
+ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
+ psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
subdirs = @subdirs@
*************** gij_LDFLAGS = -rpath $(dbexecdir) -rpath
*** 7983,7989 ****
gij_LINK = $(GCJLINK)
gij_LDADD = -L$(here)/.libs libgij.la
gij_DEPENDENCIES = libgij.la
! ecjx_SOURCES =
ECJX_BASE_FLAGS = -findirect-dispatch \
--main=org.eclipse.jdt.internal.compiler.batch.GCCMain
--- 7988,7994 ----
gij_LINK = $(GCJLINK)
gij_LDADD = -L$(here)/.libs libgij.la
gij_DEPENDENCIES = libgij.la
! ecjx_SOURCES = ecjx.cc
ECJX_BASE_FLAGS = -findirect-dispatch \
--main=org.eclipse.jdt.internal.compiler.batch.GCCMain
*************** ECJX_BASE_FLAGS = -findirect-dispatch \
*** 7993,7999 ****
@ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
@NATIVE_FALSE@ecjx_LDADD =
! @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la
@NATIVE_FALSE@ecjx_DEPENDENCIES =
@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
@NATIVE_TRUE@ $(am__append_16)
--- 7998,8004 ----
@ENABLE_SHARED_TRUE@@NATIVE_TRUE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) -Djava.class.path=$(ECJ_JAR)
@NATIVE_FALSE@ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR)
@NATIVE_FALSE@ecjx_LDADD =
! @NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs $(am__append_17)
@NATIVE_FALSE@ecjx_DEPENDENCIES =
@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
@NATIVE_TRUE@ $(am__append_16)
*************** gnu/gcj/xlib/natXImage.cc \
*** 8205,8211 ****
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
! headers_to_make = $(nat_headers) $(am__append_17)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
--- 8210,8216 ----
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
! headers_to_make = $(nat_headers) $(am__append_18)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
*************** distclean-compile:
*** 9180,9185 ****
--- 9185,9191 ----
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boehm.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/darwin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/defineclass.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecjx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
Index: libjava/configure.ac
===================================================================
*** libjava/configure.ac.orig 2008-08-11 16:06:35.000000000 +0200
--- libjava/configure.ac 2009-01-07 10:19:58.000000000 +0100
*************** AC_SUBST(THREADCXXFLAGS)
*** 976,981 ****
--- 976,984 ----
AM_CONDITIONAL(USING_POSIX_THREADS, test "$THREADS" = posix)
AM_CONDITIONAL(USING_WIN32_THREADS, test "$THREADS" = win32)
AM_CONDITIONAL(USING_NO_THREADS, test "$THREADS" = none)
+ if test "$enable_shared" != yes; then
+ use_libgcj_bc=no
+ fi
AM_CONDITIONAL(USE_LIBGCJ_BC, test "$use_libgcj_bc" = yes)
if test -d sysdep; then true; else mkdir sysdep; fi
*************** AC_CONFIG_LINKS(sysdep/descriptor.h:$des
*** 985,991 ****
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
! LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
fi
AC_SUBST(LIBGCJ_SPEC)
--- 988,994 ----
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
! LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
fi
AC_SUBST(LIBGCJ_SPEC)
Index: libjava/ecjx.cc
===================================================================
*** /dev/null 1970-01-01 00:00:00.000000000 +0000
--- libjava/ecjx.cc 2009-01-07 10:19:58.000000000 +0100
***************
*** 0 ****
--- 1 ----
+ // Dummy
Index: libjava/configure
===================================================================
*** libjava/configure.orig 2008-10-22 15:13:44.000000000 +0200
--- libjava/configure 2009-01-07 10:19:58.000000000 +0100
*************** else
*** 20660,20665 ****
--- 20660,20668 ----
USING_NO_THREADS_FALSE=
fi
+ if test "$enable_shared" != yes; then
+ use_libgcj_bc=no
+ fi
if test "$use_libgcj_bc" = yes; then
*************** if test -d sysdep; then true; else mkdir
*** 20681,20687 ****
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
! LIBGCJ_SPEC="%{s-bc-abi:-lgcj_bc;:-lgcj}"
fi
--- 20684,20690 ----
LIBGCJ_SPEC="%{s-bc-abi:} -lgcj"
if test "$use_libgcj_bc" = yes; then
! LIBGCJ_SPEC="%{static|static-libgcj|!s-bc-abi:-lgcj;:-lgcj_bc}"
fi
Index: libjava/Makefile.am
===================================================================
*** libjava/Makefile.am.orig 2009-01-07 10:19:47.000000000 +0100
--- libjava/Makefile.am 2009-01-07 10:19:58.000000000 +0100
*************** gij_LDADD = -L$(here)/.libs libgij.la
*** 693,699 ****
gij_DEPENDENCIES = libgij.la
## Build an ecjx from a .jar.
! ecjx_SOURCES =
## We use the BC ABI here so that we don't need to compile ecj.jar.
## Hopefully the user has compiled it into his system .db.
## However, even if not it will run reasonably quickly.
--- 693,699 ----
gij_DEPENDENCIES = libgij.la
## Build an ecjx from a .jar.
! ecjx_SOURCES = ecjx.cc
## We use the BC ABI here so that we don't need to compile ecj.jar.
## Hopefully the user has compiled it into his system .db.
## However, even if not it will run reasonably quickly.
*************** else !ENABLE_SHARED
*** 713,722 ****
ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
endif !ENABLE_SHARED
! ecjx_LDADD = -L$(here)/.libs libgcj.la
ecjx_DEPENDENCIES = libgcj.la libgcj.spec
if USE_LIBGCJ_BC
ecjx_DEPENDENCIES += libgcj_bc.la
endif
else !NATIVE
--- 713,724 ----
ecjx_LDFLAGS = $(ECJX_BASE_FLAGS) $(ECJ_BUILD_JAR) -fbootclasspath=$(BOOTCLASSPATH)
endif !ENABLE_SHARED
! ecjx_LDADD = -L$(here)/.libs
ecjx_DEPENDENCIES = libgcj.la libgcj.spec
if USE_LIBGCJ_BC
ecjx_DEPENDENCIES += libgcj_bc.la
+ else
+ ecjx_LDADD += libgcj.la
endif
else !NATIVE
++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.h30722/_old 2009-01-08 18:05:06.000000000 +0100
+++ /var/tmp/diff_new_pack.h30722/_new 2009-01-08 18:05:06.000000000 +0100
@@ -163,6 +163,7 @@
Patch5: boehm-gc-strict-aliasing.patch
Patch6: suse-record-gcc-opts.diff
Patch7: acats-timeout.patch
+Patch8: gcc43-ecj-link.patch
Patch10: program-transform-name.diff
Patch11: program-transform-name-tools.diff
Patch12: gcc4-ppc64-m32-m64-multilib-only.patch
@@ -173,15 +174,18 @@
Patch28: pr33763.diff
Patch30: Wunprototyped-calls.diff
Patch31: pr27799.diff
+Patch32: pr38171.diff
Patch40: pr36765.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
+Patch44: nvl428413.patch
Patch45: nvl423594.patch
Patch46: pr32277.diff
Patch47: pr36438.diff
Patch48: pr37868.diff
Patch49: pr38051.diff
+Patch201: pr38752.diff
# A set of patches from the RH srpm
Patch50: gcc43-c++-builtin-redecl.patch
Patch51: gcc41-ia64-stack-protector.patch
@@ -891,6 +895,7 @@
%patch6
%endif
%patch7
+%patch8
%patch10
%patch11
%if !%{build_nof}
@@ -903,17 +908,20 @@
%patch28
%patch30
%patch31
+%patch32
%patch40
%patch41
%patch42
%if 0%{suse_version} > 1100
%patch43
%endif
+%patch44
%patch45
%patch46
%patch47
%patch48 -p1
%patch49
+%patch201
%patch50
%patch51
%patch52
++++++ nvl428413.patch ++++++
Here is a backported patch (just removes fuzz) of Andrew's mainline patch which
is posted here:
http://gcc.gnu.org/ml/gcc-patches/2008-12/msg00690.html
PR target/24779
* config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
TOC into the call pattern.
(call_indirect_aix64): Likewise.
(call_value_indirect_aix32): Likewise.
(call_value_indirect_aix64): Likewise.
(call_indirect_nonlocal_aix32_internal): New insn and split patterns
to split off the load of the TOC.
(call_indirect_nonlocal_aix32): Enable only after reload.
(call_indirect_nonlocal_aix64_internal): New insn and split patterns
to split off the load of the TOC.
(call_indirect_nonlocal_aix64): Enable only after reload.
(call_value_indirect_nonlocal_aix32_internal): New insn and split
patterns to split off the load of the TOC.
(call_value_indirect_nonlocal_aix32): Enable only after reload.
(call_value_indirect_nonlocal_aix64_internal): New insn and split
patterns to split off the load of the TOC.
(call_value_indirect_nonlocal_aix64): Enable only after reload.
--- gcc/config/rs6000/rs6000.md.orig 2008-10-23 11:08:58.000000000 -0500
+++ gcc/config/rs6000/rs6000.md 2008-12-07 21:52:23.000000000 -0600
@@ -10667,18 +10667,14 @@
(mem:SI (match_operand:SI 0 "gpc_reg_operand" "")))
(set (mem:SI (plus:SI (reg:SI 1) (const_int 20)))
(reg:SI 2))
- (set (reg:SI 2)
- (mem:SI (plus:SI (match_dup 0)
- (const_int 4))))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 0)
(const_int 8))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
- (use (reg:SI 2))
+ (use (mem:SI (plus:SI (match_dup 0) (const_int 4))))
(use (reg:SI 11))
- (set (reg:SI 2)
- (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
@@ -10689,18 +10685,14 @@
(mem:DI (match_operand:DI 0 "gpc_reg_operand" "")))
(set (mem:DI (plus:DI (reg:DI 1) (const_int 40)))
(reg:DI 2))
- (set (reg:DI 2)
- (mem:DI (plus:DI (match_dup 0)
- (const_int 8))))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 0)
(const_int 16))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
- (use (reg:DI 2))
+ (use (mem:DI (plus:DI (match_dup 0) (const_int 8))))
(use (reg:DI 11))
- (set (reg:DI 2)
- (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_64BIT"
"
@@ -10711,19 +10703,15 @@
(mem:SI (match_operand:SI 1 "gpc_reg_operand" "")))
(set (mem:SI (plus:SI (reg:SI 1) (const_int 20)))
(reg:SI 2))
- (set (reg:SI 2)
- (mem:SI (plus:SI (match_dup 1)
- (const_int 4))))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 1)
(const_int 8))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
- (use (reg:SI 2))
+ (use (mem:SI (plus:SI (match_dup 1) (const_int 4))))
(use (reg:SI 11))
- (set (reg:SI 2)
- (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
@@ -10734,19 +10722,15 @@
(mem:DI (match_operand:DI 1 "gpc_reg_operand" "")))
(set (mem:DI (plus:DI (reg:DI 1) (const_int 40)))
(reg:DI 2))
- (set (reg:DI 2)
- (mem:DI (plus:DI (match_dup 1)
- (const_int 8))))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 1)
(const_int 16))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
- (use (reg:DI 2))
+ (use (mem:DI (plus:DI (match_dup 1) (const_int 8))))
(use (reg:DI 11))
- (set (reg:DI 2)
- (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))])]
"TARGET_64BIT"
"
@@ -10948,6 +10932,29 @@
;; variable argument function. It is > 0 if FP registers were passed
;; and < 0 if they were not.
+(define_insn_and_split "*call_indirect_nonlocal_aix32_internal"
+ [(call (mem:SI (match_operand:SI 0 "register_operand" "c,*l"))
+ (match_operand 1 "" "g,g"))
+ (use (mem:SI (plus:SI (match_operand:SI 2 "register_operand" "b,b") (const_int 4))))
+ (use (reg:SI 11))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:SI 2)
+ (mem:SI (plus:SI (match_dup 2) (const_int 4))))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (use (reg:SI 2))
+ (use (reg:SI 11))
+ (set (reg:SI 2)
+ (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_indirect_nonlocal_aix32"
[(call (mem:SI (match_operand:SI 0 "register_operand" "c,*l"))
(match_operand 1 "" "g,g"))
@@ -10956,7 +10963,7 @@
(set (reg:SI 2)
(mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T0l\;{l|lwz} 2,20(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -10972,6 +10979,30 @@
"bl %z0\;%."
[(set_attr "type" "branch")
(set_attr "length" "8")])
+
+(define_insn_and_split "*call_indirect_nonlocal_aix64_internal"
+ [(call (mem:SI (match_operand:DI 0 "register_operand" "c,*l"))
+ (match_operand 1 "" "g,g"))
+ (use (mem:DI (plus:DI (match_operand:DI 2 "register_operand" "b,b")
+ (const_int 8))))
+ (use (reg:DI 11))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:DI 2)
+ (mem:DI (plus:DI (match_dup 2) (const_int 8))))
+ (parallel [(call (mem:SI (match_dup 0))
+ (match_dup 1))
+ (use (reg:DI 2))
+ (use (reg:DI 11))
+ (set (reg:DI 2)
+ (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
(define_insn "*call_indirect_nonlocal_aix64"
[(call (mem:SI (match_operand:DI 0 "register_operand" "c,*l"))
@@ -10981,7 +11012,7 @@
(set (reg:DI 2)
(mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T0l\;ld 2,40(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -10998,6 +11029,31 @@
[(set_attr "type" "branch")
(set_attr "length" "8")])
+(define_insn_and_split "*call_value_indirect_nonlocal_aix32_internal"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:SI 1 "register_operand" "c,*l"))
+ (match_operand 2 "" "g,g")))
+ (use (mem:SI (plus:SI (match_operand:SI 3 "register_operand" "b,b")
+ (const_int 4))))
+ (use (reg:SI 11))
+ (use (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:SI 2)
+ (mem:SI (plus:SI (match_dup 3) (const_int 4))))
+ (parallel [(set (match_dup 0) (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (use (reg:SI 2))
+ (use (reg:SI 11))
+ (set (reg:SI 2)
+ (mem:SI (plus:SI (reg:SI 1) (const_int 20))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_value_indirect_nonlocal_aix32"
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:SI 1 "register_operand" "c,*l"))
@@ -11007,7 +11063,7 @@
(set (reg:SI 2)
(mem:SI (plus:SI (reg:SI 1) (const_int 20))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_32BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_32BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T1l\;{l|lwz} 2,20(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
@@ -11025,6 +11081,31 @@
[(set_attr "type" "branch")
(set_attr "length" "8")])
+(define_insn_and_split "*call_value_indirect_nonlocal_aix64_internal"
+ [(set (match_operand 0 "" "")
+ (call (mem:SI (match_operand:DI 1 "register_operand" "c,*l"))
+ (match_operand 2 "" "g,g")))
+ (use (mem:DI (plus:DI (match_operand:DI 3 "register_operand" "b,b")
+ (const_int 8))))
+ (use (reg:DI 11))
+ (use (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))]
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "#"
+ "&& reload_completed"
+ [(set (reg:DI 2)
+ (mem:DI (plus:DI (match_dup 3) (const_int 8))))
+ (parallel [(set (match_dup 0) (call (mem:SI (match_dup 1))
+ (match_dup 2)))
+ (use (reg:DI 2))
+ (use (reg:DI 11))
+ (set (reg:DI 2)
+ (mem:DI (plus:DI (reg:DI 1) (const_int 40))))
+ (clobber (reg:SI LR_REGNO))])]
+ ""
+ [(set_attr "type" "jmpreg")
+ (set_attr "length" "12")])
+
(define_insn "*call_value_indirect_nonlocal_aix64"
[(set (match_operand 0 "" "")
(call (mem:SI (match_operand:DI 1 "register_operand" "c,*l"))
@@ -11034,7 +11115,7 @@
(set (reg:DI 2)
(mem:DI (plus:DI (reg:DI 1) (const_int 40))))
(clobber (reg:SI LR_REGNO))]
- "TARGET_64BIT && DEFAULT_ABI == ABI_AIX"
+ "TARGET_64BIT && DEFAULT_ABI == ABI_AIX && reload_completed"
"b%T1l\;ld 2,40(1)"
[(set_attr "type" "jmpreg")
(set_attr "length" "8")])
++++++ pr38171.diff ++++++
2008-11-19 Paul Thomas <pault(a)gcc.gnu.org>
PR fortran/38171
* module.c (load_equiv): Regression fix; check that equivalence
members come from the same module only.
* gfortran.dg/module_equivalence_6.f90: New test.
Index: gcc/testsuite/gfortran.dg/module_equivalence_6.f90
===================================================================
--- gcc/testsuite/gfortran.dg/module_equivalence_6.f90 (revision 0)
+++ gcc/testsuite/gfortran.dg/module_equivalence_6.f90 (revision 141992)
@@ -0,0 +1,22 @@
+! { dg-do compile }
+!
+! Fixes PR38171 a regression caused by the fix for PR37706.
+!
+! Contributed by Scot Breitenfeld <brtnfld(a)hdfgroup.org>
+!
+MODULE H5GLOBAL
+ IMPLICIT NONE
+ INTEGER :: H5P_flags
+ INTEGER :: H5P_DEFAULT_F
+ EQUIVALENCE(H5P_flags, H5P_DEFAULT_F)
+END MODULE H5GLOBAL
+MODULE HDF5
+ USE H5GLOBAL
+END MODULE HDF5
+PROGRAM fortranlibtest
+ USE HDF5
+ IMPLICIT NONE
+ INTEGER :: ii
+ ii = H5P_DEFAULT_F
+END PROGRAM fortranlibtest
+! { dg-final { cleanup-modules "H5GLOBAL HD5" } }
Index: gcc/fortran/module.c
===================================================================
--- gcc/fortran/module.c (revision 141991)
+++ gcc/fortran/module.c (revision 141992)
@@ -3466,12 +3466,14 @@ load_equiv (void)
}
/* Unused equivalence members have a unique name. In addition, it
- must be checked that the symbol is that from the module. */
+ must be checked that the symbols are from the same module. */
unused = true;
for (eq = head; eq; eq = eq->eq)
{
if (eq->expr->symtree->n.sym->module
- && strcmp (module_name, eq->expr->symtree->n.sym->module) == 0
+ && head->expr->symtree->n.sym->module
+ && strcmp (head->expr->symtree->n.sym->module,
+ eq->expr->symtree->n.sym->module) == 0
&& !check_unique_name (eq->expr->symtree->name))
{
unused = false;
++++++ pr38752.diff ++++++
2009-01-07 Richard Guenther <rguenther(a)suse.de>
PR tree-optimization/38752
* tree-ssa-structalias.c (set_uids_in_ptset): Do not assert we
find a subvariable as we might have invalid accesses.
* gcc.c-torture/compile/pr38752.c: New testcase.
Index: gcc/tree-ssa-structalias.c
===================================================================
*** gcc/tree-ssa-structalias.c.orig 2009-01-07 15:28:43.000000000 +0100
--- gcc/tree-ssa-structalias.c 2009-01-07 15:29:04.000000000 +0100
*************** set_uids_in_ptset (tree ptr, bitmap into
*** 4813,4820 ****
if (tsize
&& host_integerp (tsize, 1))
size = TREE_INT_CST_LOW (tsize);
! sft = get_first_overlapping_subvar (sv, vi->offset, size, &j);
! gcc_assert (sft);
for (; VEC_iterate (tree, sv, j, sft); ++j)
{
if (SFT_OFFSET (sft) > vi->offset
--- 4813,4819 ----
if (tsize
&& host_integerp (tsize, 1))
size = TREE_INT_CST_LOW (tsize);
! get_first_overlapping_subvar (sv, vi->offset, size, &j);
for (; VEC_iterate (tree, sv, j, sft); ++j)
{
if (SFT_OFFSET (sft) > vi->offset
Index: gcc/testsuite/gcc.c-torture/compile/pr38752.c
===================================================================
*** /dev/null 1970-01-01 00:00:00.000000000 +0000
--- gcc/testsuite/gcc.c-torture/compile/pr38752.c 2009-01-07 15:28:47.000000000 +0100
***************
*** 0 ****
--- 1,25 ----
+ typedef struct
+ {
+ int baddr;
+ } mstruct_t;
+
+ static struct
+ {
+ unsigned int mapnum;
+ mstruct_t unused;
+ } mtab;
+
+ static mstruct_t *mactab = &mtab.unused;
+
+ int
+ main(void)
+ {
+ int i;
+ int addr;
+
+ for (i=1; i <= mtab.mapnum; i++)
+ if (addr < mactab[i].baddr)
+ break;
+ return 0;
+ }
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package groff for openSUSE:Factory
checked in at Thu Jan 8 18:06:30 CET 2009.
--------
--- groff/groff.changes 2008-11-25 15:16:52.000000000 +0100
+++ /mounts/work_src_done/STABLE/groff/groff.changes 2008-12-22 15:19:17.361048000 +0100
@@ -1,0 +2,5 @@
+Mon Dec 22 15:18:31 CET 2008 - mls(a)suse.de
+
+- keep zzz-groff.csh from aborting if LANG is unset
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ groff.spec ++++++
--- /var/tmp/diff_new_pack.G11397/_old 2009-01-08 18:06:07.000000000 +0100
+++ /var/tmp/diff_new_pack.G11397/_new 2009-01-08 18:06:07.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package groff (Version 1.18.1.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -29,7 +29,7 @@
PreReq: %fillup_prereq %install_info_prereq
AutoReqProv: on
Version: 1.18.1.1
-Release: 167
+Release: 168
Summary: GNU troff Document Formatting System
Url: http://www.gnu.org/software/groff/groff.html
# cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/groff co groff
@@ -191,6 +191,8 @@
/var/adm/fillup-templates/sysconfig.suseconfig-groff
%changelog
+* Mon Dec 22 2008 mls(a)suse.de
+- keep zzz-groff.csh from aborting if LANG is unset
* Tue Nov 25 2008 mfabian(a)suse.de
- bnc#448185: improve workaround for bnc#446710. After the
tmandocdb workaround was removed from "man", the new
++++++ gxdview.spec ++++++
--- /var/tmp/diff_new_pack.G11397/_old 2009-01-08 18:06:07.000000000 +0100
+++ /var/tmp/diff_new_pack.G11397/_new 2009-01-08 18:06:07.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gxdview (Version 1.18.1.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,7 @@
Requires: groff
Conflicts: jgxdview
Version: 1.18.1.1
-Release: 208
+Release: 209
Summary: Ditroff Output Displayer for Groff
Url: http://www.gnu.org/software/groff/groff.html
Source0: ftp://ftp.gnu.org/gnu/groff/groff-1.18.1.1.tar.bz2
++++++ zzz-groff.csh ++++++
--- /var/tmp/diff_new_pack.G11397/_old 2009-01-08 18:06:07.000000000 +0100
+++ /var/tmp/diff_new_pack.G11397/_new 2009-01-08 18:06:07.000000000 +0100
@@ -3,6 +3,7 @@
#
# This script must be executed after setting the LANG variable.
+if ( $?LANG ) then
switch ( $LANG )
case ja*:
@@ -15,3 +16,5 @@
setenv MAN_KEEP_FORMATTING yes
unsetenv GROFF_NO_SGR
endsw
+
+endif
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gnome-panel for openSUSE:Factory
checked in at Thu Jan 8 18:06:21 CET 2009.
--------
--- GNOME/gnome-panel/gnome-panel.changes 2008-12-08 16:35:17.000000000 +0100
+++ /mounts/work_src_done/STABLE/gnome-panel/gnome-panel.changes 2009-01-08 15:59:41.000000000 +0100
@@ -1,0 +2,7 @@
+Thu Jan 8 15:58:53 CET 2009 - vuntz(a)novell.com
+
+- Add gnome-panel-bnc446448-clock-ampm.patch to hide the 12/24
+ format selector when AM/PM is not supported by the locale.
+ Fix bnc#446448.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
gnome-panel-bnc446448-clock-ampm.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-panel.spec ++++++
--- /var/tmp/diff_new_pack.x10850/_old 2009-01-08 18:06:00.000000000 +0100
+++ /var/tmp/diff_new_pack.x10850/_new 2009-01-08 18:06:00.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package gnome-panel (Version 2.24.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -42,7 +42,7 @@
License: LGPL v2.1 or later
Group: System/GUI/GNOME
Version: 2.24.1
-Release: 4
+Release: 5
Summary: The GNOME 2.x Desktop Panel
Source: ftp://ftp.gnome.org/pub/gnome/sources/gnome-panel/2.24/%{name}-%{version}.t…
Source1: %{name}-po.tar.gz
@@ -55,6 +55,8 @@
Requires: timezone
# PATCH-FIX-UPSTREAM gnome-panel-clock-locations-hint.patch bnc439407 vuntz(a)novell.com -- Taken from upstream svn
Patch0: gnome-panel-clock-locations-hint.patch
+# PATCH-FIX-UPSTREAM gnome-panel-bnc446448-clock-ampm.patch bnc446448 vuntz(a)novell.com -- Taken from upstream svn
+Patch1: gnome-panel-bnc446448-clock-ampm.patch
# PATCH-FEATURE-UPSTREAM gnome-panel-disable-movement.patch -- vuntz: we want this upstream in some way, but I (as upstream) disagree with the way it's done so I'm not forwarding it for now.
Patch10: gnome-panel-disable-movement.patch
# PATCH-FIX-UPSTREAM gnome-panel-recent-check-exists.patch -- Show an error when clicking on a recent item that doesn't exist anymore
@@ -261,6 +263,7 @@
%setup -q -a1
gnome-patch-translation-prepare
%patch0 -p0
+%patch1 -p0
%patch10 -p1
%patch25 -p1
%patch34
@@ -416,6 +419,10 @@
%{_datadir}/gtk-doc/html/*
%changelog
+* Thu Jan 08 2009 vuntz(a)novell.com
+- Add gnome-panel-bnc446448-clock-ampm.patch to hide the 12/24
+ format selector when AM/PM is not supported by the locale.
+ Fix bnc#446448.
* Mon Dec 08 2008 vuntz(a)novell.com
- Add gnome-panel-clock-locations-hint.patch to add a hint about
how to add a new location to the clock applet. Fix bnc#439407.
++++++ gnome-panel-bnc446448-clock-ampm.patch ++++++
Index: applets/clock/clock-utils.h
===================================================================
--- applets/clock/clock-utils.h (révision 11435)
+++ applets/clock/clock-utils.h (copie de travail)
@@ -41,6 +41,7 @@ typedef enum {
CLOCK_FORMAT_CUSTOM
} ClockFormat;
+gboolean clock_locale_supports_am_pm (void);
ClockFormat clock_locale_format (void);
void clock_utils_display_help (GtkWidget *widget,
Index: applets/clock/clock.glade
===================================================================
--- applets/clock/clock.glade (révision 11435)
+++ applets/clock/clock.glade (copie de travail)
@@ -99,7 +99,7 @@
<property name="spacing">18</property>
<child>
- <widget class="GtkVBox" id="vbox18">
+ <widget class="GtkVBox" id="clock-options">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
Index: applets/clock/clock-utils.c
===================================================================
--- applets/clock/clock-utils.c (révision 11435)
+++ applets/clock/clock-utils.c (copie de travail)
@@ -38,19 +38,26 @@
#include "clock-utils.h"
-ClockFormat
-clock_locale_format (void)
+gboolean
+clock_locale_supports_am_pm (void)
{
#ifdef HAVE_NL_LANGINFO
const char *am;
am = nl_langinfo (AM_STR);
- return (am[0] == '\0') ? CLOCK_FORMAT_24 : CLOCK_FORMAT_12;
+ return (am[0] != '\0');
#else
- return CLOCK_FORMAT_24;
+ return TRUE;
#endif
}
+ClockFormat
+clock_locale_format (void)
+{
+ return clock_locale_supports_am_pm () ?
+ CLOCK_FORMAT_12 : CLOCK_FORMAT_24;
+}
+
void
clock_utils_display_help (GtkWidget *widget,
const char *doc_id,
Index: applets/clock/clock.c
===================================================================
--- applets/clock/clock.c (révision 11435)
+++ applets/clock/clock.c (copie de travail)
@@ -3531,6 +3531,7 @@ ensure_prefs_window_is_created (ClockDat
GtkWidget *edit_window;
GtkWidget *prefs_close_button;
GtkWidget *prefs_help_button;
+ GtkWidget *clock_options;
GtkWidget *edit_cancel_button;
GtkWidget *edit_ok_button;
GtkWidget *location_box;
@@ -3547,8 +3548,12 @@ ensure_prefs_window_is_created (ClockDat
prefs_close_button = glade_xml_get_widget (cd->glade_xml, "prefs-close-button");
prefs_help_button = glade_xml_get_widget (cd->glade_xml, "prefs-help-button");
+ clock_options = glade_xml_get_widget (cd->glade_xml, "clock-options");
cd->prefs_locations = GTK_TREE_VIEW (glade_xml_get_widget (cd->glade_xml, "cities_list"));
+ if (!clock_locale_supports_am_pm ())
+ gtk_widget_hide (clock_options);
+
selection = gtk_tree_view_get_selection (cd->prefs_locations);
g_signal_connect (G_OBJECT (selection), "changed",
G_CALLBACK (prefs_locations_changed), cd);
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gnome-packagekit for openSUSE:Factory
checked in at Thu Jan 8 18:05:53 CET 2009.
--------
--- GNOME/gnome-packagekit/gnome-packagekit.changes 2008-12-09 15:23:07.000000000 +0100
+++ /mounts/work_src_done/STABLE/gnome-packagekit/gnome-packagekit.changes 2008-12-24 21:14:08.000000000 +0100
@@ -1,0 +2,10 @@
+Tue Dec 09 17:42:15 CET 2008 - sreeves(a)suse.de
+
+- Move to 0.3.12 - Bugfix only release
+ Fix to show the force install button on unsigned dialog
+ Fix for BNC#450185 - abort on small form factor mode
+ Fix for BNC#457803 - respect the force_get_updates_login flag
+ Set an interaction mode in gpk-application to avoid an empty window
+ Add YaST option on dependency failures to fix BNC#383261
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
gnome-packagekit-0.3.11.tar.bz2
gnome-packagekit-remove-new-untested-python-widgets.patch
New:
----
gnome-packagekit-0.3.12.tar.bz2
gnome-packagekit-BNC383261.patch
gnome-packagekit-UI-polish.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-packagekit.spec ++++++
--- /var/tmp/diff_new_pack.OG8223/_old 2009-01-08 18:05:33.000000000 +0100
+++ /var/tmp/diff_new_pack.OG8223/_new 2009-01-08 18:05:33.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package gnome-packagekit (Version 0.3.11)
+# spec file for package gnome-packagekit (Version 0.3.12)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,19 +19,20 @@
Name: gnome-packagekit
Url: http://packagekit.org/
-Version: 0.3.11
-Release: 3
+Version: 0.3.12
+Release: 1
License: GPL v2 or later
Source: %{name}-%{version}.tar.bz2
#the .po files from https://forgesvn1.novell.com/viewsvn/suse-i18n/trunk/lcn/
Source1: %{name}-po.tar.gz
Patch1: gnome-packagekit_release.patch
Patch2: gnome-packagekit-XGetWindowProperty.patch
-Patch5: gnome-packagekit-remove-new-untested-python-widgets.patch
#PATCH-FEATURE-OPENSUSE gnome-packagekit-fate302445.patch fate 302445
Patch3: gnome-packagekit-fate302445.patch
#PATCH-FEATURE-OPENSUSE gnome-packagekit-fate303359.patch fate 303359
Patch4: gnome-packagekit-fate303359.patch
+Patch5: gnome-packagekit-BNC383261.patch
+Patch6: gnome-packagekit-UI-polish.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: PackageKit-devel PolicyKit-gnome-devel cairo-devel dbus-1-devel desktop-file-utils gconf2-devel gettext-devel gnome-doc-utils-devel gtk-doc gtk2-devel intltool libglade2-devel libnotify-devel libsexy-devel libtool sqlite-devel update-desktop-files
Requires: gnome-icon-theme
@@ -58,10 +59,11 @@
%setup -q -n %{name}-%{version}
%patch1 -p1
%patch2
-%patch5 -p1
%patch3 -p1
# do not do this patch anymore BNC #440498
# %patch4 -p1
+%patch5 -p1
+%patch6 -p1
#replace the old po files with lcn ones
rm po/*.po
rm po/LINGUAS
@@ -104,6 +106,7 @@
%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS README
+%dir %py_sitedir/packagekit
%{_bindir}/gpk-*
%{_datadir}/gnome-packagekit
%{_datadir}/omf/gnome-packagekit
@@ -111,10 +114,18 @@
%{_datadir}/applications/gpk-*.desktop
%{_datadir}/icons/hicolor/*
%{_sysconfdir}/gconf/schemas/gnome-packagekit.schemas
+%{py_sitedir}/packagekit/g*
%files lang -f %{name}.lang
%changelog
+* Tue Dec 09 2008 sreeves(a)suse.de
+- Move to 0.3.12 - Bugfix only release
+ Fix to show the force install button on unsigned dialog
+ Fix for BNC#450185 - abort on small form factor mode
+ Fix for BNC#457803 - respect the force_get_updates_login flag
+ Set an interaction mode in gpk-application to avoid an empty window
+ Add YaST option on dependency failures to fix BNC#383261
* Tue Dec 09 2008 schwab(a)suse.de
- Fix use of XGetWindowProperty.
* Mon Dec 01 2008 sreeves(a)suse.de
++++++ gnome-packagekit-0.3.11.tar.bz2 -> gnome-packagekit-0.3.12.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/configure new/gnome-packagekit-0.3.12/configure
--- old/gnome-packagekit-0.3.11/configure 2008-11-24 17:05:59.000000000 +0100
+++ new/gnome-packagekit-0.3.12/configure 2008-12-08 23:13:20.000000000 +0100
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for gnome-packagekit 0.3.11.
+# Generated by GNU Autoconf 2.63 for gnome-packagekit 0.3.12.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -748,8 +748,8 @@
# Identity of this package.
PACKAGE_NAME='gnome-packagekit'
PACKAGE_TARNAME='gnome-packagekit'
-PACKAGE_VERSION='0.3.11'
-PACKAGE_STRING='gnome-packagekit 0.3.11'
+PACKAGE_VERSION='0.3.12'
+PACKAGE_STRING='gnome-packagekit 0.3.12'
PACKAGE_BUGREPORT=''
ac_unique_file="src"
@@ -1643,7 +1643,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures gnome-packagekit 0.3.11 to adapt to many kinds of systems.
+\`configure' configures gnome-packagekit 0.3.12 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1718,7 +1718,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of gnome-packagekit 0.3.11:";;
+ short | recursive ) echo "Configuration of gnome-packagekit 0.3.12:";;
esac
cat <<\_ACEOF
@@ -1880,7 +1880,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-gnome-packagekit configure 0.3.11
+gnome-packagekit configure 0.3.12
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1894,7 +1894,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by gnome-packagekit $as_me 0.3.11, which was
+It was created by gnome-packagekit $as_me 0.3.12, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2611,7 +2611,7 @@
# Define the identity of the package.
PACKAGE=gnome-packagekit
- VERSION=0.3.11
+ VERSION=0.3.12
cat >>confdefs.h <<_ACEOF
@@ -26848,7 +26848,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by gnome-packagekit $as_me 0.3.11, which was
+This file was extended by gnome-packagekit $as_me 0.3.12, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26911,7 +26911,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-gnome-packagekit config.status 0.3.11
+gnome-packagekit config.status 0.3.12
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/configure.ac new/gnome-packagekit-0.3.12/configure.ac
--- old/gnome-packagekit-0.3.11/configure.ac 2008-11-24 16:54:28.000000000 +0100
+++ new/gnome-packagekit-0.3.12/configure.ac 2008-12-08 23:10:06.000000000 +0100
@@ -1,6 +1,6 @@
AC_PREREQ(2.52)
-AC_INIT(gnome-packagekit, 0.3.11)
+AC_INIT(gnome-packagekit, 0.3.12)
AC_CONFIG_SRCDIR(src)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
AM_CONFIG_HEADER(config.h)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/NEWS new/gnome-packagekit-0.3.12/NEWS
--- old/gnome-packagekit-0.3.11/NEWS 2008-11-24 16:54:28.000000000 +0100
+++ new/gnome-packagekit-0.3.12/NEWS 2008-12-08 23:13:00.000000000 +0100
@@ -1,3 +1,14 @@
+Version 0.3.12
+~~~~~~~~~~~~~~
+Released: 2008-12-08
+
+* Bugfix:
+ - Show the 'Force Install' button on the unsigned dialog UI (Richard Hughes)
+ - Don't abort with an error if we are using small form factor mode (Richard Hughes)
+ - Set the run window modal over the parent window to fix rh#475046 (Richard Hughes)
+ - Set an interaction mode in gpk-application when we refresh the package lists (Richard Hughes)
+ - Don't send signal during object init - upper layers need to hook up first (Scott Reeves)
+
Version 0.3.11
~~~~~~~~~~~~~~
Released: 2008-11-24
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/po/POTFILES.in new/gnome-packagekit-0.3.12/po/POTFILES.in
--- old/gnome-packagekit-0.3.11/po/POTFILES.in 2008-11-21 12:08:40.000000000 +0100
+++ new/gnome-packagekit-0.3.12/po/POTFILES.in 2008-11-28 19:12:00.000000000 +0100
@@ -54,5 +54,6 @@
src/gpk-update-icon.c
src/gpk-update-viewer.c
src/gpk-watch.c
+src/gpk-desktop.c
python/packagekit/gtkwidgets.py
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-application.c new/gnome-packagekit-0.3.12/src/gpk-application.c
--- old/gnome-packagekit-0.3.11/src/gpk-application.c 2008-11-20 13:11:47.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-application.c 2008-12-08 23:10:06.000000000 +0100
@@ -641,7 +641,8 @@
if (pk_bitfield_contain (state, GPK_STATE_INSTALLED)) {
/* run this single package id */
package_ids = pk_package_ids_from_id (package_id);
- exec = gpk_client_run_show (package_ids);
+ widget = glade_xml_get_widget (application->priv->glade_xml, "window_manager");
+ exec = gpk_client_run_show (GTK_WINDOW (widget), package_ids);
if (exec != NULL) {
ret = g_spawn_command_line_async (exec, &error);
if (!ret) {
@@ -1690,7 +1691,8 @@
ret = gpk_client_install_package_ids (application->priv->gclient, package_ids, NULL);
/* can we show the user the new application? */
if (ret) {
- exec = gpk_client_run_show (package_ids);
+ widget = glade_xml_get_widget (application->priv->glade_xml, "window_manager");
+ exec = gpk_client_run_show (GTK_WINDOW (widget), package_ids);
if (exec != NULL) {
ret = g_spawn_command_line_async (exec, &error);
if (!ret) {
@@ -2281,6 +2283,7 @@
static void
gpk_application_menu_refresh_cb (GtkAction *action, GpkApplication *application)
{
+ gpk_client_set_interaction (application->priv->gclient, GPK_CLIENT_INTERACT_WARNING_CONFIRM_PROGRESS);
gpk_client_refresh_cache (application->priv->gclient, NULL);
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-auto-refresh.c new/gnome-packagekit-0.3.12/src/gpk-auto-refresh.c
--- old/gnome-packagekit-0.3.11/src/gpk-auto-refresh.c 2008-11-19 17:25:54.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-auto-refresh.c 2008-12-07 18:45:13.000000000 +0100
@@ -51,6 +51,7 @@
#define GPK_AUTO_REFRESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GPK_TYPE_AUTO_REFRESH, GpkAutoRefreshPrivate))
#define GPK_AUTO_REFRESH_PERIODIC_CHECK 60*60 /* force check for updates every this much time */
+#define GPK_UPDATES_LOGIN_TIMEOUT 3 /* seconds */
#define GS_DBUS_SERVICE "org.gnome.ScreenSaver"
#define GS_DBUS_PATH "/org/gnome/ScreenSaver"
@@ -75,6 +76,7 @@
gboolean on_battery;
gboolean network_active;
gboolean force_get_updates_login;
+ guint force_get_updates_login_timeout_id;
guint timeout_id;
EggDbusMonitor *monitor_gs;
EggDbusMonitor *monitor_gpm;
@@ -279,6 +281,15 @@
g_return_val_if_fail (GPK_IS_AUTO_REFRESH (arefresh), FALSE);
+ if (!arefresh->priv->force_get_updates_login) {
+ arefresh->priv->force_get_updates_login = TRUE;
+ if (gconf_client_get_bool (arefresh->priv->gconf_client, GPK_CONF_FORCE_GET_UPDATES_LOGIN, NULL)) {
+ egg_debug ("forcing get update due to GConf");
+ gpk_auto_refresh_signal_get_updates (arefresh);
+ return TRUE;
+ }
+ }
+
/* get this each time, as it may have changed behind out back */
thresh = gpk_auto_refresh_convert_frequency_text (arefresh, GPK_CONF_FREQUENCY_GET_UPDATES);
if (thresh == 0) {
@@ -374,12 +385,13 @@
/* only force a check if the user REALLY, REALLY wants to break
* set policy and have an update at startup */
if (!arefresh->priv->force_get_updates_login) {
- arefresh->priv->force_get_updates_login = TRUE;
force = gconf_client_get_bool (arefresh->priv->gconf_client, GPK_CONF_FORCE_GET_UPDATES_LOGIN, NULL);
if (force) {
- egg_debug ("forcing get update due to GConf");
- gpk_auto_refresh_signal_get_updates (arefresh);
- return TRUE;
+ /* don't immediately send the signal, if we are called during object initialization
+ * we need to wait until upper layers finish hooking up to the signal first. */
+ if (arefresh->priv->force_get_updates_login_timeout_id == 0)
+ arefresh->priv->force_get_updates_login_timeout_id =
+ g_timeout_add_seconds (GPK_UPDATES_LOGIN_TIMEOUT, (GSourceFunc) gpk_auto_refresh_maybe_get_updates, arefresh);
}
}
@@ -591,6 +603,7 @@
arefresh->priv->network_active = FALSE;
arefresh->priv->force_get_updates_login = FALSE;
arefresh->priv->timeout_id = 0;
+ arefresh->priv->force_get_updates_login_timeout_id = 0;
arefresh->priv->proxy_gs = NULL;
arefresh->priv->proxy_gpm = NULL;
@@ -656,6 +669,8 @@
if (arefresh->priv->timeout_id != 0)
g_source_remove (arefresh->priv->timeout_id);
+ if (arefresh->priv->force_get_updates_login_timeout_id != 0)
+ g_source_remove (arefresh->priv->force_get_updates_login_timeout_id);
g_object_unref (arefresh->priv->control);
g_object_unref (arefresh->priv->monitor_gs);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-client-run.c new/gnome-packagekit-0.3.12/src/gpk-client-run.c
--- old/gnome-packagekit-0.3.11/src/gpk-client-run.c 2008-11-24 10:12:40.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-client-run.c 2008-12-08 23:10:06.000000000 +0100
@@ -298,7 +298,7 @@
* Return value: the package_id of the selected package, or NULL
**/
gchar *
-gpk_client_run_show (gchar **package_ids)
+gpk_client_run_show (GtkWindow *window, gchar **package_ids)
{
GladeXML *glade_xml;
GtkWidget *widget;
@@ -364,8 +364,14 @@
goto out;
}
- /* show window */
+ /* make modal if window set */
widget = glade_xml_get_widget (glade_xml, "dialog_simple");
+ if (window != NULL) {
+ gtk_window_set_modal (GTK_WINDOW (widget), TRUE);
+ gtk_window_set_transient_for (GTK_WINDOW (widget), window);
+ }
+
+ /* show window */
gtk_widget_show (widget);
/* wait for button press */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-client-run.h new/gnome-packagekit-0.3.12/src/gpk-client-run.h
--- old/gnome-packagekit-0.3.11/src/gpk-client-run.h 2008-11-19 17:25:54.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-client-run.h 2008-12-07 19:29:46.000000000 +0100
@@ -28,7 +28,8 @@
G_BEGIN_DECLS
void gpk_client_run_self_test (gpointer data);
-gchar *gpk_client_run_show (gchar **package_ids);
+gchar *gpk_client_run_show (GtkWindow *window,
+ gchar **package_ids);
G_END_DECLS
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-client-untrusted.c new/gnome-packagekit-0.3.12/src/gpk-client-untrusted.c
--- old/gnome-packagekit-0.3.11/src/gpk-client-untrusted.c 2008-11-19 17:26:22.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-client-untrusted.c 2008-11-27 18:04:40.000000000 +0100
@@ -70,9 +70,6 @@
/* connect up actions */
widget = glade_xml_get_widget (glade_xml, "dialog_error");
g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
-
- /* set icon name */
- widget = glade_xml_get_widget (glade_xml, "dialog_error");
gtk_window_set_icon_name (GTK_WINDOW (widget), GPK_ICON_SOFTWARE_INSTALLER);
/* close button */
@@ -122,7 +119,11 @@
g_signal_connect (update_system_action, "activate",
G_CALLBACK (gpk_client_untrusted_button_cb), NULL);
button = polkit_gnome_action_create_button (update_system_action);
- widget = glade_xml_get_widget (glade_xml, "hbuttonbox2");
+ gtk_widget_show (button);
+
+ /* add to box */
+ widget = glade_xml_get_widget (glade_xml, "dialog_error");
+ widget = gtk_dialog_get_action_area (GTK_DIALOG(widget));
gtk_box_pack_start (GTK_BOX (widget), button, FALSE, FALSE, 0);
/* show window */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/gnome-packagekit-0.3.11/src/gpk-common.c new/gnome-packagekit-0.3.12/src/gpk-common.c
--- old/gnome-packagekit-0.3.11/src/gpk-common.c 2008-11-20 13:07:52.000000000 +0100
+++ new/gnome-packagekit-0.3.12/src/gpk-common.c 2008-12-08 23:10:06.000000000 +0100
@@ -56,7 +56,7 @@
screen_w = gdk_screen_get_width (screen);
screen_h = gdk_screen_get_height (screen);
if (screen_w < width || screen_h < height) {
- egg_error ("using small form factor mode as %ix%i and requested %ix%i",
+ egg_debug ("using small form factor mode as %ix%i and requested %ix%i",
screen_w, screen_h, width, height);
gtk_window_maximize (window);
return FALSE;
++++++ gnome-packagekit-BNC383261.patch ++++++
diff --git a/src/gpk-client.c b/src/gpk-client.c
index 3bc12b4..6792594 100644
--- a/src/gpk-client.c
+++ b/src/gpk-client.c
@@ -98,6 +98,7 @@ struct _GpkClientPrivate
gchar *parent_title;
gchar *parent_icon_name;
gchar *error_details;
+ const gchar *error_details_prompt_for_yast;
GMainLoop *loop;
};
@@ -198,8 +199,12 @@ gpk_client_libnotify_cb (NotifyNotification *notification, gchar *action, gpoint
egg_debug ("set %s to FALSE", GPK_CONF_NOTIFY_UPDATE_STARTED);
gconf_client_set_bool (gclient->priv->gconf_client, GPK_CONF_NOTIFY_UPDATE_STARTED, FALSE, NULL);
} else if (egg_strequal (action, "show-error-details")) {
- /* TRANSLATORS: detailed text about the error */
- gpk_error_dialog (_("Error details"), _("Package Manager error details"), gclient->priv->error_details);
+ if (gclient->priv->error_details_prompt_for_yast)
+ /* TRANSLATORS: detailed text about the error */
+ gpk_error_dialog_modal_prompt_yast (NULL, _("Error details"), _("Package Manager error details"), gclient->priv->error_details, gclient->priv->error_details_prompt_for_yast);
+ else
+ gpk_error_dialog (_("Error details"), _("Package Manager error details"), gclient->priv->error_details);
+
} else if (egg_strequal (action, "cancel")) {
/* try to cancel */
ret = pk_client_cancel (gclient->priv->client_action, &error);
@@ -481,6 +486,14 @@ gpk_client_error_code_cb (PkClient *client, PkErrorCodeEnum code, const gchar *d
return;
}
+ if (code == PK_ERROR_ENUM_DEP_RESOLUTION_FAILED) {
+ egg_debug ("DEP_RES failed - will ask if they want to try yast");
+ gclient->priv->error_details_prompt_for_yast = _("To try and manually resolve problems use the YaST \"Online Update\" module");
+ }
+ else
+ gclient->priv->error_details_prompt_for_yast = NULL;
+
+
egg_debug ("code was %s", pk_error_enum_to_text (code));
/* use a modal dialog if showing progress, else use libnotify */
@@ -488,7 +501,10 @@ gpk_client_error_code_cb (PkClient *client, PkErrorCodeEnum code, const gchar *d
message = gpk_error_enum_to_localised_message (code);
if (gclient->priv->show_progress) {
widget = GTK_WIDGET (gpk_client_dialog_get_window (gclient->priv->dialog));
- gpk_error_dialog_modal (GTK_WINDOW (widget), title, message, details);
+ if (gclient->priv->error_details_prompt_for_yast)
+ gpk_error_dialog_modal_prompt_yast (GTK_WINDOW (widget), title, message, details, gclient->priv->error_details_prompt_for_yast);
+ else
+ gpk_error_dialog_modal (GTK_WINDOW (widget), title, message, details);
return;
}
@@ -654,7 +670,7 @@ gpk_client_error_msg (GpkClient *gclient, const gchar *title, GError *error)
/* hide the main window */
window = gpk_client_dialog_get_window (gclient->priv->dialog);
- gpk_error_dialog_modal_with_time (window, title, message, details, gclient->priv->timestamp);
+ gpk_error_dialog_modal_with_time (window, title, message, details, gclient->priv->timestamp, NULL);
}
/**
diff --git a/src/gpk-error.c b/src/gpk-error.c
index 38aab70..18756e3 100644
--- a/src/gpk-error.c
+++ b/src/gpk-error.c
@@ -34,6 +34,32 @@
#include "gpk-common.h"
+static gboolean
+gpk_error_dialog_run_yast (gpointer unused)
+{
+ gboolean retval;
+ GError *error = NULL;
+
+ PkControl *control = pk_control_new ();
+ if (!pk_control_suggest_daemon_quit(control, &error))
+ egg_debug ("Failure calling pk_control_suggest_daemon_quit:%s", error->message);
+ g_object_unref (control);
+
+ retval = g_spawn_command_line_async ("gnomesu -- /sbin/yast2 online_update", NULL);
+ if (!retval)
+ egg_debug ("Failure launching yast2 online_update");
+ return FALSE;
+}
+
+static void
+gpk_error_dialog_yast_cb (GtkButton *button, gpointer data)
+{
+ egg_debug ("user wants to try YaST...");
+ /* we want to make sure and finish up outstanding stuff before we launch yast so we can release the libzypp lock */
+ g_timeout_add_seconds (2, gpk_error_dialog_run_yast, NULL);
+ gtk_main_quit ();
+}
+
/**
* gpk_error_dialog_modal_with_time:
* @window: the parent dialog
@@ -44,12 +70,14 @@
* Shows a modal error, and blocks until the user clicks close
**/
gboolean
-gpk_error_dialog_modal_with_time (GtkWindow *window, const gchar *title, const gchar *message, const gchar *details, guint timestamp)
+gpk_error_dialog_modal_with_time (GtkWindow *window, const gchar *title, const gchar *message, const gchar *details, guint timestamp, const gchar *prompt_yast)
{
GtkWidget *widget;
+ GtkWidget *button;
GladeXML *glade_xml;
GtkTextBuffer *buffer = NULL;
gchar *text;
+ gchar *full_message;
g_return_val_if_fail (title != NULL, FALSE);
g_return_val_if_fail (message != NULL, FALSE);
@@ -78,8 +106,21 @@ gpk_error_dialog_modal_with_time (GtkWindow *window, const gchar *title, const g
g_free (text);
/* message */
+ if (prompt_yast) {
+ full_message = g_strconcat (message, "\n\n", prompt_yast, NULL);
+ button = gtk_button_new_with_label(_("Start YaST and install updates manually"));
+ g_signal_connect (button, "clicked", G_CALLBACK (gpk_error_dialog_yast_cb), NULL);
+ /* add to box */
+ widget = glade_xml_get_widget (glade_xml, "dialog_error");
+ widget = gtk_dialog_get_action_area (GTK_DIALOG(widget));
+ gtk_box_pack_start (GTK_BOX (widget), button, TRUE, TRUE, 0);
+ gtk_widget_show (button);
+ }
+ else
+ full_message = g_strdup (message);
widget = glade_xml_get_widget (glade_xml, "label_message");
- gtk_label_set_label (GTK_LABEL (widget), message);
+ gtk_label_set_label (GTK_LABEL (widget), full_message);
+ g_free (full_message);
/* show text in the expander */
if (egg_strzero (details)) {
@@ -111,6 +152,13 @@ gpk_error_dialog_modal_with_time (GtkWindow *window, const gchar *title, const g
return TRUE;
}
+gboolean
+gpk_error_dialog_modal_prompt_yast (GtkWindow *window, const gchar *title, const gchar *message, const gchar *details, const gchar *yast)
+{
+ return gpk_error_dialog_modal_with_time (window, title, message, details, 0, yast);
+}
+
+
/**
* gpk_error_dialog_modal:
* @window: the parent dialog
@@ -123,7 +171,7 @@ gpk_error_dialog_modal_with_time (GtkWindow *window, const gchar *title, const g
gboolean
gpk_error_dialog_modal (GtkWindow *window, const gchar *title, const gchar *message, const gchar *details)
{
- return gpk_error_dialog_modal_with_time (window, title, message, details, 0);
+ return gpk_error_dialog_modal_with_time (window, title, message, details, 0, NULL);
}
/**
diff --git a/src/gpk-error.h b/src/gpk-error.h
index 49240e8..8f0f4fd 100644
--- a/src/gpk-error.h
+++ b/src/gpk-error.h
@@ -33,11 +33,17 @@ gboolean gpk_error_dialog_modal (GtkWindow *window,
const gchar *title,
const gchar *message,
const gchar *details);
+gboolean gpk_error_dialog_modal_prompt_yast (GtkWindow *window,
+ const gchar *title,
+ const gchar *message,
+ const gchar *details,
+ const gchar *prompt_yast);
gboolean gpk_error_dialog_modal_with_time (GtkWindow *window,
const gchar *title,
const gchar *message,
const gchar *details,
- guint timestamp);
+ guint timestamp,
+ const gchar *prompt_yast);
G_END_DECLS
++++++ gnome-packagekit-UI-polish.patch ++++++
diff --git a/src/gpk-client-run.c b/src/gpk-client-run.c
index 9d901e6..0e971ba 100644
--- a/src/gpk-client-run.c
+++ b/src/gpk-client-run.c
@@ -70,6 +70,19 @@ gpk_client_run_button_close_cb (GtkWidget *widget, gpointer data)
}
/**
+ * gpk_client_run_delete_event_cb:
+ **/
+static gboolean
+gpk_client_run_delete_event_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data)
+{
+ /* clear full_path */
+ g_free (full_path);
+ full_path = NULL;
+ gtk_main_quit ();
+ return FALSE;
+}
+
+/**
* gpk_client_run_button_action_cb:
**/
static void
@@ -314,7 +327,7 @@ gpk_client_run_show (GtkWindow *window, gchar **package_ids)
/* connect up default actions */
widget = glade_xml_get_widget (glade_xml, "dialog_simple");
- g_signal_connect_swapped (widget, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (widget, "delete_event", G_CALLBACK (gpk_client_run_delete_event_cb), NULL);
/* set a size, if the screen allows */
gpk_window_set_size_request (GTK_WINDOW (widget), 600, 300);
@@ -332,6 +345,10 @@ gpk_client_run_show (GtkWindow *window, gchar **package_ids)
widget = glade_xml_get_widget (glade_xml, "hbox_filter");
gtk_widget_hide (widget);
+ /* hide the refresh button */
+ widget = glade_xml_get_widget (glade_xml, "button_refresh");
+ gtk_widget_hide (widget);
+
/* set icon name */
widget = glade_xml_get_widget (glade_xml, "dialog_simple");
gtk_window_set_icon_name (GTK_WINDOW (widget), GPK_ICON_SOFTWARE_INSTALLER);
@@ -356,6 +373,7 @@ gpk_client_run_show (GtkWindow *window, gchar **package_ids)
/* add columns to the tree view */
pk_treeview_add_general_columns (GTK_TREE_VIEW (widget));
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (widget));
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (widget), FALSE);
/* add all the apps */
len = gpk_client_run_add_package_ids (package_ids);
@@ -383,7 +401,7 @@ out:
if (GTK_IS_WIDGET (widget))
gtk_widget_hide (widget);
- g_object_unref (glade_xml);
+ //g_object_unref (glade_xml);
return full_path;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gnome-main-menu for openSUSE:Factory
checked in at Thu Jan 8 18:05:43 CET 2009.
--------
--- GNOME/gnome-main-menu/gnome-main-menu.changes 2008-12-06 08:26:36.000000000 +0100
+++ /mounts/work_src_done/STABLE/gnome-main-menu/gnome-main-menu.changes 2009-01-06 21:20:18.000000000 +0100
@@ -1,0 +2,8 @@
+Tue Jan 06 00:08:25 CET 2009 - sreeves(a)suse.de
+
+- Update to 0.9.12
+ Fix BNC#447550 - translations not updating
+ Fix BNC#449841 - network status not shown on resume
+ Clean up .desktop files - BNC#444138
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
FATE_301986.patch
FATE_303677.patch
gnome-main-menu-0.9.11.tar.bz2
gnome-main-menu-bnc402256-leaks.diff
gnome-main-menu-bnc436718-network-status.patch
gnome-main-menu-nm-r4274.patch
gnome-session-logout.desktop
gnome-session-shutdown.desktop
system-items-opensuse.xbel
New:
----
gnome-main-menu-0.9.12.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gnome-main-menu.spec ++++++
--- /var/tmp/diff_new_pack.gr5437/_old 2009-01-08 18:05:26.000000000 +0100
+++ /var/tmp/diff_new_pack.gr5437/_new 2009-01-08 18:05:26.000000000 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package gnome-main-menu (Version 0.9.11)
+# spec file for package gnome-main-menu (Version 0.9.12)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -26,21 +26,11 @@
License: GPL v2 or later
Group: System/GUI/GNOME
AutoReqProv: on
-Version: 0.9.11
-Release: 23
+Version: 0.9.12
+Release: 1
Summary: The GNOME Desktop Menu
Source: %{name}-%{version}.tar.bz2
-Source1: system-items-opensuse.xbel
-Source2: gnome-session-logout.desktop
-Source3: gnome-session-shutdown.desktop
Source4: %{name}-po.tar.gz
-Patch1: FATE_303677.patch
-Patch2: FATE_301986.patch
-# PATCH-FIX-UPSTREAM gnome-main-menu-bnc402256-leaks.diff bnc402256 federico(a)novell.com - Fixes for memory leaks
-Patch3: gnome-main-menu-bnc402256-leaks.diff
-Patch4: gnome-main-menu-nm-r4274.patch
-# PATCH-FIX-UPSTREAM gnome-main-menu-bnc436718-network-status.patch bnc436718 sreeves(a)novell.com - Fixes for network status
-Patch5: gnome-main-menu-bnc436718-network-status.patch
Url: http://www.gnome.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: gnome-panel dbus-1-glib hal tango-icon-theme wireless-tools
@@ -100,17 +90,11 @@
%lang_package
%prep
%setup -n gnome-main-menu-%{version} -a4
-%patch1 -p0
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%patch5 -p0
-cp -f %{S:1} main-menu/etc/system-items.xbel
%build
autoreconf -f -i
intltoolize --force
-export CFLAGS="$RPM_OPT_FLAGS"
+export CFLAGS="$RPM_OPT_FLAGS -g -O0"
%configure \
--libexecdir=%{_prefix}/lib/%{name} \
--enable-nautilus-extension \
@@ -119,9 +103,6 @@
%install
%makeinstall
-install -d -m755 $RPM_BUILD_ROOT%{_datadir}/applications
-install -m644 %{S:2} $RPM_BUILD_ROOT%{_datadir}/applications/
-install -m644 %{S:3} $RPM_BUILD_ROOT%{_datadir}/applications/
%suse_update_desktop_file gnome-session-logout
%suse_update_desktop_file gnome-session-shutdown
%suse_update_desktop_file trigger-panel-run-dialog
@@ -163,7 +144,6 @@
%{_prefix}/%{_lib}/*.so.*
%{_prefix}/share/applications/application-browser.desktop
%{_prefix}/share/applications/gnome-screensaver-lock.desktop
-%{_prefix}/share/applications/gnome-session-kill.desktop
%{_prefix}/share/applications/gnome-session-logout.desktop
%{_prefix}/share/applications/gnome-session-shutdown.desktop
%{_prefix}/share/applications/trigger-panel-run-dialog.desktop
@@ -186,6 +166,11 @@
%{_prefix}/%{_lib}/nautilus/extensions-1.0/*.la
%changelog
+* Tue Jan 06 2009 sreeves(a)suse.de
+- Update to 0.9.12
+ Fix BNC#447550 - translations not updating
+ Fix BNC#449841 - network status not shown on resume
+ Clean up .desktop files - BNC#444138
* Sat Dec 06 2008 mauro(a)suse.de
- Updated translations.
* Thu Nov 20 2008 sreeves(a)suse.de
++++++ gnome-main-menu-0.9.11.tar.bz2 -> gnome-main-menu-0.9.12.tar.bz2 ++++++
++++ 69778 lines of diff (skipped)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package ghostscript-library for openSUSE:Factory
checked in at Thu Jan 8 18:05:13 CET 2009.
--------
--- ghostscript-library/ghostscript-library.changes 2008-07-29 13:54:30.000000000 +0200
+++ /mounts/work_src_done/STABLE/ghostscript-library/ghostscript-library.changes 2009-01-08 16:20:20.721747000 +0100
@@ -1,0 +2,6 @@
+Thu Jan 8 16:13:06 CET 2009 - werner(a)suse.de
+
+- Fix Mannufacturer within PPD of omni (bnc#464435)
+- Add workaround vor bnc#429345 to make cups able to find omni libs
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghostscript-library.spec ++++++
--- /var/tmp/diff_new_pack.i25469/_old 2009-01-08 18:04:47.000000000 +0100
+++ /var/tmp/diff_new_pack.i25469/_new 2009-01-08 18:04:47.000000000 +0100
@@ -1,10 +1,17 @@
#
# spec file for package ghostscript-library (Version 8.62)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -52,7 +59,7 @@
Summary: Necessary Files for Running Ghostscript
%endif
Version: 8.62
-Release: 31
+Release: 61
License: GPL v2 or later
Source0: ghostscript-8.62.tar.bz2
Source1: ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/current/ghostscript-fonts-st…
@@ -309,7 +316,7 @@
%package -n libgimpprint
License: GPL v2 or later
Version: 4.2.7
-Release: 272
+Release: 302
Summary: Gimp-Print libraries
Group: Development/Libraries/C and C++
@@ -325,7 +332,7 @@
%package -n libgimpprint-devel
License: GPL v2 or later
Version: 4.2.7
-Release: 272
+Release: 302
PreReq: %install_info_prereq
Requires: libgimpprint = %{version}
Requires: glibc-devel
@@ -633,6 +640,8 @@
--with-gnu-ld
CFLAGS="$SAVE_CFLAGS"
unset SAVE_CFLAGS
+ find Oki*/ -name '*.xml' -print0 | xargs -0r sed -ri '\@<DriverName>.*</DriverName>@ { s/Okidata/Oki/; }'
+ find HPL*/ -name '*.xml' -print0 | xargs -0r sed -ri '\@<DriverName>.*</DriverName>@ { s/HP.LaserJet/HP/; }'
popd
#
# Remark: Do never add -j here!
@@ -667,12 +676,15 @@
sed -ri '/^\*(Model|Nick|ShortNick)Name:/{ s/(_|\( *| *\))//g; }' $line
fi
case "$line" in
- */HP_LaserJet-HP_LaserJet_5Si_5Si_Mx_5Si_Mopier-omni-cups.ppd)
+ */HP*-HP_LaserJet_5Si_5Si_Mx_5Si_Mopier-omni-cups.ppd)
sed -ri '/^\*ShortNickName:/{ s/ *Mopier//; }' $line
;;
- */Okidata*)
+ */Oki*)
sed -ri '/^\*Manufacturer:/{ s/Okidata/Oki/; }' $line
;;
+ */HP*)
+ sed -ri '/^\*Manufacturer:/{ s/HP_LaserJet/HP/; }' $line
+ ;;
esac
gzip -9f $line
done
@@ -846,6 +858,10 @@
install -m 0444 docs/* %{buildroot}%{_datadir}/ghostscript/%{gsver}/doc/Omni/
ln -sf %{_datadir}/ghostscript/%{gsver}/doc/Omni \
%{buildroot}%{_defaultdocdir}/ghostscript-omni/Omni
+%if %suse_version >= 1030
+ mkdir %{buildroot}/etc/ld.so.conf.d
+ echo %{_libdir}/ghostscript/Omni > %{buildroot}/etc/ld.so.conf.d/ghostscript-omni.conf
+%endif
popd
%find_lang gimp-print
%endif
@@ -1083,6 +1099,9 @@
%dir %{_libdir}/ghostscript/Omni
%{_libdir}/cups/filter/CUPSToOmni
%{_libdir}/ghostscript/Omni/*.so*
+%if %suse_version >= 1030
+%config /etc/ld.so.conf.d/ghostscript-omni.conf
+%endif
%{_datadir}/cups/model/omni
%doc %{_defaultdocdir}/ghostscript-omni
@@ -1318,6 +1337,9 @@
%endif
%changelog
+* Thu Jan 08 2009 werner(a)suse.de
+- Fix Mannufacturer within PPD of omni (bnc#464435)
+- Add workaround vor bnc#429345 to make cups able to find omni libs
* Tue Jul 29 2008 werner(a)suse.de
- Fix crash in bjc driver (bnc#412523)
* Thu Jul 24 2008 werner(a)suse.de
@@ -1750,7 +1772,7 @@
- prevent re-make during make install
* Sat Feb 05 2005 schwab(a)suse.de
- Fix building with gcc4.
-* Tue Dec 14 2004 schwab(a)suse.de
+* Mon Dec 13 2004 schwab(a)suse.de
- Fix some invalid casts.
* Wed Dec 08 2004 werner(a)suse.de
- Update OMNI part ro 0.9.2
@@ -1828,7 +1850,7 @@
- Be sure that _all_ stuff is compiled with -fno-strict-aliasing
- Enable FLAGS even for all trees
- Make aclocal.m4 of Omni more upto date
-* Mon Jan 19 2004 meissner(a)suse.de
+* Sun Jan 18 2004 meissner(a)suse.de
- Fixed some losssage from last autoconf upgrade by removing
AC_OUTPUT for directories that are not present.
* Wed Jan 14 2004 werner(a)suse.de
@@ -2076,7 +2098,7 @@
+ eplaseren-1.0.4 adapted to ghostscript 6.51
+ samsung-gdi with renaming DEVICE from `gdi' to `samsunggdi'
- Fix make.catalog and make.lost to use gs_serv instead of gs_both
-* Wed Jan 30 2002 sndirsch(a)suse.de
+* Tue Jan 29 2002 sndirsch(a)suse.de
- reverted URW changes; /usr/X11R6/lib/X11/fonts/URW is now a link
again to /usr/share/ghostscript/fonts; problems with .gsf files
now fixed in freetype2 lib
@@ -2112,7 +2134,7 @@
* Tue Aug 14 2001 werner(a)suse.de
- Disable readline option due this one leads to chrashes
if inlined graphic is used.
-* Tue Aug 14 2001 mfabian(a)suse.de
+* Mon Aug 13 2001 mfabian(a)suse.de
- activated the entries for the CID-keyed fonts which were
commented out in Fontmap.CID because they crashed gs 5.50.
gs 6.51 handles this fine, we can now use these entries.
@@ -2137,7 +2159,7 @@
the new original gdevcd8.c.
- Rename packages into long name versions
- Make it work
-* Tue May 08 2001 mfabian(a)suse.de
+* Mon May 07 2001 mfabian(a)suse.de
- bzip2 most sources
* Thu May 03 2001 werner(a)suse.de
- Update hpijs drvire from 0.93 to 0.95
@@ -2223,9 +2245,9 @@
- added Provides/Requires ghostscript_any ghostscript_x11
* Mon Sep 13 1999 bs(a)suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
-* Fri Jul 09 1999 werner(a)suse.de
+* Thu Jul 08 1999 werner(a)suse.de
- fix png.h path
-* Sat Jun 19 1999 werner(a)suse.de
+* Fri Jun 18 1999 werner(a)suse.de
- Backport of a bug fix for 5.50
* Fri Apr 16 1999 werner(a)suse.de
- last character is ; at the end of a font declaration
@@ -2259,20 +2281,20 @@
possible resolutions for bjc800 are 150/300/600
* Tue Aug 04 1998 werner(a)suse.de
- Backport some bug fixes of gs5.10
-* Fri Jul 10 1998 werner(a)suse.de
+* Thu Jul 09 1998 werner(a)suse.de
- Fix ps2epsi exploit
* Mon Jul 06 1998 werner(a)suse.de
- New hp850 driver: hp8xx (including HP 855, 870 670, 690, 890,
1100, and 1600)
- Use shared libraries vor png and zlib.
-* Thu Jun 18 1998 werner(a)suse.de
+* Wed Jun 17 1998 werner(a)suse.de
- Change from Aladdin 4.03 to GNU 40.3
- Some Bug fixes
- NewNew driver hl7x0 for Brother HL720 and HL730
* Fri May 15 1998 werner(a)suse.de
- Update the hpdj drivers (2.4)
- Add gdev820c (0.1.3, 0.2 may unstable)
-* Tue Feb 24 1998 werner(a)suse.de
+* Mon Feb 23 1998 werner(a)suse.de
- Update hpdj driver to version 2.3
- Fix path in manual pages
- Use 24 bit color depth for cdeskjet
++++++ ghostscript-mini.spec ++++++
--- /var/tmp/diff_new_pack.i25469/_old 2009-01-08 18:04:47.000000000 +0100
+++ /var/tmp/diff_new_pack.i25469/_new 2009-01-08 18:04:47.000000000 +0100
@@ -1,10 +1,17 @@
#
# spec file for package ghostscript-mini (Version 8.62)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
@@ -52,7 +59,7 @@
Summary: SuSE internal replacement for ghostscript-library and ghostscript-any (Ghostscript)
%endif
Version: 8.62
-Release: 21
+Release: 40
License: GPL v2 or later
Source0: ghostscript-8.62.tar.bz2
Source1: ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/current/ghostscript-fonts-st…
@@ -302,7 +309,7 @@
%package -n libgimpprint
License: GPL v2 or later
Version: 4.2.7
-Release: 272
+Release: 302
Summary: Gimp-Print libraries
Group: Development/Libraries/C and C++
@@ -318,7 +325,7 @@
%package -n libgimpprint-devel
License: GPL v2 or later
Version: 4.2.7
-Release: 272
+Release: 302
PreReq: %install_info_prereq
Requires: libgimpprint = %{version}
Requires: glibc-devel
@@ -626,6 +633,8 @@
--with-gnu-ld
CFLAGS="$SAVE_CFLAGS"
unset SAVE_CFLAGS
+ find Oki*/ -name '*.xml' -print0 | xargs -0r sed -ri '\@<DriverName>.*</DriverName>@ { s/Okidata/Oki/; }'
+ find HPL*/ -name '*.xml' -print0 | xargs -0r sed -ri '\@<DriverName>.*</DriverName>@ { s/HP.LaserJet/HP/; }'
popd
#
# Remark: Do never add -j here!
@@ -660,12 +669,15 @@
sed -ri '/^\*(Model|Nick|ShortNick)Name:/{ s/(_|\( *| *\))//g; }' $line
fi
case "$line" in
- */HP_LaserJet-HP_LaserJet_5Si_5Si_Mx_5Si_Mopier-omni-cups.ppd)
+ */HP*-HP_LaserJet_5Si_5Si_Mx_5Si_Mopier-omni-cups.ppd)
sed -ri '/^\*ShortNickName:/{ s/ *Mopier//; }' $line
;;
- */Okidata*)
+ */Oki*)
sed -ri '/^\*Manufacturer:/{ s/Okidata/Oki/; }' $line
;;
+ */HP*)
+ sed -ri '/^\*Manufacturer:/{ s/HP_LaserJet/HP/; }' $line
+ ;;
esac
gzip -9f $line
done
@@ -839,6 +851,10 @@
install -m 0444 docs/* %{buildroot}%{_datadir}/ghostscript/%{gsver}/doc/Omni/
ln -sf %{_datadir}/ghostscript/%{gsver}/doc/Omni \
%{buildroot}%{_defaultdocdir}/ghostscript-omni/Omni
+%if %suse_version >= 1030
+ mkdir %{buildroot}/etc/ld.so.conf.d
+ echo %{_libdir}/ghostscript/Omni > %{buildroot}/etc/ld.so.conf.d/ghostscript-omni.conf
+%endif
popd
%find_lang gimp-print
%endif
@@ -1076,6 +1092,9 @@
%dir %{_libdir}/ghostscript/Omni
%{_libdir}/cups/filter/CUPSToOmni
%{_libdir}/ghostscript/Omni/*.so*
+%if %suse_version >= 1030
+%config /etc/ld.so.conf.d/ghostscript-omni.conf
+%endif
%{_datadir}/cups/model/omni
%doc %{_defaultdocdir}/ghostscript-omni
++++++ Omni-0.9.2.dif.bz2 ++++++
--- /var/tmp/diff_new_pack.i25469/_old 2009-01-08 18:04:49.000000000 +0100
+++ /var/tmp/diff_new_pack.i25469/_new 2009-01-08 18:04:49.000000000 +0100
@@ -200,6 +200,19 @@
if (!fValid)
{
DebugOutput::getErrorStream () << "DeviceDither::ditherLibraryValid: Error this function must exist!" << std::endl;
+--- Omni/DeviceFontSandBox/XmlFile.cpp
++++ Omni/DeviceFontSandBox/XmlFile.cpp 2008-11-10 17:50:02.505243209 +0100
+@@ -100,8 +100,8 @@ XmlFile::~XmlFile ()
+ //
+ if (fileName)
+ {
+- delete fileName;
+- fileName = 0;
++ delete [] fileName;
++ fileName = (char*)0;
+ }
+
+ }
--- Omni/DeviceInstance.cpp
+++ Omni/DeviceInstance.cpp 2007-11-06 14:41:35.446578000 +0100
@@ -409,7 +409,7 @@ outputSelf ()
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package f-spot for openSUSE:Factory
checked in at Thu Jan 8 18:04:58 CET 2009.
--------
--- GNOME/f-spot/f-spot.changes 2008-12-17 22:42:03.000000000 +0100
+++ /mounts/work_src_done/STABLE/f-spot/f-spot.changes 2008-12-31 17:37:10.000000000 +0100
@@ -1,0 +2,6 @@
+Wed Dec 31 10:32:04 CST 2008 - gburt(a)suse.de
+
+- Fix crashes for users migrating from old versions and users
+ with zero photos (bnc#462298 and bnc#462294)
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
bnc462294.patch
bnc462298.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ f-spot.spec ++++++
--- /var/tmp/diff_new_pack.jp9883/_old 2009-01-08 18:03:40.000000000 +0100
+++ /var/tmp/diff_new_pack.jp9883/_new 2009-01-08 18:03:40.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package f-spot (Version 0.5.0.3)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -30,7 +30,7 @@
AutoReqProv: on
Requires: dcraw
Version: 0.5.0.3
-Release: 8
+Release: 9
Summary: GNOME Photo Management Application
Url: http://www.gnome.org/projects/f-spot/
Source: %{name}-%{version}.tar.bz2
@@ -46,6 +46,10 @@
Patch8: hashjob.patch
Patch9: import-nautilus.patch
Patch10: bnc_449687.patch
+# PATCH-FIX-UPSTREAM bnc462298.patch bnc462298
+Patch11: bnc462298.patch
+# PATCH-FIX-UPSTREAM bnc462294.patch bnc462294
+Patch12: bnc462294.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: mono-core nautilus-cd-burner dbus-1-x11 libgphoto2 sqlite2
Provides: %{name}-devel = %{version}-%{release}
@@ -87,6 +91,8 @@
%patch8 -p1
%patch9 -p1
%patch10 -p1
+%patch11 -p0
+%patch12 -p0
%build
autoreconf -f -i
@@ -134,6 +140,9 @@
%define __find_provides env sh -c 'filelist=($(grep -v -E "%{_libdir}/%{name}/extensions|Mono.Addins")) && { printf "%s\\n" "${filelist[@]}" | /usr/lib/rpm/find-provides && printf "%s\\n" "${filelist[@]}" | /usr/bin/mono-find-provides ; } | sort | uniq'
%changelog
+* Wed Dec 31 2008 gburt(a)suse.de
+- Fix crashes for users migrating from old versions and users
+ with zero photos (bnc#462298 and bnc#462294)
* Wed Dec 17 2008 mauro(a)suse.de
- Added patch bnc_449687.patch to fix bnc#449687
* Sat Dec 06 2008 mauro(a)suse.de
@@ -172,7 +181,7 @@
for newly imported images. An extension for computing hashes on
existing images will be available.
+ updated translations
-* Wed Oct 01 2008 mboman(a)suse.de
+* Tue Sep 30 2008 mboman(a)suse.de
- Update to version 0.5.0.1:
+ bugfix release to workaround a bug in gdk-pixbuf
+ Translation updates
@@ -233,11 +242,11 @@
- Add f-spot-gthtml-checks.patch.
* Tue Mar 25 2008 rodrigo(a)suse.de
- Tag patches and rename one that didn't follow naming conventions
-* Tue Mar 25 2008 ro(a)suse.de
+* Mon Mar 24 2008 ro(a)suse.de
- added ndesk-dbus-glib-devel to buildreq
* Thu Mar 06 2008 maw(a)suse.de
- Fix the build when against newer versions of intltool.
-* Fri Feb 29 2008 jpr(a)suse.de
+* Thu Feb 28 2008 jpr(a)suse.de
- Disable parallel build, seems to break things
* Thu Feb 28 2008 jpr(a)suse.de
- Update to 0.4.2
@@ -288,20 +297,20 @@
* Tue Aug 07 2007 mauro(a)suse.de
- Split out a -lang subpackage
- Add %%fdupes stuff
-* Fri Aug 03 2007 mauro(a)suse.de
+* Thu Aug 02 2007 mauro(a)suse.de
- Updated to 0.4.0
- bugfixes for #397171, #418583, #461708, #440001, #460125.
- Added Portuguese (pt) to ALL_LINGUAS
* Fri Jul 20 2007 sbrabec(a)suse.cz
- Explicitly added needed libexif-devel to BuildRequires.
-* Thu May 24 2007 stbinner(a)suse.de
+* Wed May 23 2007 stbinner(a)suse.de
- remove X-SuSE-translate from .desktop file
* Tue May 22 2007 maw(a)suse.de
- Add libusb-devel as a build requirement.
* Thu Mar 08 2007 sbrabec(a)suse.cz
- Removed obsolete hicolor icon symlink (#248676).
- Fixed BuildRequires.
-* Tue Mar 06 2007 maw(a)suse.de
+* Mon Mar 05 2007 maw(a)suse.de
- Update to version 0.3.5
- Remove upstreamed f-spot-ppc.patch.
* Fri Feb 02 2007 sbrabec(a)suse.cz
@@ -336,7 +345,7 @@
- collection of various bugfixes
* Mon Sep 11 2006 jhargadon(a)suse.de
- added missing directory ownership in the specfile
-* Tue Aug 29 2006 lewing(a)suse.de
+* Mon Aug 28 2006 lewing(a)suse.de
- sync to upstream 0.2.0
- fixes from f-spot 0.2.0
- Initial gnome-vfs --view support.
@@ -368,7 +377,7 @@
- Update translations for cs, hu
* Thu Jun 22 2006 gekker(a)suse.de
- Fix 0 byte importugly patch (#186718)
-* Mon Jun 19 2006 lewing(a)suse.de
+* Sun Jun 18 2006 lewing(a)suse.de
- Fix startup notification for f-spot in the remote control case. (#185212)
- Add HigMessageDialog.cs to POTFILES.in (#181163)
* Fri Jun 16 2006 gekker(a)suse.de
@@ -398,7 +407,7 @@
- Avoid long intervals with no refresh in slideshow. Fixes 177745.
- Handle errors while attempting to adjust colors. Fixes 178415.
- Avoid raising the main window above the fullscreen window. Fixes 178358.
-* Wed May 24 2006 lewing(a)suse.de
+* Tue May 23 2006 lewing(a)suse.de
- Make the importer handle cancelation properly. Fixes 173643.
- When copying files unset the readonly flag. Fixes 177738.
* Fri May 19 2006 gekker(a)suse.de
@@ -408,7 +417,7 @@
- Improve error handling in fix for 173681.
* Thu May 18 2006 lewing(a)suse.de
- Improve missing file handlin to fix 173606.
-* Wed May 17 2006 lewing(a)suse.de
+* Tue May 16 2006 lewing(a)suse.de
- Start import immediately if path is passed on the command line. Fixes 171034.
* Tue May 16 2006 lewing(a)suse.de
- Trap errors when syncing metadata to file in changed handler. Fixes 175505, 173687.
@@ -416,20 +425,20 @@
- Handle missing selection. Fixes 174715.
* Sun May 14 2006 lewing(a)suse.de
- Fix bug in f-spot-copy patch that fixes 175581.
-* Sat May 13 2006 lewing(a)suse.de
+* Fri May 12 2006 lewing(a)suse.de
- Handle errors while editing galleries. Fixes 174707.
- Apply new tags in import. Fixes 174709.
* Thu May 11 2006 rml(a)suse.de
- Add Requires for dbus-1-x11, as f-spot needs the session bus
(Novell bug #174865)
-* Wed May 10 2006 lewing(a)suse.de
+* Tue May 09 2006 lewing(a)suse.de
- Register register the dbus service as soon as possible. Fixes 17335
* Tue May 09 2006 lewing(a)suse.de
- Handle errors while editing missing files. Fixes 173680, 172302
* Fri May 05 2006 lewing(a)suse.de
- Fix loupe dllimport statements, fixes 168265.
- Do url escaping ourselves since mono changed. Fixes 172466.
-* Thu May 04 2006 lewing(a)suse.de
+* Wed May 03 2006 lewing(a)suse.de
- Fix 161671 by handling corrupt db files with more grace.
- Fix spec file to apply patch5
* Mon Mar 20 2006 lewing(a)suse.de
@@ -456,13 +465,13 @@
- Remove unneeded Requires and BuildRequires.
* Mon Jan 30 2006 gekker(a)suse.de
- Update to version 0.1.8
-* Fri Jan 27 2006 mls(a)suse.de
+* Thu Jan 26 2006 mls(a)suse.de
- converted neededforbuild to BuildRequires
* Wed Jan 25 2006 meissner(a)suse.de
- fix for PLUS.
* Tue Jan 17 2006 meissner(a)suse.de
- use -fstack-protector.
-* Tue Jan 17 2006 jpr(a)suse.de
+* Mon Jan 16 2006 jpr(a)suse.de
- Update to version 0.1.7
* Fri Jan 13 2006 gekker(a)suse.de
- Fixup nfb and Requires for new gtk-sharp2 packaging
@@ -472,7 +481,7 @@
- Update to version 0.1.5
* Thu Dec 08 2005 gekker(a)suse.de
- Update to version 0.1.4
-* Wed Nov 16 2005 jpr(a)suse.de
+* Tue Nov 15 2005 jpr(a)suse.de
- Patch against new mono 1.1.10 errors.
* Thu Oct 13 2005 ro(a)suse.de
- fixed category in desktop files
@@ -484,7 +493,7 @@
- Require nautilus-cd-burner (#116721).
* Wed Sep 07 2005 gekker(a)suse.de
- Add dbus to requires (114493)
-* Mon Sep 05 2005 aj(a)suse.de
+* Sun Sep 04 2005 aj(a)suse.de
- Update to version 0.1.2:
- Use dbus to contact running instances
- improve error handling.
@@ -523,7 +532,7 @@
* Fri Mar 04 2005 gekker(a)suse.de
- Update to version 0.0.10
- Remove upstremed desktop patch
-* Sat Feb 26 2005 gekker(a)suse.de
+* Fri Feb 25 2005 gekker(a)suse.de
- Add a patch to install a .desktop file and install the icon
* Mon Feb 21 2005 gekker(a)suse.de
- Update to 0.0.9
@@ -538,9 +547,9 @@
* Tue Feb 01 2005 gekker(a)suse.de
- Fix the 64-bi warning patch
- Add f-spot-void-warn.patch
-* Tue Feb 01 2005 ro(a)suse.de
+* Mon Jan 31 2005 ro(a)suse.de
- use new alias "mono-devel-packages" in neededforbuild
-* Tue Feb 01 2005 gekker(a)suse.de
+* Mon Jan 31 2005 gekker(a)suse.de
- Fix build with new mono-packages.
- Add f-spot-64bit-warn.patch
* Sat Jan 29 2005 meissner(a)suse.de
++++++ bnc462294.patch ++++++
Index: src/Updater.cs
===================================================================
--- src/Updater.cs (revision 4681)
+++ src/Updater.cs (working copy)
@@ -322,6 +322,7 @@
// This is kind of hacky but should be a lot faster on
// large photo databases
+ JobStore.CreateTable (db.Database);
Execute (string.Format ("INSERT INTO jobs (job_type, job_options, run_at, job_priority) " +
"SELECT '{0}', id, {1}, {2} " +
"FROM photos ",
--- src/JobStore.cs 2008-10-18 05:54:25.000000000 -0500
+++ src/JobStore.cs.patched 2008-12-31 10:29:23.000000000 -0600
@@ -86,9 +86,13 @@
public class JobStore : DbStore {
- private void CreateTable ()
+ internal static void CreateTable (QueuedSqliteDatabase database)
{
- Database.ExecuteNonQuery (
+ if (database.TableExists ("jobs")) {
+ return;
+ }
+
+ database.ExecuteNonQuery (
@"CREATE TABLE jobs (
id INTEGER PRIMARY KEY NOT NULL,
job_type TEXT NOT NULL,
@@ -199,7 +203,7 @@
public JobStore (QueuedSqliteDatabase database, bool is_new) : base (database, true)
{
if (is_new || !Database.TableExists ("jobs")) {
- CreateTable ();
+ CreateTable (database);
} else {
LoadAllItems ();
}
++++++ bnc462298.patch ++++++
Index: src/Widgets/Filmstrip.cs
===================================================================
--- src/Widgets/Filmstrip.cs (revision 4487)
+++ src/Widgets/Filmstrip.cs (revision 4488)
@@ -372,6 +372,9 @@
if (evnt.Window != GdkWindow)
return true;
+ if (selection.Collection.Count == 0)
+ return true;
+
if (extendable && Allocation.Width >= BackgroundPixbuf.Width + (2 * x_offset) + BackgroundTile.Width)
BackgroundPixbuf = null;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package gdome2 for openSUSE:Factory
checked in at Thu Jan 8 18:04:29 CET 2009.
--------
--- GNOME/gdome2/gdome2.changes 2007-07-17 11:26:04.000000000 +0200
+++ /mounts/work_src_done/STABLE/gdome2/gdome2.changes 2008-12-29 14:17:22.000000000 +0100
@@ -1,0 +2,5 @@
+Mon Dec 29 14:16:41 CET 2008 - coolo(a)suse.de
+
+- fixed gdome-config --libs
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
gdome2-glib1.m4
New:
----
gdome2-0.8.1.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gdome2.spec ++++++
--- /var/tmp/diff_new_pack.o10382/_old 2009-01-08 18:03:54.000000000 +0100
+++ /var/tmp/diff_new_pack.o10382/_new 2009-01-08 18:03:54.000000000 +0100
@@ -1,44 +1,48 @@
#
# spec file for package gdome2 (Version 0.8.1)
#
-# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# This file and all modifications and additions to the pristine
-# package are under the same license as the package itself.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
+
Name: gdome2
Summary: Gnome DOM Engine
-License: GPL v2 or later, LGPL v2 or later
+License: GPL v2 or later; LGPL v2.1 or later
Group: System/Libraries
-Autoreqprov: on
+AutoReqProv: on
Version: 0.8.1
-Release: 3
-URL: http://gdome2.cs.unibo.it/
+Release: 106
+Url: http://gdome2.cs.unibo.it/
Source: %{name}-%{version}.tar.bz2
Patch: gdome2-pkgconfig.patch
-# glib.m4 from deprecated glib1 is required only for autoreconf:
-Source1: gdome2-glib1.m4
+Patch1: %{name}-%{version}.diff
BuildRequires: glib2-devel libxml2-devel licenses pkg-config
Requires: licenses
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
-The Document Object Model is a platform and language-neutral interface
-that will allow programs and scripts to dynamically access and update
-the content, structure and style of documents.
-
-A DOM implementation (also called a host implementation) is that piece
-of software which takes a parsed XML or HTML document and makes it
-available for processing via the DOM interfaces. A browser contains a
-host implementation, for example.
-
-Here some key points about libgdome:
-
-* Libgdome is a DOM level2 Implementation.
+The Document Object Model is a platform and language-neutral
+ interface that will allow programs and scripts to dynamically
+ access and update the content, structure and style of documents.
+ A DOM implementation (also called a host implementation) is that
+ piece of software which takes a parsed XML or HTML document and
+ makes it available for processing via the DOM interfaces.
+ Browsers contain a host implementation, for example. Here some
+ key points about libgdome: * Libgdome is a DOM level2
+ implementation.
* Libgdome supports "Core" and "XML" modules (DOM level2 Core
Recommendation).
@@ -69,23 +73,21 @@
T.J. Mather <tjmather(a)tjmather.com>
%package devel
+License: GPL v2 or later; LGPL v2.1 or later
Group: System/Libraries
Requires: %{name} = %{version} glib2-devel libxml2-devel
Summary: Gnome DOM Engine
%description devel
-The Document Object Model is a platform and language-neutral interface
-that will allow programs and scripts to dynamically access and update
-the content, structure and style of documents.
-
-A DOM implementation (also called a host implementation) is that piece
-of software which takes a parsed XML or HTML document and makes it
-available for processing via the DOM interfaces. A browser contains a
-host implementation, for example.
-
-Here some key points about libgdome:
-
-* Libgdome is a DOM level2 Implementation.
+The Document Object Model is a platform and language-neutral
+ interface that will allow programs and scripts to dynamically
+ access and update the content, structure and style of documents.
+ A DOM implementation (also called a host implementation) is that
+ piece of software which takes a parsed XML or HTML document and
+ makes it available for processing via the DOM interfaces.
+ Browsers contain a host implementation, for example. Here some
+ key points about libgdome: * Libgdome is a DOM level2
+ implementation.
* Libgdome supports "Core" and "XML" modules (DOM level2 Core
Recommendation).
@@ -118,9 +120,7 @@
%prep
%setup -q
%patch
-if ! test -f /usr/share/aclocal/glib.m4 ; then
- cat %{S:1} >>acinclude.m4
-fi
+%patch1
%build
autoreconf -f -i
@@ -161,20 +161,22 @@
%doc %{_mandir}/man1/gdome-config.1*
%changelog
-* Tue Jul 17 2007 - sbrabec(a)suse.cz
+* Mon Dec 29 2008 coolo(a)suse.de
+- fixed gdome-config --libs
+* Tue Jul 17 2007 sbrabec(a)suse.cz
- Fixed licenses linking.
-* Sun Jul 15 2007 - lrupp(a)suse.de
+* Sat Jul 14 2007 lrupp(a)suse.de
- remove wrong libgdome0 name from filesection
-* Fri Jul 13 2007 - sbrabec(a)suse.cz
+* Fri Jul 13 2007 sbrabec(a)suse.cz
- Updated to version 0.8.1:
* fixed dependencies
* native glib2 support
-* Tue Feb 13 2007 - sbrabec(a)suse.cz
+* Tue Feb 13 2007 sbrabec(a)suse.cz
- Do not build unusable static libraries (#238552#c17).
-* Fri Jan 12 2007 - sbrabec(a)suse.cz
+* Fri Jan 12 2007 sbrabec(a)suse.cz
- Prefix changed to /usr.
-* Mon Dec 04 2006 - sbrabec(a)suse.cz
+* Mon Dec 04 2006 sbrabec(a)suse.cz
- Call autoreconf.
- Patch to declare glib2 support.
-* Mon Oct 23 2006 - sbrabec(a)suse.cz
+* Mon Oct 23 2006 sbrabec(a)suse.cz
- New SuSE package, version 0.8.0.
++++++ gdome2-0.8.1.diff ++++++
--- configure.in.orig 2008-12-29 14:05:27.000000000 +0100
+++ configure.in 2008-12-29 14:05:42.000000000 +0100
@@ -59,23 +59,11 @@
dnl
GLIB_1="no"
-AC_ARG_ENABLE(glib-1,
- [ --enable-glib-1=[no] Specify if you want to use glib 1],
- GLIB_1=yes
-)
-if test "x$GLIB_1" = "xyes"
-then
- PKG_CHECK_MODULES(GLIB, glib)
- GLIB_REQUIRED="glib"
- GLIB_MIN_VERSION=1.2.10
- AM_PATH_GLIB($GLIB_MIN_VERSION,,AC_MSG_ERROR(Could not find GLIB (see config.log for details).))
-else
PKG_CHECK_MODULES(GLIB, glib-2.0)
GLIB_REQUIRED="glib-2.0"
GLIB_MIN_VERSION=2.2.0
AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,,AC_MSG_ERROR(Could not find GLIB (see config.log for details).))
-fi
AC_SUBST(GLIB_MIN_VERSION)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_REQUIRED)
--- gdome-config.in.orig 2008-12-29 14:08:40.000000000 +0100
+++ gdome-config.in 2008-12-29 14:10:21.000000000 +0100
@@ -83,8 +83,8 @@
shift
done
-the_libs="$the_libs -L${exec_prefix}/lib -lgdome `@GLIB_CONFIG@ --libs` `@XML_CONFIG@ --libs`"
-the_flags="$the_flags -I${prefix}/include -I${prefix}/include/libgdome `@GLIB_CONFIG@ --cflags` `@XML_CONFIG@ --cflags`"
+the_libs="$the_libs -L${exec_prefix}/lib -lgdome `pkg-config --libs glib-2.0 libxml-2.0`"
+the_flags="$the_flags -I${prefix}/include -I${prefix}/include/libgdome `pkg-config --cflags glib-2.0 libxml-2.0`"
if $cflags; then
all_flags="$the_flags"
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package evolution-data-server for openSUSE:Factory
checked in at Thu Jan 8 18:03:29 CET 2009.
--------
--- GNOME/evolution-data-server/evolution-data-server.changes 2008-12-04 12:09:46.000000000 +0100
+++ /mounts/work_src_done/STABLE/evolution-data-server/evolution-data-server.changes 2009-01-08 11:48:34.764372000 +0100
@@ -1,0 +2,33 @@
+Wed Jan 7 06:57:24 CET 2009 - abharath(a)suse.de
+
+- Patches added
+ + bgo#559153 - bgo-559153-eds-migration.patch - Migration patches
+ in EDS.
+ + bnc#440265 - bnc-440265-gw-contacts.patch - Groupwise Address
+ Book Contact Lists Are Not Saved.
+ + bnc#442507 - bnc-442507-imap-parts-sync.patch - Folder index
+ creation after crash takes ages.
+ + bnc#455939 - bnc-455939-eds-deadlock.patch - Disconnecting from
+ the network caused e-d-s deadlock ...
+ + bnc#443544 - bnc-443544-eds-free-busy.patch - Evolution busy
+ search on GW resource object does not display
+ unavailable times.
+ + bnc#209514 - bnc-209514-gw-missing-mails.patch - Evolution
+ Groupwise missing mails.
+ + bnc#446290 - bnc-446290-gw-counts-issues.patch - GW Parallel
+ clients & (un)read counts problems.
+ + bnc#458127 - bnc-458127-keyboard-shortcut-port.patch - No
+ keyboard short cut for SOAP port in Evolution.
+ + bnc#462575 - bnc-462575-gw-refresh-folders.patch - "Check for
+ new messages in all folders" setting for GW SOAP.
+ + bnc#448079 - bnc-448079-gw-memory-issues.patch - evolution
+ 2.24.1.1 is very unstable
+ + bnc#463095 - bnc-463095-content-info-from-db.patch - Evolution
+ hangs on "Generating message list..."
+ + bnc#439986 - bnc-439986-show-time-free.patch - Show Time As Free
+ Option Doesn't Immediately Refresh Calendar.
+ + bnc#463653 - bnc-463653-msg-list-meeting-time.patch - Evolution
+ displays the wrong time for an appointment in the
+ message list.
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
bgo-559153-eds-migration.patch
bnc-209514-gw-missing-mails.patch
bnc-439986-show-time-free.patch
bnc-440265-gw-contacts.patch
bnc-442507-imap-parts-sync.patch
bnc-443544-eds-free-busy.patch
bnc-446290-gw-counts-issues.patch
bnc-448079-gw-memory-issues.patch
bnc-455939-eds-deadlock.patch
bnc-458127-keyboard-shortcut-port.patch
bnc-462575-gw-refresh-folders.patch
bnc-463095-content-info-from-db.patch
bnc-463653-msg-list-meeting-time.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution-data-server.spec ++++++
--- /var/tmp/diff_new_pack.dC7544/_old 2009-01-08 18:03:19.000000000 +0100
+++ /var/tmp/diff_new_pack.dC7544/_new 2009-01-08 18:03:19.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package evolution-data-server (Version 2.24.1.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -57,7 +57,7 @@
%endif
Summary: Evolution Data Server
Version: 2.24.1.1
-Release: 4
+Release: 5
Source0: ftp://ftp.gnome.org/pub/gnome/sources/evolution-data-server/2.24/%{name}-%{…
# PATCH-FIX-UPSTREAM evolution-data-server-1.11.5-cert-auth-complete.patch bgo253574 -- Fix has been submitted to bgo.
Patch3: evolution-data-server-1.11.5-cert-auth-complete.patch
@@ -71,7 +71,7 @@
Patch7: dice-eds-changes.patch
# PATCH-FIX-UPSTREAM bnc-431133-unread-mail-empty.patch bnc431133 bgo546637 sragavan(a)novell.com -- Fix has been submitted upstream.
Patch8: bnc-431133-unread-mail-empty.patch
-# PATCH-FIX-UPSTREAM bnc-435599-junk-contacts-created.patch bnc435599 shashish(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-435599-junk-contacts-created.patch bnc435599 shashish(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch9: bnc-435599-junk-contacts-created.patch
# PATCH-FIX-UPSTREAM bnc-441347-imap-performance-fix.patch bnc441347 bgo558883 -- Fix has been submitted upstream.
Patch10: bnc-441347-imap-performance-fix.patch
@@ -87,22 +87,48 @@
Patch15: bnc-446373-fix-refresh-vfolderquery.patch
# PATCH-FIX-UPSTREAM bnc-210959-eds-accept_ics.patch bnc210959 pchenthill(a)novell.com -- Patch yet to be pushed upstream.
Patch16: bnc-210959-eds-accept_ics.patch
-# PATCH-FIX-UPSTREAM bnc-438730-loosing-more-state.patch bnc438730 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-438730-loosing-more-state.patch bnc438730 sragavan(a)novell.com -- Fix has been submitted upstream.
Patch17: bnc-438730-loosing-more-state.patch
# PATCH-FEATURE-OPENSUSE evolution-data-server-shared-nss-db.patch hpj(a)novell.com -- Migrate to shared NSS database.
Patch18: evolution-data-server-shared-nss-db.patch
# PATCH-FIX-UPSTREAM eds-comp-percent.diff pchenthill(a)suse.de -- Wrapper function to get percent as int. Needed for sharepoint connector. Will be pushed upstream.
Patch19: eds-comp-percent.diff
-# PATCH-FIX-UPSTREAM bnc-440265-list-not-saved.patch bnc440265 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-440265-list-not-saved.patch bnc440265 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch20: bnc-440265-list-not-saved.patch
-# PATCH-FIX-UPSTREAM bnc-447121-gw-memory-crasher.patch bnc447121 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-447121-gw-memory-crasher.patch bnc447121 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch21: bnc-447121-gw-memory-crasher.patch
-# PATCH-FIX-UPSTREAM bnc-449916-task-memo-description.patch bnc449916 abharath(a)suse.de -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-449916-task-memo-description.patch bnc449916 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
Patch22: bnc-449916-task-memo-description.patch
# PATCH-FIX-UPSTREAM bgo-562228-eds-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
Patch23: bgo-562228-eds-mailbox-field.patch
-# PATCH-FIX-UPSTREAM bnc-435632-moving-contacts-crash.patch bnc435632 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-435632-moving-contacts-crash.patch bnc435632 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch24: bnc-435632-moving-contacts-crash.patch
+# PATCH-FIX-UPSTREAM bgo-559153-eds-migration.patch bgo559153 psankar(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch25: bgo-559153-eds-migration.patch
+# PATCH-FIX-UPSTREAM bnc-440265-gw-contacts.patch bnc440265 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
+Patch26: bnc-440265-gw-contacts.patch
+# PATCH-FIX-UPSTREAM bnc-442507-imap-parts-sync.patch bnc442507 -- Patch is part of GNOME 2.25.5 release.
+Patch27: bnc-442507-imap-parts-sync.patch
+# PATCH-FIX-UPSTREAM bnc-455939-eds-deadlock.patch bnc455939 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
+Patch28: bnc-455939-eds-deadlock.patch
+# PATCH-FIX-UPSTREAM bnc-443544-eds-free-busy.patch bnc443544 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch29: bnc-443544-eds-free-busy.patch
+# PATCH-FIX-UPSTREAM bnc-209514-gw-missing-mails.patch bnc209514 psankar(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch30: bnc-209514-gw-missing-mails.patch
+# PATCH-FIX-UPSTREAM bnc-446290-gw-counts-issues.patch bnc446290 psankar(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch31: bnc-446290-gw-counts-issues.patch
+# PATCH-FIX-UPSTREAM bnc-458127-keyboard-shortcut-port.patch bnc458127 shashish(a)novell.com -- Patch is part of GNOME 2.25.5 release.
+Patch32: bnc-458127-keyboard-shortcut-port.patch
+# PATCH-FIX-UPSTREAM bnc-462575-gw-refresh-folders.patch bnc462575 sbrys(a)novell.com -- Patch is part of GNOME 2.25.5 release.
+Patch33: bnc-462575-gw-refresh-folders.patch
+# PATCH-FIX-UPSTREAM bnc-448079-gw-memory-issues.patch bnc448079 psankar(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch34: bnc-448079-gw-memory-issues.patch
+# PATCH-FIX-UPSTREAM bnc-463095-content-info-from-db.patch bnc463095 sbrys(a)novell.com -- Yet to be pushed upstream.
+Patch35: bnc-463095-content-info-from-db.patch
+# PATCH-FIX-UPSTREAM bnc-439986-show-time-free.patch bnc439986 pchenthill(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch36: bnc-439986-show-time-free.patch
+# PATCH-FIX-UPSTREAM bnc-463653-msg-list-meeting-time.patch bnc463653 pchenthill(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch37: bnc-463653-msg-list-meeting-time.patch
# PATCH-FIX-OPENSUSE eds-core-mapi-changes.diff msuman(a)suse.de -- This patch contains changes in the core code base for the MAPI provider.
Patch100: eds-core-mapi-changes.diff
Url: http://www.gnome.org
@@ -194,6 +220,19 @@
%patch22
%patch23
%patch24
+%patch25
+%patch26
+%patch27
+%patch28
+%patch29
+%patch30
+%patch31
+%patch32
+%patch33
+%patch34
+%patch35
+%patch36
+%patch37
%patch100 -p1
%build
@@ -266,6 +305,36 @@
%{_datadir}/gtk-doc/html/*
%changelog
+* Wed Jan 07 2009 abharath(a)suse.de
+- Patches added
+ + bgo#559153 - bgo-559153-eds-migration.patch - Migration patches
+ in EDS.
+ + bnc#440265 - bnc-440265-gw-contacts.patch - Groupwise Address
+ Book Contact Lists Are Not Saved.
+ + bnc#442507 - bnc-442507-imap-parts-sync.patch - Folder index
+ creation after crash takes ages.
+ + bnc#455939 - bnc-455939-eds-deadlock.patch - Disconnecting from
+ the network caused e-d-s deadlock ...
+ + bnc#443544 - bnc-443544-eds-free-busy.patch - Evolution busy
+ search on GW resource object does not display
+ unavailable times.
+ + bnc#209514 - bnc-209514-gw-missing-mails.patch - Evolution
+ Groupwise missing mails.
+ + bnc#446290 - bnc-446290-gw-counts-issues.patch - GW Parallel
+ clients & (un)read counts problems.
+ + bnc#458127 - bnc-458127-keyboard-shortcut-port.patch - No
+ keyboard short cut for SOAP port in Evolution.
+ + bnc#462575 - bnc-462575-gw-refresh-folders.patch - "Check for
+ new messages in all folders" setting for GW SOAP.
+ + bnc#448079 - bnc-448079-gw-memory-issues.patch - evolution
+ 2.24.1.1 is very unstable
+ + bnc#463095 - bnc-463095-content-info-from-db.patch - Evolution
+ hangs on "Generating message list..."
+ + bnc#439986 - bnc-439986-show-time-free.patch - Show Time As Free
+ Option Doesn't Immediately Refresh Calendar.
+ + bnc#463653 - bnc-463653-msg-list-meeting-time.patch - Evolution
+ displays the wrong time for an appointment in the
+ message list.
* Thu Dec 04 2008 abharath(a)suse.de
- Patches added
+ bnc#440265 - bnc-440265-list-not-saved.patch - Groupwise
++++++ bgo-559153-eds-migration.patch ++++++
Index: camel/camel-store.c
===================================================================
--- camel/camel-store.c (revision 9841)
+++ camel/camel-store.c (revision 9842)
@@ -322,6 +322,21 @@
}
if (!folder) {
+
+ if (flags & CAMEL_STORE_IS_MIGRATING) {
+ if ((store->flags & CAMEL_STORE_VTRASH) && strcmp(folder_name, CAMEL_VTRASH_NAME) == 0) {
+ if (store->folders)
+ camel_object_bag_abort(store->folders, folder_name);
+ return NULL;
+ }
+
+ if ((store->flags & CAMEL_STORE_VJUNK) && strcmp(folder_name, CAMEL_VJUNK_NAME) == 0) {
+ if (store->folders)
+ camel_object_bag_abort(store->folders, folder_name);
+ return NULL;
+ }
+ }
+
if ((store->flags & CAMEL_STORE_VTRASH) && strcmp(folder_name, CAMEL_VTRASH_NAME) == 0) {
folder = CS_CLASS(store)->get_trash(store, ex);
} else if ((store->flags & CAMEL_STORE_VJUNK) && strcmp(folder_name, CAMEL_VJUNK_NAME) == 0) {
Index: camel/camel-store.h
===================================================================
--- camel/camel-store.h (revision 9841)
+++ camel/camel-store.h (revision 9842)
@@ -115,6 +115,7 @@
#define CAMEL_STORE_FILTER_INBOX (1 << 2)
#define CAMEL_STORE_VJUNK (1 << 3)
#define CAMEL_STORE_PROXY (1 << 4)
+#define CAMEL_STORE_IS_MIGRATING (1 << 5)
struct _CamelDB;
Index: camel/providers/local/camel-local-folder.c
===================================================================
--- camel/providers/local/camel-local-folder.c (revision 9841)
+++ camel/providers/local/camel-local-folder.c (revision 9842)
@@ -289,7 +289,7 @@
}
folder->summary = (CamelFolderSummary *)CLOCALF_CLASS(lf)->create_summary(lf, lf->summary_path, lf->folder_path, lf->index);
- if (camel_local_summary_load((CamelLocalSummary *)folder->summary, forceindex, NULL) == -1) {
+ if (!(flags & CAMEL_STORE_IS_MIGRATING) && camel_local_summary_load((CamelLocalSummary *)folder->summary, forceindex, NULL) == -1) {
/* ? */
if (camel_local_summary_check((CamelLocalSummary *)folder->summary, lf->changes, ex) == 0) {
/* we sync here so that any hard work setting up the folder isn't lost */
Index: camel/camel-db.c
===================================================================
--- camel/camel-db.c (revision 9841)
+++ camel/camel-db.c (revision 9842)
@@ -47,6 +47,8 @@
static GStaticRecMutex trans_lock = G_STATIC_REC_MUTEX_INIT;
+static int write_mir (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex, gboolean delete_old_record);
+
static int
cdb_sql_exec (sqlite3 *db, const char* stmt, CamelException *ex)
{
@@ -812,13 +814,29 @@
return ret;
}
+
+int
+camel_db_write_fresh_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex)
+{
+ return write_mir (cdb, folder_name, record, ex, FALSE);
+}
+
+
int
camel_db_write_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex)
{
+ return write_mir (cdb, folder_name, record, ex, TRUE);
+}
+
+static int
+write_mir (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex, gboolean delete_old_record)
+{
int ret;
char *del_query;
char *ins_query;
+ /* FIXME: We should migrate from this DELETE followed by INSERT model to an INSERT OR REPLACE model as pointed out by pvanhoof */
+
/* NB: UGLIEST Hack. We can't modify the schema now. We are using msg_security (an unsed one to notify of FLAGGED/Dirty infos */
ins_query = sqlite3_mprintf ("INSERT INTO %Q VALUES (%Q, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %ld, %ld, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q, %Q )",
@@ -832,7 +850,8 @@
record->part, record->labels, record->usertags,
record->cinfo, record->bdata);
- del_query = sqlite3_mprintf ("DELETE FROM %Q WHERE uid = %Q", folder_name, record->uid);
+ if (delete_old_record)
+ del_query = sqlite3_mprintf ("DELETE FROM %Q WHERE uid = %Q", folder_name, record->uid);
#if 0
char *upd_query;
@@ -842,12 +861,14 @@
g_free (upd_query);
#else
- ret = camel_db_add_to_transaction (cdb, del_query, ex);
+ if (delete_old_record)
+ ret = camel_db_add_to_transaction (cdb, del_query, ex);
ret = camel_db_add_to_transaction (cdb, ins_query, ex);
#endif
- sqlite3_free (del_query);
+ if (delete_old_record)
+ sqlite3_free (del_query);
sqlite3_free (ins_query);
return ret;
@@ -1198,3 +1219,39 @@
CAMEL_DB_RELEASE_SQLITE_MEMORY;
return ret;
}
+
+int camel_db_start_in_memory_transactions (CamelDB *cdb, CamelException *ex)
+{
+ int ret;
+ char *cmd = sqlite3_mprintf ("ATTACH DATABASE ':memory:' AS %s", CAMEL_DB_IN_MEMORY_DB);
+
+ ret = camel_db_command (cdb, cmd, ex);
+ sqlite3_free (cmd);
+
+ cmd = sqlite3_mprintf ("CREATE TEMPORARY TABLE %Q ( uid TEXT PRIMARY KEY , flags INTEGER , msg_type INTEGER , read INTEGER , deleted INTEGER , replied INTEGER , important INTEGER , junk INTEGER , attachment INTEGER , msg_security INTEGER , size INTEGER , dsent NUMERIC , dreceived NUMERIC , subject TEXT , mail_from TEXT , mail_to TEXT , mail_cc TEXT , mlist TEXT , followup_flag TEXT , followup_completed_on TEXT , followup_due_by TEXT , part TEXT , labels TEXT , usertags TEXT , cinfo TEXT , bdata TEXT )", CAMEL_DB_IN_MEMORY_TABLE);
+ ret = camel_db_command (cdb, cmd, ex);
+ if (ret != 0 )
+ abort ();
+ sqlite3_free (cmd);
+
+ return ret;
+}
+
+int camel_db_flush_in_memory_transactions (CamelDB *cdb, const char * folder_name, CamelException *ex)
+{
+ int ret;
+ char *cmd = sqlite3_mprintf ("INSERT INTO %Q SELECT * FROM %Q", folder_name, CAMEL_DB_IN_MEMORY_TABLE);
+
+ ret = camel_db_command (cdb, cmd, ex);
+ sqlite3_free (cmd);
+
+ cmd = sqlite3_mprintf ("DROP TABLE %Q", CAMEL_DB_IN_MEMORY_TABLE);
+ ret = camel_db_command (cdb, cmd, ex);
+ sqlite3_free (cmd);
+
+ cmd = sqlite3_mprintf ("DETACH %Q", CAMEL_DB_IN_MEMORY_DB);
+ ret = camel_db_command (cdb, cmd, ex);
+ sqlite3_free (cmd);
+
+ return ret;
+}
Index: camel/camel-db.h
===================================================================
--- camel/camel-db.h (revision 9841)
+++ camel/camel-db.h (revision 9842)
@@ -4,8 +4,14 @@
#define __CAMEL_DB_H
#include <sqlite3.h>
#include <glib.h>
+
#define CAMEL_DB_FILE "folders.db"
+/* Hopefully no one will create a folder named EVO_IN_meM_hAnDlE */
+#define CAMEL_DB_IN_MEMORY_TABLE "EVO_IN_meM_hAnDlE.temp"
+#define CAMEL_DB_IN_MEMORY_DB "EVO_IN_meM_hAnDlE"
+#define CAMEL_DB_IN_MEMORY_TABLE_LIMIT 100000
+
#include "camel-exception.h"
typedef struct _CamelDBPrivate CamelDBPrivate;
@@ -132,6 +138,7 @@
int camel_db_prepare_message_info_table (CamelDB *cdb, const char *folder_name, CamelException *ex);
int camel_db_write_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex);
+int camel_db_write_fresh_message_info_record (CamelDB *cdb, const char *folder_name, CamelMIRecord *record, CamelException *ex);
int camel_db_read_message_info_records (CamelDB *cdb, const char *folder_name, gpointer p, CamelDBSelectCB read_mir_callback, CamelException *ex);
int camel_db_read_message_info_record_with_uid (CamelDB *cdb, const char *folder_name, const char *uid, gpointer p, CamelDBSelectCB read_mir_callback, CamelException *ex);
@@ -168,5 +175,9 @@
int camel_db_set_collate (CamelDB *cdb, const char *col, const char *collate, CamelDBCollate func);
/* Migration APIS */
int camel_db_migrate_vfolders_to_14(CamelDB *cdb, const char *folder, CamelException *ex);
+
+int camel_db_start_in_memory_transactions (CamelDB *cdb, CamelException *ex);
+int camel_db_flush_in_memory_transactions (CamelDB *cdb, const char * folder_name, CamelException *ex);
+
#endif
Index: camel/camel-folder-summary.c
===================================================================
--- camel/camel-folder-summary.c (revision 9841)
+++ camel/camel-folder-summary.c (revision 9842)
@@ -129,7 +129,7 @@
static int content_info_save(CamelFolderSummary *, FILE *, CamelMessageContentInfo *);
static void content_info_free(CamelFolderSummary *, CamelMessageContentInfo *);
-static int save_message_infos_to_db (CamelFolderSummary *s, CamelException *ex);
+static int save_message_infos_to_db (CamelFolderSummary *s, gboolean fresh_mir, CamelException *ex);
static int camel_read_mir_callback (void * ref, int ncol, char ** cols, char ** name);
static char *next_uid_string(CamelFolderSummary *s);
@@ -1237,23 +1237,20 @@
if (fclose (in) != 0)
return -1;
+ record = (((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->summary_header_to_db (s, &ex));
+ if (!record) {
+ return -1;
+ }
- camel_db_begin_transaction (cdb, &ex);
+ ret = save_message_infos_to_db (s, TRUE, &ex);
- ret = save_message_infos_to_db (s, &ex);
-
if (ret != 0) {
- camel_db_abort_transaction (cdb, &ex);
return -1;
}
- camel_db_end_transaction (cdb, &ex);
-
- record = (((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->summary_header_to_db (s, &ex));
- if (!record) {
- return -1;
- }
+ camel_db_begin_transaction (cdb, &ex);
ret = camel_db_write_folder_info_record (cdb, record, &ex);
+ camel_db_end_transaction (cdb, &ex);
g_free (record->bdata);
g_free (record);
@@ -1321,17 +1318,24 @@
return 0;
}
+typedef struct {
+ CamelException *ex;
+ gboolean migration;
+ int progress;
+} SaveToDBArgs;
+
static void
save_to_db_cb (gpointer key, gpointer value, gpointer data)
{
- CamelException *ex = (CamelException *)data;
+ SaveToDBArgs *args = (SaveToDBArgs *) data;
+ CamelException *ex = args->ex;
CamelMessageInfoBase *mi = (CamelMessageInfoBase *)value;
CamelFolderSummary *s = (CamelFolderSummary *)mi->summary;
char *folder_name = s->folder->full_name;
CamelDB *cdb = s->folder->parent_store->cdb_w;
CamelMIRecord *mir;
- if (!mi->dirty)
+ if (!args->migration && !mi->dirty)
return;
mir = ((CamelFolderSummaryClass *)(CAMEL_OBJECT_GET_CLASS(s)))->message_info_to_db (s, (CamelMessageInfo *)mi);
@@ -1345,30 +1349,52 @@
}
}
- if (camel_db_write_message_info_record (cdb, folder_name, mir, ex) != 0) {
- camel_db_camel_mir_free (mir);
- return;
+ if (!args->migration) {
+ if (camel_db_write_message_info_record (cdb, folder_name, mir, ex) != 0) {
+ camel_db_camel_mir_free (mir);
+ return;
+ }
+ } else {
+ if (camel_db_write_fresh_message_info_record (cdb, CAMEL_DB_IN_MEMORY_TABLE, mir, ex) != 0) {
+ camel_db_camel_mir_free (mir);
+ return;
+ }
+
+ if (args->progress > CAMEL_DB_IN_MEMORY_TABLE_LIMIT) {
+ g_print ("BULK INsert limit reached \n");
+ camel_db_flush_in_memory_transactions (cdb, folder_name, ex);
+ camel_db_start_in_memory_transactions (cdb, ex);
+ args->progress = 0;
+ } else {
+ args->progress ++;
+ }
}
/* Reset the flags */
mi->dirty = FALSE;
+ mi->flags &= ~CAMEL_MESSAGE_FOLDER_FLAGGED;
camel_db_camel_mir_free (mir);
}
static int
-save_message_infos_to_db (CamelFolderSummary *s, CamelException *ex)
+save_message_infos_to_db (CamelFolderSummary *s, gboolean fresh_mirs, CamelException *ex)
{
CamelDB *cdb = s->folder->parent_store->cdb_w;
char *folder_name;
+ SaveToDBArgs args;
+ args.ex = ex;
+ args.migration = fresh_mirs;
+ args.progress = 0;
+
folder_name = s->folder->full_name;
if (camel_db_prepare_message_info_table (cdb, folder_name, ex) != 0) {
return -1;
}
CAMEL_SUMMARY_LOCK(s, summary_lock);
/* Push MessageInfo-es */
- g_hash_table_foreach (s->loaded_infos, save_to_db_cb, ex);
+ g_hash_table_foreach (s->loaded_infos, save_to_db_cb, &args);
CAMEL_SUMMARY_UNLOCK(s, summary_lock);
/* FIXME[disk-summary] make sure we free the message infos that are loaded
* are freed if not used anymore or should we leave that to the timer? */
@@ -1398,7 +1424,7 @@
camel_db_begin_transaction (cdb, ex);
- ret = save_message_infos_to_db (s, ex);
+ ret = save_message_infos_to_db (s, FALSE, ex);
if (ret != 0) {
camel_db_abort_transaction (cdb, ex);
/* Failed, so lets reset the flag */
++++++ bnc-209514-gw-missing-mails.patch ++++++
--- camel/providers/groupwise/camel-groupwise-folder.c
+++ camel/providers/groupwise/camel-groupwise-folder.c
@@ -925,7 +925,13 @@ update_update (CamelSession *session, CamelSessionThreadMsg *msg)
done = FALSE;
m->slist = NULL;
- while (!done && !camel_application_is_exiting) {
+ while (!done) {
+
+ if (camel_application_is_exiting) {
+ CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock);
+ return ;
+ }
+
item_list = NULL;
status = e_gw_connection_get_all_mail_uids (m->cnc, m->container_id, cursor, FALSE, READ_CURSOR_MAX_IDS, position, &item_list);
if (status != E_GW_CONNECTION_STATUS_OK) {
++++++ bnc-439986-show-time-free.patch ++++++
--- calendar/backends/groupwise/e-cal-backend-groupwise.c
+++ calendar/backends/groupwise/e-cal-backend-groupwise.c
@@ -2581,8 +2581,12 @@ receive_object (ECalBackendGroupwise *cbgw, EDataCal *cal, icalcomponent *icalco
e_cal_component_free_id (id);
} else {
char *comp_str = NULL;
+ ECalComponentTransparency transp;
change_status (component, pstatus, e_gw_connection_get_user_email (priv->cnc));
+ e_cal_component_get_transparency (comp, &transp);
+ e_cal_component_set_transparency (component, transp);
+
e_cal_backend_cache_put_component (priv->cache, component);
comp_str = e_cal_component_get_as_string (component);
++++++ bnc-440265-gw-contacts.patch ++++++
--- addressbook/backends/groupwise/e-book-backend-groupwise.c
+++ addressbook/backends/groupwise/e-book-backend-groupwise.c
@@ -44,6 +44,7 @@
#include "libedataserver/e-flag.h"
#include "libedataserver/e-url.h"
#include "libebook/e-contact.h"
+#include "libebook/e-destination.h"
#include "libedata-book/e-book-backend-sexp.h"
#include "libedata-book/e-data-book.h"
#include "libedata-book/e-data-book-view.h"
@@ -798,7 +799,7 @@ populate_contact_members (EContact *contact, gpointer data)
static void
set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise *egwb)
{
- GList *members, *temp, *items, *p, *emails_without_ids;
+ GList *members, *temp, *dtemp, *items, *p, *emails_without_ids, *dest_without_ids;
GList *group_members;
char *email;
EGwFilter *filter;
@@ -816,10 +817,12 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise
filter = e_gw_filter_new ();
group_members = NULL;
emails_without_ids = NULL;
+ dest_without_ids = NULL;
for ( ;temp != NULL; temp = g_list_next (temp)) {
EVCardAttribute *attr = temp->data;
id = email = NULL;
+ EDestination *dest = e_destination_new ();
for (p = e_vcard_attribute_get_params (attr); p; p = p->next) {
EVCardAttributeParam *param = p->data;
@@ -856,8 +859,11 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise
member->id = g_strdup (id);
group_members = g_list_append (group_members, member);
} else if (email) {
+ e_destination_set_raw (dest, email);
e_gw_filter_add_filter_component (filter, E_GW_FILTER_OP_EQUAL, "emailList/@primary", email);
emails_without_ids = g_list_append (emails_without_ids, g_strdup (email));
+ dest_without_ids = g_list_append (dest_without_ids, dest);
+
count++;
}
}
@@ -874,8 +880,15 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise
temp_item = E_GW_ITEM (items->data);
emails = e_gw_item_get_email_list (temp_item);
if (emails_without_ids && (ptr = g_list_find_custom (emails_without_ids, emails->data, (GCompareFunc)strcasecmp ))) {
+ int pos = g_list_position (emails_without_ids, ptr);
emails_without_ids = g_list_remove_link (emails_without_ids, ptr);
g_list_free (ptr);
+
+ ptr = g_list_nth (dest_without_ids, pos);
+ dest_without_ids = g_list_remove_link (dest_without_ids, ptr);
+ g_object_unref (ptr->data);
+ g_list_free (ptr);
+
id = g_strdup (e_gw_item_get_id (temp_item));
member = g_new0 (EGroupMember , 1);
member->id = id;
@@ -893,19 +906,21 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise
*/
temp = emails_without_ids ;
- for (; temp != NULL; temp = g_list_next (temp)) {
+ dtemp = dest_without_ids;
+ for (; temp != NULL && dtemp != NULL ; temp = g_list_next (temp), dtemp = g_list_next(dtemp)) {
EContact *new_contact = e_contact_new ();
EGwItem *new_item = e_gw_item_new_empty ();
FullName *full_name;
+ EDestination *tdest = (EDestination *)dtemp->data;
- e_contact_set (new_contact,E_CONTACT_FULL_NAME, e_contact_name_from_string (strdup (temp->data)));
- e_contact_set (new_contact, E_CONTACT_EMAIL_1, strdup (temp->data));
+ e_contact_set (new_contact,E_CONTACT_FULL_NAME, e_contact_name_from_string (strdup (e_destination_get_email(tdest))));
+ e_contact_set (new_contact, E_CONTACT_EMAIL_1, strdup (e_destination_get_email(tdest)));
e_contact_set (new_contact, E_CONTACT_IS_LIST, GINT_TO_POINTER (FALSE));
e_gw_item_set_item_type (new_item, E_GW_ITEM_TYPE_CONTACT);
e_gw_item_set_container_id (new_item, g_strdup(egwb->priv->container_id));
full_name = g_new0 (FullName, 1);
full_name->name_prefix = NULL;
- full_name->first_name = g_strdup(temp->data);
+ full_name->first_name = g_strdup(e_destination_get_name(tdest));
full_name->middle_name = NULL;
full_name->last_name = NULL;
full_name->name_suffix = NULL;
@@ -959,6 +974,9 @@ set_members_in_gw_item (EGwItem *item, EContact *contact, EBookBackendGroupwise
g_list_free (members);
g_list_foreach (emails_without_ids, (GFunc) g_free, NULL);
g_list_free (emails_without_ids);
+ g_list_foreach (dest_without_ids, (GFunc) g_object_unref, NULL);
+ g_list_free (dest_without_ids);
+
g_list_free (items);
e_gw_item_set_member_list (item, group_members);
}
++++++ bnc-442507-imap-parts-sync.patch ++++++
--- camel/camel-folder.c 2008-12-15 09:10:26 +0000
+++ camel/camel-folder.c 2008-12-16 06:57:35 +0000
@@ -88,6 +88,7 @@
CamelException *ex);
static GPtrArray *get_uids (CamelFolder *folder);
+static GPtrArray *get_uncached_uids (CamelFolder *, GPtrArray * uids, CamelException *);
static void free_uids (CamelFolder *folder,
GPtrArray *array);
static void sort_uids (CamelFolder *folder,
@@ -148,6 +149,7 @@
camel_folder_class->set_message_user_tag = set_message_user_tag;
camel_folder_class->get_message = get_message;
camel_folder_class->get_uids = get_uids;
+ camel_folder_class->get_uncached_uids = get_uncached_uids;
camel_folder_class->free_uids = free_uids;
camel_folder_class->sort_uids = sort_uids;
camel_folder_class->get_summary = get_summary;
@@ -163,6 +165,7 @@
camel_folder_class->delete = delete;
camel_folder_class->rename = folder_rename;
camel_folder_class->freeze = freeze;
+ camel_folder_class->sync_message = NULL;
camel_folder_class->thaw = thaw;
camel_folder_class->is_frozen = is_frozen;
camel_folder_class->get_quota_info = get_quota_info;
@@ -1137,6 +1140,35 @@
return ret;
}
+/**
+ * camel_folder_sync_message:
+ * @folder: a #CamelFolder object
+ * @uid: the UID
+ * @ex: a #CamelException
+ *
+ * Ensure that a message identified by UID has been synced in the folder (so
+ * that camel_folder_get_message on it later will work in offline mode).
+ *
+ * Returns: void.
+ **/
+void
+camel_folder_sync_message (CamelFolder *folder, const char *uid, CamelException *ex)
+{
+ g_return_if_fail (CAMEL_IS_FOLDER (folder));
+ CAMEL_FOLDER_REC_LOCK(folder, lock);
+
+ /* Use the sync_message method if the class implements it. */
+ if (CF_CLASS (folder)->sync_message)
+ CF_CLASS (folder)->sync_message (folder, uid, ex);
+ else {
+ CamelMimeMessage *message;
+ message = CF_CLASS (folder)->get_message (folder, uid, ex);
+ if (message)
+ camel_object_unref(message);
+ }
+ CAMEL_FOLDER_REC_UNLOCK(folder, lock);
+}
+
static GPtrArray *
get_uids(CamelFolder *folder)
{
@@ -1200,6 +1232,41 @@
}
+/**
+ * Default: return the uids we are given.
+ */
+static GPtrArray *
+get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex)
+{
+ GPtrArray *result;
+ int i;
+
+ result = g_ptr_array_new();
+
+ g_ptr_array_set_size(result, uids->len);
+ for (i = 0; i < uids->len; i++)
+ result->pdata[i] = (char *)camel_pstring_strdup(uids->pdata[i]);
+ return result;
+}
+
+/**
+ * camel_folder_get_uncached_uids:
+ * @folder: a #CamelFolder object
+ * @uids: the array of uids to filter down to uncached ones.
+ *
+ * Returns the known-uncached uids from a list of uids. It may return uids
+ * which are locally cached but should never filter out a uid which is not
+ * locally cached. Free the result by called #camel_folder_free_uids.
+ * Frees the array of UIDs returned by #camel_folder_get_uids.
+ **/
+GPtrArray *
+camel_folder_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex)
+{
+ g_return_if_fail (CAMEL_IS_FOLDER (folder));
+ return CF_CLASS (folder)->get_uncached_uids(folder, uids, ex);
+}
+
+
static int
uidcmp (const void *v0, const void *v1)
{
--- camel/camel-folder.h 2008-10-06 09:27:15 +0000
+++ camel/camel-folder.h 2008-12-16 06:57:35 +0000
@@ -211,6 +211,10 @@
CamelFolderQuotaInfo * (*get_quota_info) (CamelFolder *folder);
guint32 (*count_by_expression) (CamelFolder *, const char *, CamelException *);
+ void (*sync_message) (CamelFolder *folder,
+ const char *uid,
+ CamelException *ex);
+ GPtrArray * (*get_uncached_uids)(CamelFolder *, GPtrArray * uids, CamelException *);
} CamelFolderClass;
/* Standard Camel function */
@@ -303,12 +307,18 @@
CamelMimeMessage * camel_folder_get_message (CamelFolder *folder,
const char *uid,
CamelException *ex);
+void camel_folder_sync_message (CamelFolder *folder,
+ const char *uid,
+ CamelException *ex);
#define camel_folder_delete_message(folder, uid) \
camel_folder_set_message_flags (folder, uid, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_DELETED|CAMEL_MESSAGE_SEEN)
GPtrArray * camel_folder_get_uids (CamelFolder *folder);
void camel_folder_free_uids (CamelFolder *folder,
GPtrArray *array);
+GPtrArray * camel_folder_get_uncached_uids (CamelFolder *,
+ GPtrArray * uids,
+ CamelException *);
void camel_folder_sort_uids (CamelFolder *folder,
GPtrArray *uids);
--- camel/camel-offline-folder.c 2008-06-20 22:32:12 +0000
+++ camel/camel-offline-folder.c 2008-12-16 06:57:35 +0000
@@ -247,8 +247,7 @@
offline_folder_downsync (CamelOfflineFolder *offline, const char *expression, CamelException *ex)
{
CamelFolder *folder = (CamelFolder *) offline;
- CamelMimeMessage *message;
- GPtrArray *uids;
+ GPtrArray *uids, *uncached_uids;
int i;
camel_operation_start (NULL, _("Syncing messages in folder '%s' to disk"), folder->full_name);
@@ -257,27 +256,29 @@
uids = camel_folder_search_by_expression (folder, expression, ex);
else
uids = camel_folder_get_uids (folder);
-
- if (!uids) {
- camel_operation_end (NULL);
- return;
+
+ if (!uids)
+ goto done;
+ uncached_uids = camel_folder_get_uncached_uids(folder, uids, ex);
+ if (uids) {
+ if (expression)
+ camel_folder_search_free (folder, uids);
+ else
+ camel_folder_free_uids (folder, uids);
}
- for (i = 0; i < uids->len; i++) {
- int pc = i * 100 / uids->len;
-
- message = camel_folder_get_message (folder, uids->pdata[i], ex);
+ if (!uncached_uids)
+ goto done;
+
+ for (i = 0; i < uncached_uids->len; i++) {
+ int pc = i * 100 / uncached_uids->len;
+ camel_folder_sync_message (folder, uncached_uids->pdata[i], ex);
camel_operation_progress (NULL, pc);
- if (message == NULL)
- break;
-
- camel_object_unref (message);
}
-
- if (expression)
- camel_folder_search_free (folder, uids);
- else
- camel_folder_free_uids (folder, uids);
+
+done:
+ if (uncached_uids)
+ camel_folder_free_uids(folder, uncached_uids);
camel_operation_end (NULL);
}
--- camel/providers/imap/camel-imap-folder.c 2008-12-05 12:10:12 +0000
+++ camel/providers/imap/camel-imap-folder.c 2008-12-16 06:57:35 +0000
@@ -102,10 +102,13 @@
static void imap_expunge (CamelFolder *folder, CamelException *ex);
//static void imap_cache_message (CamelDiscoFolder *disco_folder, const char *uid, CamelException *ex);
static void imap_rename (CamelFolder *folder, const char *new);
+static GPtrArray * imap_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex);
/* message manipulation */
static CamelMimeMessage *imap_get_message (CamelFolder *folder, const gchar *uid,
CamelException *ex);
+static void imap_sync_message (CamelFolder *folder, const gchar *uid,
+ CamelException *ex);
static void imap_append_online (CamelFolder *folder, CamelMimeMessage *message,
const CamelMessageInfo *info, char **appended_uid,
CamelException *ex);
@@ -135,6 +138,12 @@
static GData *parse_fetch_response (CamelImapFolder *imap_folder, char *msg_att);
+/* internal helpers */
+static CamelImapMessageInfo * imap_folder_summary_uid_or_error(
+ CamelFolderSummary *summary,
+ const char * uid,
+ CamelException *ex);
+
#ifdef G_OS_WIN32
/* The strtok() in Microsoft's C library is MT-safe (but still uses
* only one buffer pointer per thread, but for the use of strtok_r()
@@ -166,7 +175,9 @@
camel_folder_class->expunge = imap_expunge;
camel_folder_class->sync= imap_sync;
camel_folder_class->append_message = imap_append_online;
+ camel_folder_class->sync_message = imap_sync_message;
camel_folder_class->transfer_messages_to = imap_transfer_online;
+ camel_folder_class->get_uncached_uids = imap_get_uncached_uids;
}
static void
@@ -2809,24 +2820,33 @@
return FALSE;
}
-static CamelMimeMessage *
-imap_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
+static CamelImapMessageInfo *
+imap_folder_summary_uid_or_error(CamelFolderSummary *summary, const char * uid, CamelException *ex)
{
- CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
- CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
- CamelImapMessageInfo *mi;
- CamelMimeMessage *msg = NULL;
- CamelStream *stream = NULL;
- int retry;
-
- mi = (CamelImapMessageInfo *)camel_folder_summary_uid (folder->summary, uid);
+ CamelImapMessageInfo *mi;
+ mi = (CamelImapMessageInfo *)camel_folder_summary_uid (summary, uid);
if (mi == NULL) {
camel_exception_setv (
ex, CAMEL_EXCEPTION_FOLDER_INVALID_UID,
_("Cannot get message with message ID %s: %s"),
uid, _("No such message available."));
- return NULL;
}
+ return mi;
+}
+
+static CamelMimeMessage *
+imap_get_message (CamelFolder *folder, const char *uid, CamelException *ex)
+{
+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
+ CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
+ CamelImapMessageInfo *mi;
+ CamelMimeMessage *msg = NULL;
+ CamelStream *stream = NULL;
+ int retry;
+
+ mi = imap_folder_summary_uid_or_error(folder->summary, uid, ex);
+ if (!mi)
+ return NULL;
/* If its cached in full, just get it as is, this is only a shortcut,
since we get stuff from the cache anyway. It affects a busted connection though. */
@@ -2947,6 +2967,44 @@
return msg;
}
+/**
+ * imap_sync_message
+ *
+ * Ensure that a message is cached locally, but don't retrieve the content if
+ * it is already local.
+ */
+static void
+imap_sync_message (CamelFolder *folder, const char *uid, CamelException *ex)
+{
+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
+ CamelImapMessageInfo *mi;
+ CamelMimeMessage *msg = NULL;
+ CamelStream *stream = NULL;
+
+ mi = imap_folder_summary_uid_or_error(folder->summary, uid, ex);
+ if (!mi)
+ /* No such UID - is this duplicate work? The sync process selects
+ * UIDs to start with.
+ */
+ return;
+ camel_message_info_free(&mi->info);
+
+ /* If we can get a stream, assume its fully cached. This may be false
+ * if partial streams are saved elsewhere in the code - but that seems
+ * best solved by knowning more about whether a given message is fully
+ * available locally or not,
+ */
+ /* If its cached in full, just get it as is, this is only a shortcut,
+ since we get stuff from the cache anyway. It affects a busted connection though. */
+ if ((stream = camel_imap_folder_fetch_data(imap_folder, uid, "", TRUE, NULL))) {
+ camel_object_unref (stream);
+ return;
+ }
+ msg = imap_get_message(folder, uid, ex);
+ if (msg)
+ camel_object_unref(msg);
+}
+
/* FIXME Remove it after confirming
static void
imap_cache_message (CamelDiscoFolder *disco_folder, const char *uid,
@@ -3919,3 +3977,19 @@
CAMEL_SERVICE_REC_UNLOCK (imap_store, connect_lock);
return res;
}
+
+/**
+ * Scan for messages that are local and return the rest.
+ */
+static GPtrArray *
+imap_get_uncached_uids (CamelFolder *folder, GPtrArray * uids, CamelException *ex)
+{
+ GPtrArray *result;
+ CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
+
+ CAMEL_IMAP_FOLDER_REC_LOCK (imap_folder, cache_lock);
+ result = camel_imap_message_cache_filter_cached (imap_folder->cache, uids, ex);
+ CAMEL_IMAP_FOLDER_REC_UNLOCK (imap_folder, cache_lock);
+ return result;
+}
+
--- camel/providers/imap/camel-imap-message-cache.c 2008-10-16 03:42:34 +0000
+++ camel/providers/imap/camel-imap-message-cache.c 2008-12-16 06:57:35 +0000
@@ -35,6 +35,7 @@
#include "camel-data-wrapper.h"
#include "camel-exception.h"
#include "camel-stream-fs.h"
+#include "camel-string-utils.h"
#include "camel-imap-message-cache.h"
@@ -42,9 +43,27 @@
#define O_BINARY 0
#endif
+/* Common define to start reducing duplication of base-part handling on win32.
+ */
+#ifdef G_OS_WIN32
+/* See comment in insert_setup() */
+#define BASE_PART_SUFFIX ".~"
+#else
+#define BASE_PART_SUFFIX "."
+#endif
+
static void finalize (CamelImapMessageCache *cache);
static void stream_finalize (CamelObject *stream, gpointer event_data, gpointer user_data);
+struct _part_find {
+ /* UID name on disk - e.g. "0." or "0.HEADERS". On windows "0." is
+ * stored as "0.~"
+ */
+ char *disk_part_name;
+ /* Was the part found? */
+ int found;
+};
+
CamelType
camel_imap_message_cache_get_type (void)
@@ -142,6 +161,8 @@
* Return value: a new CamelImapMessageCache object using @path for
* storage. If cache files already exist in @path, then any that do not
* correspond to messages in @summary will be deleted.
+ * @path is scanned for its contents, which means creating a cache object can be
+ * expensive, but the parts hash is immediately usable.
**/
CamelImapMessageCache *
camel_imap_message_cache_new (const char *path, CamelFolderSummary *summary,
@@ -591,3 +612,67 @@
}
}
}
+
+
+static void
+_match_part(gpointer part_name, gpointer user_data)
+{
+ struct _part_find *part_find = (struct _part_find *) user_data;
+ if (g_str_equal(part_name, part_find->disk_part_name))
+ part_find->found = 1;
+}
+
+/**
+ * Filter uids by the uids cached in cache.
+ * The intent is that only uids fully cached are returned, but that may not be
+ * what is achieved. An additional constraint is that this check should be
+ * cheap, so that going offline is not an expensive operation. Filtering all
+ * uids is inefficient in the first place; significant processing per uid
+ * makes synchronisation very expensive. At the suggestion of Srinivasa Ragavan
+ * (see http://bugzilla.gnome.org/show_bug.cgi?id=564339) the cache->parts hash
+ * table is consulted. If there is a parts-list in the hash table containing
+ * the part "", then we assume the message has been completely downloaded. This
+ * is incorrect (see http://bugzilla.gnome.org/show_bug.cgi?id=561211 for the
+ * symptoms). The code this replaces, a loop over all uids asking for the ""
+ * part of the message has the same flaw: it is no /less/ accurate to assess
+ * 'cached' in the manner this method does (assuming no concurrent process is
+ * removing messages from the cache).
+ *
+ * In the future, fixing bug 561211 needs a check for *all* the parts of a
+ * given uid. If the complete list of parts is available in the folder summary
+ * information then it can be done cheaply, otherwise some redesign will be
+ * needed.
+ */
+GPtrArray *
+camel_imap_message_cache_filter_cached(CamelImapMessageCache *cache, GPtrArray *uids, CamelException *ex)
+{
+ GPtrArray *result, *parts_list;
+ int i;
+ struct _part_find part_find;
+ /* Look for a part "" for each uid. */
+ result = g_ptr_array_sized_new(uids->len);
+ for (i = 0; i < uids->len; i++) {
+ if ((parts_list = g_hash_table_lookup(cache->parts, uids->pdata[i]))) {
+ /* At least one part locally present; look for "" (the
+ * HEADERS part can be present without anything else,
+ * and that part is not useful for users wanting to
+ * read the message).
+ */
+ part_find.found = 0;
+ part_find.disk_part_name = g_strdup_printf("%s" BASE_PART_SUFFIX,
+ (char *)uids->pdata[i]);
+ g_ptr_array_foreach(parts_list, _match_part, &part_find);
+ g_free(part_find.disk_part_name);
+ if (part_find.found)
+ /* The message is cached locally, do not
+ * include it in the result.
+ */
+ continue;
+ }
+ /* No message parts, or message part "" not found: include the
+ * uid in the result.
+ */
+ g_ptr_array_add(result, (char *)camel_pstring_strdup(uids->pdata[i]));
+ }
+ return result;
+}
--- camel/providers/imap/camel-imap-message-cache.h 2008-07-31 09:31:51 +0000
+++ camel/providers/imap/camel-imap-message-cache.h 2008-12-16 06:57:35 +0000
@@ -41,6 +41,13 @@
CamelObject parent_object;
char *path;
+ /* parts contains two sorts of objects.
+ * If the key contains '.' then it is a stream (also reverse-indexed in
+ * cached).
+ * Otherwise it is a g_ptr_array containing the subparts the message
+ * has. (e.g. 0., or 0.MIME.1).
+ */
+ /* cached contains streams for recently accessed messages */
GHashTable *parts, *cached;
guint32 max_uid;
};
@@ -98,6 +105,9 @@
CamelException *ex);
gboolean camel_imap_message_cache_delete (const char *path,
CamelException *ex);
+GPtrArray * camel_imap_message_cache_filter_cached(CamelImapMessageCache *,
+ GPtrArray *uids,
+ CamelException *ex);
/* Standard Camel function */
CamelType camel_imap_message_cache_get_type (void);
++++++ bnc-443544-eds-free-busy.patch ++++++
Index: calendar/backends/groupwise/e-cal-backend-groupwise-utils.c
===================================================================
--- calendar/backends/groupwise/e-cal-backend-groupwise-utils.c (revision 9879)
+++ calendar/backends/groupwise/e-cal-backend-groupwise-utils.c (revision 9881)
@@ -1785,6 +1785,7 @@
ECalComponentAttendee attendee;
GSList *attendee_list = NULL;
icalcomponent *icalcomp = NULL;
+ icaltimetype start_time, end_time;
tmp = soup_soap_parameter_get_first_child_by_name (subparam, "email");
if (tmp)
@@ -1801,6 +1802,11 @@
e_cal_component_commit_sequence (comp);
icalcomp = e_cal_component_get_icalcomponent (comp);
+ start_time = icaltime_from_timet_with_zone (start, 0, default_zone ? default_zone : NULL);
+ end_time = icaltime_from_timet_with_zone (end, 0, default_zone ? default_zone : NULL);
+ icalcomponent_set_dtstart (icalcomp, start_time);
+ icalcomponent_set_dtend (icalcomp, end_time);
+
memset (&attendee, 0, sizeof (ECalComponentAttendee));
if (name)
attendee.cn = name;
@@ -1829,7 +1835,24 @@
return E_GW_CONNECTION_STATUS_INVALID_RESPONSE;
}
- for (subparam_block = soup_soap_parameter_get_first_child_by_name (param_blocks, "block");
+ subparam_block = soup_soap_parameter_get_first_child_by_name (param_blocks, "block");
+ /* The GW server only returns 'Busy', 'OOF' and 'Tentative' periods. The rest are
+ * assumed to be 'Free' periods. In case of an attendee having only 'Free' periods,
+ * ensure to send a block to the frontend saying so. */
+ if (subparam_block == NULL) {
+ struct icalperiodtype ipt;
+ icaltimetype sitt, eitt;
+ icalproperty *icalprop;
+ sitt = icaltime_from_timet_with_zone (start, 0, default_zone ? default_zone : NULL);
+ ipt.start = sitt;
+ eitt = icaltime_from_timet_with_zone (end, 0, default_zone ? default_zone : NULL);
+ ipt.end = eitt;
+ icalprop = icalproperty_new_freebusy (ipt);
+ icalproperty_set_parameter_from_string (icalprop, "FBTYPE", "FREE");
+ icalcomponent_add_property(icalcomp, icalprop);
+ }
+
+ for (;
subparam_block != NULL;
subparam_block = soup_soap_parameter_get_next_child_by_name (subparam_block, "block")) {
++++++ bnc-446290-gw-counts-issues.patch ++++++
Index: camel/providers/groupwise/camel-groupwise-folder.c
===================================================================
--- camel/providers/groupwise/camel-groupwise-folder.c (revision 9858)
+++ camel/providers/groupwise/camel-groupwise-folder.c (revision 9859)
@@ -1200,10 +1200,6 @@
if (gw_store->current_folder != folder) {
gw_store->current_folder = folder;
}
-
- if (list) {
- gw_update_cache (folder, list, ex, FALSE);
- }
if (check_all && !is_proxy) {
EGwContainer *container;
@@ -1214,8 +1210,15 @@
if (camel_folder_summary_count (folder->summary) == e_gw_container_get_total_count (container))
check_all = FALSE;
+
+ folder->summary->unread_count = e_gw_container_get_unread_count (container);
+ folder->summary->visible_count = e_gw_container_get_total_count (container);
g_object_unref (container);
}
+
+ if (list) {
+ gw_update_cache (folder, list, ex, FALSE);
+ }
}
@@ -1352,6 +1355,8 @@
mi->info.content->type = camel_content_type_new ("multipart", "mixed");
}
+ mi->info.flags = 0;
+
if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_TASK || type == E_GW_ITEM_TYPE_NOTE)
camel_message_info_set_user_flag ((CamelMessageInfo*)mi, "$has_cal", TRUE);
}
@@ -1368,16 +1373,12 @@
item_status = e_gw_item_get_item_status (item);
if (item_status & E_GW_ITEM_STAT_READ)
- status_flags |= CAMEL_MESSAGE_SEEN;
+ mi->info.flags |= CAMEL_MESSAGE_SEEN;
else
mi->info.flags &= ~CAMEL_MESSAGE_SEEN;
if (item_status & E_GW_ITEM_STAT_REPLIED)
- status_flags |= CAMEL_MESSAGE_ANSWERED;
- if (exists)
- mi->info.flags |= status_flags;
- else
- mi->info.flags = status_flags;
+ mi->info.flags |= CAMEL_MESSAGE_ANSWERED;
priority = e_gw_item_get_priority (item);
if (priority && !(g_ascii_strcasecmp (priority,"High"))) {
@@ -1468,6 +1469,7 @@
}
}
+ mi->info.dirty = TRUE;
if (exists) {
camel_folder_change_info_change_uid (changes, mi->info.uid);
camel_message_info_free (pmi);
@@ -1475,12 +1477,7 @@
mi->info.uid = camel_pstring_strdup (e_gw_item_get_id(item));
mi->info.size = e_gw_item_get_mail_size (item);
mi->info.subject = camel_pstring_strdup(e_gw_item_get_subject(item));
- mi->info.dirty = TRUE;
- folder->summary->visible_count ++;
- if (!(mi->info.flags & CAMEL_MESSAGE_SEEN))
- folder->summary->unread_count ++;
-
camel_folder_summary_add (folder->summary,(CamelMessageInfo *)mi);
camel_folder_change_info_add_uid (changes, mi->info.uid);
camel_folder_change_info_recent_uid (changes, mi->info.uid);
Index: servers/groupwise/e-gw-connection.c
===================================================================
--- servers/groupwise/e-gw-connection.c (revision 9858)
+++ servers/groupwise/e-gw-connection.c (revision 9859)
@@ -840,7 +840,7 @@
}
e_gw_message_write_string_parameter (msg, "uid", NULL, uid);
- e_gw_message_write_string_parameter (msg, "view", NULL, "count");
+ e_gw_message_write_string_parameter (msg, "view", NULL, "count unreadCount");
e_gw_message_write_footer (msg);
/* send message to server */
@@ -2772,7 +2772,7 @@
if (buffer && buf_length && atoi (buf_length) > 0) {
gsize len = atoi (buf_length) ;
- *attachment = g_base64_decode (buffer,&len) ;
+ *attachment = (char *) g_base64_decode (buffer,&len) ;
*attach_length = len ;
} else {
*attachment = NULL;
++++++ bnc-448079-gw-memory-issues.patch ++++++
--- camel/providers/groupwise/camel-groupwise-folder.c
+++ camel/providers/groupwise/camel-groupwise-folder.c
@@ -229,8 +229,11 @@ groupwise_populate_details_from_item (CamelMimeMessage *msg, EGwItem *item)
time_t actual_time;
int offset = 0;
dtstring = e_gw_item_get_creation_date (item);
- time = e_gw_connection_get_date_from_string (dtstring);
- actual_time = camel_header_decode_date (ctime(&time), NULL);
+ if (dtstring) {
+ time = e_gw_connection_get_date_from_string (dtstring);
+ actual_time = camel_header_decode_date (ctime(&time), NULL);
+ } else
+ actual_time = (time_t) 0;
camel_mime_message_set_date (msg, actual_time, offset);
}
}
@@ -1270,7 +1273,7 @@ gw_update_cache (CamelFolder *folder, GList *list, CamelException *ex, gboolean
int folder_needs_caching;
- camel_object_get (folder, NULL, CAMEL_OFFLINE_FOLDER_ARG_SYNC_OFFLINE, &folder_needs_caching, NULL);
+ camel_object_get (folder, NULL, CAMEL_OFFLINE_FOLDER_SYNC_OFFLINE, &folder_needs_caching, NULL);
changes = camel_folder_change_info_new ();
container_id = g_strdup (camel_groupwise_store_container_id_lookup (gw_store, folder->full_name));
@@ -1449,8 +1452,12 @@ gw_update_cache (CamelFolder *folder, GList *list, CamelException *ex, gboolean
time_t time;
time_t actual_time;
temp_date = e_gw_item_get_creation_date (item);
- time = e_gw_connection_get_date_from_string (temp_date);
- actual_time = camel_header_decode_date (ctime(&time), NULL);
+ if (temp_date) {
+ /* Creation date can be returned as null for auto-generated meetings */
+ time = e_gw_connection_get_date_from_string (temp_date);
+ actual_time = camel_header_decode_date (ctime(&time), NULL);
+ } else
+ actual_time = (time_t) 0;
mi->info.date_sent = mi->info.date_received = actual_time;
}
}
@@ -1670,8 +1677,11 @@ gw_update_summary ( CamelFolder *folder, GList *list,CamelException *ex)
time_t time;
time_t actual_time;
temp_date = e_gw_item_get_creation_date (item);
- time = e_gw_connection_get_date_from_string (temp_date);
- actual_time = camel_header_decode_date (ctime(&time), NULL);
+ if (temp_date) {
+ time = e_gw_connection_get_date_from_string (temp_date);
+ actual_time = camel_header_decode_date (ctime(&time), NULL);
+ } else
+ actual_time = (time_t) 0;
mi->info.date_sent = mi->info.date_received = actual_time;
}
}
--- servers/groupwise/e-gw-item.c
+++ servers/groupwise/e-gw-item.c
@@ -307,6 +307,11 @@ e_gw_item_dispose (GObject *object)
priv->classification = NULL;
}
+ if (priv->security) {
+ g_free (priv->security);
+ priv->security = NULL;
+ }
+
if (priv->accept_level) {
g_free (priv->accept_level);
priv->accept_level = NULL;
--- servers/groupwise/e-gw-connection.c
+++ servers/groupwise/e-gw-connection.c
@@ -1813,39 +1813,41 @@ e_gw_connection_get_server_time (EGwConnection *cnc)
static time_t
timet_from_string (const char *str)
{
- struct tm date;
- int len, i;
+ struct tm date;
+ int len, i;
- g_return_val_if_fail (str != NULL, -1);
+ g_return_val_if_fail (str != NULL, -1);
- /* yyyymmdd[Thhmmss[Z]] */
- len = strlen (str);
+ /* yyyymmdd[Thhmmss[Z]] */
+ len = strlen (str);
- if (!(len == 8 || len == 15 || len == 16))
- return -1;
+ if (!(len == 8 || len == 15 || len == 16))
+ return -1;
- for (i = 0; i < len; i++)
- if (!((i != 8 && i != 15 && isdigit (str[i]))
- || (i == 8 && str[i] == 'T')
- || (i == 15 && str[i] == 'Z')))
- return -1;
+ for (i = 0; i < len; i++)
+ if (!((i != 8 && i != 15 && isdigit (str[i]))
+ || (i == 8 && str[i] == 'T')
+ || (i == 15 && str[i] == 'Z')))
+ return -1;
#define digit_at(x,y) (x[y] - '0')
- date.tm_year = digit_at (str, 0) * 1000
- + digit_at (str, 1) * 100
- + digit_at (str, 2) * 10
- + digit_at (str, 3) -1900;
- date.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5) -1;
- date.tm_mday = digit_at (str, 6) * 10 + digit_at (str, 7);
- if (len > 8) {
- date.tm_hour = digit_at (str, 9) * 10 + digit_at (str, 10);
- date.tm_min = digit_at (str, 11) * 10 + digit_at (str, 12);
- date.tm_sec = digit_at (str, 13) * 10 + digit_at (str, 14);
- } else
- date.tm_hour = date.tm_min = date.tm_sec = 0;
+ date.tm_year = digit_at (str, 0) * 1000
+ + digit_at (str, 1) * 100
+ + digit_at (str, 2) * 10
+ + digit_at (str, 3) -1900;
+ date.tm_mon = digit_at (str, 4) * 10 + digit_at (str, 5) -1;
+ date.tm_mday = digit_at (str, 6) * 10 + digit_at (str, 7);
+ if (len > 8) {
+ date.tm_hour = digit_at (str, 9) * 10 + digit_at (str, 10);
+ date.tm_min = digit_at (str, 11) * 10 + digit_at (str, 12);
+ date.tm_sec = digit_at (str, 13) * 10 + digit_at (str, 14);
+ } else
+ date.tm_hour = date.tm_min = date.tm_sec = 0;
+
+ date.tm_wday = date.tm_yday = date.tm_isdst = 0;
- return mktime (&date);
+ return mktime (&date);
}
char *
++++++ bnc-455939-eds-deadlock.patch ++++++
--- addressbook/libedata-book/e-book-backend.c
+++ addressbook/libedata-book/e-book-backend.c
@@ -476,12 +476,21 @@ book_destroy_cb (gpointer data, GObject *where_book_was)
e_book_backend_remove_client (backend, (EDataBook *)where_book_was);
}
-static void
-listener_died_cb (gpointer cnx, gpointer user_data)
+static gboolean
+idle_remove_client (gpointer data)
{
- EDataBook *book = E_DATA_BOOK (user_data);
+ EDataBook *book = (EDataBook *) data;
e_book_backend_remove_client (e_data_book_get_backend (book), book);
+ g_object_unref ((GObject *) book);
+
+ return FALSE;
+}
+static void
+listener_died_cb (gpointer cnx, gpointer user_data)
+{
+ g_object_ref ((GObject *)user_data);
+ g_idle_add (idle_remove_client, user_data);
}
static void
++++++ bnc-458127-keyboard-shortcut-port.patch ++++++
Index: camel/providers/groupwise/camel-groupwise-provider.c
===================================================================
--- camel/providers/groupwise/camel-groupwise-provider.c (revision 9852)
+++ camel/providers/groupwise/camel-groupwise-provider.c (working copy)
@@ -73,7 +73,7 @@
N_("SOAP Settings") },
{ CAMEL_PROVIDER_CONF_ENTRY, "soap_port", NULL,
- N_("Post Office Agent SOAP Port:"), "7191" },
+ N_("Post Office Agent SOAP _Port:"), "7191" },
{ CAMEL_PROVIDER_CONF_HIDDEN, "auth-domain", NULL,
NULL, "Groupwise" },
++++++ bnc-462575-gw-refresh-folders.patch ++++++
--- camel/providers/groupwise/camel-groupwise-store.c 2008-12-23 09:25:44.000000000 +0100
+++ camel/providers/groupwise/camel-groupwise-store.c 2008-12-23 09:38:58.000000000 +0100
@@ -1430,6 +1430,17 @@
return NULL;
}
+static gboolean
+groupwise_can_refresh_folder (CamelStore *store, CamelFolderInfo *info, CamelException *ex)
+{
+ gboolean res;
+
+ res = CAMEL_STORE_CLASS(parent_class)->can_refresh_folder (store, info, ex) ||
+ (camel_url_get_param (((CamelService *)store)->url, "check_all") != NULL);
+
+ return res;
+}
+
/*
* Function to check if we are both connected and are _actually_
* online. Based on an equivalient function in IMAP
@@ -1498,6 +1509,7 @@
camel_store_class->get_folder_info = groupwise_get_folder_info;
camel_store_class->free_folder_info = camel_store_free_folder_info_full;
camel_store_class->get_trash = groupwise_get_trash;
+ camel_store_class->can_refresh_folder = groupwise_can_refresh_folder;
}
@@ -1597,3 +1609,4 @@
return camel_groupwise_store_type;
}
+
++++++ bnc-463095-content-info-from-db.patch ++++++
--- camel/providers/groupwise/camel-groupwise-summary.c.orig 2008-12-31 14:53:07.000000000 +0100
+++ camel/providers/groupwise/camel-groupwise-summary.c 2008-12-31 15:05:26.000000000 +0100
@@ -317,8 +317,13 @@
guint32 type=0;
if (part) {
- EXTRACT_FIRST_DIGIT (type);
+ if (*part == ' ')
+ part++;
+ if (part) {
+ EXTRACT_FIRST_DIGIT (type);
+ }
}
+ mir->cinfo = part;
if (type)
return camel_groupwise_summary_parent->content_info_from_db (s, mir);
else
++++++ bnc-463653-msg-list-meeting-time.patch ++++++
--- camel/providers/groupwise/camel-groupwise-folder.c
+++ camel/providers/groupwise/camel-groupwise-folder.c
@@ -212,12 +212,24 @@ groupwise_folder_get_message( CamelFolder *folder, const char *uid, CamelExcepti
static void
groupwise_populate_details_from_item (CamelMimeMessage *msg, EGwItem *item)
{
+ EGwItemType type;
char *dtstring = NULL;
char *temp_str = NULL;
temp_str = (char *)e_gw_item_get_subject(item);
if(temp_str)
camel_mime_message_set_subject (msg, temp_str);
+ type = e_gw_item_get_item_type (item);
+
+ if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_NOTE) {
+ int offset = 0;
+ dtstring = e_gw_item_get_start_date (item);
+ time_t time = e_gw_connection_get_date_from_string (dtstring);
+ time_t actual_time = camel_header_decode_date (ctime(&time), &offset);
+ camel_mime_message_set_date (msg, actual_time, offset);
+ return;
+ }
+
dtstring = e_gw_item_get_delivered_date (item);
if(dtstring) {
int offset = 0;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0
Hello community,
here is the log from the commit of package evolution for openSUSE:Factory
checked in at Thu Jan 8 18:03:14 CET 2009.
--------
--- GNOME/evolution/evolution.changes 2008-12-04 12:29:31.000000000 +0100
+++ /mounts/work_src_done/STABLE/evolution/evolution.changes 2009-01-08 11:52:39.214677000 +0100
@@ -0,0 +1,58 @@
+------------------------------------------------------------------
+Wed Jan 7 11:27:13 CET 2009 - abharath(a)suse.de
+
+- Patches added
+ + bgo#559153 - bgo-559153-evo-migration.patch - Migration fixes
+ in Evolution.
+ + bgo#559604 - bgo-559604-calendar-tooltip-updated.patch -
+ Additional Information On Calendar Tooltip.
+ + bgo#564248 - bgo-564248-evo-copy-paste-images.patch - Support
+ Copy And Paste Of Images.
+ + bnc#435694 - bnc-435694-retract-feature-broken.patch - Retract
+ of Email from Sent Items Does not Work
+ + bnc#446285 - bnc-446285-traverse-all-entries.patch - Meeting
+ Entry Does Not Allow Multiple Names.
+ + bnc#446287 - bnc-446287-missing-vcf-reader.patch - Missing
+ VCF Plugin In Email Reader.
+ + bnc#449952 - bnc-449952-hotkey-evo-preferences.patch -
+ Misplaced Hotkey on Evolution Preference Dlg.
+ + bnc#443544 - bnc-443544-evo-free-busy.patch - Evolution busy
+ search on GW resource object does not display
+ unavailable times.
+ + bnc#435455 - bnc-435455-attendees-meeting-resize.patch -
+ Attendees UI Allows Meeting Resize.
+ + bnc#439998 - bnc-439998-delete-delegated-events.patch -
+ Delegating a Meeting Should Prompt to See if a
+ Copy of the Meeting Should Be Kept.
+ + bnc#440634 - bnc-440634-forwarded-hide-accept-decline.patch -
+ Hide Accept/Decline when forwarding GW appt.
+ + bnc#445996 - bnc-445996-address-conflict.patch - address
+ conflict: [custom widget creation failed].
+ + bnc#458153 - bnc-458153-busy-button.patch - All Day
+ Appointment/Event Needs To Default To Busy.
+ + bnc#462349 - bnc-462349-shared-memo-editor.patch - Shared
+ Memos opens a normal Memo window.
+ + bnc#463599 - bnc-463599-header-print-issues.patch - Daily
+ Printouts Display Hour In Wrong Spot.
+ + bnc#439987 - bnc-439987-classify-sensitivity.patch - Save Option
+ Unavailable if Classification is Modified.
+ + bnc#456481 - bnc-456481-evolution-eats-memory.patch - evolution
+ eats up memory.
+ + bnc#462372 - bnc-462372-open-attachment-event.patch - Right click
+ on an attachment in calendar event and chose
+ application - does not work.
+ + bnc#458968 - bnc-458968-warning-on-delegating.patch - Meeting
+ delegation warns about meeting changes.
+ + bgo#559604 - bgo-559604-tooltip-for-gw.patch - Calendar Tooltip
+ updated for GW accounts.
+
+- Patches updated
+ + bgo#556224 - bgo-556224-search-events-offline.patch - Upstream
+ had updates.
+ + bnc#430639 - evolution-desktop.patch - Change the name in the
+ desktop file.
+
+- Changes to the spec
+ + bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
+ Users.
+
calling whatdependson for head-i586
New:
----
bgo-559153-evo-migration.patch
bgo-559604-calendar-tooltip-updated.patch
bgo-559604-tooltip-for-gw.patch
bgo-564248-evo-copy-paste-images.patch
bnc-435455-attendees-meeting-resize.patch
bnc-435694-retract-feature-broken.patch
bnc-439987-classify-sensitivity.patch
bnc-439998-delete-delegated-events.patch
bnc-440634-forwarded-hide-accept-decline.patch
bnc-443544-evo-free-busy.patch
bnc-445996-address-conflict.patch
bnc-446285-traverse-all-entries.patch
bnc-446287-missing-vcf-reader.patch
bnc-449952-hotkey-evo-preferences.patch
bnc-456481-evolution-eats-memory.patch
bnc-458153-busy-button.patch
bnc-458968-warning-on-delegating.patch
bnc-462349-shared-memo-editor.patch
bnc-462372-open-attachment-event.patch
bnc-463599-header-print-issues.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ evolution.spec ++++++
--- /var/tmp/diff_new_pack.aS4218/_old 2009-01-08 18:02:49.000000000 +0100
+++ /var/tmp/diff_new_pack.aS4218/_new 2009-01-08 18:02:49.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package evolution (Version 2.24.1.1)
#
-# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -58,7 +58,7 @@
# This should be updated upon major version changes; it should match BASE_VERSION as defined in configure.in.
%define evolution_base_version 2.24
Version: 2.24.1.1
-Release: 5
+Release: 6
Summary: The Integrated GNOME Mail, Calendar, and Address Book Suite
Source0: %{name}-%{version}.tar.bz2
Source1: summerdance-about2.png
@@ -114,20 +114,60 @@
Patch34: bnc-446286-message-tracking-status.patch
# PATCH-FIX-UPSTREAM bnc-210959-evo-accept-ics.patch bnc210959 pchenthill(a)novell.com -- Patch yet to be pushed upstream.
Patch35: bnc-210959-evo-accept-ics.patch
-# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill(a)suse.de -- Patch needs to upstreamed.
+# PATCH-FIX-UPSTREAM sp-tasks-setup.diff pchenthill(a)suse.de -- Patch needs to be upstreamed.
Patch36: sp-tasks-setup.diff
# PATCH-FIX-UPSTREAM bgo-332729-invalid-write-econfig.patch bgo332729 -- Fix has been submitted upstream.
Patch37: bgo-332729-invalid-write-econfig.patch
# PATCH-FIX-UPSTREAM bgo-562228-evo-mailbox-field.patch bgo562228 -- Fix has been submitted upstream.
Patch38: bgo-562228-evo-mailbox-field.patch
-# PATCH-FIX-UPSTREAM bnc-435452-lose-attendees-busy-search.patch bnc435452 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-435452-lose-attendees-busy-search.patch bnc435452 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch39: bnc-435452-lose-attendees-busy-search.patch
-# PATCH-FIX-UPSTREAM bnc-439733-bogofilter-junk-training.patch bnc439733 sragavan(a)novell.com -- Patch yet to be pushed upstream.
+# PATCH-FIX-UPSTREAM bnc-439733-bogofilter-junk-training.patch bnc439733 sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
Patch40: bnc-439733-bogofilter-junk-training.patch
-# PATCH-FIX-UPSTREAM sp-meetingworkspace-ui.patch pchenthill(a)suse.de -- Patch needs to upstreamed.
+# PATCH-FIX-UPSTREAM sp-meetingworkspace-ui.patch pchenthill(a)suse.de -- Patch needs to be upstreamed.
Patch41: sp-meetingworkspace-ui.patch
-# PATCH-FIX-UPSTREAM bnc-449888-handle-no-workspace.patch bnc449888 pchenthill(a)suse.de -- Patch needs to upstreamed.
+# PATCH-FIX-UPSTREAM bnc-449888-handle-no-workspace.patch bnc449888 pchenthill(a)suse.de -- Patch needs to be upstreamed.
Patch42: bnc-449888-handle-no-workspace.patch
+# PATCH-FIX-UPSTREAM bgo-559153-evo-migration.patch bgo559153 psankar(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch43: bgo-559153-evo-migration.patch
+# PATCH-FIX-UPSTREAM bgo-559604-calendar-tooltip-updated.patch bgo559604 -- Patch is part of GNOME 2.25.5 release.
+Patch44: bgo-559604-calendar-tooltip-updated.patch
+# PATCH-FIX-UPSTREAM bgo-564248-evo-copy-paste-images.patch bgo564248 -- Patch is part of GNOME 2.25.5 release.
+Patch45: bgo-564248-evo-copy-paste-images.patch
+# PATCH-FIX-UPSTREAM bnc-435694-retract-feature-broken.patch bnc435694 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch46: bnc-435694-retract-feature-broken.patch
+# PATCH-FIX-UPSTREAM bnc-446285-traverse-all-entries.patch bnc446285 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch47: bnc-446285-traverse-all-entries.patch
+# PATCH-FIX-UPSTREAM bnc-446287-missing-vcf-reader.patch sragavan(a)novell.com -- Patch is part of GNOME 2.25.5 release.
+Patch48: bnc-446287-missing-vcf-reader.patch
+# PATCH-FIX-UPSTREAM bnc-449952-hotkey-evo-preferences.patch bnc449952 sragavan(a)novell.com -- Patch needs to be upstreamed.
+Patch49: bnc-449952-hotkey-evo-preferences.patch
+# PATCH-FIX-UPSTREAM bnc-443544-evo-free-busy.patch bnc443544 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch50: bnc-443544-evo-free-busy.patch
+# PATCH-FIX-UPSTREAM bnc-435455-attendees-meeting-resize.patch bnc435455 shashish(a)suse.de -- Patch needs to be upstreamed.
+Patch51: bnc-435455-attendees-meeting-resize.patch
+# PATCH-FIX-UPSTREAM bnc-439998-delete-delegated-events.patch bnc439998 abharath(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch52: bnc-439998-delete-delegated-events.patch
+# PATCH-FIX-SLED bnc-440634-forwarded-hide-accept-decline.patch bnc440634 abharath(a)suse.de -- Make GW understand folders better.
+Patch53: bnc-440634-forwarded-hide-accept-decline.patch
+# PATCH-FIX-SLED bnc-445996-address-conflict.patch bnc445996 shashish(a)suse.de -- Needs to be moved out of glade files.
+Patch54: bnc-445996-address-conflict.patch
+# PATCH-FIX-UPSTREAM bnc-458153-busy-button.patch bnc458153 shashish(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch55: bnc-458153-busy-button.patch
+# PATCH-FIX-UPSTREAM bnc-462349-shared-memo-editor.patch bnc462349 -- Patch is part of GNOME 2.25.5 release.
+Patch56: bnc-462349-shared-memo-editor.patch
+# PATCH-FIX-UPSTREAM bnc-463599-header-print-issues.patch bnc463599 abharath(a)suse.de -- Patch needs to be upstreamed.
+Patch57: bnc-463599-header-print-issues.patch
+# PATCH-FIX-UPSTREAM bnc-439987-classify-sensitivity.patch bnc439987 pchenthill(a)suse.de -- Patch needs to be upstreamed.
+Patch58: bnc-439987-classify-sensitivity.patch
+# PATCH-FIX-UPSTREAM bnc-456481-evolution-eats-memory.patch bnc456481 sragavan(a)novell.com -- Patch needs to be upstreamed.
+Patch59: bnc-456481-evolution-eats-memory.patch
+# PATCH-FIX-UPSTREAM bnc-462372-open-attachment-event.patch bnc462372 shashish(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch60: bnc-462372-open-attachment-event.patch
+# PATCH-FIX-UPSTREAM bnc-458968-warning-on-delegating.patch bnc458968 msuman(a)suse.de -- Patch is part of GNOME 2.25.5 release.
+Patch61: bnc-458968-warning-on-delegating.patch
+# PATCH-FIX-UPSTREAM bgo-559604-tooltip-for-gw.patch bgo559604 -- Patch needs to be upstreamed.
+Patch62: bgo-559604-tooltip-for-gw.patch
# PATCH-FIX-UPSTREAM evo-core-mapi-changes.diff msuman(a)suse.de -- Fix is upstream since 2.25.3
Patch100: evo-core-mapi-changes.diff
Url: http://gnome.org/projects/evolution/
@@ -392,6 +432,26 @@
%patch40
%patch41 -p1
%patch42 -p1
+%patch43
+%patch44
+%patch45
+%patch46
+%patch47
+%patch48
+%patch49
+%patch50
+%patch51
+%patch52
+%patch53
+%patch54
+%patch55
+%patch56
+%patch57
+%patch58
+%patch59
+%patch60
+%patch61
+%patch62
%patch100 -p1
%build
@@ -425,7 +485,7 @@
%install
%{__make} DESTDIR=$RPM_BUILD_ROOT install
%{__cp} %{SOURCE1} $RPM_BUILD_ROOT/%{_datadir}/evolution/%evolution_base_version/images/about-box.png
-%suse_update_desktop_file -G "Mail and Calendar" evolution Core-Office
+%suse_update_desktop_file -G "Mail and Calendar" -D "evolution-%evolution_base_version" evolution Core-Office
for xml in $RPM_BUILD_ROOT/%{_datadir}/gnome/help/evolution-*/*/evolution-*.xml; do
meinproc --check --cache `echo $xml | sed 's/xml$/cache.bz2/'` $xml || :
done
@@ -449,7 +509,7 @@
%fdupes $RPM_BUILD_ROOT
%if %suse_version > 1100
%{__mv} $RPM_BUILD_ROOT/%{_bindir}/evolution $RPM_BUILD_ROOT/%{_bindir}/evolution.bin
-echo -e "#!/bin/sh\n\ncase \$1 in\n\t\"--force-shutdown\")\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@ &\n\t\tpkill evolution.bin\n\t\t;;\n\t*)\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@\n\t\t;;\n\nesac\n\nexit \$?" > $RPM_BUILD_ROOT/%{_bindir}/evolution
+echo -e "#!/bin/sh\n\ncase \$1 in\n\t\"--force-shutdown\")\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@ &\n\t\tpkill -u \$LOGNAME evolution.bin\n\t\t;;\n\t*)\n\t\tLD_LIBRARY_PATH=%{_libdir}/evoldap/lib MONO_PATH=%{_libdir}/mono:%{_libdir}/dice exec -a \"%{_bindir}/evolution\" %{_bindir}/evolution.bin \$@\n\t\t;;\n\nesac\n\nexit \$?" > $RPM_BUILD_ROOT/%{_bindir}/evolution
%{__chmod} +x $RPM_BUILD_ROOT/%{_bindir}/evolution
%endif
@@ -506,6 +566,59 @@
%{_libdir}/evolution/*/conduits
%changelog
+* Wed Jan 07 2009 abharath(a)suse.de
+- Patches added
+ + bgo#559153 - bgo-559153-evo-migration.patch - Migration fixes
+ in Evolution.
+ + bgo#559604 - bgo-559604-calendar-tooltip-updated.patch -
+ Additional Information On Calendar Tooltip.
+ + bgo#564248 - bgo-564248-evo-copy-paste-images.patch - Support
+ Copy And Paste Of Images.
+ + bnc#435694 - bnc-435694-retract-feature-broken.patch - Retract
+ of Email from Sent Items Does not Work
+ + bnc#446285 - bnc-446285-traverse-all-entries.patch - Meeting
+ Entry Does Not Allow Multiple Names.
+ + bnc#446287 - bnc-446287-missing-vcf-reader.patch - Missing
+ VCF Plugin In Email Reader.
+ + bnc#449952 - bnc-449952-hotkey-evo-preferences.patch -
+ Misplaced Hotkey on Evolution Preference Dlg.
+ + bnc#443544 - bnc-443544-evo-free-busy.patch - Evolution busy
+ search on GW resource object does not display
+ unavailable times.
+ + bnc#435455 - bnc-435455-attendees-meeting-resize.patch -
+ Attendees UI Allows Meeting Resize.
+ + bnc#439998 - bnc-439998-delete-delegated-events.patch -
+ Delegating a Meeting Should Prompt to See if a
+ Copy of the Meeting Should Be Kept.
+ + bnc#440634 - bnc-440634-forwarded-hide-accept-decline.patch -
+ Hide Accept/Decline when forwarding GW appt.
+ + bnc#445996 - bnc-445996-address-conflict.patch - address
+ conflict: [custom widget creation failed].
+ + bnc#458153 - bnc-458153-busy-button.patch - All Day
+ Appointment/Event Needs To Default To Busy.
+ + bnc#462349 - bnc-462349-shared-memo-editor.patch - Shared
+ Memos opens a normal Memo window.
+ + bnc#463599 - bnc-463599-header-print-issues.patch - Daily
+ Printouts Display Hour In Wrong Spot.
+ + bnc#439987 - bnc-439987-classify-sensitivity.patch - Save Option
+ Unavailable if Classification is Modified.
+ + bnc#456481 - bnc-456481-evolution-eats-memory.patch - evolution
+ eats up memory.
+ + bnc#462372 - bnc-462372-open-attachment-event.patch - Right click
+ on an attachment in calendar event and chose
+ application - does not work.
+ + bnc#458968 - bnc-458968-warning-on-delegating.patch - Meeting
+ delegation warns about meeting changes.
+ + bgo#559604 - bgo-559604-tooltip-for-gw.patch - Calendar Tooltip
+ updated for GW accounts.
+- Patches updated
+ + bgo#556224 - bgo-556224-search-events-offline.patch - Upstream
+ had updates.
+ + bnc#430639 - evolution-desktop.patch - Change the name in the
+ desktop file.
+- Changes to the spec
+ + bnc#463587 - [PATCH] evolution --force-shutdown Tries To Kill All
+ Users.
* Thu Dec 04 2008 abharath(a)suse.de
- Patches added
+ bgo#332729 - bgo-332729-invalid-write-econfig.patch - invalid
++++++ bgo-559153-evo-migration.patch ++++++
--- mail/em-migrate.c 2008/12/22 06:23:09 36924
+++ mail/em-migrate.c 2008/12/22 06:41:05 36925
@@ -2842,20 +2842,54 @@
g_object_unref (client);
}
-
+static gboolean
+update_progress_in_main_thread (double *progress)
+{
+ em_migrate_set_progress (*progress);
+ return FALSE;
+}
+
static void
-migrate_folders(CamelStore *store, CamelFolderInfo *fi, const char *acc, CamelException *ex)
+migrate_folders(CamelStore *store, gboolean is_local, CamelFolderInfo *fi, const char *acc, CamelException *ex, gboolean *done, int *nth_folder, int total_folders)
{
CamelFolder *folder;
while (fi) {
+ double progress;
+
+ *nth_folder = *nth_folder + 1;
+
char *tmp = g_strdup_printf ("%s/%s", acc, fi->full_name);
em_migrate_set_folder_name (tmp);
g_free (tmp);
- folder = camel_store_get_folder (store, fi->full_name, 0, ex);
+
+ progress = (double) (*nth_folder) / total_folders;
+ g_idle_add ((GSourceFunc) update_progress_in_main_thread, &progress);
+
+ if (is_local)
+ folder = camel_store_get_folder (store, fi->full_name, CAMEL_STORE_IS_MIGRATING, ex);
+ else
+ folder = camel_store_get_folder (store, fi->full_name, 0, ex);
+
if (folder != NULL)
camel_folder_summary_migrate_infos (folder->summary);
- migrate_folders(store, fi->child, acc, ex);
+
+ migrate_folders(store, is_local, fi->child, acc, ex, done, nth_folder, total_folders);
+
+ fi = fi->next;
+ }
+
+ if ( (*nth_folder) == (total_folders - 1))
+ *done = TRUE;
+}
+
+/* This could be in CamelStore.ch */
+static void
+count_folders (CamelFolderInfo *fi, int *count)
+{
+ while (fi) {
+ *count = *count + 1;
+ count_folders (fi->child , count);
fi = fi->next;
}
}
@@ -2878,75 +2912,111 @@
return store;
}
+
+struct migrate_folders_to_db_structure {
+ char *account_name;
+ CamelException ex;
+ CamelStore *store;
+ CamelFolderInfo *info;
+ gboolean done;
+ gboolean is_local_store;
+};
+
+static void migrate_folders_to_db_thread (struct migrate_folders_to_db_structure *migrate_dbs)
+{
+ int num_of_folders = 0, nth_folder = 0;
+ count_folders (migrate_dbs->info, &num_of_folders);
+ migrate_folders (migrate_dbs->store, migrate_dbs->is_local_store, migrate_dbs->info,
+ migrate_dbs->account_name, &(migrate_dbs->ex), &(migrate_dbs->done),
+ &nth_folder, num_of_folders);
+}
+
static void
migrate_to_db()
{
- EAccountList *accounts;
- EIterator *iter;
- int i=0, len;
- MailComponent *component = mail_component_peek ();
- CamelStore *store = NULL;
- CamelFolderInfo *info;
-
- if (!(accounts = mail_config_get_accounts ()))
- return;
-
- iter = e_list_get_iterator ((EList *) accounts);
- len = e_list_length ((EList *) accounts);
-
- camel_session_set_online ((CamelSession *) session, FALSE);
- em_migrate_setup_progress_dialog (_("The summary format of the Evolution mailbox "
- "folders has been moved to sqlite since Evolution 2.24.\n\nPlease be "
- "patient while Evolution migrates your folders..."));
-
- em_migrate_set_progress ( (double)i/(len+1));
- store = setup_local_store (component);
- info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, NULL);
- if (info) {
- migrate_folders(store, info, _("On This Computer"), NULL);
- }
- i++;
- em_migrate_set_progress ( (double)i/(len+1));
-
-
- while (e_iterator_is_valid (iter)) {
- EAccount *account = (EAccount *) e_iterator_get (iter);
- EAccountService *service;
- const char *name;
-
-
- service = account->source;
- name = account->name;
- em_migrate_set_progress ( (double)i/(len+1));
- if (account->enabled
- && service->url != NULL
- && service->url[0]
- && strncmp(service->url, "mbox:", 5) != 0) {
-
- CamelException ex;
-
- camel_exception_init (&ex);
- mail_component_load_store_by_uri (component, service->url, name);
-
- store = (CamelStore *) camel_session_get_service (session, service->url, CAMEL_PROVIDER_STORE, &ex);
- info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &ex);
- if (info) {
- migrate_folders(store, info, account->name, &ex);
-
- } else
- printf("%s:%s: failed to get folder infos \n", G_STRLOC, G_STRFUNC);
- camel_exception_clear(&ex);
-
+ EAccountList *accounts;
+ EIterator *iter;
+ int i=0, len;
+ MailComponent *component = mail_component_peek ();
+ CamelStore *store = NULL;
+ CamelFolderInfo *info;
+
+ if (!(accounts = mail_config_get_accounts ()))
+ return;
+
+ iter = e_list_get_iterator ((EList *) accounts);
+ len = e_list_length ((EList *) accounts);
+
+ camel_session_set_online ((CamelSession *) session, FALSE);
+
+ em_migrate_setup_progress_dialog (_("The summary format of the Evolution mailbox "
+ "folders has been moved to SQLite since Evolution 2.24.\n\nPlease be "
+ "patient while Evolution migrates your folders..."));
+
+ store = setup_local_store (component);
+ info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, NULL);
+
+ if (info) {
+ struct migrate_folders_to_db_structure migrate_dbs;
+
+ if (g_str_has_suffix (((CamelService *)store)->url->path, ".evolution/mail/local"))
+ migrate_dbs.is_local_store = TRUE;
+ else
+ migrate_dbs.is_local_store = FALSE;
+ camel_exception_init (&migrate_dbs.ex);
+ migrate_dbs.account_name = _("On This Computer");
+ migrate_dbs.info = info;
+ migrate_dbs.store = store;
+ migrate_dbs.done = FALSE;
+
+ GThread *thread;
+ thread = g_thread_create ((GThreadFunc) migrate_folders_to_db_thread, &migrate_dbs, TRUE, NULL);
+ while (!migrate_dbs.done)
+ g_main_context_iteration (NULL, TRUE);
}
i++;
- e_iterator_next (iter);
-
- }
-
- //camel_session_set_online ((CamelSession *) session, TRUE);
-
- g_object_unref (iter);
- em_migrate_close_progress_dialog ();
+ while (e_iterator_is_valid (iter)) {
+ EAccount *account = (EAccount *) e_iterator_get (iter);
+ EAccountService *service;
+ const char *name;
+
+ service = account->source;
+ name = account->name;
+ if (account->enabled
+ && service->url != NULL
+ && service->url[0]
+ && strncmp(service->url, "mbox:", 5) != 0) {
+
+ CamelException ex;
+
+ camel_exception_init (&ex);
+ mail_component_load_store_by_uri (component, service->url, name);
+
+ store = (CamelStore *) camel_session_get_service (session, service->url, CAMEL_PROVIDER_STORE, &ex);
+ info = camel_store_get_folder_info (store, NULL, CAMEL_STORE_FOLDER_INFO_RECURSIVE|CAMEL_STORE_FOLDER_INFO_FAST|CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &ex);
+ if (info) {
+ struct migrate_folders_to_db_structure migrate_dbs;
+
+ migrate_dbs.ex = ex;
+ migrate_dbs.account_name = account->name;
+ migrate_dbs.info = info;
+ migrate_dbs.store = store;
+ migrate_dbs.done = FALSE;
+
+ GThread *thread;
+ thread = g_thread_create ((GThreadFunc) migrate_folders_to_db_thread, &migrate_dbs, TRUE, NULL);
+ while (!migrate_dbs.done)
+ g_main_context_iteration (NULL, TRUE);
+ } else
+ printf("%s:%s: failed to get folder infos \n", G_STRLOC, G_STRFUNC);
+ camel_exception_clear(&ex);
+ }
+ i++;
+ e_iterator_next (iter);
+ }
+ //camel_session_set_online ((CamelSession *) session, TRUE);
+ g_object_unref (iter);
+ em_migrate_close_progress_dialog ();
}
int
++++++ bgo-559604-calendar-tooltip-updated.patch ++++++
Index: calendar/gui/e-calendar-table.c
===================================================================
--- calendar/gui/e-calendar-table.c (revision 36811)
+++ calendar/gui/e-calendar-table.c (working copy)
@@ -432,7 +432,7 @@ query_tooltip_cb (GtkWidget *widget, gin
e_cal_component_free_datetime (&dtstart);
e_cal_component_free_datetime (&dtdue);
- tmp = e_calendar_view_get_attendees_status_info (new_comp);
+ tmp = e_calendar_view_get_attendees_status_info (new_comp, comp->client);
if (tmp) {
l = gtk_label_new (tmp);
gtk_misc_set_alignment (GTK_MISC (l), 0.0, 0.5);
Index: calendar/gui/e-calendar-view.c
===================================================================
--- calendar/gui/e-calendar-view.c (revision 36811)
+++ calendar/gui/e-calendar-view.c (working copy)
@@ -2137,7 +2137,7 @@ e_calendar_view_move_tip (GtkWidget *wid
* Free returned pointer with g_free.
**/
char *
-e_calendar_view_get_attendees_status_info (ECalComponent *comp)
+e_calendar_view_get_attendees_status_info (ECalComponent *comp, ECal *client)
{
struct _values {
icalparameter_partstat status;
@@ -2158,7 +2158,7 @@ e_calendar_view_get_attendees_status_inf
char *res = NULL;
int i;
- if (!comp || !e_cal_component_has_attendees (comp))
+ if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user (comp, client))
return NULL;
e_cal_component_get_attendee_list (comp, &attendees);
@@ -2354,7 +2354,7 @@ e_calendar_view_get_tooltips (ECalendarV
g_free (tmp2);
g_free (tmp1);
- tmp = e_calendar_view_get_attendees_status_info (newcomp);
+ tmp = e_calendar_view_get_attendees_status_info (newcomp, pevent->comp_data->client);
if (tmp) {
hbox = gtk_hbox_new (FALSE, 0);
gtk_box_pack_start ((GtkBox *)hbox, gtk_label_new (tmp), FALSE, FALSE, 0);
Index: calendar/gui/e-calendar-view.h
===================================================================
--- calendar/gui/e-calendar-view.h (revision 36811)
+++ calendar/gui/e-calendar-view.h (working copy)
@@ -175,7 +175,7 @@ gboolean e_calendar_view_get_tooltips (E
void e_calendar_view_move_tip (GtkWidget *widget, int x, int y);
const gchar *e_calendar_view_get_icalcomponent_summary (ECal *ecal, icalcomponent *icalcomp, gboolean *free_text);
-char *e_calendar_view_get_attendees_status_info (ECalComponent *comp);
+char *e_calendar_view_get_attendees_status_info (ECalComponent *comp, ECal *client);
void draw_curved_rectangle (cairo_t *cr,
double x0,
++++++ bgo-559604-tooltip-for-gw.patch ++++++
Index: calendar/gui/itip-utils.c
===================================================================
--- calendar/gui/itip-utils.c (revision 37007)
+++ calendar/gui/itip-utils.c (working copy)
@@ -83,13 +83,13 @@ itip_addresses_get_default (void)
}
gboolean
-itip_organizer_is_user (ECalComponent *comp, ECal *client)
+itip_organizer_is_user_ex (ECalComponent *comp, ECal *client, gboolean skip_cap_test)
{
ECalComponentOrganizer organizer;
const char *strip;
gboolean user_org = FALSE;
- if (!e_cal_component_has_organizer (comp) || e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_ORGANIZER))
+ if (!e_cal_component_has_organizer (comp) || (!skip_cap_test && e_cal_get_static_capability (client, CAL_STATIC_CAPABILITY_NO_ORGANIZER)))
return FALSE;
e_cal_component_get_organizer (comp, &organizer);
@@ -117,6 +117,12 @@ itip_organizer_is_user (ECalComponent *c
}
gboolean
+itip_organizer_is_user (ECalComponent *comp, ECal *client)
+{
+ return itip_organizer_is_user_ex (comp, client, FALSE);
+}
+
+gboolean
itip_sentby_is_user (ECalComponent *comp)
{
ECalComponentOrganizer organizer;
Index: calendar/gui/itip-utils.h
===================================================================
--- calendar/gui/itip-utils.h (revision 37007)
+++ calendar/gui/itip-utils.h (working copy)
@@ -51,6 +51,7 @@ EAccountList *itip_addresses_get (void);
EAccount *itip_addresses_get_default (void);
gboolean itip_organizer_is_user (ECalComponent *comp, ECal *client);
+gboolean itip_organizer_is_user_ex (ECalComponent *comp, ECal *client, gboolean skip_cap_test);
gboolean itip_sentby_is_user (ECalComponent *comp);
const gchar *itip_strip_mailto (const gchar *address);
Index: calendar/gui/e-calendar-view.c
===================================================================
--- calendar/gui/e-calendar-view.c (revision 37007)
+++ calendar/gui/e-calendar-view.c (working copy)
@@ -2234,7 +2234,7 @@ e_calendar_view_get_attendees_status_inf
char *res = NULL;
int i;
- if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user (comp, client))
+ if (!comp || !e_cal_component_has_attendees (comp) || !itip_organizer_is_user_ex (comp, client, TRUE))
return NULL;
e_cal_component_get_attendee_list (comp, &attendees);
++++++ bgo-564248-evo-copy-paste-images.patch ++++++
Index: composer/e-msg-composer.c
===================================================================
--- composer/e-msg-composer.c (revision 36891)
+++ composer/e-msg-composer.c (working copy)
@@ -67,6 +67,7 @@
#include "e-util/e-plugin-ui.h"
#include "e-util/e-util-private.h"
#include "e-util/e-util.h"
+#include "e-util/e-mktemp.h"
#include <mail/em-event.h>
#include "e-signature-combo-box.h"
@@ -2454,6 +2455,7 @@ msg_composer_paste_clipboard (GtkhtmlEdi
EMsgComposer *composer;
GtkWidget *parent;
GtkWidget *widget;
+ GtkClipboard *clipboard;
composer = E_MSG_COMPOSER (editor);
widget = gtk_window_get_focus (GTK_WINDOW (editor));
@@ -2464,8 +2466,37 @@ msg_composer_paste_clipboard (GtkhtmlEdi
return;
}
- /* Chain up to parent's paste_clipboard() method. */
- GTKHTML_EDITOR_CLASS (parent_class)->paste_clipboard (editor);
+ clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+ if (clipboard && gtk_clipboard_wait_is_image_available (clipboard)) {
+ GdkPixbuf *pixbuf;
+
+ pixbuf = gtk_clipboard_wait_for_image (clipboard);
+ if (pixbuf) {
+ char *tmpl = g_strconcat (_("Image"), "-XXXXXX", NULL);
+ char *filename = e_mktemp (tmpl);
+
+ g_free (tmpl);
+
+ if (filename && gdk_pixbuf_save (pixbuf, filename, "png", NULL, NULL)) {
+ if (gtkhtml_editor_get_html_mode (editor)) {
+ char *uri = g_strconcat ("file://", filename, NULL);
+ /* this loads image async, thus cannot remove file from this */
+ gtkhtml_editor_insert_image (editor, uri);
+ g_free (uri);
+ } else {
+ /* this loads image immediately, remove file from cache to free up disk space */
+ e_attachment_bar_attach (E_ATTACHMENT_BAR (composer->priv->attachment_bar), filename, "image/png");
+ g_remove (filename);
+ }
+ }
+
+ g_free (filename);
+ g_object_unref (pixbuf);
+ }
+ } else {
+ /* Chain up to parent's paste_clipboard() method. */
+ GTKHTML_EDITOR_CLASS (parent_class)->paste_clipboard (editor);
+ }
}
static void
++++++ bnc-435455-attendees-meeting-resize.patch ++++++
Index: calendar/gui/e-day-view-main-item.c
===================================================================
--- calendar/gui/e-day-view-main-item.c (revision 36947)
+++ calendar/gui/e-day-view-main-item.c (working copy)
@@ -940,146 +940,18 @@
if (day_view->resize_drag_pos != E_CALENDAR_VIEW_POS_NONE
&& day_view->resize_event_day == day
&& day_view->resize_event_num == event_num) {
- resize_flag = TRUE;
+ /* If the item is being resized, don't resized it.
+ I have removed code which are resized the meeting.
+ It will block the resize or move the meeting in
+ calendar UI from attendee side.*/
if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_TOP_EDGE)
bar_y1 = item_y + 1;
- else if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_BOTTOM_EDGE) {
+ else if (day_view->resize_drag_pos == E_CALENDAR_VIEW_POS_BOTTOM_EDGE)
bar_y2 = item_y + item_h - 1;
-
- end_minute = event->end_minute;
-
- end_hour = end_minute / 60;
- end_minute = end_minute % 60;
-
- e_day_view_convert_time_to_display (day_view, end_hour,
- &end_display_hour,
- &end_resize_suffix,
- &end_suffix_width);
-
- cairo_save (cr);
- cairo_rectangle (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 1.75, item_y + 2.75,
- item_w - E_DAY_VIEW_BAR_WIDTH - 4.5,
- item_h - 5.5);
- cairo_clip (cr);
- cairo_new_path (cr);
-
- if (e_calendar_view_get_use_24_hour_format (E_CALENDAR_VIEW (day_view))) {
- cairo_translate (cr, item_x + item_w - E_DAY_VIEW_BAR_WIDTH - 32, item_y + item_h - 8);
- end_resize_time = g_strdup_printf ("%2i:%02i",
- end_display_hour, end_minute);
-
- } else {
- cairo_translate (cr, item_x + item_w - E_DAY_VIEW_BAR_WIDTH - 48, item_y + item_h - 8);
- end_resize_time = g_strdup_printf ("%2i:%02i%s",
- end_display_hour, end_minute,
- end_resize_suffix);
- }
- cairo_set_font_size (cr, 14);
- if ((red/cc > 0.7) || (green/cc > 0.7) || (blue/cc > 0.7 ))
- cairo_set_source_rgb (cr, 0, 0, 0);
- else
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_set_font_options (cr, font_options);
- cairo_show_text (cr, end_resize_time);
- cairo_close_path (cr);
- cairo_restore (cr);
- }
}
- if (bar_y2 > scroll_flag)
- event->end_minute += day_view->mins_per_row;
- else if (bar_y2 < scroll_flag)
- event->end_minute -= day_view->mins_per_row;
-
- if (!short_event)
- {
- if (event->start_minute % day_view->mins_per_row != 0
- || (day_view->show_event_end_times
- && event->end_minute % day_view->mins_per_row != 0)) {
- offset = day_view->first_hour_shown * 60
- + day_view->first_minute_shown;
- show_span = TRUE;
- } else {
- offset = 0;
- }
- start_minute = offset + event->start_minute;
- end_minute = offset + event->end_minute;
-
- format_time = (((end_minute - start_minute)/day_view->mins_per_row) >= 2) ? TRUE : FALSE;
-
- start_hour = start_minute / 60;
- start_minute = start_minute % 60;
-
- end_hour = end_minute / 60;
- end_minute = end_minute % 60;
-
- e_day_view_convert_time_to_display (day_view, start_hour,
- &start_display_hour,
- &start_suffix,
- &start_suffix_width);
- e_day_view_convert_time_to_display (day_view, end_hour,
- &end_display_hour,
- &end_suffix,
- &end_suffix_width);
-
- if (e_calendar_view_get_use_24_hour_format (E_CALENDAR_VIEW (day_view))) {
- if (day_view->show_event_end_times && show_span) {
- /* 24 hour format with end time. */
- text = g_strdup_printf
- ("%2i:%02i-%2i:%02i",
- start_display_hour, start_minute,
- end_display_hour, end_minute);
- } else {
- if (format_time) {
- /* 24 hour format without end time. */
- text = g_strdup_printf
- ("%2i:%02i",
- start_display_hour, start_minute);
- }
- }
- } else {
- if (day_view->show_event_end_times && show_span) {
- /* 12 hour format with end time. */
- text = g_strdup_printf
- ("%2i:%02i%s-%2i:%02i%s",
- start_display_hour, start_minute,
- start_suffix,
- end_display_hour, end_minute, end_suffix);
- } else {
- /* 12 hour format without end time. */
- text = g_strdup_printf
- ("%2i:%02i%s",
- start_display_hour, start_minute,
- start_suffix);
- }
- }
-
- cairo_save (cr);
- cairo_rectangle (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 1.75, item_y + 2.75,
- item_w - E_DAY_VIEW_BAR_WIDTH - 4.5,
- 14);
- cairo_clip (cr);
- cairo_new_path (cr);
- if (resize_flag)
- cairo_move_to (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 10, item_y + 13);
- else
- cairo_move_to (cr, item_x + E_DAY_VIEW_BAR_WIDTH + 14, item_y + 13);
- if ((red/cc > 0.7) || (green/cc > 0.7) || (blue/cc > 0.7 ))
- cairo_set_source_rgb (cr, 0, 0, 0);
- else
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_set_font_size (cr, 14.0);
- cairo_set_font_options (cr, font_options);
- cairo_show_text (cr, text);
- cairo_close_path (cr);
- cairo_restore (cr);
- }
-
- if (font_options)
- cairo_font_options_destroy (font_options);
-
comp = e_cal_component_new ();
e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (event->comp_data->icalcomp));
@@ -1115,188 +987,181 @@
&day_view->colors[E_DAY_VIEW_COLOR_EVENT_VBAR]);
/* Draw the reminder & recurrence icons, if needed. */
- if (!resize_flag) {
- num_icons = 0;
- draw_reminder_icon = FALSE;
- draw_recurrence_icon = FALSE;
- draw_timezone_icon = FALSE;
- draw_meeting_icon = FALSE;
- draw_attach_icon = FALSE;
- icon_x = item_x + E_DAY_VIEW_BAR_WIDTH + E_DAY_VIEW_ICON_X_PAD;
- icon_y = item_y + E_DAY_VIEW_EVENT_BORDER_HEIGHT
- + E_DAY_VIEW_ICON_Y_PAD;
+ num_icons = 0;
+ draw_reminder_icon = FALSE;
+ draw_recurrence_icon = FALSE;
+ draw_timezone_icon = FALSE;
+ draw_meeting_icon = FALSE;
+ draw_attach_icon = FALSE;
+ icon_x = item_x + E_DAY_VIEW_BAR_WIDTH + E_DAY_VIEW_ICON_X_PAD;
+ icon_y = item_y + E_DAY_VIEW_EVENT_BORDER_HEIGHT
+ + E_DAY_VIEW_ICON_Y_PAD;
- if (e_cal_component_has_alarms (comp)) {
- draw_reminder_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_alarms (comp)) {
+ draw_reminder_icon = TRUE;
+ num_icons++;
+ }
- if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance (comp)) {
- draw_recurrence_icon = TRUE;
- num_icons++;
- }
- if (e_cal_component_has_attachments (comp)) {
- draw_attach_icon = TRUE;
- num_icons++;
- }
- /* If the DTSTART or DTEND are in a different timezone to our current
- timezone, we display the timezone icon. */
- if (event->different_timezone) {
- draw_timezone_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_recurrences (comp) || e_cal_component_is_instance (comp)) {
+ draw_recurrence_icon = TRUE;
+ num_icons++;
+ }
+ if (e_cal_component_has_attachments (comp)) {
+ draw_attach_icon = TRUE;
+ num_icons++;
+ }
+ /* If the DTSTART or DTEND are in a different timezone to our current
+ timezone, we display the timezone icon. */
+ if (event->different_timezone) {
+ draw_timezone_icon = TRUE;
+ num_icons++;
+ }
- if (e_cal_component_has_organizer (comp)) {
- draw_meeting_icon = TRUE;
- num_icons++;
- }
+ if (e_cal_component_has_organizer (comp)) {
+ draw_meeting_icon = TRUE;
+ num_icons++;
+ }
- num_icons += cal_comp_util_get_n_icons (comp);
- e_cal_component_get_categories_list (comp, &categories_list);
+ num_icons += cal_comp_util_get_n_icons (comp);
+ e_cal_component_get_categories_list (comp, &categories_list);
- if (num_icons != 0) {
- if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD)
- * num_icons) {
- icon_x_inc = 0;
- icon_y_inc = E_DAY_VIEW_ICON_HEIGHT
- + E_DAY_VIEW_ICON_Y_PAD;
- } else {
- icon_x_inc = E_DAY_VIEW_ICON_WIDTH
- + E_DAY_VIEW_ICON_X_PAD;
- icon_y_inc = 0;
- }
+ if (num_icons != 0) {
+ if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD)
+ * num_icons) {
+ icon_x_inc = 0;
+ icon_y_inc = E_DAY_VIEW_ICON_HEIGHT
+ + E_DAY_VIEW_ICON_Y_PAD;
+ } else {
+ icon_x_inc = E_DAY_VIEW_ICON_WIDTH
+ + E_DAY_VIEW_ICON_X_PAD;
+ icon_y_inc = 0;
+ }
- if (draw_reminder_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ if (draw_reminder_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->reminder_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->reminder_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ if (draw_recurrence_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- if (draw_recurrence_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->recurrence_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ if (draw_attach_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->recurrence_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->attach_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ if (draw_timezone_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
- if (draw_attach_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ cairo_save (cr);
+ cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
+ cairo_clip (cr);
+ cairo_new_path (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->timezone_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_close_path (cr);
+ cairo_restore (cr);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->attach_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
- if (draw_timezone_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ if (draw_meeting_icon) {
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- cairo_save (cr);
- cairo_rectangle (cr, icon_x, icon_y, max_icon_w, max_icon_h);
- cairo_clip (cr);
- cairo_new_path (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->timezone_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_close_path (cr);
- cairo_restore (cr);
+ cairo_save (cr);
+ gdk_cairo_set_source_pixbuf (cr, day_view->meeting_icon, icon_x, icon_y);
+ cairo_paint (cr);
+ cairo_restore (cr);
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
+ }
+ /* draw categories icons */
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
- if (draw_meeting_icon) {
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
+ category = (char *) elem->data;
+ if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
+ continue;
- cairo_save (cr);
- gdk_cairo_set_source_pixbuf (cr, day_view->meeting_icon, icon_x, icon_y);
- cairo_paint (cr);
- cairo_restore (cr);
+ max_icon_w = item_x + item_w - icon_x
+ - E_DAY_VIEW_EVENT_BORDER_WIDTH;
+ max_icon_h = item_y + item_h - icon_y
+ - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
+ gdk_gc_set_clip_origin (gc, icon_x, icon_y);
+ if (mask != NULL)
+ gdk_gc_set_clip_mask (gc, mask);
+ gdk_draw_drawable (drawable, gc,
+ pixmap,
+ 0, 0, icon_x, icon_y,
+ MIN (E_DAY_VIEW_ICON_WIDTH,
+ max_icon_w),
+ MIN (E_DAY_VIEW_ICON_HEIGHT,
+ max_icon_h));
- /* draw categories icons */
- for (elem = categories_list; elem; elem = elem->next) {
- char *category;
- GdkPixmap *pixmap = NULL;
- GdkBitmap *mask = NULL;
+ g_object_unref (pixmap);
+ if (mask != NULL)
+ g_object_unref (mask);
- category = (char *) elem->data;
- if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
- continue;
-
- max_icon_w = item_x + item_w - icon_x
- - E_DAY_VIEW_EVENT_BORDER_WIDTH;
- max_icon_h = item_y + item_h - icon_y
- - E_DAY_VIEW_EVENT_BORDER_HEIGHT;
-
- gdk_gc_set_clip_origin (gc, icon_x, icon_y);
- if (mask != NULL)
- gdk_gc_set_clip_mask (gc, mask);
- gdk_draw_drawable (drawable, gc,
- pixmap,
- 0, 0, icon_x, icon_y,
- MIN (E_DAY_VIEW_ICON_WIDTH,
- max_icon_w),
- MIN (E_DAY_VIEW_ICON_HEIGHT,
- max_icon_h));
-
- g_object_unref (pixmap);
- if (mask != NULL)
- g_object_unref (mask);
-
- icon_x += icon_x_inc;
- icon_y += icon_y_inc;
- }
-
- gdk_gc_set_clip_mask (gc, NULL);
+ icon_x += icon_x_inc;
+ icon_y += icon_y_inc;
}
- /* free memory */
- e_cal_component_free_categories_list (categories_list);
+ gdk_gc_set_clip_mask (gc, NULL);
}
- g_free (text);
+ /* free memory */
+ e_cal_component_free_categories_list (categories_list);
+
g_object_unref (comp);
cairo_destroy (cr);
}
++++++ bnc-435694-retract-feature-broken.patch ++++++
Index: plugins/groupwise-features/mail-retract.c
===================================================================
--- plugins/groupwise-features/mail-retract.c (revision 36818)
+++ plugins/groupwise-features/mail-retract.c (working copy)
@@ -104,8 +104,8 @@
/* for translation*/
if (!first) {
- popup_items[0].label = _(popup_items[0].label);
- popup_items[0].user_data = g_strdup((char *) g_ptr_array_index(uids, 0));
+ popup_items[1].label = _(popup_items[1].label);
+ popup_items[1].user_data = g_strdup((char *) g_ptr_array_index(uids, 0));
}
first++;
++++++ bnc-439987-classify-sensitivity.patch ++++++
--- calendar/gui/dialogs/comp-editor.c
+++ calendar/gui/dialogs/comp-editor.c
@@ -1771,6 +1771,14 @@ comp_editor_class_init (CompEditorClass *class)
G_TYPE_NONE, 0);
}
+static void
+on_classification_changed (GtkRadioAction *action, GtkRadioAction *current, gpointer *data)
+{
+ CompEditor *editor = COMP_EDITOR (data);
+
+ comp_editor_set_changed (editor, TRUE);
+}
+
static void
comp_editor_init (CompEditor *editor)
{
@@ -1820,7 +1828,7 @@ comp_editor_init (CompEditor *editor)
action_group, classification_radio_entries,
G_N_ELEMENTS (classification_radio_entries),
E_CAL_COMPONENT_CLASS_PUBLIC,
- NULL, NULL); /* no callback */
+ G_CALLBACK (on_classification_changed), editor); /* no callback */
action = e_attachment_bar_recent_action_new (
E_ATTACHMENT_BAR (priv->attachment_bar),
"attach-recent", _("Recent _Documents"));
++++++ bnc-439998-delete-delegated-events.patch ++++++
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36884)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -1102,6 +1102,24 @@
g_object_unref (comp);
}
+static gboolean
+remove_event_dialog (ECal *client,
+ ECalComponent *comp,
+ GtkWindow *parent)
+{
+ GtkWidget *dialog;
+ gboolean ret;
+
+ g_return_val_if_fail (E_IS_CAL_COMPONENT (comp), TRUE);
+
+ dialog = gtk_message_dialog_new (parent, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _("Keep original item?"));
+ gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
+ ret = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES;
+ gtk_widget_destroy (dialog);
+
+ return ret;
+}
+
static void
action_save_cb (GtkAction *action,
CompEditor *editor)
@@ -1153,9 +1171,33 @@
if (!text.value)
if (!send_component_prompt_subject ((GtkWindow *) editor, priv->client, priv->comp))
return;
- if (save_comp_with_send (editor))
- close_dialog (editor);
+ if (save_comp_with_send (editor)) {
+ CompEditorFlags flags;
+ gboolean delegate;
+
+ flags = comp_editor_get_flags (editor);
+ delegate = flags & COMP_EDITOR_DELEGATE;
+
+ if (delegate && !remove_event_dialog (priv->client, priv->comp, GTK_WINDOW (editor))) {
+ const char *uid = NULL;
+ GError *error = NULL;
+
+ e_cal_component_get_uid (priv->comp, &uid);
+
+ if (e_cal_component_is_instance (priv->comp) || e_cal_component_has_recurrences (priv->comp)) {
+ gchar *rid;
+ rid = e_cal_component_get_recurid_as_string (priv->comp);
+ e_cal_remove_object_with_mod (priv->client, uid, rid, priv->mod, &error);
+ g_free (rid);
+ } else
+ e_cal_remove_object (priv->client, uid, &error);
+
+ g_clear_error (&error);
+ }
+ }
+
+ close_dialog (editor);
}
static void
++++++ bnc-440634-forwarded-hide-accept-decline.patch ++++++
Index: plugins/itip-formatter/itip-formatter.c
===================================================================
--- plugins/itip-formatter/itip-formatter.c (revision 36884)
+++ plugins/itip-formatter/itip-formatter.c (working copy)
@@ -1955,6 +1955,12 @@
!em_utils_folder_is_outbox (folder, uri) &&
!em_utils_folder_is_drafts (folder, uri);
+ /*FIXME: GW needs to set the drafts_folder_uri and sent_folder_uri properly.
+ A workaround till then */
+ if (res && (!g_ascii_strcasecmp (folder->name, _("Sent")) ||
+ !g_ascii_strcasecmp (folder->name, _("Sent Items"))))
+ res = 0;
+
g_free (uri);
return res;
@@ -2000,6 +2006,15 @@
response_enabled = in_proper_folder (((EMFormat*)efh)->folder);
+ /* Do not display Accept/Decline Buttons if its a forwarded meeting request */
+ if (response_enabled) {
+ CamelMimeMessage *msg = info->msg;
+ const char *subject = camel_mime_message_get_subject (msg);
+
+ if (!g_ascii_strncasecmp (subject, _("[Fwd: "), 6))
+ response_enabled = 0;
+ }
+
if (!response_enabled) {
itip_view_set_mode (ITIP_VIEW (info->view), ITIP_VIEW_MODE_HIDE_ALL);
} else {
++++++ bnc-443544-evo-free-busy.patch ++++++
Index: calendar/gui/e-meeting-store.c
===================================================================
--- calendar/gui/e-meeting-store.c (revision 36995)
+++ calendar/gui/e-meeting-store.c (working copy)
@@ -1017,6 +1017,10 @@
busy_type = E_MEETING_FREE_BUSY_TENTATIVE;
break;
+ case ICAL_FBTYPE_FREE:
+ busy_type = E_MEETING_FREE_BUSY_FREE;
+ break;
+
default:
break;
}
Index: calendar/gui/e-meeting-types.h
===================================================================
--- calendar/gui/e-meeting-types.h (revision 36995)
+++ calendar/gui/e-meeting-types.h (working copy)
@@ -48,11 +48,12 @@
used as for loop counters, so they should start at 0 and be ordered. */
typedef enum
{
- E_MEETING_FREE_BUSY_TENTATIVE = 0,
+ E_MEETING_FREE_BUSY_TENTATIVE = 0,
E_MEETING_FREE_BUSY_OUT_OF_OFFICE = 1,
E_MEETING_FREE_BUSY_BUSY = 2,
+ E_MEETING_FREE_BUSY_FREE = 3,
- E_MEETING_FREE_BUSY_LAST = 3
+ E_MEETING_FREE_BUSY_LAST = 4
} EMeetingFreeBusyType;
/* This is our representation of a time. We use a GDate to store the day,
Index: calendar/gui/e-meeting-attendee.c
===================================================================
--- calendar/gui/e-meeting-attendee.c (revision 36995)
+++ calendar/gui/e-meeting-attendee.c (working copy)
@@ -845,6 +845,10 @@
if (compare_times (&period.start, &period.end) > 0)
return FALSE;
+ /* If the busy_type is FREE, then there is no need to render it in UI */
+ if (busy_type == E_MEETING_FREE_BUSY_FREE)
+ goto done;
+
/* If the busy range is not set elsewhere, track it as best we can */
if (!priv->start_busy_range_set) {
if (!g_date_valid (&priv->busy_periods_start.date)) {
@@ -871,6 +875,7 @@
}
}
}
+
if (!priv->end_busy_range_set) {
if (!g_date_valid (&priv->busy_periods_end.date)) {
priv->busy_periods_end.date = period.end.date;
@@ -898,12 +903,14 @@
}
g_array_append_val (priv->busy_periods, period);
- priv->has_calendar_info = TRUE;
- priv->busy_periods_sorted = FALSE;
period_in_days = g_date_get_julian (&period.end.date) - g_date_get_julian (&period.start.date) + 1;
priv->longest_period_in_days = MAX (priv->longest_period_in_days, period_in_days);
+done:
+ priv->has_calendar_info = TRUE;
+ priv->busy_periods_sorted = FALSE;
+
return TRUE;
}
Index: calendar/gui/e-meeting-time-sel.c
===================================================================
--- calendar/gui/e-meeting-time-sel.c (revision 36995)
+++ calendar/gui/e-meeting-time-sel.c (working copy)
@@ -649,6 +649,7 @@
e_meeting_time_selector_alloc_named_color (mts, "white", &mts->attendee_list_bg_color);
e_meeting_time_selector_alloc_named_color (mts, "snow4", &mts->meeting_time_bg_color);
+ e_meeting_time_selector_alloc_named_color (mts, "snow", &mts->busy_colors[E_MEETING_FREE_BUSY_FREE]);
e_meeting_time_selector_alloc_named_color (mts, "yellow", &mts->busy_colors[E_MEETING_FREE_BUSY_TENTATIVE]);
e_meeting_time_selector_alloc_named_color (mts, "blue", &mts->busy_colors[E_MEETING_FREE_BUSY_BUSY]);
e_meeting_time_selector_alloc_named_color (mts, "orange4", &mts->busy_colors[E_MEETING_FREE_BUSY_OUT_OF_OFFICE]);
++++++ bnc-445996-address-conflict.patch ++++++
Index: e-util/e-gui-utils.c
===================================================================
--- e-util/e-gui-utils.c (revision 36925)
+++ e-util/e-gui-utils.c (working copy)
@@ -64,3 +64,30 @@
return pixbuf;
}
+
+GtkWidget *e_create_image_widget(gchar *name,
+ gchar *string1, gchar *string2,
+ gint int1, gint int2)
+{
+ GtkWidget *alignment = NULL;
+ GtkWidget *w;
+
+ if (string1) {
+ w = gtk_image_new_from_icon_name (
+ string1, GTK_ICON_SIZE_DIALOG);
+
+ gtk_misc_set_alignment (GTK_MISC (w), 0.5, 0.5);
+
+ alignment = gtk_widget_new(gtk_alignment_get_type(),
+ "child", w,
+ "xalign", (double) 0,
+ "yalign", (double) 0,
+ "xscale", (double) 0,
+ "yscale", (double) 0,
+ NULL);
+
+ gtk_widget_show_all (alignment);
+ }
+
+ return alignment;
+}
++++++ bnc-446285-traverse-all-entries.patch ++++++
Index: calendar/gui/e-select-names-editable.c
===================================================================
--- calendar/gui/e-select-names-editable.c (revision 36818)
+++ calendar/gui/e-select-names-editable.c (working copy)
@@ -129,7 +129,7 @@
e_select_names_editable_get_emails (ESelectNamesEditable *esne)
{
EDestinationStore *destination_store;
- GList *destinations;
+ GList *destinations, *l;
EDestination *destination;
GList *result = NULL;
@@ -140,25 +140,27 @@
if (!destinations)
return NULL;
- destination = destinations->data;
- if (e_destination_is_evolution_list (destination)) {
- const GList *list_dests, *l;
+ for (l = destinations; l != NULL; l = l->next) {
+ destination = l->data;
+ if (e_destination_is_evolution_list (destination)) {
+ const GList *list_dests, *l;
- list_dests = e_destination_list_get_dests (destination);
- for (l = list_dests; l != NULL; l = g_list_next (l)) {
- result = g_list_append (result, g_strdup (e_destination_get_email (l->data)));
+ list_dests = e_destination_list_get_dests (destination);
+ for (l = list_dests; l != NULL; l = g_list_next (l)) {
+ result = g_list_append (result, g_strdup (e_destination_get_email (l->data)));
+ }
+ } else {
+ /* check if the contact is contact list, it does not contain all the email ids */
+ /* we dont expand it currently, TODO do we need to expand it by getting it from addressbook*/
+ if (e_destination_get_contact (destination) &&
+ e_contact_get (e_destination_get_contact (destination), E_CONTACT_IS_LIST)) {
+ /* If its a contact_list which is not expanded, it wont have a email id,
+ so we can use the name as the email id */
+
+ result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
+ } else
+ result = g_list_append (result, g_strdup (e_destination_get_email (destination)));
}
- } else {
- /* check if the contact is contact list, it does not contain all the email ids */
- /* we dont expand it currently, TODO do we need to expand it by getting it from addressbook*/
- if (e_destination_get_contact (destination) &&
- e_contact_get (e_destination_get_contact (destination), E_CONTACT_IS_LIST)) {
- /* If its a contact_list which is not expanded, it wont have a email id,
- so we can use the name as the email id */
-
- result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
- } else
- result = g_list_append (result, g_strdup (e_destination_get_email (destination)));
}
g_list_free (destinations);
@@ -191,7 +193,7 @@
e_select_names_editable_get_names (ESelectNamesEditable *esne)
{
EDestinationStore *destination_store;
- GList *destinations;
+ GList *destinations, *l;
EDestination *destination;
GList *result = NULL;
@@ -202,18 +204,20 @@
if (!destinations)
return NULL;
- destination = destinations->data;
- if (e_destination_is_evolution_list (destination)) {
- const GList *list_dests, *l;
+ for (l = destinations; l != NULL; l = l->next) {
+ destination = l->data;
+ if (e_destination_is_evolution_list (destination)) {
+ const GList *list_dests, *l;
- list_dests = e_destination_list_get_dests (destination);
- for (l = list_dests; l != NULL; l = g_list_next (l)) {
- result = g_list_append (result, g_strdup (e_destination_get_name (l->data)));
+ list_dests = e_destination_list_get_dests (destination);
+ for (l = list_dests; l != NULL; l = g_list_next (l)) {
+ result = g_list_append (result, g_strdup (e_destination_get_name (l->data)));
+ }
+ } else {
+ result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
}
- } else {
- result = g_list_append (result, g_strdup (e_destination_get_name (destination)));
}
-
+
g_list_free (destinations);
return result;
++++++ bnc-446287-missing-vcf-reader.patch ++++++
--- mail//em-format-html-display.c 2008-10-13 14:07:24.000000000 +0530
+++ mail//em-format-html-display.c 2008-12-22 15:19:01.000000000 +0530
@@ -49,6 +49,7 @@
#include <bonobo/bonobo-control-frame.h>
#include <bonobo/bonobo-stream-memory.h>
#include <bonobo/bonobo-widget.h>
+#include <bonobo-activation/bonobo-activation-mime.h>
#include <camel/camel-stream.h>
#include <camel/camel-stream-filter.h>
@@ -188,6 +189,8 @@ static void efhd_format_secure(EMFormat
static void efhd_complete(EMFormat *);
gboolean efhd_mnemonic_show_bar (GtkWidget *widget, gboolean focus, GtkWidget *efhd);
+static gboolean efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject);
+static gboolean efhd_use_component(const char *mime_type);
static void efhd_builtin_init(EMFormatHTMLDisplayClass *efhc);
enum {
@@ -1303,10 +1306,37 @@ efhd_builtin_init(EMFormatHTMLDisplayCla
}
/* ********************************************************************** */
-
+static void
+efhd_bonobo_unknown(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
+{
+ char *classid;
+
+ classid = g_strdup_printf("bonobo-unknown:///em-format-html-display/%s", emf->part_id->str);
+ em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_bonobo_object);
+ camel_stream_printf(stream, "<object classid=\"%s\" type=\"%s\"></object><br>\n", classid, info->mime_type);
+ g_free(classid);
+}
+
+ /* ********************************************************************** */
static const EMFormatHandler *efhd_find_handler(EMFormat *emf, const char *mime_type)
{
- return ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type);
+ const EMFormatHandler *handle;
+
+ if ( (handle = ((EMFormatClass *)efhd_parent)->find_handler(emf, mime_type)) == NULL
+ && efhd_use_component(mime_type)
+ && (handle = g_hash_table_lookup(efhd_bonobo_handlers, mime_type)) == NULL) {
+
+ EMFormatHandler *h = g_malloc0(sizeof(*h));
+
+ h->mime_type = g_strdup(mime_type);
+ h->handler = efhd_bonobo_unknown;
+ h->flags = EM_FORMAT_HANDLER_INLINE_DISPOSITION;
+ g_hash_table_insert(efhd_bonobo_handlers, h->mime_type, h);
+
+ handle = h;
+ }
+
+ return handle;
}
static void efhd_format_clone(EMFormat *emf, CamelFolder *folder, const char *uid, CamelMimeMessage *msg, EMFormat *src)
@@ -1956,6 +1986,154 @@ efhd_attachment_frame(EMFormat *emf, Cam
}
}
+static gboolean
+efhd_bonobo_object(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPObject *pobject)
+{
+ CamelDataWrapper *wrapper;
+ Bonobo_ServerInfo *component;
+ GtkWidget *embedded;
+ Bonobo_PersistStream persist;
+ CORBA_Environment ev;
+ CamelStreamMem *cstream;
+ BonoboStream *bstream;
+ BonoboControlFrame *control_frame;
+ Bonobo_PropertyBag prop_bag;
+
+ component = bonobo_activation_get_default_component_for_mime_type (eb->type);
+ if (component == NULL)
+ return FALSE;
+
+ embedded = bonobo_widget_new_control(component->iid, NULL);
+ CORBA_free(component);
+ if (embedded == NULL)
+ return FALSE;
+
+ CORBA_exception_init(&ev);
+
+ control_frame = bonobo_widget_get_control_frame((BonoboWidget *)embedded);
+ prop_bag = bonobo_control_frame_get_control_property_bag(control_frame, NULL);
+ if (prop_bag != CORBA_OBJECT_NIL) {
+ /*
+ * Now we can take care of business. Currently, the only control
+ * that needs something passed to it through a property bag is
+ * the iTip control, and it needs only the From email address,
+ * but perhaps in the future we can generalize this section of code
+ * to pass a bunch of useful things to all embedded controls.
+ */
+ const CamelInternetAddress *from;
+ char *from_address;
+
+ from = camel_mime_message_get_from((CamelMimeMessage *)((EMFormat *)efh)->message);
+ from_address = camel_address_encode((CamelAddress *)from);
+ bonobo_property_bag_client_set_value_string(prop_bag, "from_address", from_address, &ev);
+ g_free(from_address);
+
+ Bonobo_Unknown_unref(prop_bag, &ev);
+ }
+
+ persist = (Bonobo_PersistStream)Bonobo_Unknown_queryInterface(bonobo_widget_get_objref((BonoboWidget *)embedded),
+ "IDL:Bonobo/PersistStream:1.0", &ev);
+ if (persist == CORBA_OBJECT_NIL) {
+ g_object_ref_sink(embedded);
+ CORBA_exception_free(&ev);
+ return FALSE;
+ }
+
+ /* Write the data to a CamelStreamMem... */
+ cstream = (CamelStreamMem *)camel_stream_mem_new();
+ wrapper = camel_medium_get_content_object((CamelMedium *)pobject->part);
+ if (FALSE && !g_ascii_strncasecmp (eb->type, "text/", 5)) {
+ /* do charset conversion, etc */
+ d(printf("performing charset conversion for %s component\n", eb->type));
+ em_format_format_text((EMFormat *)efh, (CamelStream *)cstream, wrapper);
+ } else {
+ camel_data_wrapper_decode_to_stream (wrapper, (CamelStream *) cstream);
+ }
+
+ /* ...convert the CamelStreamMem to a BonoboStreamMem... */
+ bstream = bonobo_stream_mem_create((char *)cstream->buffer->data, cstream->buffer->len, TRUE, FALSE);
+ camel_object_unref(cstream);
+
+ /* ...and hydrate the PersistStream from the BonoboStream. */
+ Bonobo_PersistStream_load(persist,
+ bonobo_object_corba_objref(BONOBO_OBJECT (bstream)),
+ eb->type, &ev);
+ bonobo_object_unref(BONOBO_OBJECT (bstream));
+ Bonobo_Unknown_unref(persist, &ev);
+ CORBA_Object_release(persist, &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_object_ref_sink(embedded);
+ CORBA_exception_free(&ev);
+ return FALSE;
+ }
+ CORBA_exception_free(&ev);
+
+ gtk_widget_show(embedded);
+ gtk_container_add(GTK_CONTAINER (eb), embedded);
+
+ return TRUE;
+}
+
+static gboolean
+efhd_check_server_prop(Bonobo_ServerInfo *component, const char *propname, const char *value)
+{
+ CORBA_sequence_CORBA_string stringv;
+ Bonobo_ActivationProperty *prop;
+ int i;
+
+ prop = bonobo_server_info_prop_find(component, propname);
+ if (!prop || prop->v._d != Bonobo_ACTIVATION_P_STRINGV)
+ return FALSE;
+
+ stringv = prop->v._u.value_stringv;
+ for (i = 0; i < stringv._length; i++) {
+ if (!g_ascii_strcasecmp(value, stringv._buffer[i]))
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+efhd_use_component(const char *mime_type)
+{
+ GList *components, *iter;
+ Bonobo_ServerInfo *component = NULL;
+
+ /* should this cache it? */
+
+ if (g_ascii_strcasecmp(mime_type, "text/x-vcard") != 0
+ && g_ascii_strcasecmp(mime_type, "text/calendar") != 0) {
+ const char **mime_types;
+ int i;
+
+ mime_types = mail_config_get_allowable_mime_types();
+ for (i = 0; mime_types[i]; i++) {
+ if (!g_ascii_strcasecmp(mime_types[i], mime_type))
+ goto type_ok;
+ }
+ return FALSE;
+ }
+type_ok:
+ components = bonobo_activation_get_all_components_for_mime_type (mime_type);
+ for (iter = components; iter; iter = iter->next) {
+ Bonobo_ServerInfo *comp = iter->data;
+
+ comp = iter->data;
+ if (efhd_check_server_prop(comp, "repo_ids", "IDL:Bonobo/PersistStream:1.0")
+ && efhd_check_server_prop(comp, "bonobo:supported_mime_types", mime_type)) {
+ component = comp;
+ break;
+ }
+ }
+
+ /* FIXME: How should I free the Bonobo_ServerInfo's ? */
+ g_list_free (components);
+
+ return component != NULL;
+}
+
static void
attachment_bar_arrow_clicked(GtkWidget *w, EMFormatHTMLDisplay *efhd)
{
@@ -2329,6 +2507,12 @@ efhd_format_attachment(EMFormat *emf, Ca
if (handle) {
if (info->shown)
handle->handler(emf, stream, part, handle);
+ } else if (efhd_use_component(mime_type)) {
+ g_free(classid); /* messy */
+
+ classid = g_strdup_printf("bonobo-unknown:///em-format-html-display/%s", emf->part_id->str);
+ em_format_html_add_pobject((EMFormatHTML *)emf, sizeof(EMFormatHTMLPObject), classid, part, efhd_bonobo_object);
+ camel_stream_printf(stream, "<object classid=\"%s\" type=\"%s\"></object><br>>\n", classid, mime_type);
}
g_free(classid);
++++++ bnc-449952-hotkey-evo-preferences.patch ++++++
--- mail/em-account-editor.c
+++ mail/em-account-editor.c
@@ -2001,7 +2001,7 @@ emae_option_checkspin(EMAccountEditorService *service, CamelURL *url, const char
spin = gtk_spin_button_new((GtkAdjustment *)gtk_adjustment_new(def, min, max, 1, 1, 1), 1, 0);
if (post)
- label = gtk_label_new(post);
+ label = gtk_label_new_with_mnemonic(post);
gtk_box_pack_start((GtkBox *)hbox, check, FALSE, TRUE, 0);
gtk_box_pack_start((GtkBox *)hbox, spin, FALSE, TRUE, 0);
if (label)
++++++ bnc-456481-evolution-eats-memory.patch ++++++
--- mail/mail-folder-cache.c
+++ mail/mail-folder-cache.c
@@ -420,6 +420,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
((flags & CAMEL_MESSAGE_DELETED) == 0) &&
(camel_message_info_date_received (info) > last_newmail))
new++;
+ camel_message_info_free (info);
}
}
}
++++++ bnc-458153-busy-button.patch ++++++
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36987)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -164,6 +164,7 @@
" <toolitem action='close'/>"
" <separator/>"
" <toolitem action='attach'/>"
+" <separator/>"
" </toolbar>"
"</ui>";
Index: calendar/gui/dialogs/event-editor.c
===================================================================
--- calendar/gui/dialogs/event-editor.c (revision 36987)
+++ calendar/gui/dialogs/event-editor.c (working copy)
@@ -79,20 +79,21 @@
" <menu action='options-menu'>"
" <menuitem action='alarms'/>"
" <menuitem action='show-time-busy'/>"
+" <menuitem action='recurrence'/>"
" <menuitem action='all-day-event'/>"
+" <menuitem action='free-busy'/>"
" <menu action='classification-menu'>"
" <menuitem action='classify-public'/>"
" <menuitem action='classify-private'/>"
" <menuitem action='classify-confidential'/>"
" </menu>"
-" <menuitem action='recurrence'/>"
-" <menuitem action='free-busy'/>"
" </menu>"
" </menubar>"
" <toolbar name='main-toolbar'>"
" <toolitem action='alarms'/>"
+" <toolitem action='show-time-busy'/>"
+" <toolitem action='recurrence'/>"
" <toolitem action='all-day-event'/>"
-" <toolitem action='recurrence'/>"
" <toolitem action='free-busy'/>"
" </toolbar>"
"</ui>";
@@ -149,9 +150,15 @@
EventEditor *editor)
{
gboolean active;
+ GtkAction *action_show_busy;
+ CompEditor *comp_editor = COMP_EDITOR (editor);
active = gtk_toggle_action_get_active (action);
event_page_set_all_day_event (editor->priv->event_page, active);
+
+ action_show_busy = comp_editor_get_action (comp_editor, "show-time-busy");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action_show_busy), !active);
+ event_page_set_show_time_busy (editor->priv->event_page, !active);
}
static void
@@ -223,7 +230,7 @@
FALSE },
{ "show-time-busy",
- NULL,
+ GTK_STOCK_DIALOG_ERROR,
N_("Show Time as _Busy"),
NULL,
N_("Toggles whether to show time as busy"),
++++++ bnc-458968-warning-on-delegating.patch ++++++
Index: calendar/gui/dialogs/comp-editor.c
===================================================================
--- calendar/gui/dialogs/comp-editor.c (revision 36992)
+++ calendar/gui/dialogs/comp-editor.c (working copy)
@@ -2433,6 +2433,7 @@
editor->priv->summary = g_strdup (summary);
show_warning =
+ !(editor->priv->flags & COMP_EDITOR_DELEGATE) &&
!editor->priv->warned &&
editor->priv->existing_org &&
!editor->priv->user_org;
@@ -2482,6 +2483,7 @@
show_warning =
changed && !editor->priv->warned &&
+ !(editor->priv->flags & COMP_EDITOR_DELEGATE) &&
editor->priv->existing_org && !editor->priv->user_org;
if (show_warning) {
++++++ bnc-462349-shared-memo-editor.patch ++++++
Index: calendar/gui/dialogs/memo-editor.c
===================================================================
--- calendar/gui/dialogs/memo-editor.c (revision 36948)
+++ calendar/gui/dialogs/memo-editor.c (revision 36949)
@@ -97,6 +97,21 @@
}
static void
+memo_editor_constructed (GObject *object)
+{
+ MemoEditorPrivate *priv;
+ CompEditor *editor;
+
+ priv = MEMO_EDITOR_GET_PRIVATE (object);
+ editor = COMP_EDITOR (object);
+
+ priv->memo_page = memo_page_new (editor);
+ comp_editor_append_page (
+ editor, COMP_EDITOR_PAGE (priv->memo_page),
+ _("Memo"), TRUE);
+}
+
+static void
memo_editor_class_init (MemoEditorClass *class)
{
GObjectClass *object_class;
@@ -106,6 +121,7 @@
object_class = G_OBJECT_CLASS (class);
object_class->dispose = memo_editor_dispose;
+ object_class->constructed = memo_editor_constructed;
/* TODO Add a help section for memos. */
editor_class = COMP_EDITOR_CLASS (class);
@@ -132,13 +148,6 @@
g_critical ("%s: %s", G_STRFUNC, error->message);
g_error_free (error);
}
-
- me->priv->memo_page = memo_page_new (editor);
- g_object_ref_sink (me->priv->memo_page);
- comp_editor_append_page (
- COMP_EDITOR (me),
- COMP_EDITOR_PAGE (me->priv->memo_page),
- _("Memo"), TRUE);
}
/**
++++++ bnc-462372-open-attachment-event.patch ++++++
Index: calendar/gui/e-cal-popup.c
===================================================================
--- calendar/gui/e-cal-popup.c (revision 36995)
+++ calendar/gui/e-cal-popup.c (working copy)
@@ -139,7 +139,7 @@
usepath = g_strjoin (NULL, "file://", path, NULL);
wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (part));
- stream = camel_stream_vfs_new_with_uri (path, CAMEL_STREAM_VFS_CREATE);
+ stream = camel_stream_vfs_new_with_uri (usepath, CAMEL_STREAM_VFS_CREATE);
if (usepath != path)
g_free (usepath);
++++++ bnc-463599-header-print-issues.patch ++++++
Index: calendar/gui/print.c
===================================================================
--- calendar/gui/print.c (revision 36992)
+++ calendar/gui/print.c (working copy)
@@ -129,9 +129,9 @@
/* The width of the small calendar months, the space from the right edge of
the header rectangle, and the space between the months. */
-#define SMALL_MONTH_WIDTH 80
-#define SMALL_MONTH_PAD 4
-#define SMALL_MONTH_SPACING 12
+#define SMALL_MONTH_WIDTH 100
+#define SMALL_MONTH_PAD 5
+#define SMALL_MONTH_SPACING 20
/* The minimum number of rows we leave space for for the long events in the
day view. */
@@ -502,7 +502,7 @@
*x1 += 2;
*x2 -= 2;
*y2 += 2;
- print_text (context, font, text, alignment, *x1, *x2, *y1, *y1 + size * 1.4);
+ print_text (context, font, text, alignment, *x1, *x2, *y1 + 1.0, *y1 + size * 1.4);
*y1 += size * 1.4;
}
@@ -841,10 +841,10 @@
sprintf (buf, "%d", hour);
print_text (context, font_hour, buf, PANGO_ALIGN_RIGHT,
left, hour_minute_x,
- y - yinc + yinc / 2, y - yinc + yinc / 2 + hour_font_size);
+ y - yinc, y - yinc + hour_font_size);
print_text (context, font_minute, minute, PANGO_ALIGN_LEFT,
hour_minute_x, left + width - 3,
- y - yinc + yinc / 2, y - yinc + yinc / 2 + minute_font_size);
+ y - yinc, y - yinc + minute_font_size);
/* Draw the horizontal line between hours, across the entire
width of the day view. */
@@ -2082,7 +2082,7 @@
/* Print the filled border around the header. */
print_border (context, 0.0, width,
- 0.0, HEADER_HEIGHT + 2.0, 1.0, 0.9);
+ 0.0, HEADER_HEIGHT + 3.5, 1.0, 0.9);
/* Print the 2 mini calendar-months. */
l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2 - SMALL_MONTH_SPACING;
@@ -2167,14 +2167,14 @@
l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH * 2
- SMALL_MONTH_SPACING;
print_month_small (context, gcal, when,
- l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10,
DATE_MONTH | DATE_YEAR, when,
time_add_week_with_zone (when, 1, zone), FALSE);
l += SMALL_MONTH_SPACING + SMALL_MONTH_WIDTH;
print_month_small (context, gcal,
time_add_month_with_zone (when, 1, zone),
- l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 30,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 10,
DATE_MONTH | DATE_YEAR, when,
time_add_week_with_zone (when, 1, zone), FALSE);
@@ -2200,6 +2200,7 @@
icaltimezone *zone = calendar_config_get_icaltimezone ();
char buf[100];
gdouble width, height;
+ double l;
setup = gtk_print_context_get_page_setup (context);
@@ -2210,17 +2211,19 @@
print_month_summary (context, gcal, date, 0.0, width, HEADER_HEIGHT, height);
/* Print the border around the header. */
- print_border (context, 0.0, width, 0.0, HEADER_HEIGHT, 1.0, 0.9);
+ print_border (context, 0.0, width, 0.0, HEADER_HEIGHT + 10, 1.0, 0.9);
+ l = width - SMALL_MONTH_PAD - SMALL_MONTH_WIDTH;
+
/* Print the 2 mini calendar-months. */
print_month_small (context, gcal,
time_add_month_with_zone (date, 1, zone),
- width - width / 7 + 2, 4,
- width - 8, HEADER_HEIGHT,
+ l, 4, l + SMALL_MONTH_WIDTH, HEADER_HEIGHT + 4,
DATE_MONTH | DATE_YEAR, 0, 0, FALSE);
+
print_month_small (context, gcal,
time_add_month_with_zone (date, -1, zone),
- 8, 4, width / 7 - 2, HEADER_HEIGHT,
+ 8, 4, width / 7 + 20, HEADER_HEIGHT + 4,
DATE_MONTH | DATE_YEAR, 0, 0, FALSE);
/* Print the month, e.g. 'May 2001'. */
++++++ evolution-desktop.patch ++++++
--- /var/tmp/diff_new_pack.aS4218/_old 2009-01-08 18:02:50.000000000 +0100
+++ /var/tmp/diff_new_pack.aS4218/_new 2009-01-08 18:02:50.000000000 +0100
@@ -1,12 +1,11 @@
-=== modified file 'data/evolution.desktop.in.in'
---- data/evolution.desktop.in.in 2007-12-18 20:23:31 +0000
-+++ data/evolution.desktop.in.in 2007-12-18 20:28:10 +0000
+--- data/evolution.desktop.in.in 2008-10-13 14:03:02.000000000 +0530
++++ data/evolution.desktop.in.in 2009-01-05 10:41:39.000000000 +0530
@@ -1,14 +1,15 @@
[Desktop Entry]
Encoding=UTF-8
- _Name=Evolution Mail and Calendar
--_GenericName=Groupware Suite
-+_GenericName=The Evolution Groupware Suite
+-_Name=Evolution Mail and Calendar
++_Name=Evolution
+ _GenericName=Groupware Suite
_Comment=Manage your email, contacts and schedule
Exec=evolution
Icon=evolution
@@ -18,5 +17,4 @@
+DocPath=evolution-@BASE_VERSION@
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=Evolution
- X-GNOME-Bugzilla-Component=Miscellaneous
-
+ X-GNOME-Bugzilla-Component=BugBuddyBugs
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org
1
0