Review Request 129265: Port from KF5Gpgme to GpgME

René J.V. Bertin rjvbertin at gmail.com
Thu Oct 27 09:05:18 UTC 2016



> On Oct. 26, 2016, 9:44 p.m., Marko Käning wrote:
> > I am wondering which files would your submitted approach pick on OSX/MacPorts with these KF5 libs installed:
> > 
> > ```
> > $ port installed kf5-gpgmepp 
> > The following ports are currently installed:
> >   kf5-gpgmepp @16.08.2_0+qt5kde (active)
> > $ port contents kf5-gpgmepp 
> > Port kf5-gpgmepp contains:
> >   /opt/local/include/KF5/gpgme++/assuanresult.h
> >   /opt/local/include/KF5/gpgme++/configuration.h
> >   /opt/local/include/KF5/gpgme++/context.h
> >   /opt/local/include/KF5/gpgme++/data.h
> >   /opt/local/include/KF5/gpgme++/decryptionresult.h
> >   /opt/local/include/KF5/gpgme++/defaultassuantransaction.h
> >   /opt/local/include/KF5/gpgme++/editinteractor.h
> >   /opt/local/include/KF5/gpgme++/encryptionresult.h
> >   /opt/local/include/KF5/gpgme++/engineinfo.h
> >   /opt/local/include/KF5/gpgme++/error.h
> >   /opt/local/include/KF5/gpgme++/eventloopinteractor.h
> >   /opt/local/include/KF5/gpgme++/exception.h
> >   /opt/local/include/KF5/gpgme++/global.h
> >   /opt/local/include/KF5/gpgme++/gpgadduserideditinteractor.h
> >   /opt/local/include/KF5/gpgme++/gpgagentgetinfoassuantransaction.h
> >   /opt/local/include/KF5/gpgme++/gpgmefw.h
> >   /opt/local/include/KF5/gpgme++/gpgmepp_export.h
> >   /opt/local/include/KF5/gpgme++/gpgsetexpirytimeeditinteractor.h
> >   /opt/local/include/KF5/gpgme++/gpgsetownertrusteditinteractor.h
> >   /opt/local/include/KF5/gpgme++/gpgsignkeyeditinteractor.h
> >   /opt/local/include/KF5/gpgme++/importresult.h
> >   /opt/local/include/KF5/gpgme++/interfaces/assuantransaction.h
> >   /opt/local/include/KF5/gpgme++/interfaces/dataprovider.h
> >   /opt/local/include/KF5/gpgme++/interfaces/passphraseprovider.h
> >   /opt/local/include/KF5/gpgme++/interfaces/progressprovider.h
> >   /opt/local/include/KF5/gpgme++/key.h
> >   /opt/local/include/KF5/gpgme++/keygenerationresult.h
> >   /opt/local/include/KF5/gpgme++/keylistresult.h
> >   /opt/local/include/KF5/gpgme++/notation.h
> >   /opt/local/include/KF5/gpgme++/result.h
> >   /opt/local/include/KF5/gpgme++/scdgetinfoassuantransaction.h
> >   /opt/local/include/KF5/gpgme++/signingresult.h
> >   /opt/local/include/KF5/gpgme++/trustitem.h
> >   /opt/local/include/KF5/gpgme++/verificationresult.h
> >   /opt/local/include/KF5/gpgme++/vfsmountresult.h
> >   /opt/local/include/KF5/gpgmepp_version.h
> >   /opt/local/include/KF5/qgpgme/dataprovider.h
> >   /opt/local/include/KF5/qgpgme/qgpgme_eventloopinteractor.h
> >   /opt/local/include/KF5/qgpgme/qgpgme_export.h
> >   /opt/local/lib/cmake/KF5Gpgmepp/KF5GpgmeppConfig.cmake
> >   /opt/local/lib/cmake/KF5Gpgmepp/KF5GpgmeppConfigVersion.cmake
> >   /opt/local/lib/cmake/KF5Gpgmepp/KF5GpgmeppTargets-macports.cmake
> >   /opt/local/lib/cmake/KF5Gpgmepp/KF5GpgmeppTargets.cmake
> >   /opt/local/lib/libKF5Gpgmepp-pthread.5.3.2.dylib
> >   /opt/local/lib/libKF5Gpgmepp-pthread.5.dylib
> >   /opt/local/lib/libKF5Gpgmepp-pthread.dylib
> >   /opt/local/lib/libKF5Gpgmepp.5.3.2.dylib
> >   /opt/local/lib/libKF5Gpgmepp.5.dylib
> >   /opt/local/lib/libKF5Gpgmepp.dylib
> >   /opt/local/lib/libKF5QGpgme.5.3.2.dylib
> >   /opt/local/lib/libKF5QGpgme.5.dylib
> >   /opt/local/lib/libKF5QGpgme.dylib
> >   /opt/local/share/qt5/mkspecs/modules/qt_QGpgme.pri
> > ```
> > as well as those installed in the MacPorts installation itself via port gpgme:
> > ```
> > $ port installed gpgme +universal 
> > The following ports are currently installed:
> >   gpgme @1.7.0_0 (active)
> > $ port contents gpgme 
> > Port gpgme contains:
> >   /opt/local/bin/gpgme-config
> >   /opt/local/bin/gpgme-tool
> >   /opt/local/include/gpgme++/configuration.h
> >   /opt/local/include/gpgme++/context.h
> >   /opt/local/include/gpgme++/data.h
> >   /opt/local/include/gpgme++/decryptionresult.h
> >   /opt/local/include/gpgme++/defaultassuantransaction.h
> >   /opt/local/include/gpgme++/editinteractor.h
> >   /opt/local/include/gpgme++/encryptionresult.h
> >   /opt/local/include/gpgme++/engineinfo.h
> >   /opt/local/include/gpgme++/error.h
> >   /opt/local/include/gpgme++/eventloopinteractor.h
> >   /opt/local/include/gpgme++/exception.h
> >   /opt/local/include/gpgme++/global.h
> >   /opt/local/include/gpgme++/gpgadduserideditinteractor.h
> >   /opt/local/include/gpgme++/gpgagentgetinfoassuantransaction.h
> >   /opt/local/include/gpgme++/gpgmefw.h
> >   /opt/local/include/gpgme++/gpgmepp_export.h
> >   /opt/local/include/gpgme++/gpgsetexpirytimeeditinteractor.h
> >   /opt/local/include/gpgme++/gpgsetownertrusteditinteractor.h
> >   /opt/local/include/gpgme++/gpgsignkeyeditinteractor.h
> >   /opt/local/include/gpgme++/importresult.h
> >   /opt/local/include/gpgme++/interfaces/assuantransaction.h
> >   /opt/local/include/gpgme++/interfaces/dataprovider.h
> >   /opt/local/include/gpgme++/interfaces/passphraseprovider.h
> >   /opt/local/include/gpgme++/interfaces/progressprovider.h
> >   /opt/local/include/gpgme++/key.h
> >   /opt/local/include/gpgme++/keygenerationresult.h
> >   /opt/local/include/gpgme++/keylistresult.h
> >   /opt/local/include/gpgme++/notation.h
> >   /opt/local/include/gpgme++/result.h
> >   /opt/local/include/gpgme++/scdgetinfoassuantransaction.h
> >   /opt/local/include/gpgme++/signingresult.h
> >   /opt/local/include/gpgme++/tofuinfo.h
> >   /opt/local/include/gpgme++/trustitem.h
> >   /opt/local/include/gpgme++/verificationresult.h
> >   /opt/local/include/gpgme++/vfsmountresult.h
> >   /opt/local/include/gpgme.h
> >   /opt/local/include/gpgmepp_version.h
> >   /opt/local/lib/cmake/Gpgmepp/GpgmeppConfig.cmake
> >   /opt/local/lib/cmake/Gpgmepp/GpgmeppConfigVersion.cmake
> >   /opt/local/lib/libgpgme-pthread.11.dylib
> >   /opt/local/lib/libgpgme-pthread.a
> >   /opt/local/lib/libgpgme-pthread.dylib
> >   /opt/local/lib/libgpgme.11.dylib
> >   /opt/local/lib/libgpgme.a
> >   /opt/local/lib/libgpgme.dylib
> >   /opt/local/lib/libgpgmepp.6.dylib
> >   /opt/local/lib/libgpgmepp.a
> >   /opt/local/lib/libgpgmepp.dylib
> >   /opt/local/share/aclocal/gpgme.m4
> >   /opt/local/share/common-lisp/source/gpgme/gpgme-package.lisp
> >   /opt/local/share/common-lisp/source/gpgme/gpgme.asd
> >   /opt/local/share/common-lisp/source/gpgme/gpgme.lisp
> >   /opt/local/share/doc/gpgme/AUTHORS
> >   /opt/local/share/doc/gpgme/COPYING
> >   /opt/local/share/doc/gpgme/COPYING.LESSER
> >   /opt/local/share/doc/gpgme/ChangeLog
> >   /opt/local/share/doc/gpgme/INSTALL
> >   /opt/local/share/doc/gpgme/NEWS
> >   /opt/local/share/doc/gpgme/README
> >   /opt/local/share/doc/gpgme/THANKS
> >   /opt/local/share/doc/gpgme/TODO
> >   /opt/local/share/info/gpgme.info
> >   /opt/local/share/info/gpgme.info-1
> >   /opt/local/share/info/gpgme.info-2
> > ```
> > We actually enforced the use of `kdepimlibs`' version of GpgME during building of `kmymoney4-devel` with this patch:
> > ```
> > *** kmymoney-4.7.2/CMakeLists.txt       Sat Apr 25 19:20:16 2015
> > --- kmymoney-4.7.2/CMakeLists.txt       Wed Oct  5 23:14:44 2016
> > ***************
> > *** 70,75 ****
> > --- 70,82 ----
> >   endif (WIN32)
> >   # needed by libkgpgfile
> >   find_package(QGpgme REQUIRED)
> > +
> > + # This is specific for MacPorts, as it ships a newer version of gpgme (1.7.0)
> > + if (QGPGME_FOUND)
> > +   set(GPGME_INCLUDES "%PREFIX%/include/KDE4")
> > +   include_directories(${GPGME_INCLUDES})
> > + endif (QGPGME_FOUND)
> > +
> >   find_package(KdepimLibs REQUIRED)
> >   find_package(SharedMimeInfo REQUIRED)
> > ```
> > I can't test this with a `frameworks` version of KMyMoney so far, as there is still no offical release of the KF5 frameworks available on OSX/MacPorts at this point in time.
> > 
> > So, I am just curious, but I believe your CMake magic would like to pick the latter set of files which would make port `kf5-gpgmepp` obsolete. Is that intended?
> 
> Andreas Sturmlechner wrote:
>     Yes it is intended, as there will be no further release of 'kf5'-gpgmepp - for reference: https://mail.kde.org/pipermail/release-team/2016-September/009732.html
> 
> Marko Käning wrote:
>     OK, that link could have been in the description. ;-)
> 
> René J.V. Bertin wrote:
>     Wow, it would have been nice if we'd known about this a short while ago when MacPorts port:gpgme was updated to 1.7.0 and we had a whole discussion about how to avoid the header clashes.
>     
>     When will KWallet drop kf5-gpgmepp?
>     
>     I don't have much to say about the patch for KMyMoney: I don't have a port for that. Yet. If the dependencies (apart from Qt and KDE) haven't changed w.r.t. KMM 4 it might not be too much work to create a port that is sufficient for testing this patch.
> 
> Andreas Sturmlechner wrote:
>     kwallet master currently picks GpgME++ if available, but can still use KF5Gpgmepp otherwise. I assume it will stay a while like that to give distributions time to ship GpgME-1.7.1 (you definitely want 1.7.1 for fixes), and Frameworks are a little more conservative wrt minimum deps. I'm not a maintainer though.
> 
> René J.V. Bertin wrote:
>     From what I see KWallet uses both. I didn't look real closely but get the impression that 5.27 still requires both. I do remember that it was patched to work with gpgme 1.7x headers present, recently.
> 
> Andreas Sturmlechner wrote:
>     5.27 doesn't make use of GpgME++, the patch went in only after release.

