gnome 2.16
authorDaniel Gryniewicz <dang@gentoo.org>
Thu, 7 Sep 2006 03:49:51 +0000 (03:49 +0000)
committerDaniel Gryniewicz <dang@gentoo.org>
Thu, 7 Sep 2006 03:49:51 +0000 (03:49 +0000)
Package-Manager: portage-2.1.1_rc1-r2

mail-client/evolution/ChangeLog
mail-client/evolution/Manifest
mail-client/evolution/evolution-2.8.0.ebuild [new file with mode: 0644]
mail-client/evolution/files/digest-evolution-2.8.0 [new file with mode: 0644]
mail-client/evolution/files/evolution-2.7.3-bf-junk.patch.gz [new file with mode: 0644]
mail-client/evolution/files/evolution-2.8.0-64-bit.patch [new file with mode: 0644]
mail-client/evolution/files/evolution-2.8.0-blank-reply.patch [new file with mode: 0644]
mail-client/evolution/files/evolution-2.8.0-includes.patch [new file with mode: 0644]
mail-client/evolution/files/evolution-2.8.0-uri.patch [new file with mode: 0644]

index 5e7bae00046310e922a2135bd4716144b146f6bf..946fabdc8e507136b25fa58a8401d44f73ce2476 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for mail-client/evolution
 # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/mail-client/evolution/ChangeLog,v 1.136 2006/08/16 17:34:52 corsair Exp $
+# $Header: /var/cvsroot/gentoo-x86/mail-client/evolution/ChangeLog,v 1.137 2006/09/07 03:49:51 dang Exp $
+
+*evolution-2.8.0 (07 Sep 2006)
+
+  07 Sep 2006; Daniel Gryniewicz <dang@gentoo.org>
+  +files/evolution-2.7.3-bf-junk.patch, +files/evolution-2.8.0-64-bit.patch,
+  +files/evolution-2.8.0-blank-reply.patch,
+  +files/evolution-2.8.0-includes.patch, +files/evolution-2.8.0-uri.patch,
+  +evolution-2.8.0.ebuild:
+  New version for gnome 2.16
 
   16 Aug 2006; Markus Rothe <corsair@gentoo.org> evolution-2.6.2-r1.ebuild:
   Stable on ppc64
index d8339f808473a354edabf1d41ad862f64884e1b6..e6442a88c7101dcf2694e2d19a284f531df5c754 100644 (file)
@@ -1,3 +1,6 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 AUX evolution-2.0.3-gentoo_etc_services.patch 1662 RMD160 9ac648a5f055cb5e3e98b5e41547fed0c4a7ad3d SHA1 628bf559a4915bd794893f54c552025fb015e4ce SHA256 e881f56b96b7f5b692f63f7d96705bb70626ff1957d6fabd47090ff76f46acb3
 MD5 7b8c1cc2fd2428815184d471af4bb3bf files/evolution-2.0.3-gentoo_etc_services.patch 1662
 RMD160 9ac648a5f055cb5e3e98b5e41547fed0c4a7ad3d files/evolution-2.0.3-gentoo_etc_services.patch 1662
@@ -26,9 +29,30 @@ AUX evolution-2.6.2-as-needed.patch 503 RMD160 11a3c2c6bee5b14e267747dccfa7aca4e
 MD5 d4f9b28fa25d52fd14a8144f22682ba9 files/evolution-2.6.2-as-needed.patch 503
 RMD160 11a3c2c6bee5b14e267747dccfa7aca4eaf14fdd files/evolution-2.6.2-as-needed.patch 503
 SHA256 b59fe688da890c40d5deef4c9ed791223d5dcba54a2a7286c0b588e5d974b49c files/evolution-2.6.2-as-needed.patch 503
+AUX evolution-2.7.3-bf-junk.patch.gz 10418 RMD160 8945624b19ac72b6047921b476ef968d4e9c2591 SHA1 66db9d34202c06c8fa0483bb1b321825ac245575 SHA256 a3aec31580402fb4113554acac684d12a083d22b80f273634d96e77364676dad
+MD5 74c3c80932b7e89b3b44ad3569c3cc49 files/evolution-2.7.3-bf-junk.patch.gz 10418
+RMD160 8945624b19ac72b6047921b476ef968d4e9c2591 files/evolution-2.7.3-bf-junk.patch.gz 10418
+SHA256 a3aec31580402fb4113554acac684d12a083d22b80f273634d96e77364676dad files/evolution-2.7.3-bf-junk.patch.gz 10418
+AUX evolution-2.8.0-64-bit.patch 8622 RMD160 771ee5513d7f08d51452406ab1a7fafcd44798a9 SHA1 0d240faafa5b7a7319bbc58ed9eb5b076ef390c6 SHA256 6aac01f6d570b5384ec52107d9f7a4a516cdc5b5ff87bace25325ad0cf45d8b3
+MD5 31b37532a5d9282d9364f4ee6763ad55 files/evolution-2.8.0-64-bit.patch 8622
+RMD160 771ee5513d7f08d51452406ab1a7fafcd44798a9 files/evolution-2.8.0-64-bit.patch 8622
+SHA256 6aac01f6d570b5384ec52107d9f7a4a516cdc5b5ff87bace25325ad0cf45d8b3 files/evolution-2.8.0-64-bit.patch 8622
+AUX evolution-2.8.0-blank-reply.patch 606 RMD160 c8a377778d408e6487d581efb0193f3204efd32f SHA1 6a83605f5652fd888a80716c559a76fc5a6df27d SHA256 0e5a2c6eeef519bfae9809dd0e9f056c1ac521b76f345d7ae5b72114f4b8b62f
+MD5 e52a96128b67f47ba799bc167a643f9c files/evolution-2.8.0-blank-reply.patch 606
+RMD160 c8a377778d408e6487d581efb0193f3204efd32f files/evolution-2.8.0-blank-reply.patch 606
+SHA256 0e5a2c6eeef519bfae9809dd0e9f056c1ac521b76f345d7ae5b72114f4b8b62f files/evolution-2.8.0-blank-reply.patch 606
+AUX evolution-2.8.0-includes.patch 670 RMD160 876a94d3a07af418bcd31051705c649262ecee3c SHA1 59355de5ac6fa86031f5986a4b0e36ebb7e9f883 SHA256 f3fcd6ed94e571ea0580b955f3b309802e91157811f00e98540276d3f854048a
+MD5 49191e4a9a06eb90a9f756599eb455e7 files/evolution-2.8.0-includes.patch 670
+RMD160 876a94d3a07af418bcd31051705c649262ecee3c files/evolution-2.8.0-includes.patch 670
+SHA256 f3fcd6ed94e571ea0580b955f3b309802e91157811f00e98540276d3f854048a files/evolution-2.8.0-includes.patch 670
+AUX evolution-2.8.0-uri.patch 23552 RMD160 02a12b1cd9b510b152463b4024e48675cded9c4d SHA1 1d784b51829085863feaa6eded68a22ab0fe48f6 SHA256 9c366a00c37dd9fb11dd95111815b4f4c0c2bdc37dda43459e9d6e93ca8700c0
+MD5 8588a0f1fdf2f803301287c6fbc048b6 files/evolution-2.8.0-uri.patch 23552
+RMD160 02a12b1cd9b510b152463b4024e48675cded9c4d files/evolution-2.8.0-uri.patch 23552
+SHA256 9c366a00c37dd9fb11dd95111815b4f4c0c2bdc37dda43459e9d6e93ca8700c0 files/evolution-2.8.0-uri.patch 23552
 DIST evolution-2.4.2.1.tar.bz2 11503590 RMD160 cb72e939fbd651a43ae09e0341f47e6ebf490c56 SHA1 b3e61e8f013ea35aa137928d1d25a91b3043357d SHA256 eae8fed13de8eee9f60606ec0e645876e4b9a1e9bb30d21dace54e3995ca5f40
 DIST evolution-2.5.5.1-bf-junk.tar.bz2 10771 RMD160 7ae764761607d50024fbec32680bc57e04ac7879 SHA1 465205cf50770b72641995ec59617010dadaf204 SHA256 b8988b28836a201606d8fa651f48722ebac8c984dcc171f7f7a3b860d0f7a045
 DIST evolution-2.6.2.tar.bz2 12394719 RMD160 72133312fb9cceae74d9f0e570dd898d5119a10b SHA1 08a6a9bf3754fff71cbdf82857337b1edc13ef46 SHA256 a69c45e9deae3a2eea06af08eacb9266e6cdcd452dd600ad96c2de23effa56f5
