diff --git a/evolution-data-server-2.22.1.1-gpg-passphrases.patch b/evolution-data-server-2.22.1.1-gpg-passphrases.patch new file mode 100644 index 0000000..12d8df3 --- /dev/null +++ b/evolution-data-server-2.22.1.1-gpg-passphrases.patch @@ -0,0 +1,72 @@ +diff -up evolution-data-server-2.22.1.1/libedataserverui/e-passwords.c.gpg-passphrases evolution-data-server-2.22.1.1/libedataserverui/e-passwords.c +--- evolution-data-server-2.22.1.1/libedataserverui/e-passwords.c.gpg-passphrases 2008-05-01 15:08:01.000000000 -0400 ++++ evolution-data-server-2.22.1.1/libedataserverui/e-passwords.c 2008-05-18 23:45:16.000000000 -0400 +@@ -208,19 +208,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; + } + +@@ -641,8 +651,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. */ +@@ -704,8 +715,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); +@@ -777,8 +789,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 bbd0619..c4a5670 100644 --- a/evolution-data-server.spec +++ b/evolution-data-server.spec @@ -28,7 +28,7 @@ Name: evolution-data-server Version: 2.22.1.1 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPL Group: System Environment/Libraries Summary: Backend data server for Evolution @@ -55,6 +55,9 @@ Patch14: evolution-data-server-1.11.5-fix-64bit-acinclude.patch Patch15: evolution-data-server-2.22.0-implicit-function-declaration.patch +# GNOME bug #531439 +Patch16: evolution-data-server-2.22.1.1-gpg-passphrases.patch + ### Build Dependencies ### BuildRequires: GConf2-devel @@ -134,6 +137,7 @@ This package contains developer documentation for %{name}. %patch13 -p1 -b .camel-folder-summary-crash %patch14 -p1 -b .fix-64bit-acinclude %patch15 -p1 -b .implicit-function-declaration +%patch16 -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.22.1.1-2.fc9 +- Add patch for GNOME bug #531439 (GPG passphrases destroys passwords). + * Fri May 02 2008 Matthew Barnes - 2.22.1.1-1.fc9 - Update to 2.22.1.1 - Remove patch for GNOME bug #530323 (fixed upstream).