Description of problem: "gpgme-config --libs" does not included -lgpg-error, which is required for programs using the gpgme API for proper error reporting. Version-Release number of selected component (if applicable): How reproducible: Always. Steps to Reproduce: 1. Run "gpgme-config --libs" 2. 3. Actual results: Returns: -lgpgme Expected results: Should return: -lgpgme -lgpg-error Additional info:
This is intentional. IMHO, apps that use libgpg-error should link it explicitly, and not depend on it being pulled in from elsewhere (like libgpgme) Which apps/pkgs depend on this that require fixing? (I'll be happy to help fix/patch things as required).
Try building mutt: $ rpmbuild --with gpgme mutt.spec ... /usr/bin/ld: crypt-gpgme.o: undefined reference to symbol 'gpg_strerror' /usr/bin/ld: note: 'gpg_strerror' is defined in DSO /lib/libgpg-error.so.0 so try adding it to the linker command line /lib/libgpg-error.so.0: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [mutt] Error 1 make[2]: Leaving directory `/home/melkins/rpmbuild/BUILD/mutt' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/melkins/rpmbuild/BUILD/mutt' make: *** [all] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.x2hPO9 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.x2hPO9 (%build)
Just as a note, Fedora's current behavior diverges from the default behavior of the upstream gpgme 1.3.0 version. This creates as issue for those of us building software that is host OS/distribution agnostic.
I've sent the gpgme 'behavior change' patch upstream, but it seems to not have been acted upon yet. I guess I'll have to re-ping them, and consider dropping it if they outright reject it. In the meantime, I stand by my claim that apps that actively use any library should explictly link them, and not depend on external dependancies. Initial patch for mutt forthcoming.
Created attachment 436954 [details] fix dso linkage when building --with gpgme This patch before './prepare -V' step, plus BuildRequires: libgpg-error-devel should do the trick.
Hm, so is the mutt patch only temporary or should it go upstream? It's not needed in our default configuration, so I'm not sure it makes sense to include it if it will be dropped later.
Hopefully my opinion is clear enough ( see comment #1 and comment #4 )
Should be fixed in mutt-1.5.21-1.fc15.