+DIST evolution-2.8.0.tar.bz2 12821926 RMD160 ba73d9529a02f2ea6db8c8f2c7da3041276e1d5c SHA1 0da65a3de84e60d0e41265607c7c7fcec18fe072 SHA256 1d83cbea7ef5b86df5eea5f553a0c3be3d157ed20bb8469b467f30cf18bb3320
 EBUILD evolution-2.4.2.1.ebuild 5759 RMD160 1741e9b15ba81cd0b7befebc63d15b1808c4e114 SHA1 dc25b4f38a2700bc17d5b9c5749c5d49cd7079d3 SHA256 758f842eaa8dbffd1a700f6806a1fdd2c66bc9b3eab05aafbb08e54079822660
 MD5 71b07fe7a01202020ed600b75ad32caa evolution-2.4.2.1.ebuild 5759
 RMD160 1741e9b15ba81cd0b7befebc63d15b1808c4e114 evolution-2.4.2.1.ebuild 5759
@@ -37,10 +61,14 @@ EBUILD evolution-2.6.2-r1.ebuild 6015 RMD160 9c157bd49b3879e3a1cad9ce989288d2784
 MD5 01b6b1aa09747d320447761898dd2f80 evolution-2.6.2-r1.ebuild 6015
 RMD160 9c157bd49b3879e3a1cad9ce989288d2784bc7db evolution-2.6.2-r1.ebuild 6015
 SHA256 3445f01c798527da0a8214efe040857a68f3c19bb8dd5438c7fb8f2b0322daf8 evolution-2.6.2-r1.ebuild 6015
-MISC ChangeLog 36135 RMD160 272e80aa9e0c6f32712aa0a7c92a579bddf7a8fc SHA1 900f4bbfd01dd477b78597df691cae4ae65b3080 SHA256 994662db7bbc21943992e1508f62b265dc4a747b4ae30e117ad284ddb40c0505
-MD5 0b8e70049af35db680e83dda94d2a623 ChangeLog 36135
-RMD160 272e80aa9e0c6f32712aa0a7c92a579bddf7a8fc ChangeLog 36135
-SHA256 994662db7bbc21943992e1508f62b265dc4a747b4ae30e117ad284ddb40c0505 ChangeLog 36135
+EBUILD evolution-2.8.0.ebuild 6684 RMD160 895680c57fba21e8810518f1e48a13f9a8274b5a SHA1 9f196e3ae5b5bc84b9032ff9506b6032e173998c SHA256 b9050a5aab40f845755f29d9b694930712cb3b8b16f8f524cd8e3258e315eb24
+MD5 d2d8c04ad86da601512f6ec50a6a9cc4 evolution-2.8.0.ebuild 6684
+RMD160 895680c57fba21e8810518f1e48a13f9a8274b5a evolution-2.8.0.ebuild 6684
+SHA256 b9050a5aab40f845755f29d9b694930712cb3b8b16f8f524cd8e3258e315eb24 evolution-2.8.0.ebuild 6684
+MISC ChangeLog 36468 RMD160 0e59215f85acfd958b9f54f7a3baab2235d084e7 SHA1 2dc8f9c82ce6749564a78759182cdb0fc5bb5e37 SHA256 c156d4f1fc5456d9b245b91e50f89ac9dad92c02a73dcd28a8f78dfc6fa5f1dc
+MD5 0fcde35db0599262df2151a25aba204c ChangeLog 36468
+RMD160 0e59215f85acfd958b9f54f7a3baab2235d084e7 ChangeLog 36468
+SHA256 c156d4f1fc5456d9b245b91e50f89ac9dad92c02a73dcd28a8f78dfc6fa5f1dc ChangeLog 36468
 MISC metadata.xml 285 RMD160 0c12c7c2e6dd66ea44e83541384d6b634c642bc0 SHA1 bbd215b7c718049707751c25e6bfc2318fa0f292 SHA256 0c662917bda7d3035eab7db55ade83dadca650d2ceddc44b7765ba5f898bd816
 MD5 f0750af493d9560f5faf50f39fd644c5 metadata.xml 285
 RMD160 0c12c7c2e6dd66ea44e83541384d6b634c642bc0 metadata.xml 285
@@ -51,3 +79,13 @@ SHA256 66512ea95e1843f7da7daff072e06ae1c770a51c57cf954c66d8924ba2c9213c files/di
 MD5 f58ca96f6e0006d63acada5e98d62982 files/digest-evolution-2.6.2-r1 533
 RMD160 94fb86de744f42bcae39b6f5a0d6276ed559014e files/digest-evolution-2.6.2-r1 533
 SHA256 730a2ffe0655db234cb17adecb91357a37e42064f41dc64cccfb7ab2fda0614d files/digest-evolution-2.6.2-r1 533
