[MacPorts] #52479: gpgme: install headers in a private location to avoid conflict and/or header confusion
MacPorts
noreply at macports.org
Sat Oct 1 14:58:01 CEST 2016
#52479: gpgme: install headers in a private location to avoid conflict and/or
header confusion
-------------------------+--------------------------------
Reporter: rjvbertin@… | Owner: macports-tickets@…
Type: defect | Status: new
Priority: High | Milestone:
Component: ports | Version: 2.3.4
Keywords: haspatch | Port: gpgme
-------------------------+--------------------------------
port:gpgme was recently updated to 1.7.0 and to build the C++ wrappers
(but only when using libc++, for some reason).
Several issues result from this:
- port:kdepimlibs4 installs its own gpgme++ libraries and headers;
unmodified those go into ${prefix}/include/gpgme++ and thus clash with the
ones from port:gpgme
- KDE actually maintains its own C++ wrappers (fork or original I don't
know). It seems that (very recent) KF5 code can co-exist with the headers
from port:gpgme, but the KDE4 code that uses these C++ wrappers is now old
and mostly unmaintained. It is unlikely that it will build and run against
the 1.7.0 gpgme++ wrappers without significant modification of the build
system and code (see https://trac.macports.org/ticket/52342 and
https://trac.macports.org/ticket/52470). The 1.7.0 gpgme C libraries are
fine, though.
The library binaries from port:kdepimlibs4 and port:gpgpme do not clash,
so the main issue at hand is to avoid headerfile confusion where a gpgme++
header is included from port:gpgme when one from port:kdepimlibs4 is
required, or vice versa.
It is trivial to reconfigure port:kdelibs4 such that headers from KDE4
ports are installed into, say, ${prefix}/include/KDE4. This has been
proposed already as it is required for concurrent installation of KDE4 and
KF5 ports.
It is relatively trivial to do something similar with port:gpgme, and the
attached patch contains an implementation.
I tested this approach and can confirm that
- The KDEPIM4 ports as well as port:kde4-runtime build and run provided
the KDE4 headers are installed as described above
- kf5-gpgmepp and kf5-kwallet also build (with an upstream patch to
support gpgme 1.7). I have not yet made ports for other KF5 software that
uses gpgme.
As far as I know, installing the C++ headers is a new feature in
port:gpgme 1.7 and as such I *presume* that only few ports depend on it as
yet. Either way, the proposed change should be completely transparent and
doesn't change anything link dependencies. No rev-bumping of dependents is
required. However, it might be useful to add a variant to control building
(or omission) of the C++ wrappers.
See also https://bugs.gnupg.org/gnupg/issue2733
--
Ticket URL: <https://trac.macports.org/ticket/52479>
MacPorts <https://www.macports.org/>
Ports system for the Mac operating system
More information about the macports-tickets
mailing list