From: Daniel Gryniewicz Date: Thu, 7 Sep 2006 03:49:51 +0000 (+0000) Subject: gnome 2.16 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=e490f2efd194df32ed9e809cc41a521d17ccbe67;p=gentoo.git gnome 2.16 Package-Manager: portage-2.1.1_rc1-r2 --- diff --git a/mail-client/evolution/ChangeLog b/mail-client/evolution/ChangeLog index 5e7bae000463..946fabdc8e50 100644 --- a/mail-client/evolution/ChangeLog +++ b/mail-client/evolution/ChangeLog @@ -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 + +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 evolution-2.6.2-r1.ebuild: Stable on ppc64 diff --git a/mail-client/evolution/Manifest b/mail-client/evolution/Manifest index d8339f808473..e6442a88c710 100644 --- a/mail-client/evolution/Manifest +++ b/mail-client/evolution/Manifest @@ -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 index 000000000000..583cb92e0bb8 --- /dev/null +++ b/mail-client/evolution/evolution-2.8.0.ebuild @@ -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 index 000000000000..8b7e069d7086 --- /dev/null +++ b/mail-client/evolution/files/digest-evolution-2.8.0 @@ -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 index 000000000000..9a6337c14bbb 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 index 000000000000..0860f297a09a --- /dev/null +++ b/mail-client/evolution/files/evolution-2.8.0-64-bit.patch @@ -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 + #include + #include ++#include + + 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 ++#include + #include + #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 + +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 + #include ++#include + #include + #include + +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 + #include + #include ++#include + + #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 + #include + ++#include ++ + #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 + #include + ++#include + #include + #include + #include +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 + #include + #include ++#include + #include + + #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 index 000000000000..6ad938bb234f --- /dev/null +++ b/mail-client/evolution/files/evolution-2.8.0-blank-reply.patch @@ -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 index 000000000000..e6c8a8ff957d --- /dev/null +++ b/mail-client/evolution/files/evolution-2.8.0-includes.patch @@ -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 index 000000000000..118e8ee07aba --- /dev/null +++ b/mail-client/evolution/files/evolution-2.8.0-uri.patch @@ -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 @@ + 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. + + ++ ++ ++ /schemas/apps/evolution/calendar/audio_dir ++ /apps/evolution/calendar/audio_dir ++ evolution-calendar ++ string ++ ++ Save directory for alarm audio ++ ++ Directory for saving alarm audio files ++ ++ ++ ++ + + +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 ++#include ++#include ++ + #include + #ifdef GDK_WINDOWING_X11 + #include +@@ -37,18 +41,19 @@ + #include + #include + +-#ifdef USE_GTKFILECHOOSER + #include + #include + #include +-#else +-#include +-#endif + + #include + #include + #include + ++#include ++ ++#include "e-util/e-util.h" ++#include "e-util/e-error.h" ++ + + /** + * 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 ++#include + + 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 @@ + + + ++ ++ ++ ++ /schemas/apps/evolution/mail/save_dir ++ /apps/evolution/mail/save_dir ++ evolution-mail ++ string ++ ++ Save directory ++ ++ Directory for saving mail component files ++ ++ ++ ++ + +