Red Hat Bugzilla – Bug 975332
Even if rubygem-ffi is installed, the gem cannot be used
Last modified: 2014-03-31 14:24:32 EDT
Description of problem:
When I install rubygem-ffi-1.0.9-8.el6.x86_64.rpm from EPEL, gem list does not show the gem and attempt to install gem which requires ffi fails:
# gem install --local /root/rpmbuild/SOURCES/gssapi-1.1.2.gem
ERROR: While executing gem ... (Gem::DependencyError)
Unable to resolve dependencies: gssapi requires ffi (>= 1.0.1)
When I install the package from Katello koji http://koji.katello.org/koji/buildinfo?buildID=2072, things work.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install rubygem-ffi from EPEL.
2. Run gem list
# gem list
*** LOCAL GEMS ***
# gem list
*** LOCAL GEMS ***
When I unpack the two rpms and diff them, the difference is
# diff -ru rubygem-ffi-1.0.9-5.el6.x86_64 rubygem-ffi-1.0.9-8.el6.x86_64
Only in rubygem-ffi-1.0.9-5.el6.x86_64/usr: lib
Only in rubygem-ffi-1.0.9-8.el6.x86_64/usr/lib64: gems
Only in rubygem-ffi-1.0.9-5.el6.x86_64/usr/lib64: ruby
Only in rubygem-ffi-1.0.9-8.el6.x86_64/usr: share
And since gem env shows
# gem env
- RUBYGEMS VERSION: 1.8.16
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- GEM PATHS:
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
I assume rubygem-ffi-1.0.9-8.el6.x86_64's lack of the /usr/lib directory is the cause of the problem.
Created attachment 878984 [details]
Attached is a patch against the el6 git branch that fixes the build issues with placement of the library and gemspec.
Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=6675314 (works for me)
Dominic, there is possible to use the Fedora approach, i.e. to require rubygems-devel with all the macros. The only difference between should be the ruby(abi).
Created attachment 879035 [details]
dist-git patch #2
(In reply to Vít Ondruch from comment #2)
> Dominic, there is possible to use the Fedora approach, i.e. to require
> rubygems-devel with all the macros. The only difference between should be
> the ruby(abi).
Thanks, I forgot rubygems-devel is now available in EL6. It seems that neither ruby_sitearch or gem_extdir* are defined though, so unless I'm missing something, I'll still need to define and use ruby_sitearch.
Attached a new patch which removes lots of %globals and relies on rubygems-devel.
You don't need to move the extension anywhere, since it is already installed into platform specific directory => You don't need gem_extdir nor ruby_sitearch.
The .so gets installed into this path inside an x86_64 buildroot:
Is that acceptable? I thought it'd have to be under /usr/lib64 at least, hence the mv to /usr/lib64/ruby/site_ruby/1.8/x86_64-linux.
If there's a reference (native) rubygem I could base this on, that'd be useful, as I'm looking at rubygem-nokogiri at the moment. Or if you have the time to fix it yourself, that'd be great too. Thanks.
Hm, interesting. I thought that the gems were installed into platform specific directories, but apparently, I was wrong. Then the sitearch dir is the right one. Sorry for confusion.
rubygem-ffi-1.0.9-9.el6 has been submitted as an update for Fedora EPEL 6.
* should fix your issue,
* was pushed to the Fedora EPEL 6 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing rubygem-ffi-1.0.9-9.el6'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).
rubygem-ffi-1.0.9-9.el6 has been pushed to the Fedora EPEL 6 stable repository. If problems still persist, please make note of it in this bug report.