Sorry, yes, I confounded gpgme in general and gpgme++. KWallet has been using the former for a while, directly and indirectly. The patch I referred to was to cope with the presence of the gpgme++ headers, and landed between 5.24 and 5.27 (and could be backported to 5.24).


- René J.V.


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/129265/#review100306
-----------------------------------------------------------


On Oct. 26, 2016, 9:57 p.m., Andreas Sturmlechner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/129265/
> -----------------------------------------------------------
> 
> (Updated Oct. 26, 2016, 9:57 p.m.)
> 
> 
> Review request for KMymoney and René J.V. Bertin.
> 
> 
> Repository: kmymoney
> 
> 
> Description
> -------
> 
> Gpgmepp is part of GpgME since 1.7.0.
> 
> REVIEW: 129265
> 
> ---
> 
> See also for reference: https://mail.kde.org/pipermail/release-team/2016-September/009732.html
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt c535faba80db64b0a30fc5fdfb09a7a2590ab8a4 
>   config-kmymoney.h.cmake f024db61af25e291cde2eef392fe161485c82e5d 
>   kmymoney/main.cpp 694ffa28ae67ad0051b893fbdcf9b7b3624f0525 
>   libkgpgfile/CMakeLists.txt 4e366ceab3c12728276feaaec78319315fb9ea6d 
>   libkgpgfile/kgpgfile.cpp 88aac42de83d28be45ad8d1516bd94eb240ed811 
> 
> Diff: https://git.reviewboard.kde.org/r/129265/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Andreas Sturmlechner
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kmymoney-devel/attachments/20161027/c0c8208f/attachment-0001.html>


More information about the KMyMoney-devel mailing list