+MD5 26fe6f66858beb4a799a0d4a2ef4ed19 files/digest-evolution-2.8.0 533
+RMD160 51f8fb00430feb4a94d4851754fc5fe6cc5c77d5 files/digest-evolution-2.8.0 533
+SHA256 ad352c750121d30170619502ba3a3dcf059d205cb1832e31b2f20687e188dbc9 files/digest-evolution-2.8.0 533
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.5-ecc0.1.6 (GNU/Linux)
+
+iD8DBQFE/5bpomPajV0RnrERAkB3AJ9m1Q2lZkwv4pKNUGJSCPFGQf7V6QCfcQMd
+drFXeXtkLyRsO6lmYsKhaUM=
+=+U2t
+-----END PGP SIGNATURE-----
diff --git a/mail-client/evolution/evolution-2.8.0.ebuild b/mail-client/evolution/evolution-2.8.0.ebuild
new file mode 100644 (file)
index 0000000..583cb92
--- /dev/null
@@ -0,0 +1,221 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/mail-client/evolution/evolution-2.8.0.ebuild,v 1.1 2006/09/07 03:49:51 dang Exp $
+
+inherit eutils flag-o-matic alternatives gnome2 autotools
+
+DESCRIPTION="Integrated mail, addressbook and calendaring functionality"
+HOMEPAGE="http://www.gnome.org/projects/evolution/"
+SRC_URI="${SRC_URI}
+       bogofilter? ( mirror://gentoo/${PN}-2.5.5.1-bf-junk.tar.bz2 )"
+
+LICENSE="GPL-2 FDL-1.1"
+SLOT="2.0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="bogofilter crypt dbus debug doc gstreamer hal ipv6 kerberos krb4 ldap mono nntp pda profile spell ssl"
+
+# Pango dependency required to avoid font rendering problems
+# evolution-data-server dep is 1.5 because in the e-utils directories,
+# the includes reference locations only present in eds > 1.5
+RDEPEND=">=x11-themes/gnome-icon-theme-1.2
+       dev-libs/atk
+       >=gnome-extra/gtkhtml-3.9.90
+       >=dev-libs/glib-2
+       >=gnome-base/orbit-2.9.8
+       >=gnome-base/libbonobo-2
+       >=gnome-extra/evolution-data-server-1.7.90
+       >=gnome-base/libbonoboui-2.4.2
+       >=gnome-base/gnome-vfs-2.4
+       >=gnome-base/libgnomeui-2
+       >=gnome-base/libglade-2
+       >=gnome-base/libgnomecanvas-2
+       >=dev-libs/libxml2-2
+       >=gnome-base/gconf-2
+       >=gnome-base/libgnomeprint-2.2
+       >=gnome-base/libgnomeprintui-2.2.1
+       >=x11-libs/gtk+-2
+       >=gnome-base/libgnome-2
+       >=net-libs/libsoup-2.2.96
+       >=x11-libs/pango-1.8.1
+       x11-libs/libnotify
+       hal? ( >=sys-apps/hal-0.5.4 )
+       pda? (
+               >=app-pda/gnome-pilot-2
+               >=app-pda/gnome-pilot-conduits-2 )
+       spell? ( >=app-text/gnome-spell-1.0.5 )
+       crypt? ( >=app-crypt/gnupg-1.2.2 )
+       ssl? ( >=dev-libs/nspr-4.6.1
+                  >=dev-libs/nss-3.11 )
+       ldap? ( >=net-nds/openldap-2 )
+       kerberos? ( virtual/krb5 )
+       krb4? ( virtual/krb5 )
+       gstreamer? (
+               >=media-libs/gstreamer-0.10
+               >=media-libs/gst-plugins-base-0.10 )
+       dbus? ( sys-apps/dbus )
+       mono? ( >=dev-lang/mono-1 )
+       bogofilter? ( mail-filter/bogofilter )
+       !bogofilter? ( mail-filter/spamassassin )"
+
+DEPEND="${RDEPEND}
+       >=dev-util/pkgconfig-0.9
+       >=dev-util/intltool-0.35
+       sys-devel/gettext
+       sys-devel/bison
+       app-text/scrollkeeper
+       >=gnome-base/gnome-common-2.12.0
+       doc? ( >=dev-util/gtk-doc-0.6 )"
+
+DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS* README"
+ELTCONF="--reverse-deps"
+
+
+pkg_setup() {
+       G2CONF="--disable-default-binary \
+               --without-kde-applnk-path        \
+               $(use_enable ssl nss)            \
+               $(use_enable ssl smime)          \
+               $(use_enable ipv6)               \
+               $(use_enable mono)               \
+               $(use_enable nntp)               \
+               $(use_enable pda pilot-conduits) \
+               $(use_enable profile profiling)  \
+               $(use_with ldap openldap)        \
+               $(use_with kerberos krb5 /usr)"
+
+       if use krb4 && ! built_with_use virtual/krb5 krb4; then
+               ewarn
+               ewarn "In order to add kerberos 4 support, you have to emerge"
+               ewarn "virtual/krb5 with the 'krb4' USE flag enabled as well."
+               ewarn
+               ewarn "Skipping for now."
+               ewarn
+               G2CONF="${G2CONF} --without-krb4"
+       else
+               G2CONF="${G2CONF} $(use_with krb4 krb4 /usr)"
+       fi
+
+       # Plug-ins to install. Normally we would want something similar to
+       # --enable-plugins=all (plugins_base + plugins_standard), except for some
+       # special cases.
+       local plugins="calendar-file calendar-http calendar-weather \
+               itip-formatter plugin-manager default-source addressbook-file \
+               startup-wizard print-message mark-all-read groupwise-features \
+               groupwise-account-setup hula-account-setup mail-account-disable \
+               publish-calendar caldav \
+               bbdb subject-thread save-calendar select-one-source copy-tool \
+               mail-to-task mark-calendar-offline mailing-list-actions \
+               new-mail-notify default-mailer import-ics-attachments"
+       
+       # For dev releases, add experimental plugins
+       plugins="${plugins} backup-restore folder-unsubscribe mail-to-meeting \
+               prefer-plain save-attachments"
+
+       if use bogofilter; then
+               plugins="${plugins} bf-junk-plugin"
+       else
+               plugins="${plugins} sa-junk-plugin"
+       fi
+
+       # The special cases
+
+       # remove this due to bug #128035 re-enable later if it doesn't dep on
+       # gstreamer-0.8
+       # use gstreamer && plugins="${plugins} audio-inline"
+       use dbus && plugins="${plugins} new-mail-notify"
+       use mono && plugins="${plugins} mono"
+
+       if built_with_use gnome-extra/evolution-data-server ldap; then
+               plugins="${plugins} exchange-operations"
+       fi
+
+       local pluginlist=""
+       for p in $plugins; do
+               [ "x$pluginlist" != "x" ] && pluginlist="${pluginlist},"
+               pluginlist="${pluginlist}${p}"
+       done
+
+       G2CONF="${G2CONF} --enable-plugins=${pluginlist}"
+}
+
+src_unpack() {
+       unpack ${P}.tar.bz2
+       cd "${S}"
+
+       gnome2_omf_fix help/omf.make
+
+       # Accept the list of plugins separated by commas instead of spaces.
+       epatch ${FILESDIR}/${PN}-2.3.7-configure_plugins.patch
+
+       # Move evo to URI-based saving
+       epatch ${FILESDIR}/${PN}-2.8.0-uri.patch
+
+       # Fix 64-bit warnings
+       epatch ${FILESDIR}/${PN}-2.8.0-64-bit.patch
+
+       # Fix missing includes
+       epatch ${FILESDIR}/${PN}-2.8.0-includes.patch
+
+       # Fix blank replys
+       epatch ${FILESDIR}/${PN}-2.8.0-blank-reply.patch
+
+       # Add bogofilter junk plugin source
+       use bogofilter && epatch ${FILESDIR}/${PN}-2.7.3-bf-junk.patch.gz
+
+
+       eaclocal || die
+       _elibtoolize --copy --force || die
+       eautoheader || die
+       eautomake || die
+       intltoolize --force || die
+       eautoconf || die
+}
+
+src_compile() {
+       # Use NSS/NSPR only if 'ssl' is enabled.
+       if use ssl ; then
+               sed -i -e "s|mozilla-nss|nss|
+                       s|mozilla-nspr|nspr|" ${S}/configure
+               G2CONF="${G2CONF} --enable-nss=yes"
+       else
+               G2CONF="${G2CONF} --without-nspr-libs --without-nspr-includes \
+                       --without-nss-libs --without-nss-includes"
+       fi
+#      if use ssl ; then
+#              NSS_LIB=/usr/$(get_libdir)/nss
+#              NSS_INC=/usr/include/nss
+#              NSPR_LIB=/usr/$(get_libdir)/nspr
+#              NSPR_INC=/usr/include/nspr
+#
+#              G2CONF="${G2CONF} \
+#                      --with-nspr-includes=${NSPR_INC} \
+#                      --with-nspr-libs=${NSPR_LIB}     \
+#                      --with-nss-includes=${NSS_INC}   \
+#                      --with-nss-libs=${NSS_LIB}"
+#      else
+#              G2CONF="${G2CONF} --without-nspr-libs --without-nspr-includes \
+#                      --without-nss-libs --without-nss-includes"
+#      fi
+
+
+       # problems with -O3 on gcc-3.3.1
+       replace-flags -O3 -O2
+
+       if [ "${ARCH}" = "hppa" ]; then
+               append-flags "-fPIC -ffunction-sections"
+               export LDFLAGS="-ffunction-sections -Wl,--stub-group-size=25000"
+       fi
+
+       gnome2_src_compile
+}
+
+pkg_postinst() {
+       gnome2_pkg_postinst
+
+       alternatives_auto_makesym "/usr/bin/evolution" "/usr/bin/evolution-[0-9].[0-9]"
+       einfo "To change the default browser if you are not using GNOME, do:"
+       einfo "gconftool-2 --set /desktop/gnome/url-handlers/http/command -t string 'mozilla %s'"
+       einfo "gconftool-2 --set /desktop/gnome/url-handlers/https/command -t string 'mozilla %s'"
+       einfo ""
+       einfo "Replace 'mozilla %s' with which ever browser you use."
+}
diff --git a/mail-client/evolution/files/digest-evolution-2.8.0 b/mail-client/evolution/files/digest-evolution-2.8.0
new file mode 100644 (file)
index 0000000..8b7e069
--- /dev/null
@@ -0,0 +1,6 @@
+MD5 31456188591167083628df719adc8f22 evolution-2.5.5.1-bf-junk.tar.bz2 10771
+RMD160 7ae764761607d50024fbec32680bc57e04ac7879 evolution-2.5.5.1-bf-junk.tar.bz2 10771
+SHA256 b8988b28836a201606d8fa651f48722ebac8c984dcc171f7f7a3b860d0f7a045 evolution-2.5.5.1-bf-junk.tar.bz2 10771
+MD5 fdcdaa4f6c11cb3b42078262838967d7 evolution-2.8.0.tar.bz2 12821926
+RMD160 ba73d9529a02f2ea6db8c8f2c7da3041276e1d5c evolution-2.8.0.tar.bz2 12821926
+SHA256 1d83cbea7ef5b86df5eea5f553a0c3be3d157ed20bb8469b467f30cf18bb3320 evolution-2.8.0.tar.bz2 12821926
diff --git a/mail-client/evolution/files/evolution-2.7.3-bf-junk.patch.gz b/mail-client/evolution/files/evolution-2.7.3-bf-junk.patch.gz
new file mode 100644 (file)
index 0000000..9a6337c
Binary files /dev/null and b/mail-client/evolution/files/evolution-2.7.3-bf-junk.patch.gz differ
diff --git a/mail-client/evolution/files/evolution-2.8.0-64-bit.patch b/mail-client/evolution/files/evolution-2.8.0-64-bit.patch
new file mode 100644 (file)
index 0000000..0860f29
--- /dev/null
@@ -0,0 +1,178 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/a11y/calendar/ea-gnome-calendar.c evolution-2.7.91.64-bit/a11y/calendar/ea-gnome-calendar.c
+--- evolution-2.7.91.orig/a11y/calendar/ea-gnome-calendar.c    2004-10-29 05:56:35.000000000 -0400
++++ evolution-2.7.91.64-bit/a11y/calendar/ea-gnome-calendar.c  2006-08-24 13:18:28.000000000 -0400
+@@ -29,6 +29,7 @@
+ #include <gtk/gtknotebook.h>
+ #include <libecal/e-cal-time-util.h>
+ #include <libgnome/gnome-i18n.h>
++#include <libedataserver/e-data-server-util.h>
+ static void ea_gnome_calendar_class_init (EaGnomeCalendarClass *klass);
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/addressbook/gui/widgets/e-minicard.c evolution-2.7.91.64-bit/addressbook/gui/widgets/e-minicard.c
+--- evolution-2.7.91.orig/addressbook/gui/widgets/e-minicard.c 2006-07-22 07:14:49.000000000 -0400
++++ evolution-2.7.91.64-bit/addressbook/gui/widgets/e-minicard.c       2006-08-24 13:18:28.000000000 -0400
+@@ -40,6 +40,7 @@
+ #include "e-minicard-view.h"
+ #include "e-contact-editor.h"
+ #include <e-util/e-icon-factory.h>
++#include <e-util/e-html-utils.h>
+ #include <libebook/e-destination.h>
+ #include "a11y/addressbook/ea-addressbook.h"
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/dialogs/memo-page.h evolution-2.7.91.64-bit/calendar/gui/dialogs/memo-page.h
+--- evolution-2.7.91.orig/calendar/gui/dialogs/memo-page.h     2006-07-22 07:14:51.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/dialogs/memo-page.h   2006-08-24 13:18:28.000000000 -0400
+@@ -53,6 +53,8 @@
+ GtkType   memo_page_get_type  (void);
+ MemoPage *memo_page_construct (MemoPage *epage);
+ MemoPage *memo_page_new       (BonoboUIComponent *uic, CompEditorPageFlags flags);
++void memo_page_set_show_categories (MemoPage *page, gboolean state);
++void memo_page_set_classification (MemoPage *page, ECalComponentClassification class);
+ G_END_DECLS
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/e-calendar-view.h evolution-2.7.91.64-bit/calendar/gui/e-calendar-view.h
+--- evolution-2.7.91.orig/calendar/gui/e-calendar-view.h       2006-08-07 00:47:42.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/e-calendar-view.h     2006-08-24 13:18:28.000000000 -0400
+@@ -166,6 +166,12 @@
+                                              gboolean new);
+ gboolean      e_calendar_view_get_tooltips (ECalendarViewEventData *data);
++void e_calendar_view_move_tip (GtkWidget *widget, int x, int y);
++#ifdef ENABLE_CAIRO
++void draw_curved_rectangle (cairo_t *cr, double x0, double y0,
++                      double rect_width, double rect_height,
++                      double radius);
++#endif
+ G_END_DECLS
+ #endif
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/e-cal-model-tasks.h evolution-2.7.91.64-bit/calendar/gui/e-cal-model-tasks.h
+--- evolution-2.7.91.orig/calendar/gui/e-cal-model-tasks.h     2005-10-03 02:16:51.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/e-cal-model-tasks.h   2006-08-24 13:18:28.000000000 -0400
+@@ -63,6 +63,7 @@
+ void            e_cal_model_tasks_mark_task_complete (ECalModelTasks *model, gint model_row);
+ void e_cal_model_tasks_update_due_tasks (ECalModelTasks *model);
++void e_cal_model_tasks_mark_task_incomplete (ECalModelTasks *model, gint model_row);
+ G_END_DECLS
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/e-day-view.c evolution-2.7.91.64-bit/calendar/gui/e-day-view.c
+--- evolution-2.7.91.orig/calendar/gui/e-day-view.c    2006-08-07 00:47:43.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/e-day-view.c  2006-08-24 13:18:28.000000000 -0400
+@@ -65,6 +65,7 @@
+ #include "calendar-commands.h"
+ #include "calendar-config.h"
+ #include "goto.h"
++#include "e-calendar-view.h"
+ #include "e-cal-model-calendar.h"
+ #include "e-day-view-time-item.h"
+ #include "e-day-view-top-item.h"
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/e-meeting-store.c evolution-2.7.91.64-bit/calendar/gui/e-meeting-store.c
+--- evolution-2.7.91.orig/calendar/gui/e-meeting-store.c       2006-04-22 00:39:20.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/e-meeting-store.c     2006-08-24 13:18:28.000000000 -0400
+@@ -1472,7 +1472,7 @@
+ guint
+ e_meeting_store_get_num_queries (EMeetingStore *store)
+ {
+-      g_return_if_fail (E_IS_MEETING_STORE (store));
++      g_return_val_if_fail (E_IS_MEETING_STORE (store), 0);
+       return store->priv->num_queries;
+ }
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/e-week-view.c evolution-2.7.91.64-bit/calendar/gui/e-week-view.c
+--- evolution-2.7.91.orig/calendar/gui/e-week-view.c   2006-07-22 07:14:51.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/e-week-view.c 2006-08-24 13:18:28.000000000 -0400
+@@ -69,6 +69,7 @@
+ #include "e-week-view-layout.h"
+ #include "e-week-view-main-item.h"
+ #include "e-week-view-titles-item.h"
++#include "e-calendar-view.h"
+ #include "misc.h"
+ #include <e-util/e-icon-factory.h>
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/gnome-cal.h evolution-2.7.91.64-bit/calendar/gui/gnome-cal.h
+--- evolution-2.7.91.orig/calendar/gui/gnome-cal.h     2006-07-22 07:14:51.000000000 -0400
++++ evolution-2.7.91.64-bit/calendar/gui/gnome-cal.h   2006-08-24 13:18:29.000000000 -0400
+@@ -198,6 +198,7 @@
+                                                const char* comp_uid,
+                                                const char* comp_rid);
++GtkWidget * gnome_calendar_get_tag (GnomeCalendar *gcal);
+ G_END_DECLS
+ #endif
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/composer/e-msg-composer.c evolution-2.7.91.64-bit/composer/e-msg-composer.c
+--- evolution-2.7.91.orig/composer/e-msg-composer.c    2006-08-07 00:47:43.000000000 -0400
++++ evolution-2.7.91.64-bit/composer/e-msg-composer.c  2006-08-24 13:18:29.000000000 -0400
+@@ -63,6 +63,7 @@
+ #include <libgnome/gnome-exec.h>
+ #include <libgnome/gnome-i18n.h>
++#include <libgnome/gnome-help.h>
+ #include <libgnomeui/gnome-uidefs.h>
+ #include <libgnomeui/gnome-window-icon.h>
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-profile-event.c evolution-2.7.91.64-bit/e-util/e-profile-event.c
+--- evolution-2.7.91.orig/e-util/e-profile-event.c     2006-02-08 06:43:02.000000000 -0500
++++ evolution-2.7.91.64-bit/e-util/e-profile-event.c   2006-08-24 13:18:29.000000000 -0400
+@@ -133,12 +133,6 @@
+       e_event_emit((EEvent *)epe, "event", (EEventTarget *)t);
+ }
+-#else
+-#undef e_profile_event_emit
+-void
+-e_profile_event_emit(const char *id, const char *uid, guint32 flags)
+-{
+-}
+ #endif
+ /* ********************************************************************** */
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-util.h evolution-2.7.91.64-bit/e-util/e-util.h
+--- evolution-2.7.91.orig/e-util/e-util.h      2006-07-22 07:14:52.000000000 -0400
++++ evolution-2.7.91.64-bit/e-util/e-util.h    2006-08-24 13:18:52.000000000 -0400
+@@ -29,6 +29,7 @@
+ #include <limits.h>
+ #include <gconf/gconf-client.h>
+ #include <cairo.h>
++#include <gtk/gtk.h>
+ #ifdef __cplusplus
+ extern "C" {
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/mail/em-folder-view.c evolution-2.7.91.64-bit/mail/em-folder-view.c
+--- evolution-2.7.91.orig/mail/em-folder-view.c        2006-07-22 07:14:53.000000000 -0400
++++ evolution-2.7.91.64-bit/mail/em-folder-view.c      2006-08-24 13:18:29.000000000 -0400
+@@ -69,6 +69,8 @@
+ #include <gtkhtml/gtkhtml.h>
+ #include <gtkhtml/gtkhtml-stream.h>
++#include <libedataserver/e-data-server-util.h>
++
+ #include "menus/gal-view-etable.h"
+ #include "menus/gal-view-factory-etable.h"
+ #include "menus/gal-view-instance.h"
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/mail/em-format-html-display.c evolution-2.7.91.64-bit/mail/em-format-html-display.c
+--- evolution-2.7.91.orig/mail/em-format-html-display.c        2006-08-07 00:47:44.000000000 -0400
++++ evolution-2.7.91.64-bit/mail/em-format-html-display.c      2006-08-24 13:18:29.000000000 -0400
+@@ -42,6 +42,7 @@
+ #include <gtkhtml/gtkhtml-embedded.h>
+ #include <gtkhtml/gtkhtml-search.h>
++#include <gtk/gtk.h>
+ #include <gtk/gtkeventbox.h>
+ #include <gtk/gtkvbox.h>
+ #include <gtk/gtkhbox.h>
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/plugins/mono/mono-plugin.c evolution-2.7.91.64-bit/plugins/mono/mono-plugin.c
+--- evolution-2.7.91.orig/plugins/mono/mono-plugin.c   2005-12-17 13:47:10.000000000 -0500
++++ evolution-2.7.91.64-bit/plugins/mono/mono-plugin.c 2006-08-24 13:18:29.000000000 -0400
+@@ -8,6 +8,7 @@
+ #include <mono/metadata/object.h>
+ #include <mono/metadata/appdomain.h>
+ #include <mono/metadata/assembly.h>
++#include <mono/metadata/threads.h>
+ #include <mono/jit/jit.h>
+ #define d(x)
diff --git a/mail-client/evolution/files/evolution-2.8.0-blank-reply.patch b/mail-client/evolution/files/evolution-2.8.0-blank-reply.patch
new file mode 100644 (file)
index 0000000..6ad938b
--- /dev/null
@@ -0,0 +1,12 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.8.0.orig/mail/em-folder-view.c evolution-2.8.0/mail/em-folder-view.c
+--- evolution-2.8.0.orig/mail/em-folder-view.c 2006-09-02 02:43:04.000000000 -0400
++++ evolution-2.8.0/mail/em-folder-view.c      2006-09-06 12:24:49.000000000 -0400
+@@ -1486,7 +1486,7 @@
+       if (gtk_html_command(((EMFormatHTML *)emfv->preview)->html, "is-selection-active")
+           && (html = gtk_html_get_selection_html (((EMFormatHTML *)emfv->preview)->html, &len))
+-          && len) {
++          && len && html[0]) {
+               CamelMimeMessage *msg, *src;
+               struct _camel_header_raw *header;
+               
diff --git a/mail-client/evolution/files/evolution-2.8.0-includes.patch b/mail-client/evolution/files/evolution-2.8.0-includes.patch
new file mode 100644 (file)
index 0000000..e6c8a8f
--- /dev/null
@@ -0,0 +1,11 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/widgets/misc/e-attachment-bar.h evolution-2.7.91.includes/widgets/misc/e-attachment-bar.h
+--- evolution-2.7.91.orig/widgets/misc/e-attachment-bar.h      2006-05-31 23:30:06.000000000 -0400
++++ evolution-2.7.91.includes/widgets/misc/e-attachment-bar.h  2006-08-24 12:19:22.000000000 -0400
+@@ -82,6 +82,7 @@
+ GSList *e_attachment_bar_get_selected (EAttachmentBar *bar);
+ void e_attachment_bar_set_width(EAttachmentBar *bar, int bar_width);
+ GSList * e_attachment_bar_get_all_attachments (EAttachmentBar *bar);
++void e_attachment_bar_create_attachment_cache (EAttachment *attachment);
+ #ifdef __cplusplus
+ }
diff --git a/mail-client/evolution/files/evolution-2.8.0-uri.patch b/mail-client/evolution/files/evolution-2.8.0-uri.patch
new file mode 100644 (file)
index 0000000..118e8ee
--- /dev/null
@@ -0,0 +1,746 @@
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/apps_evolution_calendar.schemas.in.in evolution-2.7.91.uri/calendar/gui/apps_evolution_calendar.schemas.in.in
+--- evolution-2.7.91.orig/calendar/gui/apps_evolution_calendar.schemas.in.in   2006-08-07 00:47:42.000000000 -0400
++++ evolution-2.7.91.uri/calendar/gui/apps_evolution_calendar.schemas.in.in    2006-08-24 13:06:28.000000000 -0400
+@@ -577,5 +577,19 @@
+         <long>The URL template to use as a free/busy data fallback, %u is replaced by the user part of the mail address and %d is replaced by the domain.</long>
+       </locale>
+     </schema>
++
++    <schema>
++      <key>/schemas/apps/evolution/calendar/audio_dir</key>
++      <applyto>/apps/evolution/calendar/audio_dir</applyto>
++      <owner>evolution-calendar</owner>
++      <type>string</type>
++      <locale name="C">
++        <short>Save directory for alarm audio</short>
++         <long>
++           Directory for saving alarm audio files
++         </long>
++      </locale>
++    </schema>
++
+   </schemalist>
+ </gconfschemafile>
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/calendar-config-keys.h evolution-2.7.91.uri/calendar/gui/calendar-config-keys.h
+--- evolution-2.7.91.orig/calendar/gui/calendar-config-keys.h  2006-07-22 07:14:50.000000000 -0400
++++ evolution-2.7.91.uri/calendar/gui/calendar-config-keys.h   2006-08-24 12:05:43.000000000 -0400
+@@ -91,7 +91,7 @@
+ /* Free/Busy settings */
+ #define CALENDAR_CONFIG_TEMPLATE CALENDAR_CONFIG_PREFIX"/publish/template"
+-#define CALENDAR_CONFIG_SAVE_DIR "/apps/evolution/mail/save_dir"
++#define CALENDAR_CONFIG_SAVE_DIR CALENDAR_CONFIG_PREFIX"/audio_dir"
+ G_END_DECLS
+ #endif
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/calendar/gui/dialogs/alarm-dialog.c evolution-2.7.91.uri/calendar/gui/dialogs/alarm-dialog.c
+--- evolution-2.7.91.orig/calendar/gui/dialogs/alarm-dialog.c  2006-07-09 23:54:00.000000000 -0400
++++ evolution-2.7.91.uri/calendar/gui/dialogs/alarm-dialog.c   2006-08-24 11:47:41.000000000 -0400
+@@ -1080,6 +1080,7 @@
+               dir = calendar_config_get_dir_path ();
+               if ( dir && *dir )
+                       gnome_file_entry_set_default_path (GNOME_FILE_ENTRY (dialog->aalarm_file_entry), dir);
++              g_free(dir);
+               check_custom_sound (dialog);
+               break;
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-dialog-utils.c evolution-2.7.91.uri/e-util/e-dialog-utils.c
+--- evolution-2.7.91.orig/e-util/e-dialog-utils.c      2006-05-31 23:29:48.000000000 -0400
++++ evolution-2.7.91.uri/e-util/e-dialog-utils.c       2006-08-24 11:45:27.000000000 -0400
+@@ -28,6 +28,10 @@
+ #include "e-dialog-utils.h"
++#include <unistd.h>
++#include <glib.h>
++#include <glib/gstdio.h>
++
+ #include <gdkconfig.h>
+ #ifdef GDK_WINDOWING_X11
+ #include <gdk/gdkx.h>
+@@ -37,18 +41,19 @@
+ #include <gtk/gtkplug.h>
+ #include <gtk/gtkversion.h>
+-#ifdef USE_GTKFILECHOOSER
+ #include <gtk/gtkfilechooser.h>
+ #include <gtk/gtkfilechooserdialog.h>
+ #include <gtk/gtkstock.h>
+-#else
+-#include <gtk/gtkfilesel.h>
+-#endif
+ #include <gconf/gconf-client.h>
+ #include <libgnome/gnome-i18n.h>
+ #include <libgnome/gnome-util.h>
++#include <libgnomevfs/gnome-vfs-utils.h>
++
++#include "e-util/e-util.h"
++#include "e-util/e-error.h"
++
\f
+ /**
+  * e_notice:
+@@ -261,104 +266,42 @@
+       GtkWidget *fs;
+       char **filename = data;
+       char *uri;
+-      const char *path;
+-      int btn = GTK_RESPONSE_YES;
+-      GConfClient *gconf = gconf_client_get_default();
+-      char *dir;
+       
+       fs = gtk_widget_get_toplevel (widget);
+-#ifdef USE_GTKFILECHOOSER
+-      path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fs));
+       uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (fs));
+-#else
+-      path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
+-#endif
+-      
+-      if (g_file_test (path, G_FILE_TEST_IS_REGULAR)) {
+-              GtkWidget *dlg;
+-              
+-              dlg = gtk_message_dialog_new (GTK_WINDOW (fs), 0,
+-                                            GTK_MESSAGE_QUESTION,
+-                                            GTK_BUTTONS_YES_NO,
+-                                            _("A file by that name already exists.\n"
+-                                              "Overwrite it?"));
+-              gtk_window_set_title (GTK_WINDOW (dlg), _("Overwrite file?"));
+-              gtk_dialog_set_has_separator (GTK_DIALOG (dlg), FALSE);
+-              btn = gtk_dialog_run (GTK_DIALOG (dlg));
+-              gtk_widget_destroy (dlg);
+-      }
+-
+-      if (btn == GTK_RESPONSE_YES) {
+-              dir = g_path_get_dirname (path);
+-              gconf_client_set_string(gconf, "/apps/evolution/mail/save_dir", dir, NULL);
+-              g_free (dir);
++      if (e_file_can_save((GtkWindow *)widget, uri)) {
++              e_file_update_save_path(gtk_file_chooser_get_current_folder_uri(GTK_FILE_CHOOSER(fs)), TRUE);
+               *filename = uri;
+       }
+-      g_object_unref(gconf);
+       
+       gtk_main_quit ();
+ }
+-#ifdef USE_GTKFILECHOOSER
+ static void
+ filechooser_response (GtkWidget *fc, gint response_id, gpointer data)
+ {
+-      if (response_id == GTK_RESPONSE_ACCEPT)
++      if (response_id == GTK_RESPONSE_OK)
+               save_ok (fc, data);
+       else
+               gtk_widget_destroy (fc);
+ }
+-#endif
+ char *
+ e_file_dialog_save (const char *title, const char *fname)
+ {
+       GtkWidget *selection;
+       char *filename = NULL;
+-        char *dir, *gdir = NULL;
+-        GConfClient *gconf;
+- 
+-        gconf = gconf_client_get_default();
+-        dir = gdir = gconf_client_get_string(gconf, "/apps/evolution/mail/save_dir", NULL);
+-        g_object_unref(gconf);
+-
+-       if (dir == NULL)
+-             dir = (char *)g_get_home_dir();
+-                  
+-#ifdef USE_GTKFILECHOOSER
+-      selection = gtk_file_chooser_dialog_new (title,
+-                                               NULL,
+-                                               GTK_FILE_CHOOSER_ACTION_SAVE,
+-                                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+-                                               GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+-                                               NULL);
+-      gtk_dialog_set_default_response (GTK_DIALOG (selection), GTK_RESPONSE_ACCEPT);
+-        gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (selection), dir);
+-      gtk_file_chooser_set_local_only (selection, FALSE);
+-      
+-        if (fname)
+-              gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (selection), fname);
+-     
+-      g_signal_connect (G_OBJECT (selection), "response", G_CALLBACK (filechooser_response), &filename);
+-#else
+-      char *path;
+-      selection = gtk_file_selection_new (title);
+-      path = g_strdup_printf ("%s/", dir);    
+-      gtk_file_selection_set_filename (GTK_FILE_SELECTION (selection), path);
+-      g_free (path);
++      selection = e_file_get_save_filesel(NULL, title, fname, GTK_FILE_CHOOSER_ACTION_SAVE);
+-      g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (selection)->ok_button), "clicked", G_CALLBACK (save_ok), &filename);
+-      g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (selection)->cancel_button), "clicked", G_CALLBACK (gtk_main_quit), NULL);
+-#endif
++      g_signal_connect (G_OBJECT (selection), "response", G_CALLBACK (filechooser_response), &filename);
+       
+       gtk_widget_show (GTK_WIDGET (selection));
+       gtk_grab_add (GTK_WIDGET (selection));
+       gtk_main ();
+       
+       gtk_widget_destroy (GTK_WIDGET (selection));
+-      g_free (gdir);
+       
+       return filename;
+ }
+@@ -369,83 +312,147 @@
+       GtkWidget *fs;
+       char **filename = data;
+       char *uri;
+-      const char *path;
+-      GConfClient *gconf = gconf_client_get_default();
+       
+       fs = gtk_widget_get_toplevel (widget);
+-#ifdef USE_GTKFILECHOOSER
+-      path = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fs));
+       uri = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (fs));
+-#else
+-      path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs));
+-#endif
+       
+-      gconf_client_set_string(gconf, "/apps/evolution/mail/save_dir", path, NULL);
+-      g_object_unref(gconf);
++      e_file_update_save_path(uri, FALSE);
+       *filename = uri;
+       
+       gtk_main_quit ();
+ }
+-#ifdef USE_GTKFILECHOOSER
+ static void
+ folderchooser_response (GtkWidget *fc, gint response_id, gpointer data)
+ {
+-      if (response_id == GTK_RESPONSE_ACCEPT)
++      if (response_id == GTK_RESPONSE_OK)
+               save_folder_ok (fc, data);
+       else
+               gtk_widget_destroy (fc);
+ }
+-#endif
+ char *
+ e_file_dialog_save_folder (const char *title)
+ {
+       GtkWidget *selection;
+-#ifndef USE_GTKFILECHOOSER
+-      char *path;
+-#endif
+       char *filename = NULL;
+-      char *dir, *gdir = NULL;
+-      GConfClient *gconf;
+-
+-      gconf = gconf_client_get_default();
+-      dir = gdir = gconf_client_get_string(gconf, "/apps/evolution/mail/save_dir", NULL);
+-      g_object_unref(gconf);
+-
+-      if (dir == NULL)
+-              dir = (char *)g_get_home_dir();
+-
+-#ifdef USE_GTKFILECHOOSER
+-      selection = gtk_file_chooser_dialog_new (title,
+-                                               NULL,
+-                                               GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+-                                               GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+-                                               GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+-                                               NULL);
+-      gtk_dialog_set_default_response (GTK_DIALOG (selection), GTK_RESPONSE_ACCEPT);
+-      gtk_file_chooser_set_local_only (selection, FALSE);
+-      gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (selection), dir);
++      selection = e_file_get_save_filesel(NULL, title, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+       g_signal_connect (G_OBJECT (selection), "response", G_CALLBACK (folderchooser_response), &filename);
+-#else
+-      selection = gtk_file_selection_new (title);
+-      path = g_strdup_printf ("%s/", dir);
+-      gtk_file_selection_set_filename (GTK_FILE_SELECTION (selection), path);
+-      g_free (path);
+-
+-      g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (selection)->ok_button), "clicked", G_CALLBACK (save_folder_ok), &filename);
+-      g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (selection)->cancel_button), "clicked", G_CALLBACK (gtk_main_quit), NULL);
+-#endif
+       
+       gtk_widget_show (GTK_WIDGET (selection));
+       gtk_grab_add (GTK_WIDGET (selection));
+       gtk_main ();
+       
+       gtk_widget_destroy (GTK_WIDGET (selection));
+-      g_free (gdir);
+       
+       return filename;
+ }
++/**
++ * e_file_get_save_filesel:
++ * @parent: parent window
++ * @title: dialog title
++ * @name: filename
++ * @action: action for dialog
++ *
++ * Creates a save dialog, using the saved directory from gconf.   The dialog has
++ * no signals connected and is not shown.
++ **/
++GtkWidget *
++e_file_get_save_filesel (GtkWidget *parent, const char *title, const char *name, GtkFileChooserAction action)
++{
++      GtkWidget *filesel;
++      char *realname, *uri;
++
++      filesel = gtk_file_chooser_dialog_new (title,
++                                             NULL,
++                                             action,
++                                             GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
++                                             GTK_STOCK_SAVE, GTK_RESPONSE_OK,
++                                             NULL);
++      gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);
++      gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (filesel), FALSE);
++
++      if (parent)
++              e_dialog_set_transient_for((GtkWindow *)filesel, parent);
++
++      uri = e_file_get_save_path();
++
++      if (name && name[0]) {
++              realname = gnome_vfs_escape_string (name);
++      } else {
++              realname = NULL;
++      }
++
++      gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (filesel), uri);
++
++      if (realname)
++              gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filesel), realname);
++
++      g_free (realname);
++      g_free (uri);
++
++      return filesel;
++}
++
++/**
++ * e_file_can_save:
++ *
++ * Return TRUE if the URI can be saved to, FALSE otherwise.  It checks local
++ * files to see if they're regular and can be accessed.  If the file exists and
++ * is writable, it pops up a dialog asking the user if they want to overwrite
++ * it.  Returns the users choice.
++ **/
++gboolean
++e_file_can_save(GtkWindow *parent, const char *uri)
++{
++      struct stat st;
++      char *path;
++      gboolean res;
++
++      if (!uri || uri[0] == 0)
++              return FALSE;
++      /* Assume remote files are writable; too costly to check */
++      if (!e_file_check_local(uri))
++              return TRUE;
++
++      path = gnome_vfs_get_local_path_from_uri(uri);
++      if (!path)
++              return FALSE;
++
++      /* make sure we can actually save to it... */
++      if (g_stat (path, &st) != -1 && !S_ISREG (st.st_mode)) {
++              g_free(path);
++              return FALSE;
++      }
++
++      res = TRUE;
++      if (g_access (path, F_OK) == 0) {
++              if (g_access (path, W_OK) != 0) { e_error_run(parent, "mail:no-save-path", path, g_strerror(errno), NULL);
++                      g_free(path);
++                      return FALSE;
++              }
++
++              res = e_error_run(parent, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, path, NULL) == GTK_RESPONSE_OK;
++
++      }
++
++      g_free(path);
++      return res;
++}
++
++gboolean
++e_file_check_local (const char *name)
++{
++      char *uri;
++
++      uri = gnome_vfs_get_local_path_from_uri(name);
++      if (uri) {
++              g_free(uri);
++              return TRUE;
++      }
++
++      return FALSE;
++}
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-dialog-utils.h evolution-2.7.91.uri/e-util/e-dialog-utils.h
+--- evolution-2.7.91.orig/e-util/e-dialog-utils.h      2005-10-18 05:57:20.000000000 -0400
++++ evolution-2.7.91.uri/e-util/e-dialog-utils.h       2006-08-24 11:44:48.000000000 -0400
+@@ -24,6 +24,7 @@
+ #define E_DIALOG_UTILS_H
+ #include <gtk/gtkmessagedialog.h>
++#include <gtk/gtkfilechooser.h>
+ void  e_notice                       (gpointer         parent,
+                                     GtkMessageType   type,
+@@ -43,5 +44,10 @@
+ char *e_file_dialog_save_folder            (const char      *title);
++GtkWidget * e_file_get_save_filesel (GtkWidget *parent, const char *title, const char *name, GtkFileChooserAction action);
++
++gboolean e_file_can_save(GtkWindow *parent, const char *uri);
++gboolean e_file_check_local(const char *name);
++
+ #endif
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-util.c evolution-2.7.91.uri/e-util/e-util.c
+--- evolution-2.7.91.orig/e-util/e-util.c      2006-07-24 04:21:14.000000000 -0400
++++ evolution-2.7.91.uri/e-util/e-util.c       2006-08-24 11:45:06.000000000 -0400
+@@ -1187,4 +1187,45 @@
+       return font_options;
+ }
++/**
++ * e_file_update_save_path:
++ * @uri: URI to store
++ * @free: If TRUE, free uri
++ *
++ * Save the save_dir path for evolution.  If free is TRUE, uri gets freed when
++ * done.  Genearally, this should be called with the output of
++ * gtk_file_chooser_get_current_folder_uri()  The URI must be a path URI, not a
++ * file URI.
++ **/
++void
++e_file_update_save_path(char *uri, gboolean free)
++{
++      GConfClient *gconf = gconf_client_get_default();
++
++      gconf_client_set_string(gconf, "/apps/evolution/mail/save_dir", uri, NULL);
++      g_object_unref(gconf);
++      if (free)
++              g_free(uri);
++}
++
++/**
++ * e_file_get_save_path:
++ *
++ * Return the save_dir path for evolution.  If there isn't a save_dir, returns
++ * the users home directory.  Returns an allocated URI that should be freed by
++ * the caller.
++ **/
++char *
++e_file_get_save_path(void)
++{
++      GConfClient *gconf = gconf_client_get_default();
++      char *uri;
++
++      uri = gconf_client_get_string(gconf, "/apps/evolution/mail/save_dir", NULL);
++      g_object_unref(gconf);
++
++      if (uri == NULL)
++              uri = gnome_vfs_get_uri_from_local_path(g_get_home_dir());
++      return (uri);
++}
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/e-util/e-util.h evolution-2.7.91.uri/e-util/e-util.h
+--- evolution-2.7.91.orig/e-util/e-util.h      2006-07-22 07:14:52.000000000 -0400
++++ evolution-2.7.91.uri/e-util/e-util.h       2006-08-24 11:44:45.000000000 -0400
+@@ -215,6 +215,8 @@
+    Less than 0 for the int means copy the whole string. */
+ gchar    *e_strdup_append_strings                                          (gchar             *first_string,
+                                                                           ...);
++void e_file_update_save_path(char *uri, gboolean free);
++char *e_file_get_save_path(void);
+ cairo_font_options_t * get_font_options ();
+ #ifdef __cplusplus
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/mail/em-utils.c evolution-2.7.91.uri/mail/em-utils.c
+--- evolution-2.7.91.orig/mail/em-utils.c      2006-05-31 23:29:48.000000000 -0400
++++ evolution-2.7.91.uri/mail/em-utils.c       2006-08-23 23:50:18.000000000 -0400
+@@ -90,23 +90,6 @@
+ #define d(x)
+-static gboolean
+-emu_file_check_local (const char *name)
+-{
+-      CamelURL *url;
+-      gboolean local = FALSE;
+-
+-      url = camel_url_new (name, NULL);
+-      if (url == NULL)
+-              return TRUE;
+-
+-      if (!g_ascii_strcasecmp (url->protocol, "file")) 
+-              local = TRUE;
+-              
+-      camel_url_free (url);
+-
+-      return local;
+-}
+ /**
+  * em_utils_prompt_user:
+  * @parent: parent window
+@@ -375,119 +358,24 @@
+ /* Saving messages... */
+-static GtkWidget *
+-emu_get_save_filesel (GtkWidget *parent, const char *title, const char *name, GtkFileChooserAction action)
+-{
+-      GtkWidget *filesel;
+-      const char *dir;
+-      char *realname, *gdir;
+-      GConfClient *gconf;
+-
+-#ifdef USE_GTKFILECHOOSER
+-      filesel = gtk_file_chooser_dialog_new (title,
+-                                             NULL,
+-                                             action,
+-                                             GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+-                                             GTK_STOCK_SAVE, GTK_RESPONSE_OK,
+-                                             NULL);
+-      gtk_dialog_set_default_response (GTK_DIALOG (filesel), GTK_RESPONSE_OK);
+-      gtk_file_chooser_set_local_only (filesel, FALSE);
+-#else
+-      char *filename;
+-
+-      filesel = gtk_file_selection_new (title);
+-#endif
+-      
+-      if (parent)
+-              e_dialog_set_transient_for((GtkWindow *)filesel, parent);
+-
+-      gconf = gconf_client_get_default();
+-      dir = gdir = gconf_client_get_string(gconf, "/apps/evolution/mail/save_dir", NULL);
+-      g_object_unref(gconf);
+-
+-      if (dir == NULL)
+-              dir = g_get_home_dir();
+-
+-      if (name && name[0]) {
+-              realname = g_strdup (name);
+-              em_filename_make_safe (realname);
+-      } else {
+-              realname = NULL;
+-      }
+-
+-#ifdef USE_GTKFILECHOOSER
+-      gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (filesel), dir);
+-      
+-      if (realname)
+-              gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (filesel), realname);
+-#else
+-      filename = g_build_filename (dir, G_DIR_SEPARATOR_S, realname, NULL);
+-      gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesel), filename);
+-      g_free (filename);
+-#endif
+-      
+-      g_free (realname);
+-      g_free (gdir);
+-
+-      return filesel;
+-}
+-
+-static void
+-emu_update_save_path(const char *filename, gboolean path)
+-{
+-      char *dir = path ? (char *)filename : g_path_get_dirname(filename);
+-      GConfClient *gconf = gconf_client_get_default();
+-
+-      gconf_client_set_string(gconf, "/apps/evolution/mail/save_dir", dir, NULL);
+-      g_object_unref(gconf);
+-      if (!path)
+-              g_free(dir);
+-}
+-
+-static gboolean
+-emu_can_save(GtkWindow *parent, const char *path)
+-{
+-      struct stat st;
+-      
+-      if (!path || path[0] == 0)
+-              return FALSE;
+-
+-      /* make sure we can actually save to it... */
+-      if (g_stat (path, &st) != -1 && !S_ISREG (st.st_mode))
+-              return FALSE;
+-      
+-      if (g_access (path, F_OK) == 0) {
+-              if (g_access (path, W_OK) != 0) {
+-                      e_error_run(parent, "mail:no-save-path", path, g_strerror(errno), NULL);
+-                      return FALSE;
+-              }
+-              
+-              return e_error_run(parent, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, path, NULL) == GTK_RESPONSE_OK;
+-      }
+-      
+-      return TRUE;
+-}
+-
+ static void
+ emu_save_part_response(GtkWidget *filesel, int response, CamelMimePart *part)
+ {
+-      const char *path;
+-      const char *uri;
++      char *uri;
+       
+       if (response == GTK_RESPONSE_OK) {
+-#ifdef USE_GTKFILECHOOSER
+               uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (filesel));
+-              path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (filesel));
+-#else
+-              path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
+-#endif
+-              if (emu_file_check_local(uri) && !emu_can_save((GtkWindow *)filesel, path))
++              if (!e_file_can_save((GtkWindow *)filesel, uri)) {
++                      g_free(uri);
+                       return;
++              }
+-              emu_update_save_path(path, FALSE);
++              e_file_update_save_path(gtk_file_chooser_get_current_folder_uri(
++                                      GTK_FILE_CHOOSER(filesel)), TRUE);
+               /* FIXME: popup error if it fails? */
+               mail_save_part(part, uri, NULL, NULL, FALSE);
++              g_free(uri);
+       }
+       gtk_widget_destroy((GtkWidget *)filesel);
+@@ -519,7 +407,7 @@
+               }
+       }
+-      filesel = emu_get_save_filesel(parent, prompt, name, GTK_FILE_CHOOSER_ACTION_SAVE);
++      filesel = e_file_get_save_filesel(parent, prompt, name, GTK_FILE_CHOOSER_ACTION_SAVE);
+       camel_object_ref(part);
+       g_signal_connect (filesel, "response", G_CALLBACK (emu_save_part_response), part);
+       gtk_widget_show (filesel);
+@@ -528,16 +416,11 @@
+ static void
+ emu_save_parts_response (GtkWidget *filesel, int response, GSList *parts)
+ {
+-        char *path = NULL;
+         GSList *selected;
++              char *uri = NULL;
+         if (response == GTK_RESPONSE_OK) {
+-#ifdef USE_GTKFILECHOOSER
+-                path = gtk_file_chooser_get_current_folder_uri (GTK_FILE_CHOOSER (filesel));
+-#else
+-                path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
+-#endif
+-
+-                emu_update_save_path(path, TRUE);
++              uri = gtk_file_chooser_get_current_folder_uri(GTK_FILE_CHOOSER (filesel));
++                e_file_update_save_path(uri, FALSE);
+                 for ( selected = parts; selected != NULL; selected = selected->next) {
+                         const char *file_name;
+@@ -560,8 +443,8 @@
+                               file_name = safe_name;
+                       }
+                       
+-                      file_path = g_build_filename (path, file_name, NULL);
+-                      if (!g_file_test(file_path, (G_FILE_TEST_EXISTS)) || e_error_run(NULL, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, file_name, NULL) == GTK_RESPONSE_OK)                  
++                      file_path = g_build_filename (uri, file_name, NULL);
++                      if (!e_file_check_local(file_path) || !g_file_test(file_path, (G_FILE_TEST_EXISTS)) || e_error_run(NULL, E_ERROR_ASK_FILE_EXISTS_OVERWRITE, file_name, NULL) == GTK_RESPONSE_OK)
+                               mail_save_part(part, file_path, NULL, NULL, FALSE);
+                       else
+                               g_warning ("Could not save %s. File already exists", file_path);
+@@ -570,7 +453,7 @@
+                       g_free (safe_name);
+                 }
+-              g_free (path);
++              g_free (uri);
+         }
+       
+       g_slist_free (parts);
+@@ -582,7 +465,7 @@
+ {
+         GtkWidget *filesel;
+-        filesel = emu_get_save_filesel (parent, prompt, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
++        filesel = e_file_get_save_filesel (parent, prompt, NULL, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+         g_signal_connect (filesel, "response", G_CALLBACK (emu_save_parts_response), parts);
+         gtk_widget_show (filesel);
+ }
+@@ -643,21 +526,21 @@
+ static void
+ emu_save_messages_response(GtkWidget *filesel, int response, struct _save_messages_data *data)
+ {
+-      const char *path;
++      char *uri;
+       
+       if (response == GTK_RESPONSE_OK) {
+-#ifdef USE_GTKFILECHOOSER
+-              path = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (filesel));
+-#else
+-              path = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
+-#endif
++              uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (filesel));
+-              if (!emu_can_save((GtkWindow *)filesel, path))
++              if (!e_file_can_save((GtkWindow *)filesel, uri)) {
++                      g_free(uri);
+                       return;
++              }
+-              emu_update_save_path(path, FALSE);
+-              mail_save_messages(data->folder, data->uids, path, NULL, NULL);
++              e_file_update_save_path(gtk_file_chooser_get_current_folder_uri(
++                                      GTK_FILE_CHOOSER (filesel)), TRUE);
++              mail_save_messages(data->folder, data->uids, uri, NULL, NULL);
+               data->uids = NULL;
++              g_free(uri);
+       }
+       camel_object_unref(data->folder);
+@@ -685,7 +568,7 @@
+       g_return_if_fail (CAMEL_IS_FOLDER (folder));
+       g_return_if_fail (uids != NULL);
+-      filesel = emu_get_save_filesel(parent, _("Save Message..."), NULL, GTK_FILE_CHOOSER_ACTION_SAVE);
++      filesel = e_file_get_save_filesel(parent, _("Save Message..."), NULL, GTK_FILE_CHOOSER_ACTION_SAVE);
+       camel_object_ref(folder);
+       
+       data = g_malloc(sizeof(struct _save_messages_data));
+diff --exclude-from=/home/dang/.diffrc -u -ruN evolution-2.7.91.orig/mail/evolution-mail.schemas.in.in evolution-2.7.91.uri/mail/evolution-mail.schemas.in.in
+--- evolution-2.7.91.orig/mail/evolution-mail.schemas.in.in    2006-07-22 07:14:53.000000000 -0400
++++ evolution-2.7.91.uri/mail/evolution-mail.schemas.in.in     2006-08-24 13:04:58.000000000 -0400
+@@ -913,5 +913,20 @@
+       </locale>
+     </schema>
++    <!-- save directory settings -->
++
++    <schema>
++      <key>/schemas/apps/evolution/mail/save_dir</key>
++      <applyto>/apps/evolution/mail/save_dir</applyto>
++      <owner>evolution-mail</owner>
++      <type>string</type>
++      <locale name="C">
++         <short>Save directory</short>
++         <long>
++           Directory for saving mail component files
++         </long>
++      </locale>
++    </schema>
++
+   </schemalist>
+ </gconfschemafile>