GPGME question: who uses /usr/include/{gpgmepp, qgpgme}_version.h ?

Andre Heinecke aheinecke at intevation.de
Tue Nov 1 10:06:38 CET 2016


Hi,

On Monday 31 October 2016 15:01:21 Daniel Kahn Gillmor wrote:
> i just realized that in addition to /usr/include/qgpgme/ and
> /usr/include/gpgme++/, GPGME's development headers want to ship
> /usr/include/qgpgme_version.h and /usr/include/libgpgmepp_version.h.
> 
> These files contain #define macros for the version information of the
> library that's being built against.
> 
> What's the reason for having these two files at the same level
> (/usr/include/) instead of shipping them inside the shipped directories?
> For example, why not ship /usr/include/qgpgme/version.h instead?

This was because it was done this way in the KDE Frameworks variants. In KDE 
Frameworks the version headers are installed under the KF5 prefix and the 
actual headers are installed in subdirectories.

So you have:
<prefix>/include/KF5/gpgme++
and:
<prefix>/include/KF5/gpgmepp_version.h

ls <prefix>include/KF5/*version.h | wc -l
113

I just kept it this way when dropping the KF5 prefix.

> On my own dev workstation, i see many more packages following the
> foo/version.h approach:
> 
>     0 dkg at alice:~$ ls /usr/include/*/*version.h | wc -l
>     29
>     0 dkg at alice:~$ ls /usr/include/*version.h | wc -l
>     4
>     0 dkg at alice:~$
> 
> Is there a reason to use ${library}_version.h instead of putting the
> file inside the shipped directory?  fwiw, if there's a concern about
> backward compatibility, I've looked on https://codesearch.debian.net and
> i don't see anyone using these version.h files directly in debian at all
> at the moment.

I don't see a reason for why they are outside the directory. I take it your 
recommendation is to move them inside, so I'll follow your recommendation.

But, I'll keep the name to be qgpgme_version.h and gpgmepp_version.h to avoid 
ambiguities if someone directly includes /usr/include/qgpgme and 
/usr/include/gpgmepp.

I am also unaware of any user of these headers but I think they can be useful 
in software using it to require a lower minimum version and ifdef out features 
that would require a newer version without having to write fine grained feature 
checks.

Regards,
Andre

-- 
Andre Heinecke |  ++49-541-335083-262  | http://www.intevation.de/
Intevation GmbH, Neuer Graben 17, 49074 Osnabrück | AG Osnabrück, HR B 18998
Geschäftsführer: Frank Koormann, Bernhard Reiter, Dr. Jan-Oliver Wagner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: This is a digitally signed message part.
URL: </pipermail/attachments/20161101/9501d8f7/attachment.sig>


More information about the Gnupg-devel mailing list