Page MenuHome GnuPG
Feed Advanced Search

Aug 24 2022

ikloecker added a comment to T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing].

For gpgme (as for the other GnuPG libraries) we use the good old mailing list based process for contributing patches. See doc/HACKING for details. In particular, we'll need a signed DCO from you.

Aug 24 2022, 2:20 PM · C++, gpgme, Bug Report
wrobelda added a comment to T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing].

Yes, this is with Clang. I am working on getting it to compile on Windows with clang-cl, using vcpkg, with success. I have several patches to fix the issues that clang detected, and so I wonder if I should create a Task to discuss them all?

Aug 24 2022, 10:08 AM · C++, gpgme, Bug Report
ikloecker triaged T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing] as Low priority.
Aug 24 2022, 9:32 AM · C++, gpgme, Bug Report
ikloecker added a comment to T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing].

g++: error: unrecognized command-line option '-Wc++11-narrowing'; did you mean '-Wno-narrowing'?

Aug 24 2022, 9:23 AM · C++, gpgme, Bug Report
ikloecker added a comment to T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing].

How did you get this error? I don't even see a warning for this when building gpgme with g++ (SUSE Linux) 12.1.1 20220812.

Aug 24 2022, 9:20 AM · C++, gpgme, Bug Report

Aug 23 2022

wrobelda created T6150: gpgadduserideditinteractor.cpp: error: case value evaluates to -1, which cannot be narrowed to type 'unsigned int' [-Wc++11-narrowing].
Aug 23 2022, 10:05 PM · C++, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

This looks like a good approach, but I think stripping the standard paths needs to be deferred until later, because, if PKG_CONFIG_SYSROOT_DIR is set, then the library search paths are prefixed with $PKG_CONFIG_SYSROOT_DIR, and then the prefixed standard paths probably shouldn't be stripped.

Aug 23 2022, 6:37 PM · gpgrt, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Original pkg-config supports PKG_CONFIG_SYSTEM_LIBRARY_PATH (default is determined by build time, and overridden by environment var), PKG_CONFIG_SYSTEM_INCLUDE_PATH as well.

Aug 23 2022, 10:15 AM · gpgrt, gpgme, Bug Report
ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.
In T6136#161915, @orbea wrote:

Or maybe it would be better to only check the standard libdir paths as in the libgpg-error configure.ac?

--- gpgrt-config.orig	2022-08-21 23:14:40.017298485 -0700
+++ gpgrt-config	2022-08-22 08:28:16.339977281 -0700
@@ -210,6 +210,7 @@
     # the resulted list is in reverse order
     for __arg; do
 	case "$__arg" in
+	    -L/usr/lib|-L/usr/lib64|-L/lib|-L/lib64) ;;
 	    -l*)
 		# As-is
 		__rev_list="$__arg${__rev_list:+ }$__rev_list"
Aug 23 2022, 9:30 AM · gpgrt, gpgme, Bug Report

Aug 22 2022

ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Hmm. Good point. Always adding -L${libdir} makes the .pc files easier to relocate.

Aug 22 2022, 7:22 PM · gpgrt, gpgme, Bug Report
wrobelda added a comment to D561: w32: mbox-util: guard unistd.h include on Windows.

Actually, there's plenty more locations where unistd.h is included unconditionally, all of which should likely embrace in guards like this.

Aug 22 2022, 7:08 PM · Windows, gpgme
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

The -L${libdir} is standard in nearly all applicable .pc files on my system. In the case of pkgconf the -L linker path is removed from the output if its the standard linker path. Of course however you think its best to fix this would be fine though.

Aug 22 2022, 6:27 PM · gpgrt, gpgme, Bug Report
ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Why should gpgrt-config change the information read from the *.pc files?

Aug 22 2022, 6:16 PM · gpgrt, gpgme, Bug Report
wrobelda requested review of D561: w32: mbox-util: guard unistd.h include on Windows.
Aug 22 2022, 5:47 PM · Windows, gpgme
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Or maybe it would be better to only check the standard libdir paths as in the libgpg-error configure.ac?

--- gpgrt-config.orig	2022-08-21 23:14:40.017298485 -0700
+++ gpgrt-config	2022-08-22 08:28:16.339977281 -0700
@@ -210,6 +210,7 @@
     # the resulted list is in reverse order
     for __arg; do
 	case "$__arg" in
+	    -L/usr/lib|-L/usr/lib64|-L/lib|-L/lib64) ;;
 	    -l*)
 		# As-is
 		__rev_list="$__arg${__rev_list:+ }$__rev_list"
Aug 22 2022, 5:29 PM · gpgrt, gpgme, Bug Report
ikloecker merged task T6143: qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '=' into T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?).
Aug 22 2022, 3:10 PM · gpgme
ikloecker merged T6143: qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '=' into T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?).
Aug 22 2022, 3:10 PM · Restricted Project, clang, C++, gpgme, Bug Report
ikloecker closed T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?) as Resolved.

Thanks. QGpgME should now also compile with strict C++11. And C++14'isms shouldn't happen again unnoticed.

Aug 22 2022, 3:07 PM · Restricted Project, clang, C++, gpgme, Bug Report
wrobelda added a comment to T6143: qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '='.

This was apparently discussed before:
https://www.mail-archive.com/ports@openbsd.org/msg105601.html

Aug 22 2022, 12:23 PM · gpgme
wrobelda renamed T6143: qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '=' from qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded to qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '='.
Aug 22 2022, 12:22 PM · gpgme
wrobelda created T6143: qgpgmesignkeyjob.cpp:224:25: error: no viable overloaded '='.
Aug 22 2022, 12:09 PM · gpgme
wrobelda reopened T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?) as "Open".

Also in:

Aug 22 2022, 11:55 AM · Restricted Project, clang, C++, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

I suggest simply removing any -L linker path from the output if it matches the $libdir in gpgrt-config.

Aug 22 2022, 8:21 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Even without libassuan-config installed in libassuan-2.5.5.

$ gpgrt-config --libdir=/usr/lib64 libassuan --libs
-L/usr/lib64 -lassuan

gpg-error is not affected at least.

 gpgrt-config --libdir=/usr/lib64 gpg-error --libs
-lgpg-error

In lang/qt/tests/Makefile:

LIBASSUAN_CONFIG = /usr/bin/gpgrt-config --libdir=/usr/lib64 libassuan
LIBASSUAN_LIBS = -L/usr/lib64 -lassuan
Aug 22 2022, 5:47 AM · gpgrt, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

gpg-error-config and its relatives (libassuan-config, included) were written before pkg-config. The support of cross build, multiarch, and multilib by those are quite limited (and sometimes wrong). Basically, those scripts are deprecated, but it has been kept for backward compatibility.

Aug 22 2022, 2:47 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

It seems the issue is also in libassuan-config.

$ libassuan-config --libs
-L/usr/lib64 -lassuan -lgpg-error

The shell logic here does not seem quite right to me.

Aug 22 2022, 1:40 AM · gpgrt, gpgme, Bug Report

Aug 19 2022

ikloecker closed T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?) as Resolved.
Aug 19 2022, 11:12 AM · Restricted Project, clang, C++, gpgme, Bug Report
ikloecker added a comment to T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?).

Thanks for the report! Should be fixed.

Aug 19 2022, 11:08 AM · Restricted Project, clang, C++, gpgme, Bug Report
ikloecker closed T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration as Resolved.

Thanks for reporting and testing my fixes.

Aug 19 2022, 10:54 AM · Restricted Project, qt, gpgme, Bug Report

Aug 18 2022

andreasstieger added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

Our tests are fine as of rM2e7a61b898fc.

Aug 18 2022, 10:32 PM · Restricted Project, qt, gpgme, Bug Report
ikloecker claimed T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?).
Aug 18 2022, 1:28 PM · Restricted Project, clang, C++, gpgme, Bug Report
tnn2 created T6141: gpgme importresult.cpp fails to compile on macOS (needs to use C++14?).
Aug 18 2022, 11:51 AM · Restricted Project, clang, C++, gpgme, Bug Report
werner added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

