Closed stanhu closed 1 year ago
Thanks @ueno! Would you mind tagging 2.0.23 with this?
I'm not sure if this single change qualifies a new release: we had no checks on the existence of gpgme-config
for a decade and the issue can be easily worked around.
@ueno The issue is that there is a regression in v2.0.22 due to #166. You can install a broken version of gpgme
without knowing it by compiling all the gpgme
dependencies from source, installing them in custom prefix, and then then running:
root@160b17998071:/# RUBY_GPGME_USE_SYSTEM_LIBRARIES=1 gem install gpgme
Building native extensions. This could take a while...
Successfully installed gpgme-2.0.22
Parsing documentation for gpgme-2.0.22
Done installing documentation for gpgme after 0 seconds
1 gem installed
The gem is broken:
root@160b17998071:/# irb
irb(main):001:0> require 'gpgme'
Traceback (most recent call last):
10: from /usr/bin/irb:23:in `<main>'
9: from /usr/bin/irb:23:in `load'
8: from /usr/lib/ruby/gems/2.7.0/gems/irb-1.2.1/exe/irb:11:in `<top (required)>'
7: from (irb):1
6: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:156:in `require'
5: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require'
4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `require'
3: from /var/lib/gems/2.7.0/gems/gpgme-2.0.22/lib/gpgme.rb:3:in `<top (required)>'
2: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
LoadError (/var/lib/gems/2.7.0/gems/gpgme-2.0.22/lib/gpgme_n.so: undefined symbol: gpgme_data_release - /var/lib/gems/2.7.0/gems/gpgme-2.0.22/lib/gpgme_n.so)
https://github.com/ueno/ruby-gpgme/pull/166 changed from
pkg-config
togpgme-config
, but ifPKG_CONFIG_PATH
is not set properly, the C extension library will quietly build without the right linker dependencies.To fix this, we now check for the existence of
gpgme.pc
inPKG_CONFIG_PATH
and attempt to fall back togpgme-config
if it does not exist.Closes https://github.com/ueno/ruby-gpgme/issues/167