On 11/6/25 23:12, Xisco Fauli wrote:
So far, my patch makes the compilation of gpgme and gpgmepp towork, but
it fails further down with
/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/
linux_clang_dbgutil_64/comphelper/source/misc/
docpasswordhelper.cxx:673:23: error: incomplete type 'GpgME::Context'
named in nested name specifier
ctx.reset( GpgME::Context::createForProtocol(GpgME::OpenPGP) );
~~~~~~~^~~~~~~~~
and many other similar problems, See [3]. At comphelper/source/misc/
docpasswordhelper.cxx:42 it does # include <context.h> but now there
are two context.h, one in ./workdir/UnpackedTarball/gpgme/src/context.h
and the other in ./workdir/UnpackedTarball/gpgmepp/src/context.h
If I remove ./workdir/UnpackedTarball/gpgme/src/context.h manually then
it compiles.
At least with my system's gpgmepp-devel-1.24.3-6.fc43.x86_64, all those
include files that e.g. comphelper/source/misc/docpasswordhelper.cxx
#if HAVE_FEATURE_GPGME
# include <context.h>
# include <data.h>
# include <decryptionresult.h>
#endif
includes without a path prefix are actually located in
/usr/include/gpgme++, and the way that works is that our configure.ac has
AC_CHECK_HEADER(gpgme++/gpgmepp_version.h, [
GPGMEPP_CFLAGS=-I/usr/include/gpgme++ ],
for the --with-system-gpgmepp case.
Regardless of your attempt of upgrading our internal gpgme library, I
would strongly suggest to clean that disaster up:
* Those places in our source code that include such gpgme(pp) include
files should include them with a prefix,
#if HAVE_FEATURE_GPGME
# include <gpgme++/context.h>
# include <gpgme++/data.h>
# include <gpgme++/decryptionresult.h>
#endif
etc.
* For --with-system-gpgmepp, we should change configure.ac etc. to drop
any GPGMEPP_CFLAGS (compilers will find <gpgme++/context.h> etc. at
/usr/include without any additional -I directive just fine).
* For --without-system-gpgmepp, we should change
external/gpgmepp/ExternalProject_gpgmepp.mk to make and install to some
--prefix, and then access the installed files under that prefix, rather
than tapping directly into the build tree via
$(gb_UnpackedTarball_workdir)/gpgmepp/src as we do today.
With those prerequisite sanity changes in place, your attempt of
upgrading should then probably become much smoother.
--
Stephan Bergmann | Principal Software Engineer
Collabora Productivity | Platinum Building, Cowley Road, Cambridge CB4
0DS, UK Registered in England & Wales no 08644931