It will be a lot of work to change this in gpg. Thus ISO dates were only introduced with gpgsm after the former glibc maintainer refused to switch to a 64 bit time_t - which would have been easy enough at that time (about the year 2001).

Aug 18 2022, 11:47 AM · Restricted Project, qt, gpgme, Bug Report
ikloecker added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

Yes, it's a problem in gpg. gpg asks for the expiration date of the subkey

[  277s] EditInteractor: 4 -> nextState( GET_LINE, keygen.valid ) -> 5

gpgme replies with an ISO date

[  277s] EditInteractor: action result "21000101T120000"

Then gpg asks again for the expiration date

[  277s] EditInteractor: 5 -> nextState( GET_LINE, keygen.valid ) -> 4294967295

which gpgme doesn't expect, so that gpgme return a "general error".

Aug 18 2022, 10:17 AM · Restricted Project, qt, gpgme, Bug Report

Aug 17 2022

ikloecker added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

Thanks! It seems that we pass the correct expiration date to gpg:

EditInteractor: action result "21000101T120000"

So, it's maybe a problem in gpg now.

Aug 17 2022, 11:55 PM · Restricted Project, qt, gpgme, Bug Report
andreasstieger added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

relevant items start at line 4900 ...

[  274s] + pushd lang/qt/tests
Aug 17 2022, 9:29 PM · Restricted Project, qt, gpgme, Bug Report
ikloecker added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

Hmm. Please run the test with

GPGMEPP_INTERACTOR_DEBUG=stderr GPGME_DEBUG=8 TESTS="initial.test t-addexistingsubkey final.test" make -e check-TESTS

in lang/qt/tests under the build folder to get (a lot of) debug output.

Aug 17 2022, 8:28 PM · Restricted Project, qt, gpgme, Bug Report
andreasstieger added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

WIP with those three patches:

Aug 17 2022, 7:09 PM · Restricted Project, qt, gpgme, Bug Report
ikloecker triaged T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration as Normal priority.
Aug 17 2022, 6:50 PM · Restricted Project, qt, gpgme, Bug Report
ikloecker moved T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration from Restricted Project Column to Restricted Project Column on the Restricted Project board.
Aug 17 2022, 4:56 PM · Restricted Project, qt, gpgme, Bug Report
ikloecker claimed T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.
Aug 17 2022, 4:56 PM · Restricted Project, qt, gpgme, Bug Report
werner added a comment to T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.

There is a reason that we switched to ISO Date strings in large parts of GnuPG ;-)

Aug 17 2022, 7:30 AM · Restricted Project, qt, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

@ikloecker Thank you. You're right. Please go ahead.

Aug 17 2022, 1:44 AM · gpgrt, gpgme, Bug Report
andreasstieger updated the task description for T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.
Aug 17 2022, 12:23 AM · Restricted Project, qt, gpgme, Bug Report

Aug 16 2022

andreasstieger updated the task description for T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.
Aug 16 2022, 11:40 PM · Restricted Project, qt, gpgme, Bug Report
andreasstieger updated the task description for T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.
Aug 16 2022, 11:24 PM · Restricted Project, qt, gpgme, Bug Report
andreasstieger created T6137: arch-specific (32 bit) failures in AddExistingSubkeyJobTest::testAddExistingSubkeyWithExpiration.
Aug 16 2022, 11:24 PM · Restricted Project, qt, gpgme, Bug Report

Aug 15 2022

ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

It seems that the case $libdir = '${exec_prefix}/lib64' is not handled correctly, i.e. I get

prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib64
[...]
Libs: -L${libdir} -lgpg-error

in gpg-error.pc.

Aug 15 2022, 10:58 AM · gpgrt, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Note that gpgrt-config supports the PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR environment variables.

