diff options
author | Mark Loeser <halcy0n@gentoo.org> | 2010-02-25 15:57:38 +0000 |
---|---|---|
committer | Mark Loeser <halcy0n@gentoo.org> | 2010-02-25 15:57:38 +0000 |
commit | 38b81d80ad7b548dfc4c24928411ba421a001f12 (patch) | |
tree | aedfb0dfcc399a35c5ebe7735bf3a6fb18a4748e /gnome-extra | |
parent | x86 stable, bug #302480 (diff) | |
download | historical-38b81d80ad7b548dfc4c24928411ba421a001f12.tar.gz historical-38b81d80ad7b548dfc4c24928411ba421a001f12.tar.bz2 historical-38b81d80ad7b548dfc4c24928411ba421a001f12.zip |
Restoring due to dev-dotnet/evolution-sharp-0.18.1 requiring it
Package-Manager: portage-2.2_rc62/cvs/Linux i686
RepoMan-Options: --force
Diffstat (limited to 'gnome-extra')
8 files changed, 500 insertions, 6 deletions
diff --git a/gnome-extra/evolution-data-server/ChangeLog b/gnome-extra/evolution-data-server/ChangeLog index b1dbd30df7a3..6840e47821e8 100644 --- a/gnome-extra/evolution-data-server/ChangeLog +++ b/gnome-extra/evolution-data-server/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for gnome-extra/evolution-data-server # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.254 2010/02/24 22:46:00 eva Exp $ +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/ChangeLog,v 1.255 2010/02/25 15:57:37 halcy0n Exp $ + + 25 Feb 2010; Mark Loeser <halcy0n@gentoo.org> + +files/evolution-data-server-1.11.3-no-libdb.patch, + +files/evolution-data-server-2.23.6-as-needed.patch, + +evolution-data-server-2.24.5-r3.ebuild, + +files/evolution-data-server-2.24.5-CVE-2009-0547.patch, + +files/evolution-data-server-2.24.5-fix-body.patch, + +files/evolution-data-server-CVE-2009-0582.patch: + Restoring due to dev-dotnet/evolution-sharp-0.18.1 requiring it 24 Feb 2010; Gilles Dartiguelongue <eva@gentoo.org> -files/evolution-data-server-1.11.3-no-libdb.patch, diff --git a/gnome-extra/evolution-data-server/Manifest b/gnome-extra/evolution-data-server/Manifest index 8e0da8d4a2cf..6987ba10b0fe 100644 --- a/gnome-extra/evolution-data-server/Manifest +++ b/gnome-extra/evolution-data-server/Manifest @@ -2,22 +2,29 @@ Hash: SHA1 AUX calentry.schema 3661 RMD160 68dfc3a8bbf08a1cf2713727c6617b2de613cb7c SHA1 06ddcc64c3b2b3230fbbef21a7e2a682bd95788c SHA256 107d60463833d5ceb5f752335dd07fef303093c58a51fb03405fed5837999431 +AUX evolution-data-server-1.11.3-no-libdb.patch 570 RMD160 404dfda7aac4e9ff6504ecd9ee5b7af6efafc969 SHA1 411f311317439bf20643491d2b7d1cbee99c561e SHA256 992602fd04cfa8afba084238f62f765b1d5caf29cc10ad739c7e63ea78291905 AUX evolution-data-server-1.2.0-gentoo_etc_services.patch 815 RMD160 d48ad5a34bfdf9f814b9ae22ba188f2f0c7f0304 SHA1 9248c74b334534f74e027fc119509673bff4542f SHA256 a64e0e4d74ac91f69c4b7a011b6325e27af6fa28a58e20f48ff09ec2a1538c5a AUX evolution-data-server-1.8.0-camel-rewind.patch 499 RMD160 90b94f0b20a52a4fdf476bcfa5fe0ad2a064d488 SHA1 db7d42df20ab50d81835b9c1b9ebed84d1e0d8cb SHA256 1323e9dc957e3cc02fd1628fa21d448c8c985028e5b57d03596b6bde9ad66e0e +AUX evolution-data-server-2.23.6-as-needed.patch 3469 RMD160 43c48a35d0480a82db6cf131c0fdd0062353efc4 SHA1 96ef4dd901730ab2f77716646517a5ef40a5f982 SHA256 4899ffd8773229ecb43afbffdb91faa1fd433630395792998973f62aa54afb37 +AUX evolution-data-server-2.24.5-CVE-2009-0547.patch 3977 RMD160 24bd47ad13994f712bf4976fed06997e93130bf1 SHA1 624a3072eed233542829a557c1434a63ac9e64be SHA256 7aefaa4cf040efa4aca3fbf49910003a5368eb44d5e5b46f53f044495de7ff8d +AUX evolution-data-server-2.24.5-fix-body.patch 1133 RMD160 91a17a437f6102172b094e77b89296eacb037faf SHA1 9d60f8406af3ed56ea15704a1ee0cae6bf044d91 SHA256 c5af4e15b50b91ee276c3959a7049a8171a4d9f962fbf878d3135620106c2c02 AUX evolution-data-server-2.25.5-as-needed.patch 3489 RMD160 3594d79fe2fb53fdb0a970d07821cea07a0e9b11 SHA1 35af25a7f156ec80924448cc6207f251ce876ef6 SHA256 5a8f35873fe5f9d11bccc3868351be3fbe27620d5546283db83c94a300631d6a AUX evolution-data-server-2.25.90-no-libdb.patch 355 RMD160 fcf879d6b7997f5731812bb76d05a05a777fbc56 SHA1 6ad4bff173c83c96573cf78ecd8131b2c08b76b0 SHA256 3b66f8d59c58bb2f3b5e8025892b9fabf6841cefe105e97e1070dda2d82d2088 AUX evolution-data-server-2.26.3-camel-vee-folder.patch 1072 RMD160 5ea77f129629744e8b147cf707b6dee16b21d7dc SHA1 f8a3383c841edb5f345dced8a99fc38c9d6d28e9 SHA256 4bd7b35d7ba55e5a452aeeef1d96e2372d6312f533489259f7b777b0a6963ff4 AUX evolution-data-server-2.28.0-gentoo_etc_services.patch 1294 RMD160 058a86636b5b544c312f086f31902b38001484f1 SHA1 2e7fb34243ed00efdcec2fda3fc109856ca451ff SHA256 14a3954871868cbae15891cfcb87135fd82077628f7ad49290fb955aeb4f192a +AUX evolution-data-server-CVE-2009-0582.patch 4651 RMD160 348f25abea3f513f170ca159923fc836ebafae42 SHA1 2d6b8ff93c43cf9e107de93c64be9df4d9b9a6d4 SHA256 b320f3efdbb19ddbf618be77cc4b52e5f422209b48273b5f62c7158b6efe618a +DIST evolution-data-server-2.24.5.tar.bz2 7857405 RMD160 d5f32f35a51e32885f96d4f92d7a0c6fae249a92 SHA1 b1df1f3580e3566d08faf2c093a685ee977d648c SHA256 c2240b96437f36f3656da538df7631510785664a6e7723cbf75ec0f88c3d38d1 DIST evolution-data-server-2.26.3.tar.bz2 7167764 RMD160 83f68a464a0cfb50511f33e662d8a24ede42b9e6 SHA1 a9406b748d5a002df9570d17c91066575f2ba408 SHA256 ed2698d64dc663900b50f7a461d79c25e310462b7d41b1073257cbf950e75071 DIST evolution-data-server-2.28.2.tar.bz2 22319961 RMD160 5041260ffa3430104c812ec5495bf6cba40c347f SHA1 dd2f35ed6765651c9daf0e709e0e9d65604d1eed SHA256 12e3ba23e4021a70be9cb6d418d1966883ee940bfa1a298294b036bde90faf2c +EBUILD evolution-data-server-2.24.5-r3.ebuild 3529 RMD160 2ff418a16a9b8a688edfbcd2f040084ad244b09a SHA1 6adb48feb16c8092bf1ca3591f435c11aede52b2 SHA256 d8bc2df8b4de8c67dc4251f8f7209bec93c513381f669d314cc389b40c0755a4 EBUILD evolution-data-server-2.26.3.ebuild 3528 RMD160 6cf1472c699e9c60bc4a4d2266946c5b487fdfd1 SHA1 48e90958f963d2fdfcecb71af026b7cd613831ea SHA256 08725da4208365da62c149a1ccf1ca62660d68f92556e63a899c110bffa0f6e9 EBUILD evolution-data-server-2.28.2.ebuild 3299 RMD160 e0231e682e4d2b664e0ad51ccfc7d61ac7d6a42e SHA1 daf8280801cf1a105b79bb116ea6440c7822a489 SHA256 37e4ccb8bbf1d2658dbc246d5c761221fa83d04b43f6dbc4c17a4149bdc0cb05 -MISC ChangeLog 48242 RMD160 05458758e9cbaa4dce447ef34971cd84a45d57bf SHA1 928f35ec22bdd014cf6f3d7494ab7a2b2ea98334 SHA256 15e993992f0b30792e93df745d4b3b4fce7d0d7ca4cec6921c404a7d8f262cf3 +MISC ChangeLog 48678 RMD160 39df480a4020f19a42d35ccbc1e1bcfd7ddaed65 SHA1 d5d3f8e64e3dad47b1b30bb7c682759f875964c1 SHA256 394fa970a84a8d3ec61c03cdfed6162ac122d960494fcc15144f9b606468a8bd MISC metadata.xml 158 RMD160 c0e2bae8e91bb6be8922bac5e4f597302e06587e SHA1 38f78e9790bcd4382b4a49aa226aa6dda1d3a3d7 SHA256 3a7dbca0fdc557de69783e0663e2d76ddab129ea8a19b2d0ef6d3e5d1b947ce1 -----BEGIN PGP SIGNATURE----- -Version: GnuPG v2.0.14 (GNU/Linux) +Version: GnuPG v2.0.13 (GNU/Linux) -iEYEARECAAYFAkuFrDIACgkQ1fmVwcYIWAa1IQCfWdV+V5M2K0UHhjUzSs5LhlqG -tU8AnRhZ+VUXJOSjFrr7raA+UTELq/2u -=J6yx +iEYEARECAAYFAkuGngAACgkQCRZPokWLroSLsQCfeDRus1H0QJzWhcK49Isu1ODK +n+YAoMH9BswIhYAZNlfdyY57gLhUUln4 +=biTq -----END PGP SIGNATURE----- diff --git a/gnome-extra/evolution-data-server/evolution-data-server-2.24.5-r3.ebuild b/gnome-extra/evolution-data-server/evolution-data-server-2.24.5-r3.ebuild new file mode 100644 index 000000000000..d5314d9134b3 --- /dev/null +++ b/gnome-extra/evolution-data-server/evolution-data-server-2.24.5-r3.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/gnome-extra/evolution-data-server/evolution-data-server-2.24.5-r3.ebuild,v 1.10 2010/02/25 15:57:38 halcy0n Exp $ + +EAPI="2" + +inherit db-use eutils flag-o-matic gnome2 autotools versionator + +DESCRIPTION="Evolution groupware backend" +HOMEPAGE="http://www.gnome.org/projects/evolution/" + +LICENSE="LGPL-2 BSD DB" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd" +IUSE="doc ipv6 kerberos gnome-keyring krb4 ldap ssl" + +RDEPEND=">=dev-libs/glib-2.16.1 + >=x11-libs/gtk+-2.10 + >=gnome-base/orbit-2.9.8 + >=gnome-base/libbonobo-2.20.3 + >=gnome-base/gconf-2 + >=gnome-base/libglade-2 + >=gnome-base/libgnome-2 + >=dev-libs/libxml2-2 + >=net-libs/libsoup-2.4 + gnome-keyring? ( >=gnome-base/gnome-keyring-2.20.1 ) + >=dev-db/sqlite-3.5 + ssl? ( + >=dev-libs/nspr-4.4 + >=dev-libs/nss-3.9 ) + >=gnome-base/libgnomeui-2 + sys-libs/zlib + =sys-libs/db-4* + ldap? ( >=net-nds/openldap-2.0 ) + kerberos? ( virtual/krb5 ) + krb4? ( app-crypt/mit-krb5[krb4] )" + +DEPEND="${RDEPEND} + >=dev-util/pkgconfig-0.9 + >=dev-util/intltool-0.35.5 + >=gnome-base/gnome-common-2 + >=dev-util/gtk-doc-am-1.9 + doc? ( >=dev-util/gtk-doc-1.9 )" + +DOCS="ChangeLog MAINTAINERS NEWS TODO" + +pkg_setup() { + G2CONF="${G2CONF} + $(use_with ldap openldap) + $(use_with krb4 krb4 /usr) + $(use_with kerberos krb5 /usr) + $(use_enable ssl nss) + $(use_enable ssl smime) + $(use_enable ipv6) + $(use_enable gnome-keyring) + --with-libdb=/usr/$(get_libdir)" +} + +src_prepare() { + gnome2_src_prepare + + # Adjust to gentoo's /etc/service + epatch "${FILESDIR}"/${PN}-1.2.0-gentoo_etc_services.patch + + # Fix broken libdb build + epatch "${FILESDIR}"/${PN}-1.11.3-no-libdb.patch + + # Rewind in camel-disco-diary to fix a crash + epatch "${FILESDIR}"/${PN}-1.8.0-camel-rewind.patch + + # Fix building evo-exchange with --as-needed, upstream bug #342830 + epatch "${FILESDIR}"/${PN}-2.23.6-as-needed.patch + + # Fix S/MIME verification. Bug #258867 + epatch "${FILESDIR}"/${P}-CVE-2009-0547.patch + + # Fix S/MIME message display, bug #258867 + epatch "${FILESDIR}"/${P}-fix-body.patch + + # Fix NTLM SASL authentication. Bug #261203 + epatch "${FILESDIR}"/${PN}-CVE-2009-0582.patch + + if use doc; then + sed "/^TARGET_DIR/i \GTKDOC_REBASE=/usr/bin/gtkdoc-rebase" \ + -i gtk-doc.make || die "sed 1 failed" + else + sed "/^TARGET_DIR/i \GTKDOC_REBASE=$(type -P true)" \ + -i gtk-doc.make || die "sed 2 failed" + fi + + # gtk-doc-am and gnome-common needed for this + intltoolize --force --copy --automake || die "intltoolize failed" + eautoreconf + + # 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 || die "sed failed" + G2CONF="${G2CONF} --enable-nss=yes" + else + G2CONF="${G2CONF} --without-nspr-libs --without-nspr-includes \ + --without-nss-libs --without-nss-includes" + fi + + # /usr/include/db.h is always db-1 on FreeBSD + # so include the right dir in CPPFLAGS + append-cppflags "-I$(db_includedir)" +} + +src_install() { + gnome2_src_install + + if use ldap; then + MY_MAJORV=$(get_version_component_range 1-2) + insinto /etc/openldap/schema + doins "${FILESDIR}"/calentry.schema || die "doins failed" + dosym "${D}"/usr/share/${PN}-${MY_MAJORV}/evolutionperson.schema /etc/openldap/schema/evolutionperson.schema + fi +} + +pkg_postinst() { + gnome2_pkg_postinst + + if use ldap; then + elog "" + elog "LDAP schemas needed by evolution are installed in /etc/openldap/schema" + fi +} diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-1.11.3-no-libdb.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-1.11.3-no-libdb.patch new file mode 100644 index 000000000000..b2b7769289e8 --- /dev/null +++ b/gnome-extra/evolution-data-server/files/evolution-data-server-1.11.3-no-libdb.patch @@ -0,0 +1,13 @@ +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-1.11.3.orig/configure.in evolution-data-server-1.11.3/configure.in +--- evolution-data-server-1.11.3.orig/configure.in 2007-06-04 06:50:47.000000000 -0400 ++++ evolution-data-server-1.11.3/configure.in 2007-06-07 10:58:22.000000000 -0400 +@@ -1431,9 +1431,6 @@ export privdatadir + if test $enable_calendar = yes; then + AC_CONFIG_SUBDIRS(calendar/libical) + fi +-if test $dynamic_libdb = no; then +- AC_CONFIG_SUBDIRS(libdb/dist) +-fi + AC_OUTPUT([ + Makefile + evolution-data-server-zip diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-2.23.6-as-needed.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-2.23.6-as-needed.patch new file mode 100644 index 000000000000..57d10c82b2e4 --- /dev/null +++ b/gnome-extra/evolution-data-server/files/evolution-data-server-2.23.6-as-needed.patch @@ -0,0 +1,54 @@ +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.23.6.orig/addressbook/backends/Makefile.am evolution-data-server-2.23.6/addressbook/backends/Makefile.am +--- evolution-data-server-2.23.6.orig/addressbook/backends/Makefile.am 2008-08-04 00:28:27.000000000 -0400 ++++ evolution-data-server-2.23.6/addressbook/backends/Makefile.am 2008-08-05 12:26:15.000000000 -0400 +@@ -4,4 +4,4 @@ else + LDAP_SUBDIR = + endif + +-SUBDIRS = file vcf $(LDAP_SUBDIR) google groupwise webdav ++SUBDIRS = file vcf $(LDAP_SUBDIR) +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.23.6.orig/calendar/backends/Makefile.am evolution-data-server-2.23.6/calendar/backends/Makefile.am +--- evolution-data-server-2.23.6.orig/calendar/backends/Makefile.am 2008-04-11 07:10:31.000000000 -0400 ++++ evolution-data-server-2.23.6/calendar/backends/Makefile.am 2008-08-05 12:25:51.000000000 -0400 +@@ -1 +1 @@ +-SUBDIRS = file groupwise http contacts weather caldav google ++SUBDIRS = file http contacts weather caldav +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.23.6.orig/camel/providers/Makefile.am evolution-data-server-2.23.6/camel/providers/Makefile.am +--- evolution-data-server-2.23.6.orig/camel/providers/Makefile.am 2008-08-01 02:34:59.000000000 -0400 ++++ evolution-data-server-2.23.6/camel/providers/Makefile.am 2008-08-05 12:26:59.000000000 -0400 +@@ -21,6 +21,6 @@ else + SENDMAIL_DIR=sendmail + endif + +-SUBDIRS = pop3 $(SENDMAIL_DIR) smtp imap $(IMAP4_DIR) $(NNTP_DIR) local $(IMAPP_DIR) groupwise $(HULA_DIR) ++SUBDIRS = pop3 $(SENDMAIL_DIR) smtp imap $(IMAP4_DIR) $(NNTP_DIR) local $(IMAPP_DIR) $(HULA_DIR) + + +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.23.6.orig/Makefile.am evolution-data-server-2.23.6/Makefile.am +--- evolution-data-server-2.23.6.orig/Makefile.am 2008-08-01 02:35:37.000000000 -0400 ++++ evolution-data-server-2.23.6/Makefile.am 2008-08-05 12:28:22.000000000 -0400 +@@ -7,9 +7,12 @@ endif + + if ENABLE_CALENDAR + CALENDAR_DIR = calendar ++CALENDAR_LATER = calendar/backends/groupwise calendar/backends/google + endif + +-SUBDIRS = $(LIBDB) win32 libedataserver libebackend servers camel addressbook $(CALENDAR_DIR) libedataserverui src docs art po ++LATER = camel/providers/groupwise addressbook/backends/groupwise addressbook/backends/google addressbook/backends/webdav $(CALENDAR_LATER) ++ ++SUBDIRS = $(LIBDB) win32 libedataserver libebackend camel addressbook $(CALENDAR_DIR) libedataserverui servers $(LATER) src docs art po + DIST_SUBDIRS= win32 libedataserver libebackend servers camel addressbook calendar libedataserverui src docs art po + changelogs = \ + ChangeLog +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.23.6.orig/servers/exchange/storage/Makefile.am evolution-data-server-2.23.6/servers/exchange/storage/Makefile.am +--- evolution-data-server-2.23.6.orig/servers/exchange/storage/Makefile.am 2008-04-11 07:10:16.000000000 -0400 ++++ evolution-data-server-2.23.6/servers/exchange/storage/Makefile.am 2008-08-05 12:25:51.000000000 -0400 +@@ -64,6 +64,7 @@ libexchange_storage_1_2_la_LIBADD = \ + $(top_builddir)/servers/exchange/lib/libexchange.la \ + $(top_builddir)/servers/exchange/xntlm/libxntlm.la \ + $(top_builddir)/libedataserver/libedataserver-1.2.la \ ++ $(top_builddir)/libedataserverui/libedataserverui-1.2.la \ + $(E_DATA_SERVER_LIBS) \ + $(E_DATA_SERVER_UI_LIBS) \ + $(LDAP_LIBS) \ diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-CVE-2009-0547.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-CVE-2009-0547.patch new file mode 100644 index 000000000000..b527c8021ba1 --- /dev/null +++ b/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-CVE-2009-0547.patch @@ -0,0 +1,105 @@ +diff --exclude-from=/home/dang/.scripts/diffrc -up -ruN evolution-data-server-2.24.5.orig/camel/camel-smime-context.c evolution-data-server-2.24.5/camel/camel-smime-context.c +--- evolution-data-server-2.24.5.orig/camel/camel-smime-context.c 2008-09-22 06:53:58.000000000 -0400 ++++ evolution-data-server-2.24.5/camel/camel-smime-context.c 2009-03-07 14:52:57.000000000 -0500 +@@ -40,6 +40,7 @@ + #include <smime.h> + #include <pkcs11t.h> + #include <pk11func.h> ++#include <secoid.h> + + #include <errno.h> + +@@ -534,6 +535,7 @@ sm_verify_cmsg(CamelCipherContext *conte + for (i = 0; i < count; i++) { + NSSCMSContentInfo *cinfo = NSS_CMSMessage_ContentLevel(cmsg, i); + SECOidTag typetag = NSS_CMSContentInfo_GetContentTypeTag(cinfo); ++ int which_digest; + + switch (typetag) { + case SEC_OID_PKCS7_SIGNED_DATA: +@@ -543,44 +545,49 @@ sm_verify_cmsg(CamelCipherContext *conte + goto fail; + } + +- /* need to build digests of the content */ +- if (!NSS_CMSSignedData_HasDigests(sigd)) { +- if (extstream == NULL) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Digests missing from enveloped data")); +- goto fail; +- } +- +- if ((poolp = PORT_NewArena(1024)) == NULL) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, g_strerror (ENOMEM)); +- goto fail; +- } +- +- digestalgs = NSS_CMSSignedData_GetDigestAlgs(sigd); +- +- digcx = NSS_CMSDigestContext_StartMultiple(digestalgs); +- if (digcx == NULL) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot calculate digests")); +- goto fail; +- } +- +- mem = (CamelStreamMem *)camel_stream_mem_new(); +- camel_stream_write_to_stream(extstream, (CamelStream *)mem); +- NSS_CMSDigestContext_Update(digcx, mem->buffer->data, mem->buffer->len); +- camel_object_unref(mem); +- +- if (NSS_CMSDigestContext_FinishMultiple(digcx, poolp, &digests) != SECSuccess) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot calculate digests")); +- goto fail; +- } +- +- if (NSS_CMSSignedData_SetDigests(sigd, digestalgs, digests) != SECSuccess) { +- camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); +- goto fail; +- } + +- PORT_FreeArena(poolp, PR_FALSE); +- poolp = NULL; ++ if (extstream == NULL) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Digests missing from enveloped data")); ++ goto fail; ++ } ++ ++ if ((poolp = PORT_NewArena(1024)) == NULL) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, g_strerror (ENOMEM)); ++ goto fail; + } ++ ++ digestalgs = NSS_CMSSignedData_GetDigestAlgs(sigd); ++ ++ digcx = NSS_CMSDigestContext_StartMultiple(digestalgs); ++ if (digcx == NULL) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot calculate digests")); ++ goto fail; ++ } ++ ++ mem = (CamelStreamMem *)camel_stream_mem_new(); ++ camel_stream_write_to_stream(extstream, (CamelStream *)mem); ++ NSS_CMSDigestContext_Update(digcx, mem->buffer->data, mem->buffer->len); ++ camel_object_unref(mem); ++ ++ if (NSS_CMSDigestContext_FinishMultiple(digcx, poolp, &digests) != SECSuccess) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot calculate digests")); ++ goto fail; ++ } ++ ++ for (which_digest = 0; digests[which_digest] != NULL; which_digest++) { ++ SECOidData *digest_alg = SECOID_FindOID (&digestalgs[which_digest]->algorithm); ++ if (digest_alg == NULL) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); ++ goto fail; ++ } ++ if (NSS_CMSSignedData_SetDigestValue (sigd, digest_alg->offset, digests[which_digest]) != SECSuccess) { ++ camel_exception_set (ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot set message digests")); ++ goto fail; ++ } ++ } ++ ++ PORT_FreeArena(poolp, PR_FALSE); ++ poolp = NULL; + + /* import all certificates present */ + if (NSS_CMSSignedData_ImportCerts(sigd, p->certdb, certUsageEmailSigner, PR_TRUE) != SECSuccess) { diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-fix-body.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-fix-body.patch new file mode 100644 index 000000000000..2671d0de0000 --- /dev/null +++ b/gnome-extra/evolution-data-server/files/evolution-data-server-2.24.5-fix-body.patch @@ -0,0 +1,34 @@ +From dcd2f9ebc6c66ab1c068764da3b528f8fbfeb8b5 Mon Sep 17 00:00:00 2001 +From: Milan Crha <mcrha@redhat.com> +Date: Tue, 31 Mar 2009 11:54:36 +0000 +Subject: [PATCH] ** Fix for bug #564465 + +2009-03-31 Milan Crha <mcrha@redhat.com> + + ** Fix for bug #564465 + + * camel-smime-context.c: (sm_decrypt): + Pass correct body for signature verification. + +svn path=/trunk/; revision=10194 +--- + camel/camel-smime-context.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/camel/camel-smime-context.c b/camel/camel-smime-context.c +index 7470953..1913d6a 100644 +--- a/camel/camel-smime-context.c ++++ b/camel/camel-smime-context.c +@@ -963,7 +963,8 @@ sm_decrypt(CamelCipherContext *context, CamelMimePart *ipart, CamelMimePart *opa + camel_data_wrapper_construct_from_stream((CamelDataWrapper *)opart, ostream); + + if (NSS_CMSMessage_IsSigned(cmsg)) { +- valid = sm_verify_cmsg(context, cmsg, NULL, ex); ++ camel_stream_reset (ostream); ++ valid = sm_verify_cmsg (context, cmsg, ostream, ex); + } else { + valid = camel_cipher_validity_new(); + valid->encrypt.description = g_strdup(_("Encrypted content")); +-- +1.6.3.3 + diff --git a/gnome-extra/evolution-data-server/files/evolution-data-server-CVE-2009-0582.patch b/gnome-extra/evolution-data-server/files/evolution-data-server-CVE-2009-0582.patch new file mode 100644 index 000000000000..46231c0c0c39 --- /dev/null +++ b/gnome-extra/evolution-data-server/files/evolution-data-server-CVE-2009-0582.patch @@ -0,0 +1,144 @@ +Index: camel/camel-sasl-ntlm.c +=================================================================== +--- camel/camel-sasl-ntlm.c (revision 10105) ++++ camel/camel-sasl-ntlm.c (working copy) +@@ -74,9 +74,8 @@ camel_sasl_ntlm_get_type (void) + + #define NTLM_REQUEST "NTLMSSP\x00\x01\x00\x00\x00\x06\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00" + +-#define NTLM_CHALLENGE_NONCE_OFFSET 24 +-#define NTLM_CHALLENGE_DOMAIN_OFFSET 48 +-#define NTLM_CHALLENGE_DOMAIN_LEN_OFFSET 44 ++#define NTLM_CHALLENGE_DOMAIN_OFFSET 12 ++#define NTLM_CHALLENGE_NONCE_OFFSET 24 + + #define NTLM_RESPONSE_HEADER "NTLMSSP\x00\x03\x00\x00\x00" + #define NTLM_RESPONSE_FLAGS "\x82\x01" +@@ -93,22 +92,60 @@ static void ntlm_calc_response (const + guchar results[24]); + static void ntlm_lanmanager_hash (const char *password, char hash[21]); + static void ntlm_nt_hash (const char *password, char hash[21]); +-static void ntlm_set_string (GByteArray *ba, int offset, +- const char *data, int len); ++ ++typedef struct { ++ guint16 length; ++ guint16 allocated; ++ guint32 offset; ++} SecurityBuffer; ++ ++static GString * ++ntlm_get_string (GByteArray *ba, int offset) ++{ ++ SecurityBuffer *secbuf; ++ GString *string; ++ gchar *buf_string; ++ guint16 buf_length; ++ guint32 buf_offset; ++ ++ secbuf = (SecurityBuffer *) &ba->data[offset]; ++ buf_length = GUINT16_FROM_LE (secbuf->length); ++ buf_offset = GUINT32_FROM_LE (secbuf->offset); ++ ++ if (ba->len < buf_offset + buf_length) ++ return NULL; ++ ++ string = g_string_sized_new (buf_length); ++ buf_string = (gchar *) &ba->data[buf_offset]; ++ g_string_append_len (string, buf_string, buf_length); ++ ++ return string; ++} ++ ++static void ++ntlm_set_string (GByteArray *ba, int offset, const char *data, int len) ++{ ++ SecurityBuffer *secbuf; ++ ++ secbuf = (SecurityBuffer *) &ba->data[offset]; ++ secbuf->length = GUINT16_TO_LE (len); ++ secbuf->offset = GUINT32_TO_LE (ba->len); ++ secbuf->allocated = secbuf->length; ++ ++ g_byte_array_append (ba, (guint8 *) data, len); ++} + + static GByteArray * + ntlm_challenge (CamelSasl *sasl, GByteArray *token, CamelException *ex) + { + GByteArray *ret; + guchar nonce[8], hash[21], lm_resp[24], nt_resp[24]; ++ GString *domain; + + ret = g_byte_array_new (); + +- if (!token || !token->len) { +- g_byte_array_append (ret, (guint8 *) NTLM_REQUEST, +- sizeof (NTLM_REQUEST) - 1); +- return ret; +- } ++ if (!token || token->len < NTLM_CHALLENGE_NONCE_OFFSET + 8) ++ goto fail; + + memcpy (nonce, token->data + NTLM_CHALLENGE_NONCE_OFFSET, 8); + ntlm_lanmanager_hash (sasl->service->url->passwd, (char *) hash); +@@ -116,7 +153,11 @@ ntlm_challenge (CamelSasl *sasl, GByteAr + ntlm_nt_hash (sasl->service->url->passwd, (char *) hash); + ntlm_calc_response (hash, nonce, nt_resp); + +- ret = g_byte_array_new (); ++ domain = ntlm_get_string (token, NTLM_CHALLENGE_DOMAIN_OFFSET); ++ if (domain == NULL) ++ goto fail; ++ ++ /* Don't jump to 'fail' label after this point. */ + g_byte_array_set_size (ret, NTLM_RESPONSE_BASE_SIZE); + memset (ret->data, 0, NTLM_RESPONSE_BASE_SIZE); + memcpy (ret->data, NTLM_RESPONSE_HEADER, +@@ -125,8 +166,7 @@ ntlm_challenge (CamelSasl *sasl, GByteAr + NTLM_RESPONSE_FLAGS, sizeof (NTLM_RESPONSE_FLAGS) - 1); + + ntlm_set_string (ret, NTLM_RESPONSE_DOMAIN_OFFSET, +- (const char *) token->data + NTLM_CHALLENGE_DOMAIN_OFFSET, +- atoi ((char *) token->data + NTLM_CHALLENGE_DOMAIN_LEN_OFFSET)); ++ domain->str, domain->len); + ntlm_set_string (ret, NTLM_RESPONSE_USER_OFFSET, + sasl->service->url->user, + strlen (sasl->service->url->user)); +@@ -138,6 +178,18 @@ ntlm_challenge (CamelSasl *sasl, GByteAr + (const char *) nt_resp, sizeof (nt_resp)); + + sasl->authenticated = TRUE; ++ ++ g_string_free (domain, TRUE); ++ ++ goto exit; ++ ++fail: ++ /* If the challenge is malformed, restart authentication. ++ * XXX A malicious server could make this loop indefinitely. */ ++ g_byte_array_append (ret, (guint8 *) NTLM_REQUEST, ++ sizeof (NTLM_REQUEST) - 1); ++ ++exit: + return ret; + } + +@@ -201,17 +253,6 @@ ntlm_nt_hash (const char *password, char + g_free (buf); + } + +-static void +-ntlm_set_string (GByteArray *ba, int offset, const char *data, int len) +-{ +- ba->data[offset ] = ba->data[offset + 2] = len & 0xFF; +- ba->data[offset + 1] = ba->data[offset + 3] = (len >> 8) & 0xFF; +- ba->data[offset + 4] = ba->len & 0xFF; +- ba->data[offset + 5] = (ba->len >> 8) & 0xFF; +- g_byte_array_append (ba, (guint8 *) data, len); +-} +- +- + #define KEYBITS(k,s) \ + (((k[(s)/8] << ((s)%8)) & 0xFF) | (k[(s)/8+1] >> (8-(s)%8))) + |