I have a PR[1] I'm about to start working on that will update gpgme to
1.2.0 which, according to the email below, will break some things for
KDE (and I'm now curious if it will break anything in GNOME).
I don't want to break anything with this update so I'm hoping to get
confirmation that this won't cause an issue if I commit it.
-- WXS
[1]: http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/135911
On Fri, Jun 26, 2009 at 01:54:46PM +0400, Max Brazhnikov wrote:
FYI,
other ports may be affected also
Max
-- Forwarded Message --
: [PATCH]GPGME 1.2.0 will break crypto in kdepim
: Fri, 26 Jun 2009 11:35:41 +0200
??: Thomas McGuire mcgu...@kde.org
: kde-packa...@kde.org
Hello Packagers,
GPGME introduced an incompatible change that will break all crypto operations
in KDEPIM, which means signing, verifying, encrypting and decrypting will not
work anymore in KMail and Kleopatra. Instead, you would see a bogus error
message saying something like the backend does not support
signing/encryption/verification/decryption.
See bug 197458 for further details,
https://bugs.kde.org/show_bug.cgi?id=197458.
All KDE version are affected, including 4.3.0 RC 1. 4.3.0 Final is not
affected.
Note that we are not 100% certain that KDE 3 versions are affected, but is is
better to play safe here.
We have patched the 4.1 branch, the 4.2 branch, the 4.3 branch, the 3.5
branch
and the enterprise35 of kdepim and kdepimlibs (kdepimlibs: KDE 4.x only).
So please do one of the following:
a) Do not update your GPGME package to 1.2.0
b) If you update, update your KDEPIM and KDEPIMLIBS packages as well
Although we have patched all branches, I attached the patches to this mail as
well for your convenience.
Also, in case you need this, here are the revision numbers of the commits
that
fixed the issues in the various branches:
KDE 3.5.x: 986745,987046
KDE 4.1.x: 986493,986500,986474,986477,986990
KDE 4.2.x: 986648,986650,986645,986647
KDE 4.3.x: 986635,986638,986619,986622
enterprise35: 986754,987480
The attached patches are made from exactly the above revisions.
Thanks for your help.
Regards,
Thomas McGuire
KMail Maintainer
---
--- gpgme++/context.cpp (revision 986618)
+++ gpgme++/context.cpp (revision 986619)
@@ -54,2 +54,6 @@
namespace GpgME {
+ void initializeLibrary() {
+ gpgme_check_version( 0 );
+ }
+
static inline gpgme_error_t makeError( gpg_err_code_t code ) {
--- gpgme++/CMakeLists.txt(revision 986618)
+++ gpgme++/CMakeLists.txt(revision 986619)
@@ -34,3 +34,3 @@
-set( _gpgmepp_version 2.2.0 )
+set( _gpgmepp_version 2.2.1 )
set( _gpgmepp_soversion 2 )
--- gpgme++/global.h (revision 986619)
+++ gpgme++/global.h (revision 986622)
@@ -41,6 +41,8 @@
namespace GpgME {
+GPGMEPP_EXPORT void initializeLibrary();
+
enum Protocol { OpenPGP, CMS, UnknownProtocol };
enum Engine { GpgEngine, GpgSMEngine, GpgConfEngine, UnknownEngine,
AssuanEngine };
--- kleopatra/main.cpp(revision 986634)
+++ kleopatra/main.cpp(revision 986635)
@@ -78,2 +78,4 @@
+#include gpgme++/global.h
+
#include boost/shared_ptr.hpp
@@ -166,2 +168,4 @@
+GpgME::initializeLibrary();
+
{
--- libkleo/backends/qgpgme/qgpgmebackend.cpp (revision 986637)
+++ libkleo/backends/qgpgme/qgpgmebackend.cpp (revision 986638)
@@ -282,3 +282,3 @@
{
-
+ GpgME::initializeLibrary();
}
--- gpgme++/context.cpp (revision 986644)
+++ gpgme++/context.cpp (revision 986645)
@@ -53,2 +53,6 @@
namespace GpgME {
+ void initializeLibrary() {
+ gpgme_check_version( 0 );
+ }
+
static inline gpgme_error_t makeError( gpg_err_code_t code ) {
--- gpgme++/CMakeLists.txt(revision 986644)
+++ gpgme++/CMakeLists.txt(revision 986645)
@@ -34,3 +34,3 @@
-set( _gpgmepp_version 2.0.2 )
+set( _gpgmepp_version 2.0.3 )
set( _gpgmepp_soversion 2 )
--- gpgme++/global.h (revision 986645)
+++ gpgme++/global.h (revision 986647)
@@ -39,6 +39,8 @@
namespace GpgME {
+GPGMEPP_EXPORT void initializeLibrary();
+
enum Protocol { OpenPGP, CMS, UnknownProtocol };
enum Engine { GpgEngine, GpgSMEngine, GpgConfEngine, UnknownEngine };
--- gpgme++/context.cpp (revision 986473)
+++ gpgme++/context.cpp (revision 986474)
@@ -53,2 +53,6 @@
namespace GpgME {
+ void initializeLibrary() {
+gpgme_check_version( 0 );
+ }
+
static inline gpgme_error_t makeError( gpg_err_code_t code ) {
--- gpgme++/CMakeLists.txt(revision 986474)
+++ gpgme++/CMakeLists.txt(revision 986990)
@@ -32,7 +32,7 @@
gpgadduserideditinteractor.cpp
)
-set( _gpgmepp_version 2.0.2 )
+set( _gpgmepp_version 2.0.3 )
set( _gpgmepp_soversion 2 )
set( GPGMEPP_INCLUDE ${INCLUDE_INSTALL_DIR}