#52342 closed defect (fixed)
kdepimlibs4 apparent conflict with gpgme
Reported by: | Liontooth (David Liontooth) | Owned by: | NicosPavlov |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.3.4 |
Keywords: | Cc: | mkae (Marko Käning), jjstickel (Jonathan Stickel), mopihopi, RJVB (René Bertin), StanSanderson | |
Port: | kdepimlibs4 |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
While installing kde4-baseapps on Sierra I get this:
---> Activating kdepimlibs4 @4.14.3_3 Error: org.macports.activate for port kdepimlibs4 returned: Image error: /opt/local/include/gpgme++/configuration.h is being used by the active gpgme port. Please deactivate this port first, or use 'port -f activate kdepimlibs4' to force the activation. Error: Failed to install kdepimlibs4
Since kdepimlibs4 depends on gpgme, deactivating is not an option. Forcing generates a bunch of warnings:
$ sudo port -f activate kdepimlibs4 ---> Computing dependencies for kdepimlibs4 ---> Activating kdepimlibs4 @4.14.3_3 Warning: File /opt/local/include/gpgme++/configuration.h already exists. Moving to: /opt/local/include/gpgme++/configuration.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/context.h already exists. Moving to: /opt/local/include/gpgme++/context.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/data.h already exists. Moving to: /opt/local/include/gpgme++/data.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/decryptionresult.h already exists. Moving to: /opt/local/include/gpgme++/decryptionresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/defaultassuantransaction.h already exists. Moving to: /opt/local/include/gpgme++/defaultassuantransaction.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/editinteractor.h already exists. Moving to: /opt/local/include/gpgme++/editinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/encryptionresult.h already exists. Moving to: /opt/local/include/gpgme++/encryptionresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/engineinfo.h already exists. Moving to: /opt/local/include/gpgme++/engineinfo.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/error.h already exists. Moving to: /opt/local/include/gpgme++/error.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/eventloopinteractor.h already exists. Moving to: /opt/local/include/gpgme++/eventloopinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/exception.h already exists. Moving to: /opt/local/include/gpgme++/exception.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/global.h already exists. Moving to: /opt/local/include/gpgme++/global.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgadduserideditinteractor.h already exists. Moving to: /opt/local/include/gpgme++/gpgadduserideditinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgagentgetinfoassuantransaction.h already exists. Moving to: /opt/local/include/gpgme++/gpgagentgetinfoassuantransaction.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgmefw.h already exists. Moving to: /opt/local/include/gpgme++/gpgmefw.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgsetexpirytimeeditinteractor.h already exists. Moving to: /opt/local/include/gpgme++/gpgsetexpirytimeeditinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgsetownertrusteditinteractor.h already exists. Moving to: /opt/local/include/gpgme++/gpgsetownertrusteditinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/gpgsignkeyeditinteractor.h already exists. Moving to: /opt/local/include/gpgme++/gpgsignkeyeditinteractor.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/importresult.h already exists. Moving to: /opt/local/include/gpgme++/importresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/interfaces/assuantransaction.h already exists. Moving to: /opt/local/include/gpgme++/interfaces/assuantransaction.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/interfaces/dataprovider.h already exists. Moving to: /opt/local/include/gpgme++/interfaces/dataprovider.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/interfaces/passphraseprovider.h already exists. Moving to: /opt/local/include/gpgme++/interfaces/passphraseprovider.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/interfaces/progressprovider.h already exists. Moving to: /opt/local/include/gpgme++/interfaces/progressprovider.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/key.h already exists. Moving to: /opt/local/include/gpgme++/key.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/keygenerationresult.h already exists. Moving to: /opt/local/include/gpgme++/keygenerationresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/keylistresult.h already exists. Moving to: /opt/local/include/gpgme++/keylistresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/notation.h already exists. Moving to: /opt/local/include/gpgme++/notation.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/result.h already exists. Moving to: /opt/local/include/gpgme++/result.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/scdgetinfoassuantransaction.h already exists. Moving to: /opt/local/include/gpgme++/scdgetinfoassuantransaction.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/signingresult.h already exists. Moving to: /opt/local/include/gpgme++/signingresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/trustitem.h already exists. Moving to: /opt/local/include/gpgme++/trustitem.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/verificationresult.h already exists. Moving to: /opt/local/include/gpgme++/verificationresult.h.mp_1474684825. Warning: File /opt/local/include/gpgme++/vfsmountresult.h already exists. Moving to: /opt/local/include/gpgme++/vfsmountresult.h.mp_1474684825.
Change History (12)
comment:1 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | nicos@… removed |
---|---|
Description: | modified (diff) |
Keywords: | Sierra removed |
Owner: | changed from macports-tickets@… to nicos@… |
comment:4 follow-up: 5 Changed 8 years ago by jjstickel (Jonathan Stickel)
Same problem for me on Yosemite, so not a OS version problem. Looks like the gpgme update (r153044) triggered this?
comment:5 Changed 8 years ago by jjstickel (Jonathan Stickel)
Replying to jjstickel@…:
Same problem for me on Yosemite, so not a OS version problem. Looks like the gpgme update (r153044) triggered this?
I rolled back gpgme to 1.6 and everything is working for me at the moment. Does kdepimlibs4 need an update to work with the new gpgme (and maybe kde4-runtime)?
comment:7 Changed 8 years ago by NicosPavlov
Hello, it seems rather clear that kdepimlibs4 needs to be patched to not install the conflicting files and ideally use the ones provided by gpgme. I should be able to look at that in the next days.
comment:8 Changed 8 years ago by NicosPavlov
Resolution: | → fixed |
---|---|
Status: | new → closed |
The issue should be solved with r153292, where kdepimlibs4 now links to the existing gpgme files.
comment:9 Changed 8 years ago by RJVB (René Bertin)
I'm not sure if it's such a good idea to try to make KDEPim4 use much more recent GPGMe versions than the ones it ships with. KDEPim4 is unmaintained, and clearly some things have changed in the cmake files installed by gpgme, over time.
Marko's error in #52470 is a result of that, I think; it looks like port:kdepimlibs4
installs 2 cmake files,
/opt/local/share/apps/cmake/modules/FindGpgme.cmake /opt/local/share/apps/cmake/modules/FindQGpgme.cmake
which apparently don't work with GPGMe 1.7 . Presumable, the 1st of these 2 files is expecting /opt/local/lib/gpgmepp/GpgmeppConfig.cmake
(installed by kdepimlibs4 too), while port:gpgme installs /opt/local/lib/cmake/Gpgmepp/GpgmeppConfig.cmake
Are those files actually installed with your patch?
There is an easier workaround: apply the part of my KDE4 patches that cause KDE4 headerfiles to be installed into ${prefix}/include/KDE4. Configure and port:kdelibs4 with configure.args-append -DINCLUDE_INSTALL_DIR=${kde4.include_dirs}
(revbump of dependents only required if you really want to rebuild them). I define kde4.include_dirs in my kde4-1.1.tcl :
set kde4.include_prefix KDE4 set kde4.include_dirs ${prefix}/include/${kde4.include_prefix}
As a result, I have (after rebuilding kdepimlibs4):
/opt/local/include/KDE4/gpgme++/assuanresult.h /opt/local/include/KDE4/gpgme++/configuration.h /opt/local/include/KDE4/gpgme++/context.h /opt/local/include/KDE4/gpgme++/data.h ...
and no conflicts ... and KDEPIM builds as it expects to.
This change is required anyway if we want to support concurrent KDE4 and KF5 installations. It also doesn't mean you cannot figure out how to build KDEPIM against all of port:gpgme ...
Note also that kdepimlibs4 only provides the C++ wrappers, which use the C implementation from port:gpgme (and hence the latest version). The easiest "fix" would be to remove the gpgme++ header directory in the post-destroot (possibly replace it with a symlink to /opt/local/include/gpgme++ if using my /opt/local/include/KDE4 idea).
comment:12 Changed 8 years ago by RJVB (René Bertin)
Let's continue here: https://trac.macports.org/ticket/52481
Yes, you should probably not force. By doing so, you've replaced the contents of the gpgme port with whatever version of gpgme was bundled with kdepimlibs4, which might not be the same version. The consequences of doing that are unknown.