Aug 15 2022, 10:12 AM · gpgrt, gpgme, Bug Report
gniibe closed T5438: gpgme_op_keylist_from_data_start ignores GPGME_KEYLIST_MODE_SIGS as Resolved.

It's in 1.18.0.

Aug 15 2022, 2:57 AM · gpgme (gpgme 1.23.x), OpenPGP, Bug Report
gniibe closed T5825: [gpgme] [python] possible dangling reference to passphrase as Resolved.

It's in 1.18.0.

Aug 15 2022, 2:56 AM · patch, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Please note that with newer libgpg-error releases, you can safely not install or can safely remove installed gpg-error-config. For GnuPG and its friends (including gpgme), gpgrt-config with gpg-error.pc are used instead (when no gpg-error-config).

Aug 15 2022, 2:37 AM · gpgrt, gpgme, Bug Report
gniibe added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

gpg-error-config (which is old shell script to offer functionality of pkg-config) gives -L/usr/lib64 when it is configured at the build time.
gpg-error-config hasn't got improved, but kept its behavior (for backward compatibility and lesser surprise), while we are moving to the support of gpg-error.pc (by pkg-config and/or gpgrt-config).

Aug 15 2022, 1:48 AM · gpgrt, gpgme, Bug Report

Aug 14 2022

orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Maybe the solution would be to stop using gpg-error-config and start using pkgconfig instead?

$ pkgconf --libs gpg-error
-lgpg-error
Aug 14 2022, 5:37 PM · gpgrt, gpgme, Bug Report
ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Another problem seems to be that libtool/automake does not differentiate between library dependencies needed for building the library itself and library dependencies that should be exported to users of the library. There's just mylib_la_LIBADD for specifying the internal/private library dependencies and those also end up as dependencies in the .la file. Or maybe the dependencies in the .la file are used by the original libtool only for building static libraries and it's slibtool's fault to also copy the dependencies verbatim when building a shared library.

Aug 14 2022, 1:21 PM · gpgrt, gpgme, Bug Report
ikloecker updated subscribers of T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

I have checked where -L/usr/lib64 comes from. Ultimately, it seems to come from gpg-error-config --libs which outputs -L/usr/lib64 -lgpg-error. I have no idea why gpg-error-config --libs adds the -L/usr/lib64, but this seems very dangerous to me and was bound to cause trouble because a -L applies to everything that follows and not just to the following -l.

Aug 14 2022, 1:07 PM · gpgrt, gpgme, Bug Report

Aug 13 2022

orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

One idea would be that gpgme installs its libraries in a directory like /usr/lib64/gpgme/, but that might be too disruptive?

Aug 13 2022, 6:23 PM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Yes, you are correct.

[pid  1252] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid  1252] access("../../cpp/src/.libs/libqgpgme.so", F_OK) = -1 ENOENT (No such file or directory)
[pid  1252] access("../../cpp/src/.libs/libqgpgme.a", F_OK) = -1 ENOENT (No such file or directory)
[pid  1252] access("../../cpp/src/../../../src/.libs/libqgpgme.so", F_OK) = -1 ENOENT (No such file or directory)
[pid  1252] access("../../cpp/src/../../../src/.libs/libqgpgme.a", F_OK) = -1 ENOENT (No such file or directory)
[pid  1252] access("/usr/lib64/libqgpgme.so", F_OK) = 0
[pid  1252] openat(AT_FDCWD, "/usr/lib64/libqgpgme.so", O_RDONLY|O_CLOEXEC) = 3
[pid  1252] newfstatat(3, "", {st_mode=S_IFREG|0755, st_size=1253896, ...}, AT_EMPTY_PATH) = 0
[pid  1252] mmap(NULL, 1253896, PROT_READ, MAP_PRIVATE|MAP_NORESERVE, 3, 0) = 0x7fe6f6ffa000
[pid  1252] rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
[pid  1252] close(3)                    = 0

