[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