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

Attachment: qgpgme.tar.gz
Description: Binary data

Reply via email to