As it shows it checks the linker path in the order they are passed to the compiler and then finds the old system library before the newly built library. GNU libtool also sets the /usr/lib64 path before the using libqgpgme library, but avoids this by using the .so file directly. Presumably this is only on compatible platforms and maybe even a problem on less compatible platforms? I'm not sure the ramifications of slibtool trying to reorder the library paths itself. Hopefully the slibtool dev has some time to also share their thought soon.

Aug 13 2022, 6:17 PM · gpgrt, gpgme, Bug Report
ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

You probably have to call strace with -f, so that processes started by clang are also straced.

Aug 13 2022, 5:16 PM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

I attached the strace log of the failing clang command, but I am not seeing anywhere where it finds libqgpgme on the system, Maybe I'm doing something wrong?

Aug 13 2022, 4:53 PM · gpgrt, gpgme, Bug Report
ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Your observations seem to confirm that the linking picks up the old 1.17.1 version of libqgpgme instead of the newly built one. You could use strace to dispel last doubts. In any case this very much looks like a problem in slibtool.

Aug 13 2022, 3:51 PM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

In retrospect this might be better handled in slibtool itself. I'll try to contact the main dev behind the slibtool project, but they have been very busy lately so it might take some time.

Aug 13 2022, 2:29 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Additionally, moving the -L../src/.libs -lqgpgme earlier in the command line works.

clang++ t-revokekey.o t-support.o -g -O2 -L../../cpp/src/.libs -lgpgmepp -L../../cpp/src/../../../src/.libs -lgpgme -L../src/.libs -lqgpgme -L/usr/lib64 -lassuan -lgpg-error -lassuan -L../src/../../cpp/src/.libs -lgpgmepp -L../src/../../cpp/src/../../../src/.libs -lgpgme -lassuan -lgpg-error -L../src/../../../src/.libs -lQt5Core -L../../../src/.libs -lgpgme -lassuan -lgpg-error -lQt5Test -lQt5Core -lstdc++ -o .libs/t-revokekey
Aug 13 2022, 2:07 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

After some experimenting I found how GNU libtool avoids this.

Aug 13 2022, 1:58 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Another interesting detail is that this is reproduced when trying to update to 1.18.0 from 1.17.1 which is installed on the system, but if 1.17.1 is built without qt5 support and 1.18.0 is then this issue is not reproducible.

Aug 13 2022, 1:19 AM · gpgrt, gpgme, Bug Report
orbea added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

revokekeyjob.moc is included by job.cpp (as many other *job.moc files). The missing symbols should be available in the built libqgpgme.so

Aug 13 2022, 1:03 AM · gpgrt, gpgme, Bug Report

Aug 12 2022

ikloecker added a comment to T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject.

Hmm. There is a -L/usr/lib64 before -L../src/.libs. I guess this causes problems if there is a /usr/lib64/libqgpgme.la because this will be found before the newly built libqgpgme.la in the build directory.

Aug 12 2022, 10:48 PM · gpgrt, gpgme, Bug Report
ikloecker triaged T6136: build failure with slibtool - error: undefined symbol: QGpgME::RevokeKeyJob::staticMetaObject as Normal priority.
Aug 12 2022, 10:10 PM · gpgrt, gpgme, Bug Report

Aug 10 2022

werner closed T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python) as Resolved.
Aug 10 2022, 4:01 PM · Python, gpgme, Bug Report
werner closed T6128: Release GPGME 1.18.0 as Resolved.
Aug 10 2022, 4:00 PM · Release Info, gpgme
werner updated the task description for T5872: Release GPGME 1.17.1.
Aug 10 2022, 11:04 AM · Release Info, gpgme
werner triaged T6128: Release GPGME 1.18.0 as Normal priority.
Aug 10 2022, 11:03 AM · Release Info, gpgme

Aug 9 2022

ikloecker closed T5938: gpgme++: Add support for setting the primary user ID as Resolved.
Aug 9 2022, 3:51 PM · gpgme, Restricted Project, Feature Request
ikloecker closed T6126: gpg: Support specifiying user ID to set as primary as UID hash for --quick-set-primary-uid, a subtask of T5938: gpgme++: Add support for setting the primary user ID, as Resolved.
Aug 9 2022, 3:51 PM · gpgme, Restricted Project, Feature Request
ikloecker claimed T5938: gpgme++: Add support for setting the primary user ID.
Aug 9 2022, 8:53 AM · gpgme, Restricted Project, Feature Request
gniibe added a comment to T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

