Re: GPGME 1.23.1
Denis Corbin <[email protected]> Thu, 9 Nov 2023 22:17:36 +0100
| Newsgroups | gmane.comp.sysutils.backup.dar.support |
|---|---|
| Message-ID | <[email protected]> |
On 09/11/2023 21:05, Marcin Wieczorek wrote: > Well the symlink trick worked, details from my os below. > My backup is being created at the moment, I'll let you know if there are > any issues when I actually test it. OK good to know, [...] >> You will end with a dar source package that should rely on gpgrt-config on >> you system and thus be able to detect libgpgme presence... compile and >> install dar/libdar. > > Unless there is some magic stored in the git repo (and removed from tgz) > I don't see how using git would turn gpgme-config to gpgrt-config. But I > don't know your codebase. There is no more magic if I/you explain/understand the process: To build the configure script, which is necessary to setup and then compile dar/libdar from the source code found in git, you execute the script misc/init also found in git: https://raw.githubusercontent.com/Edrusb/DAR/master/misc/init This script invokes in particular the autoconf command, which reads the dar's configure.ac file in order to build the expected configure script. autoconf relies on m4 files gathered from the current operating system (by mean of 'aclocal -I m4' command). But theses m4 definitions are expected to be portable. When autoconf reads the 'AM_PATH_GPGME' string from dar's configure.ac file, it looks for its definition in the m4 files and replaces this string by the definition he has found (which today either relies on gpgme-config or gpgrt-config), something that comes with the libgpgme package. The resulting configure script should be a portable shell script that invokes commands, tests their existence, their output and in consequence, defines a set of C macros (#define...) gathered in the config.h file. This config.h file is included everywhere in dar/libdar code and depending on the macros existence or value, leads to include or not include a particular system header file, activate or not activate a given feature: For example bzip2 compression will not be activated if "#define HAVE_LIBBZ2" is not set to "1", and the <bzlib.h> file will not included at compilation time nor at linking time the "-lbz2" will be used. So yes, the result is magic: the same dar/libdar code adapts to the context and compiles with and without libbz2, zlib, libgpgme, libargon2 presence. There is even some more weird things where a given Unix symbol is defined in <unistd.h> on some system, in <fcntl.h> and <sys/types.h> on some other systems and so on... Sometimes this is even different symbols (bcopy vs memcpy) that are present either one here or the other there, and even both at time on some Unix system. Without autoconf to detect and setup all these possibilities dar/libdar would not "magically" compile on FreeBSD, Debian, Arch, RedHat, Android, VoidLinux, Windows and I probably forget some others... without code modification. > > For the record I am the maintainer of the dar package in Arch User > Repository, which is a community maintained repository of packages for > the ArchLinux system. OK, I understand. > I have my dar fixed, but that won't help other > uses. I'll consult the distro docs or IRC to figure out if I can modify > PATH to fake the symlink (during build). In the meantime if something > changes upstream about the issue I'd love to know. I will test the building of the configure file using a more recent libgpgme library (the same as the one you were using: version 1.23.1) and see if the new macro definition brought by libgpgme is backward compatible (Read, if the new macro can work with both gpgme-config and gpgrt-config which ever the system has). If so I'll make an updated tarball for release 2.7.13. Else, I'm afraid that any package of dar code I will produce may not always detect the presence of libgpgme depending on the version of libgpgme the system has... > > I kindly thank you for your help. You're welcome, > > Best regards, > Marcin Wieczorek > > Cheers, Denis
OpenPGP_signature.asc
(application/pgp-signature, 840 B)
-----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEEVeSEpqXFvH9T9/cuqLFBYNNrO6cFAmVNTHAFAwAAAAAACgkQqLFBYNNrO6dE dA/+OYugwH7cBGn9EUQexxZE5cis6tXtdgXN2Aj0+KLCLwW7ButDFhnimReqKc3gU7baQBkHG7ID BkNPEhMmketpI1zre1eXqbCDfmFCnPm6QfjNpVH6s/aqmOZKH5hV2mGrGZ1Iia9WIFh3uN/E3bXR rWY1sJ3cI4ZA3KJs4yoZ+O6WF6gvKFww9mqJ46dB/f6cyYa8dOXM0BdooE1rzF/4AcAD+DpnGecM x1fLUmwm8rN7Co0SzoTWtU6HrBfupWLEmJ3yVLEIdqXmupkoF618E4gePyOf1s0RlAt1E25OXDHT PoqI3MF/PPbcFH/Go7GbM4E4QqSPzjOXZ8RghJx6vPndGHXFlLy/X9NLy4A5jkd8odzCT1BdtRiz RwfgUVMakxRBRgOHJdhIcs0VSpt1uUrc4L7XKVyal+hpOtsgvve0mOlIJ0cxRdwYlqzXBT8CvEYt BmELQRMzmsxiVSXptl+dNHDLK9z4KZsHRGUPcTEYg6+IqdAlcWUZmR4wD2RaBeaGSpqpeA53zRMW oimV8lB/VQy9zPiRa/L+54dCHAIT/ogrr5CrbrYrnGymMXj/x26BdixnB3kTRSuPiegSaOXEFFH4 QJs8cNojs1/8DzhBNW4WlFRggoxUZodLI3zdQMILrU1ObDUVhOX0MnqjCNSNp2jS7/UD3hhMU7eP D3s= =vJok -----END PGP SIGNATURE-----