[MacPorts] #52479: gpgme: install headers in a private location to avoid conflict and/or header confusion
MacPorts
noreply at macports.org
Sat Oct 1 20:58:41 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: Normal | Milestone:
Component: ports | Version: 2.3.4
Resolution: | Keywords: haspatch
Port: gpgme |
--------------------------+--------------------------------
Description changed by ryandesign@…:
Old description:
> 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
New description:
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 #52342 and #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#comment:8>
MacPorts <https://www.macports.org/>
Ports system for the Mac operating system
More information about the macports-tickets
mailing list