Indeed, you are right. The object created by with can be valid even after the context (when referenced by another object).

Aug 9 2022, 1:52 AM · Python, gpgme, Bug Report

Aug 8 2022

jap added a comment to T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

Not sure if that is the complete fix - if you do something like:

with gpg.Context(...) as context:
    ...
... cause an exception after the context has been closed ...

then context will still be a valid reference to the gpg.Context instance, and may cause segfaults when something tries to access things inside it (f.e. for serialisation).
I like your previous solution with the accessor checks, because that actually fixes the issue.
Stylistically, maybe __del__ should just be renamed to cleanup or free, and then make sure to call that function from both __exit__ and __del__.

Aug 8 2022, 1:14 PM · Python, gpgme, Bug Report
gniibe added a comment to T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

I think the fix should be something like this:

diff --git a/lang/python/src/core.py b/lang/python/src/core.py
index 81f961d9..95fd0cba 100644
--- a/lang/python/src/core.py
+++ b/lang/python/src/core.py
@@ -1189,8 +1189,9 @@ class Context(GpgmeWrapper):
     def __enter__(self):
         return self
Aug 8 2022, 10:54 AM · Python, gpgme, Bug Report
gniibe added a comment to T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

@jap Thank you.

Aug 8 2022, 10:04 AM · Python, gpgme, Bug Report
jap added a comment to T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

Can confirm, we've been running into this as well, but never filed a bug report. Our solution is to have this in our codebase:

Aug 8 2022, 9:02 AM · Python, gpgme, Bug Report

Aug 5 2022

gniibe moved T5438: gpgme_op_keylist_from_data_start ignores GPGME_KEYLIST_MODE_SIGS from For a future release to QA for next release on the gpgme board.
Aug 5 2022, 8:12 AM · gpgme (gpgme 1.23.x), OpenPGP, Bug Report
gniibe moved T5825: [gpgme] [python] possible dangling reference to passphrase from Backlog to Python stuff on the gpgme board.
Aug 5 2022, 8:10 AM · patch, gpgme, Bug Report
gniibe moved T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python) from Backlog to Python stuff on the gpgme board.
Aug 5 2022, 8:10 AM · Python, gpgme, Bug Report
gniibe claimed T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python).

The SEGV was due to access to gpgme library after self.wrapped is set to None in the __del__ function.

Aug 5 2022, 8:04 AM · Python, gpgme, Bug Report
gniibe added a comment to T5825: [gpgme] [python] possible dangling reference to passphrase.

The commit is: rMb2f224a471fe: python: Reset passphrase callback correctly..

Aug 5 2022, 7:59 AM · patch, gpgme, Bug Report
gniibe claimed T5825: [gpgme] [python] possible dangling reference to passphrase.

Thank you for the patch. You are right.

Aug 5 2022, 4:09 AM · patch, gpgme, Bug Report

Aug 4 2022

ikloecker added a comment to T5951: gpgme: Add support for refreshing OpenPGP keys.

I have kept a backup copy of a WKDRefreshJob locally. ;-) But that's stuff for a different task.

Aug 4 2022, 3:56 PM · gpgme, Restricted Project
aheinecke added a comment to T5951: gpgme: Add support for refreshing OpenPGP keys.

Thanks, the update button this is now more what I think is expected. Still I am not sure if removing it completely was neccessary, well we have it in the history now. Because I see the need to also update via WKD. Currently we only update from there if a key is expired but we would never see revocations. That is a problem that we will need some solution for at some point. But yeah in that case calling it "RefreshOpenPGPKeysJob" would be a misleading API Name anyhow. So its probably good that you removed it before the upcoming release.

