Page MenuHome GnuPG

Libkleo, GpgOL: Use global inst-type flag of GPGME
Closed, ResolvedPublic

Description

We should really do this before the next release, since 1c9694f8d50b1236d2e4f2acbe23f972da36e437 GPGME offers a way for us to "force" that either the Gpg4win or GnuPG VS-Desktop layout is used to search for binaries like gpgconf. Without registry or other PATHS that might be overwritten by other GnuPG installations on the same system.

This can easily be done in the Gpg4win version check in libkleo/src/utils/gnupg.cpp Although this might be a bit too late. This is a bit related to what to do with https://dev.gnupg.org/T6344 the difficulty is that Kleopatra determines if it is installed as GnuPG VS-Desktop by looking for the signed VERSION file. But IMO it would be ok to set the inst-type to GnuPG VS-Desktop if we find the signature of the VERSION file and just reset it to Gpg4win if the signature check fails. Related to: T6344 which is about the About data.

Also 1c9694f8d50b1236d2e4f2acbe23f972da36e437 is not yet in a released GPGME Version.

Edit: While I thought about libkleo, this only helps for the Gpg4win-Tools in GgpOL. So we can extend GPGME to set the default depending on the existence of the VERSION file? And Kleopatras full compliance check would later overwrite it if the Signature check fails? Otherwise we would have code duplication.

Event Timeline

aheinecke created this task.
aheinecke renamed this task from Libkleo: Use global inst-type flag of GPGME to Libkleo, GpgOL: Use global inst-type flag of GPGME.Jan 30 2023, 2:35 PM
aheinecke updated the task description. (Show Details)
aheinecke moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

As discussed with Werner, the initial default will be changed "guessed" in GPGME to avoid code duplication between libkleo and GPGME.

werner added a project: gpgme.

The gpgme part has been done. Some minor changes in Kleopatra regarding the VERSION file checking would be useful.

aheinecke moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

Works good enough for me