diff --git a/evolution-data-server-2.23.2-gpg-passphrases.patch b/evolution-data-server-2.23.2-gpg-passphrases.patch new file mode 100644 index 0000000..040db90 --- /dev/null +++ b/evolution-data-server-2.23.2-gpg-passphrases.patch @@ -0,0 +1,72 @@ +diff -up evolution-data-server-2.23.2/libedataserverui/e-passwords.c.gpg-passphrases evolution-data-server-2.23.2/libedataserverui/e-passwords.c +--- evolution-data-server-2.23.2/libedataserverui/e-passwords.c.gpg-passphrases 2008-05-12 01:33:57.000000000 -0400 ++++ evolution-data-server-2.23.2/libedataserverui/e-passwords.c 2008-05-18 23:40:19.000000000 -0400 +@@ -193,19 +193,29 @@ ep_keyring_error_domain (void) + } + + static EUri * +-ep_keyring_uri_new (const gchar *string) ++ep_keyring_uri_new (const gchar *string, ++ GError **error) + { + EUri *uri; + + uri = e_uri_new (string); +- if (uri == NULL) +- return NULL; ++ g_return_val_if_fail (uri != NULL, NULL); + + /* LDAP URIs do not have usernames, so use the URI as the username. */ + if (uri->user == NULL && uri->protocol != NULL && + (strcmp (uri->protocol, "ldap") == 0|| strcmp (uri->protocol, "google") == 0)) + uri->user = g_strdelimit (g_strdup (string), "/=", '_'); + ++ /* Make sure the URI has the required components. */ ++ if (uri->user == NULL && uri->host == NULL) { ++ g_set_error ( ++ error, EP_KEYRING_ERROR, ++ GNOME_KEYRING_RESULT_BAD_ARGUMENTS, ++ _("Keyring key is unusable: no user or host name")); ++ e_uri_free (uri); ++ uri = NULL; ++ } ++ + return uri; + } + +@@ -618,8 +628,9 @@ ep_remember_password_keyring (EPassMsg * + return; + } + +- uri = ep_keyring_uri_new (msg->key); +- g_return_if_fail (uri != NULL); ++ uri = ep_keyring_uri_new (msg->key, &msg->error); ++ if (uri == NULL) ++ return; + + /* Only remove the password from the session hash + * if the keyring insertion was successful. */ +@@ -681,8 +692,9 @@ ep_forget_password_keyring (EPassMsg *ms + EUri *uri; + GError *error = NULL; + +- uri = ep_keyring_uri_new (msg->key); +- g_return_if_fail (uri != NULL); ++ uri = ep_keyring_uri_new (msg->key, &msg->error); ++ if (uri == NULL) ++ return; + + /* Find all Evolution passwords matching the URI and delete them. */ + passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error); +@@ -754,8 +766,9 @@ ep_get_password_keyring (EPassMsg *msg) + EUri *uri; + GError *error = NULL; + +- uri = ep_keyring_uri_new (msg->key); +- g_return_if_fail (uri != NULL); ++ uri = ep_keyring_uri_new (msg->key, &msg->error); ++ if (uri == NULL) ++ return; + + /* Find the first Evolution password that matches the URI. */ + passwords = ep_keyring_lookup_passwords (uri->user, uri->host, &error); diff --git a/evolution-data-server.spec b/evolution-data-server.spec index 47b74a9..141739c 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -28,7 +28,7 @@ Name: evolution-data-server Version: 2.23.2 -Release: 2%{?dist} +Release: 3%{?dist} License: LGPL Group: System Environment/Libraries Summary: Backend data server for Evolution @@ -53,6 +53,9 @@ Patch13: evolution-data-server-1.11.5-fix-64bit-acinclude.patch # Fix some typos and oversights related to libebackend Patch14: evolution-data-server-2.23.2-libebackend-breakage.patch +# GNOME bug #531439 +Patch15: evolution-data-server-2.23.2-gpg-passphrases.patch + ### Build Dependencies ### BuildRequires: GConf2-devel @@ -130,6 +133,7 @@ This package contains developer documentation for %{name}. %patch12 -p1 -b .camel-folder-summary-crash %patch13 -p1 -b .fix-64bit-acinclude %patch14 -p1 -b .libebackend-breakage +%patch15 -p1 -b .gpg-passphrases mkdir -p krb5-fakeprefix/include mkdir -p krb5-fakeprefix/lib @@ -376,6 +380,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/gtk-doc/html/libedataserverui %changelog +* Sun May 18 2008 Matthew Barnes - 2.23.2-3.fc10 +- Add patch for GNOME bug #531439 (GPG passphrases destroy passwords). + * Tue May 13 2008 Matthew Barnes - 2.23.2-2.fc10 - Fix some third-party package breakage caused by libebackend.