Aug 4 2022, 3:34 PM · gpgme, Restricted Project
ikloecker changed the status of T5951: gpgme: Add support for refreshing OpenPGP keys from Open to Testing.

See T5903: Kleopatra: Add refresh button in certificatedetails for the corresponding Kleopatra task. Kleopatra now uses the good old ReceiveKeysJob for doing a key refresh from the configured key server. The RefreshOpenPGPKeysJob has been removed.

Aug 4 2022, 1:40 PM · gpgme, Restricted Project

Aug 3 2022

aheinecke added a comment to T5951: gpgme: Add support for refreshing OpenPGP keys.

I thought "Update" would do a key server refresh by fingerprint. Maybe I looked at the wrong job? In testing we noticed this because we suddenly had additional keys after using "update". "Update" in the certificate details should only search by fingerprint. Maybe when we know that the key source is WKD we could also look by mail address?

Aug 3 2022, 3:32 PM · gpgme, Restricted Project
ikloecker added a comment to T5951: gpgme: Add support for refreshing OpenPGP keys.

Okay. I do a KeyListJob with key list mode GpgME::LocateExternal which does the equivalent of --locate-external-keys and that depends on the auto-key-locate mechanisms which could include keyserver and other mechanisms besides WKD.

Aug 3 2022, 3:20 PM · gpgme, Restricted Project
ikloecker added a comment to T5951: gpgme: Add support for refreshing OpenPGP keys.

The lookup by email address is supposed to be done via WKD. Obviously, a lookup by fingerprint wouldn't work. And yes, obviously this may import additional key via WKD.

Aug 3 2022, 3:08 PM · gpgme, Restricted Project
aheinecke reopened T5951: gpgme: Add support for refreshing OpenPGP keys as "Open".

I am reopening this as the current behavior is strange in my opinion and should be changed before a release.
Currently the refreshopenpgpkeysjob does not refresh the OpenPGP Key by fingerprint but instead imports all keys with a similar e-mail address. This does not work for keys with no email. Also in case of public keyservers it can pull in keys that not belong to the user or are expired and so on.

Aug 3 2022, 2:41 PM · gpgme, Restricted Project

Jul 26 2022

werner triaged T6060: segfault (NULL-pointer) when inspecting gpg Context after exception (python) as Normal priority.
Jul 26 2022, 8:59 PM · Python, gpgme, Bug Report

Jul 22 2022

SpriteOvO added a comment to T6078: File `config.guess` is a little out of date.

@gniibe Thanks!

Jul 22 2022, 6:41 PM · gpgme, pinentry, scute, ntbtls, libksba, libassuan, npth, libgcrypt, gpgrt, gnupg, Bug Report
gniibe closed T6078: File `config.guess` is a little out of date as Resolved.

In the repo, for all related software, it's done.

Jul 22 2022, 3:42 AM · gpgme, pinentry, scute, ntbtls, libksba, libassuan, npth, libgcrypt, gpgrt, gnupg, Bug Report
gniibe added a comment to T6078: File `config.guess` is a little out of date.

Note that versions since 2020-11-07 to 2021-07-03 have major problem with non-POSIX shell, which doesn't support $(..) construct.

Jul 22 2022, 3:40 AM · gpgme, pinentry, scute, ntbtls, libksba, libassuan, npth, libgcrypt, gpgrt, gnupg, Bug Report

Jul 18 2022

gniibe triaged T6078: File `config.guess` is a little out of date as Normal priority.

Thank you.

Jul 18 2022, 10:56 AM · gpgme, pinentry, scute, ntbtls, libksba, libassuan, npth, libgcrypt, gpgrt, gnupg, Bug Report

Jul 5 2022

mlaurent closed D558: qt: Add #include <QStringList> needed for building against qt6.
Jul 5 2022, 6:56 AM · gpgme

Jul 4 2022

ikloecker added a comment to D558: qt: Add #include <QStringList> needed for building against qt6.

Please arc close-revision D558 this revision.

Jul 4 2022, 7:50 PM · gpgme