Page MenuHome GnuPG

GpgOL: build: Update for new gpgrt-config and *.pc
Open, NormalPublic

Description

Replacing *-config commands, we now use gpgrt-config and *.pc (or pkg-config).

GpgOL still uses old gpg-error.m4, libassuan.m4, and gpgme.m4, which need to be updated.

Event Timeline

Here we go:

aheinecke triaged this task as Normal priority.
aheinecke added a subscriber: aheinecke.

Cool, I will try it out ASAP. You must have read my mind. Only yesterday evening I ran into problems because the current code in src/Makefile.am to symlink the static libs did not work on my new dev system with a lib64 layout and thought that I needed just a patch like this to fix it properly.

I have pushed the patch, but still it did not work for me properly over everything and I had to add --enable-install-gpg-error-config to libgpg-error. This was because of at least the 64 bit build of libassuan-master it picked up gpg-error-config from my host system. I then tried to add --with-gpg-error-prefix to the assuan call but that failed because it only looked for gpg-error-config in this prefix and not for any gpgrt-config and failed immediately with a command not found error.

Not really sure how to continue here. The main advantage for me was that with gpgrt-config I could use "gpgrt-config --variable=libdir" which resolved the issue of whether or not the 64bit lib is installed under "lib" or "lib64". (https://dev.gnupg.org/rO74e04a416f2abac854e6a5328f2fc133a3f07734 ) But when I do not know if gpg-error-config is used or gpgrt-config I can't really make use of that.

@aheinecke Please show me how you configure your libassuan-master (and the output which detects host's gpg-error-config erroneously).

For *.m4 scripts, I pushed changes to prefer gpgrt-config with *.pc files than *-config scripts (T5034).
Before the change, it was not coherent; gpgrt-config gpg-error is preferred to gpg-error-config (if available), but libassuan-config was used if available.
After the change, gpgrt-config is used to configure gpg-error and libassuan, etc.

Looking your change rO74e04a416f2a: w64: Support static linkage with lib64 libdir, IIUC, you are using multilib version of MinGW-w64.
If so, it might need some changes. At least, I need to test the configuration to see what's going on with multilib MinGW-w64.

gpgrt-config has been tested by:
(1) Native build with /usr/local non-multiarch-multilib
(2) Native build with /usr non-multiarch-multilib
(3) Native build with /usr/local for multiarch libs (like Debian)
(4) Native build with /usr for multilib libs (like SuSE and Fedora)
(5) Cross build for (1)-(4)
(6) Cross build with MinGW-w64 for i686 (non-multilib version of MinGW-w64)
(7) Cross build with MinGW-w64 for x86_64 (non-multilib version of MinGW-w64)

I created a new task for this: T6264: gpgrt-config: Support multilib MinGW-w64

I updated *.m4 scripts in gogol: