Hello community, here is the log from the commit of package gpgmepp5 for openSUSE:Factory checked in at 2016-08-29 14:33:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gpgmepp5 (Old) and /work/SRC/openSUSE:Factory/.gpgmepp5.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gpgmepp5" Changes: -------- --- /work/SRC/openSUSE:Factory/gpgmepp5/gpgmepp5.changes 2016-07-21 07:42:35.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gpgmepp5.new/gpgmepp5.changes 2016-08-29 14:33:08.000000000 +0200 @@ -1,0 +2,16 @@ +Fri Aug 12 10:03:12 UTC 2016 - tittiatc...@gmail.com + +- Update to KDE Applications 16.08.0 + * KDE Applications 16.08.0 + * https://www.kde.org/announcements/announce-applications-16.08.0.php + + +------------------------------------------------------------------- +Mon Aug 8 14:35:13 UTC 2016 - tittiatc...@gmail.com + +- Update to KDE Applications 16.07.90 + * KDE Applications 16.07.90 (16.08-RC) + * https://www.kde.org/announcements/announce-applications-16.07.90.php + + +------------------------------------------------------------------- Old: ---- gpgmepp-16.04.3.tar.xz New: ---- gpgmepp-16.08.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gpgmepp5.spec ++++++ --- /var/tmp/diff_new_pack.NsBeiD/_old 2016-08-29 14:33:10.000000000 +0200 +++ /var/tmp/diff_new_pack.NsBeiD/_new 2016-08-29 14:33:10.000000000 +0200 @@ -18,7 +18,7 @@ %define kf5_version 5.5.0 Name: gpgmepp5 -Version: 16.04.3 +Version: 16.08.0 Release: 0 Summary: C++ bindings/wrapper for gpgme License: LGPL-2.1+ ++++++ gpgmepp-16.04.3.tar.xz -> gpgmepp-16.08.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/CMakeLists.txt new/gpgmepp-16.08.0/CMakeLists.txt --- old/gpgmepp-16.04.3/CMakeLists.txt 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/CMakeLists.txt 2016-08-09 16:54:18.000000000 +0200 @@ -3,7 +3,8 @@ project(Gpgmepp) # ECM setup -find_package(ECM 5.19.0 CONFIG REQUIRED) +set(KF5_VERSION "5.23.0") +find_package(ECM ${KF5_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${Gpgmepp_SOURCE_DIR}/cmake ${ECM_MODULE_PATH}) include(GenerateExportHeader) @@ -16,9 +17,9 @@ include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) +set(PIM_VERSION "5.3.0") -set(KF5_VERSION "5.19.0") -set(GPGMEPP_LIB_VERSION "5.2.3") +set(GPGMEPP_LIB_VERSION ${PIM_VERSION}) set(QT_MIN_VERSION "5.2.0") ecm_setup_version(${GPGMEPP_LIB_VERSION} VARIABLE_PREFIX GPGMEPP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/ConfigureChecks.cmake new/gpgmepp-16.08.0/src/ConfigureChecks.cmake --- old/gpgmepp-16.04.3/src/ConfigureChecks.cmake 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/ConfigureChecks.cmake 2016-08-09 16:54:18.000000000 +0200 @@ -438,6 +438,30 @@ } " HAVE_GPGME_CTX_OFFLINE ) +# check if gpgme has identify support (new in 1.4.3) +check_cxx_source_compiles (" + #include <gpgme.h> + int main() { + gpgme_data_t data; + gpgme_data_identify( data, 0 ); + return 0; + } +" HAVE_GPGME_DATA_IDENTIFY ) + +# check if gpgme has decent identify support (new in 1.7.0) +# decent means that it supports binary data and has more fine +# grained distinctions +check_cxx_source_compiles (" + #include <gpgme.h> + int main() { + gpgme_data_t data; + gpgme_data_type_t ret = gpgme_data_identify( data, 0 ); + if (ret == GPGME_DATA_TYPE_PGP_SIGNATURE) + return 0; + return 0; + } +" HAVE_GPGME_DATA_IDENTIFY_GOOD ) + # check if gpgme has pubkey_algo name mode support (new in 1.6.1) check_function_exists ("gpgme_pubkey_algo_string" HAVE_GPGME_PUBKEY_ALGO_STRING ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/config-gpgme++.h.cmake new/gpgmepp-16.08.0/src/config-gpgme++.h.cmake --- old/gpgmepp-16.04.3/src/config-gpgme++.h.cmake 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/config-gpgme++.h.cmake 2016-08-09 16:54:18.000000000 +0200 @@ -130,6 +130,12 @@ /* Define to 1 if gpgme supports the context offline mode* */ #cmakedefine HAVE_GPGME_CTX_OFFLINE 1 +/* Define to 1 if gpgme supports identify* */ +#cmakedefine HAVE_GPGME_DATA_IDENTIFY 1 + +/* Define to 1 if gpgme supports a good version of identify* */ +#cmakedefine HAVE_GPGME_DATA_IDENTIFY_GOOD 1 + #ifndef GPGMEPP_ERR_SOURCE_DEFAULT #define GPGMEPP_ERR_SOURCE_DEFAULT 22 #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/context.cpp new/gpgmepp-16.08.0/src/context.cpp --- old/gpgmepp-16.04.3/src/context.cpp 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/context.cpp 2016-08-09 16:54:18.000000000 +0200 @@ -1232,7 +1232,8 @@ } } *keys_it++ = 0; - d->lasterr = gpgme_op_encrypt(d->ctx, keys, encryptflags2encryptflags(flags), + d->lasterr = gpgme_op_encrypt(d->ctx, recipients.empty() ? Q_NULLPTR : keys, + encryptflags2encryptflags(flags), pdp ? pdp->data : 0, cdp ? cdp->data : 0); delete[] keys; return EncryptionResult(d->ctx, Error(d->lasterr)); @@ -1684,6 +1685,9 @@ ; static const unsigned long supported_features2 = 0 +#ifdef HAVE_GPGME_DATA_IDENTIFY_GOOD + | GpgME::BinaryAndFineGrainedIdentify +#endif ; bool GpgME::hasFeature(unsigned long features) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/data.cpp new/gpgmepp-16.08.0/src/data.cpp --- old/gpgmepp-16.04.3/src/data.cpp 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/data.cpp 2016-08-09 16:54:18.000000000 +0200 @@ -164,6 +164,32 @@ return Error(gpgme_data_set_encoding(d->data, ge)); } +GpgME::Data::Type GpgME::Data::type() const +{ + if (isNull()) { + return Invalid; + } +#ifdef HAVE_GPGME_DATA_IDENTIFY + switch (gpgme_data_identify(d->data, 0)) { + case GPGME_DATA_TYPE_INVALID: return Invalid; + case GPGME_DATA_TYPE_UNKNOWN: return Unknown; + case GPGME_DATA_TYPE_PGP_SIGNED: return PGPSigned; + case GPGME_DATA_TYPE_PGP_OTHER: return PGPOther; + case GPGME_DATA_TYPE_PGP_KEY: return PGPKey; + case GPGME_DATA_TYPE_CMS_SIGNED: return CMSSigned; + case GPGME_DATA_TYPE_CMS_ENCRYPTED: return CMSEncrypted; + case GPGME_DATA_TYPE_CMS_OTHER: return CMSOther; + case GPGME_DATA_TYPE_X509_CERT: return X509Cert; + case GPGME_DATA_TYPE_PKCS12: return PKCS12; +# ifdef HAVE_GPGME_DATA_IDENTIFY_GOOD + case GPGME_DATA_TYPE_PGP_ENCRYPTED: return PGPEncrypted; + case GPGME_DATA_TYPE_PGP_SIGNATURE: return PGPSignature; +# endif + } +#endif + return Unknown; +} + char *GpgME::Data::fileName() const { #ifdef HAVE_GPGME_DATA_SET_FILE_NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/data.h new/gpgmepp-16.08.0/src/data.h --- old/gpgmepp-16.04.3/src/data.h 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/data.h 2016-08-09 16:54:18.000000000 +0200 @@ -83,6 +83,22 @@ Encoding encoding() const; Error setEncoding(Encoding encoding); + enum Type { + Invalid, + Unknown, + PGPSigned, + PGPOther, + PGPKey, + CMSSigned, + CMSEncrypted, + CMSOther, + X509Cert, + PKCS12, + PGPEncrypted, + PGPSignature + }; + Type type() const; + char *fileName() const; Error setFileName(const char *name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/editinteractor.cpp new/gpgmepp-16.08.0/src/editinteractor.cpp --- old/gpgmepp-16.04.3/src/editinteractor.cpp 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/editinteractor.cpp 2016-08-09 16:54:18.000000000 +0200 @@ -221,27 +221,19 @@ return d->error; } -#ifndef GPGME_STATUS_PINENTRY_LAUNCHED -// New in gpgme 1.5.0 -#define GPGME_STATUS_PINENTRY_LAUNCHED 88 -#endif - bool EditInteractor::needsNoResponse(unsigned int status) const { switch (status) { - case GPGME_STATUS_EOF: - case GPGME_STATUS_GOT_IT: - case GPGME_STATUS_NEED_PASSPHRASE: + case GPGME_STATUS_ALREADY_SIGNED: + case GPGME_STATUS_ERROR: + case GPGME_STATUS_GET_BOOL: + case GPGME_STATUS_GET_LINE: + case GPGME_STATUS_KEY_CREATED: case GPGME_STATUS_NEED_PASSPHRASE_SYM: - case GPGME_STATUS_GOOD_PASSPHRASE: - case GPGME_STATUS_BAD_PASSPHRASE: - case GPGME_STATUS_USERID_HINT: - case GPGME_STATUS_SIGEXPIRED: - case GPGME_STATUS_KEYEXPIRED: - case GPGME_STATUS_PINENTRY_LAUNCHED: - return true; - default: + case GPGME_STATUS_SC_OP_FAILURE: return false; + default: + return true; } } @@ -253,8 +245,6 @@ return Error::fromCode(GPG_ERR_NO_PASSPHRASE); case GPGME_STATUS_ALREADY_SIGNED: return Error::fromCode(GPG_ERR_ALREADY_SIGNED); - case GPGME_STATUS_KEYEXPIRED: - return Error::fromCode(GPG_ERR_CERT_EXPIRED); case GPGME_STATUS_SIGEXPIRED: return Error::fromCode(GPG_ERR_SIG_EXPIRED); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/global.h new/gpgmepp-16.08.0/src/global.h --- old/gpgmepp-16.04.3/src/global.h 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/global.h 2016-08-09 16:54:18.000000000 +0200 @@ -132,8 +132,10 @@ FeatureMaxValue = 0x80000000 }; enum Feature2 { + BinaryAndFineGrainedIdentify = 0x00000001, // gpgme >= 1.7.0 Feature2MaxValue = 0x80000000 }; + // use hasFeature( unsigned long, unsigned long ) instead GPGMEPP_DEPRECATED_EXPORT bool hasFeature(unsigned long feature); GPGMEPP_EXPORT bool hasFeature(unsigned long feature, unsigned long feature2); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/key.cpp new/gpgmepp-16.08.0/src/key.cpp --- old/gpgmepp-16.04.3/src/key.cpp 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/key.cpp 2016-08-09 16:54:18.000000000 +0200 @@ -383,9 +383,9 @@ return subkey ? subkey->fpr : 0 ; } -unsigned int Subkey::publicKeyAlgorithm() const +Subkey::PubkeyAlgo Subkey::publicKeyAlgorithm() const { - return subkey ? subkey->pubkey_algo : 0 ; + return subkey ? static_cast<PubkeyAlgo>(subkey->pubkey_algo) : AlgoUnknown; } const char *Subkey::publicKeyAlgorithmAsString() const @@ -393,6 +393,15 @@ return gpgme_pubkey_algo_name(subkey ? subkey->pubkey_algo : (gpgme_pubkey_algo_t)0); } +/* static */ +const char *Subkey::publicKeyAlgorithmAsString(PubkeyAlgo algo) +{ + if (algo == AlgoUnknown) { + return NULL; + } + return gpgme_pubkey_algo_name(static_cast<gpgme_pubkey_algo_t>(algo)); +} + std::string Subkey::algoName() const { #ifndef HAVE_GPGME_PUBKEY_ALGO_STRING diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gpgmepp-16.04.3/src/key.h new/gpgmepp-16.08.0/src/key.h --- old/gpgmepp-16.04.3/src/key.h 2016-06-15 06:35:44.000000000 +0200 +++ new/gpgmepp-16.08.0/src/key.h 2016-08-09 16:54:18.000000000 +0200 @@ -207,7 +207,23 @@ bool isSecret() const; - unsigned int publicKeyAlgorithm() const; + /** Same as gpgme_pubkey_algo_t */ + enum PubkeyAlgo { + AlgoUnknown = 0, + AlgoRSA = 1, + AlgoRSA_E = 2, + AlgoRSA_S = 3, + AlgoELG_E = 16, + AlgoDSA = 17, + AlgoECC = 18, + AlgoELG = 20, + AlgoECDSA = 301, + AlgoECDH = 302, + AlgoEDDSA = 303, + AlgoMax = 1 << 31 + }; + + PubkeyAlgo publicKeyAlgorithm() const; /** @brief Get the public key algorithm name. @@ -219,11 +235,16 @@ */ const char *publicKeyAlgorithmAsString() const; + /** @brief Same as publicKeyAlgorithmAsString but static. */ + static const char *publicKeyAlgorithmAsString(PubkeyAlgo algo); + /** @brief Get the key algo string like GnuPG 2.1 prints it. This returns combinations of size and algorithm. Like - bp512 or rsa2048 + bp512 or rsa2048. Misnamed because publicKeyAlgorithmAsString + already used the older pubkey_algo_name. + Actually uses gpgme_pubkey_algo_string. @returns the key algorithm as string. Empty string on error. */