Hi All, tl;dr: x11/kde-applications/gpgmepp is dead upstream. Long live security/qgpgme.
Since Sep. 2016[1] the C++ bindings for GnuPG's GPGME library and the Qt Job API for GpgME++ (QGpgME) is part of the GPGME repository. It wasn't a good idea to make an FLAVOR in security/gpgme; discussed here[2]. For this reason, you will find attached the diffs/tarball with the following content: 1.) gpgme.1.10.diff Simple update to the latest stable version 1.10.0. Tested with neomutt and trojita ond amd64. 2.) trojita_qgpgme.diff Patch trojita to play with qgpgme from GPGME based on the idea from archlinux[3]. Tested on amd64. All tests are green. 3.) qgpgme.tar.gz Based on security/gpgme with the following changes: - Add --enable-languages='cpp qt' - remove all duplicated stuff with gpgme in post-install. - QGpgME is GPLv2 and not LGPL - Add security/gpgme=${VERSION} so keep in snyc with gpgme. Would like to hear feedback from gpg/trojita users. Please don't make me wait too long for an okay. I would like to continue working on x11/kde-applications. Best regards, Rafael Sadowksi [1]: https://mail.kde.org/pipermail/release-team/2016-September/009732.html [2]: https://marc.info/?l=openbsd-ports&m=150955525131345&w=2 [3]: https://git.archlinux.org/svntogit/community.git/tree/trunk/trojita-gpgme.patch?h=packages/trojita
Index: Makefile =================================================================== RCS file: /cvs/ports/security/gpgme/Makefile,v retrieving revision 1.40 diff -u -p -u -p -r1.40 Makefile --- Makefile 30 Jan 2018 15:06:37 -0000 1.40 +++ Makefile 15 Feb 2018 16:16:26 -0000 @@ -2,11 +2,11 @@ COMMENT= GnuPG Made Easy -DISTNAME= gpgme-1.9.0 -REVISION= 0 +# Keep in sync with qgpgme +DISTNAME= gpgme-1.10.0 CATEGORIES= security devel -SHARED_LIBS += gpgme 21.0 # 29.0 +SHARED_LIBS += gpgme 22.0 # 29.0 HOMEPAGE= https://www.gnupg.org/software/gpgme/index.html Index: distinfo =================================================================== RCS file: /cvs/ports/security/gpgme/distinfo,v retrieving revision 1.13 diff -u -p -u -p -r1.13 distinfo --- distinfo 2 Dec 2017 12:44:33 -0000 1.13 +++ distinfo 15 Feb 2018 16:16:26 -0000 @@ -1,2 +1,2 @@ -SHA256 (gpgme-1.9.0.tar.bz2) = Gyn+24v613XnDq+sWwWQYhaDstmGnbmUVo5kAfQDTOs= -SIZE (gpgme-1.9.0.tar.bz2) = 1344222 +SHA256 (gpgme-1.10.0.tar.bz2) = Go/tEZfDuZw19AMGa7NEomIk0pKvwEjP38TM1WkKBpM= +SIZE (gpgme-1.10.0.tar.bz2) = 1370162
Index: Makefile =================================================================== RCS file: /cvs/ports/mail/trojita/Makefile,v retrieving revision 1.25 diff -u -p -u -p -r1.25 Makefile --- Makefile 2 Dec 2017 12:44:33 -0000 1.25 +++ Makefile 15 Feb 2018 16:23:48 -0000 @@ -3,7 +3,7 @@ COMMENT = fast Qt IMAP e-mail client DISTNAME = trojita-0.7 -REVISION = 4 +REVISION = 5 SHARED_LIBS = trojita_plugins 2.0 # 2.0 @@ -17,11 +17,9 @@ EXTRACT_SUFX = .tar.xz # GPLv2+ PERMIT_PACKAGE_CDROM = Yes -WANTLIB += c m pthread z KF5Gpgmepp-pthread KF5QGpgme -WANTLIB += Qt5Core Qt5DBus Qt5Gui Qt5Network Qt5Sql Qt5WebKit -WANTLIB += Qt5WebKitWidgets Qt5Widgets qt5keychain gpg-error -WANTLIB += gpgme mimetic assuan -WANTLIB += ${COMPILER_LIBCXX} +WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5DBus Qt5Gui Qt5Network +WANTLIB += Qt5Sql Qt5WebKit Qt5WebKitWidgets Qt5Widgets c gpgmepp +WANTLIB += m mimetic qt5keychain z MODULES = devel/cmake x11/qt5 @@ -33,14 +31,25 @@ RUN_DEPENDS = devel/desktop-file-utils LIB_DEPENDS = mail/mimetic \ security/qtkeychain,qt5 \ - x11/kde-applications/gpgmepp \ + security/qgpgme \ x11/qt5/qtwebkit CONFIGURE_ENV += QTDIR="${MODQT_LIBDIR}" -CONFIGURE_ARGS += -DWITH_RAGEL=OFF \ - -DGIT_EXECUTABLE="" +CONFIGURE_ARGS += -DGIT_EXECUTABLE="" \ + -DWITH_CLEARTEXT_PLUGIN:Bool=ON \ + -DWITH_DBUS:Bool=ON \ + -DWITH_DESKTOP:Bool=ON \ + -DWITH_QTKEYCHAIN_PLUGIN:Bool=ON \ + -DWITH_RAGEL:Bool=OFF \ + -DWITH_SHARED_PLUGINS:Bool=ON \ + -DWITH_TESTS:Bool=ON \ + -DWITH_ZLIB:Bool=ON \ + -DWITH_QT5:Bool=ON TEST_IS_INTERACTIVE = X11 + +pre-configure: + ${SUBST_CMD} ${WRKDIST}/CMakeLists.txt post-configure: ln -sf ${MODQT_LIBDIR}/bin/lconvert ${WRKDIR}/bin Index: patches/patch-CMakeLists_txt =================================================================== RCS file: /cvs/ports/mail/trojita/patches/patch-CMakeLists_txt,v retrieving revision 1.2 diff -u -p -u -p -r1.2 patch-CMakeLists_txt --- patches/patch-CMakeLists_txt 4 Sep 2016 14:03:00 -0000 1.2 +++ patches/patch-CMakeLists_txt 15 Feb 2018 16:23:48 -0000 @@ -1,7 +1,35 @@ $OpenBSD: patch-CMakeLists_txt,v 1.2 2016/09/04 14:03:00 landry Exp $ ---- CMakeLists.txt.orig Wed Jun 15 09:17:23 2016 -+++ CMakeLists.txt Sat Aug 20 13:36:13 2016 -@@ -154,14 +154,6 @@ else() +Index: CMakeLists.txt +--- CMakeLists.txt.orig ++++ CMakeLists.txt +@@ -61,7 +61,9 @@ trojita_option(WITH_ZLIB "Build with zlib library" AUT + trojita_option(WITH_SHARED_PLUGINS "Enable shared dynamic plugins" ON) + trojita_option(WITH_TESTS "Build tests" ON) + trojita_option(WITH_MIMETIC "Build with client-side MIME parsing" AUTO) +-trojita_option(WITH_GPGMEPP "Build with the GpgME++ library for cryptography" AUTO) ++trojita_option(WITH_GPGMEPP "Use GpgME's native C++ bindings" ON) ++trojita_option(WITH_KF5_GPGMEPP "Use legacy discontinued GpgME++ library from KDE frameworks" OFF) ++ + + if(WIN32) + trojita_option(WITH_NSIS "Build Windows NSIS installer" AUTO "WITH_DESKTOP") +@@ -94,8 +96,13 @@ trojita_plugin_option(WITH_QTKEYCHAIN_PLUGIN "Build Qt + trojita_find_package(Git "" "" "" "") + + trojita_find_package(Mimetic "" "http://www.codesink.org/mimetic_mime_library.html" "C++ MIME Library" "Required for client-side MIME parsing" WITH_MIMETIC) +-trojita_find_package(KF5Gpgmepp "" "https://quickgit.kde.org/?p=gpgmepp.git" "C++ bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_GPGMEPP) +-trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_GPGMEPP") ++trojita_find_package(Gpgmepp "1.8.0" "https://gnupg.org/related_software/gpgme/index.html" "C++/Qt bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_GPGMEPP) ++if(NOT WITH_GPGMEPP) ++ trojita_find_package(KF5Gpgmepp "" "https://commits.kde.org/gpgmepp?path=/" "C++ bindings for gpgme" "Needed for encrypted/signed e-mails" WITH_KF5_GPGMEPP) ++ trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_KF5_GPGMEPP") ++else() ++ trojita_option(WITH_CRYPTO_MESSAGES "Enable support for encrypted messages" AUTO "WITH_MIMETIC;WITH_GPGMEPP") ++endif() + + if(WIN32) + trojita_find_package(MakeNSIS "" "http://nsis.sourceforge.net" "Nullsoft Scriptable Install System" "Needed for building Windows installer" WITH_NSIS) +@@ -154,14 +161,6 @@ else() set(CMAKE_CXX_FLAGS_DEBUG "-Werror ${CMAKE_CXX_FLAGS_DEBUG}") # Also see CMP0043... @@ -16,7 +44,57 @@ $OpenBSD: patch-CMakeLists_txt,v 1.2 201 # Build warnings are useful tools (and Trojita should be warning-free anyway), enable them on all # configurations. They are warnings, not errors. set(CMAKE_CXX_FLAGS "-Wall -Wsign-compare ${CMAKE_CXX_FLAGS}") -@@ -786,32 +778,6 @@ if(WITH_TESTS) +@@ -207,7 +206,7 @@ else() + set(TROJITA_HAVE_MIMETIC False) + endif() + +-if(WITH_GPGMEPP) ++if(WITH_GPGMEPP OR WITH_KF5_GPGMEPP) + set(TROJITA_HAVE_GPGMEPP True) + else() + set(TROJITA_HAVE_GPGMEPP False) +@@ -321,12 +320,10 @@ if(WITH_MIMETIC) + ) + endif() + if(WITH_CRYPTO_MESSAGES) +- if(WITH_GPGMEPP) + set(libCryptography_SOURCES + ${libCryptography_SOURCES} + ${path_Cryptography}/GpgMe++.cpp + ) +- endif() + endif() + + if(WITH_ZLIB) +@@ -622,16 +619,20 @@ set_property(TARGET Cryptography APPEND PROPERTY COMPI + target_link_libraries(Cryptography Common Imap) + if(WITH_MIMETIC) + target_link_libraries(Cryptography ${MIMETIC_LIBRARIES}) +- set_property(TARGET Cryptography APPEND PROPERTY INCLUDE_DIRECTORIES ${MIMETIC_INCLUDE_DIRS}) ++ set_property(TARGET Cryptography APPEND PROPERTY INCLUDE_DIRECTORIES /usr/local/include) + endif() + if(WITH_CRYPTO_MESSAGES) +- if(WITH_GPGMEPP) +- if (WIN32) +- target_link_libraries(Cryptography KF5::Gpgmepp KF5::QGpgme) +- else() +- target_link_libraries(Cryptography KF5::Gpgmepp-pthread KF5::QGpgme) ++ if(WITH_GPGMEPP) ++ target_link_libraries(Cryptography gpgmepp qgpgme gpgme) ++ set_property(TARGET Cryptography APPEND PROPERTY INCLUDE_DIRECTORIES /usr/local/include/gpgme++) ++ set_property(TARGET Cryptography APPEND PROPERTY INCLUDE_DIRECTORIES /usr/local/include/qgpgme) ++ elseif(WITH_KF5_GPGMEPP) ++ if(WIN32) ++ target_link_libraries(Cryptography KF5::Gpgmepp KF5::QGpgme) ++ else() ++ target_link_libraries(Cryptography KF5::Gpgmepp-pthread KF5::QGpgme) ++ endif() + endif() +- endif() + endif() + + ## ClearText password plugin +@@ -786,32 +787,6 @@ if(WITH_TESTS) trojita_test(Imap Imap_Offline) trojita_test(Imap Imap_CopyAndFlagOperations) trojita_test(Cryptography Cryptography_MessageModel) Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/mail/trojita/pkg/PLIST,v retrieving revision 1.7 diff -u -p -u -p -r1.7 PLIST --- pkg/PLIST 4 Sep 2016 14:03:00 -0000 1.7 +++ pkg/PLIST 15 Feb 2018 16:23:48 -0000 @@ -3,6 +3,7 @@ @bin bin/trojita @lib lib/libtrojita_plugins.so.${LIBtrojita_plugins_VERSION} lib/trojita/ +lib/trojita/trojita_plugin_ClearTextPasswordPlugin.so lib/trojita/trojita_plugin_QtKeychainPasswordPlugin.so share/appdata/ share/appdata/trojita.appdata.xml
qgpgme.tar.gz
Description: Binary data