Due to a recent update on Javascript code a full page refresh on your browser might be needed.
Bug 847482 - The latest update of ruby-libs created lots of new dependencies
Summary: The latest update of ruby-libs created lots of new dependencies
Alias: None
Product: Fedora
Classification: Fedora
Component: ruby
Version: 17
Hardware: Unspecified
OS: All
Target Milestone: ---
Assignee: Vít Ondruch
QA Contact: Fedora Extras Quality Assurance
: 847428 (view as bug list)
Depends On: 752785
TreeView+ depends on / blocked
Reported: 2012-08-11 23:53 UTC by Václav Mocek
Modified: 2012-08-22 21:01 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2012-08-22 21:01:18 UTC
Type: Bug

Attachments (Terms of Use)

Description Václav Mocek 2012-08-11 23:53:38 UTC
Description of problem:

The latest update of ruby-libs (rhbz#845011) created lots of new dependencies. It used to be time, when I installed Vim and only ruby-libs was installed. After the latest update Vim requires the following packages: ruby-libs, ruby, ruby-irb, rubygem-bigdecimal, rubygem-io-console, rubygem-json, rubygem-rdoc, rubygems.

Vim can be considered as a part of the base system and if such growth of dependencies continues we could rule out a small installation soon. 

Version-Release number of selected component (if applicable):
ruby-libs based on ruby-

Comment 1 Vít Ondruch 2012-08-13 05:21:40 UTC
This is not a bug in Ruby, but vim packaging. Please see Bug 752785.

Comment 2 Mads Kiilerich 2012-08-13 10:04:30 UTC
It is a vim "feature" that it has a hard dependency to ruby-libs, but the dependencies of vim-enhanced-7.3.556-1.fc17 are satisfied by ruby-libs- without pulling in other ruby packages.

Now we get:

[root@dev-mk ~]# rpm -qa vim* *ruby*|sort
[root@dev-mk ~]# yum update
Loaded plugins: langpacks, merge-conf, refresh-packagekit
Resolving Dependencies
--> Running transaction check
---> Package ruby-libs.i686 0: will be updated
---> Package ruby-libs.i686 0: will be an update
--> Processing Dependency: ruby(rubygems) >= 1.8.23 for package: ruby-libs-
--> Running transaction check
---> Package rubygems.noarch 0:1.8.24-1.fc17 will be installed
--> Processing Dependency: rubygem(rdoc) >= 3.9.4 for package: rubygems-1.8.24-1.fc17.noarch
--> Processing Dependency: rubygem(io-console) >= 0.3 for package: rubygems-1.8.24-1.fc17.noarch
--> Processing Dependency: /usr/bin/ruby for package: rubygems-1.8.24-1.fc17.noarch
--> Running transaction check
---> Package ruby.i686 0: will be installed
--> Processing Dependency: rubygem(bigdecimal) >= 1.1.0 for package: ruby-
---> Package rubygem-io-console.i686 0:0.3-14.fc17 will be installed
---> Package rubygem-rdoc.noarch 0:3.12-3.fc17 will be installed
--> Processing Dependency: rubygem(json) < 2 for package: rubygem-rdoc-3.12-3.fc17.noarch
--> Processing Dependency: rubygem(json) >= 1.4 for package: rubygem-rdoc-3.12-3.fc17.noarch
--> Processing Dependency: ruby(irb) for package: rubygem-rdoc-3.12-3.fc17.noarch
--> Running transaction check
---> Package ruby-irb.noarch 0: will be installed
---> Package rubygem-bigdecimal.i686 0:1.1.0-14.fc17 will be installed
---> Package rubygem-json.i686 0:1.6.5-1.fc17 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

 Package            Arch   Version            Repository
 ruby-libs          i686  updates 2.6 M
Installing for dependencies:
 ruby               i686  updates 1.0 M
 ruby-irb           noarch  updates  72 k
 rubygem-bigdecimal i686   1.1.0-14.fc17      updates  69 k
 rubygem-io-console i686   0.3-14.fc17        updates  42 k
 rubygem-json       i686   1.6.5-1.fc17       fedora  467 k
 rubygem-rdoc       noarch 3.12-3.fc17        fedora  218 k
 rubygems           noarch 1.8.24-1.fc17      fedora  174 k

Transaction Summary
Install             ( 7 Dependent packages)
Upgrade  1 Package

Total download size: 4.6 M

That is a change that might be necessary and thus OK in a major update, but it should be avoided in a stable update if at all possible.

It seems like ruby-libs has grown a
Requires:   ruby(rubygems) >= %{rubygems_version}
I guess it would be better to have
Conflicts:   ruby(rubygems) < %{rubygems_version}
- if it is necessary at all.


Comment 3 Mads Kiilerich 2012-08-13 10:07:08 UTC
*** Bug 847428 has been marked as a duplicate of this bug. ***

Comment 4 Vít Ondruch 2012-08-13 10:27:04 UTC
It was bug in Ruby packaging (Bug 845011) and bug needs to be fixed. I am sorry that nobody noticed/pointed it earlier.

Comment 5 Mads Kiilerich 2012-08-13 12:25:18 UTC
The change introduced a circular dependency between these 8 packages, and there is now no way ruby-libs can be used without the ruby package. It might be a lesser evil right now from some point of view, but it looks a lot like a bug to me.

I could to some extent understand if this was closed as WONTFIX and the 3 ruby packages were merged. Having one upstream source split up in multiple mutually dependent sub packages is misleading and bad packaging.

Comment 6 Vít Ondruch 2012-08-13 12:47:14 UTC
The circular dependency is inevitable. RubyGems depends on Ruby while Ruby needs RubyGems. It is how it is.

Merging everything into one package is probably not ideal.

Comment 7 Mads Kiilerich 2012-08-13 13:09:21 UTC
What is the advantage of having separate ruby subpackages if they can't be installed separately? I consider one package more ideal than having multiple subpackages for no reason.

It seems strange that two different upstreams have a mutual dependency, but if that is how it is, then so be it.

Comment 8 Václav Mocek 2012-08-13 19:23:18 UTC
Well, it seems that the proper fixing requires changes on Vim's side. I am not happy with that, but thank you for your effort.

Comment 9 Vít Ondruch 2012-08-14 07:52:50 UTC
(In reply to comment #7)
Well, in current situation, the ruby package could be dropped. But RubyGems has its own upstream and separate release schedule, although they are bundled with Ruby. Also, they are separate package.

Comment 10 Vít Ondruch 2012-08-14 07:55:27 UTC
Uh, actually, the ruby-libs could be merged into ruby. Or different possibility would be to split rubygems package somehow, to remove the executable from it for example. But neither of this will improve the situation IMO.

Comment 11 Mamoru TASAKA 2012-08-14 08:39:01 UTC
Well, maybe the easiest solution is to just "touch" %_libdir/ruby/rubygems.rb.

If rubygems is installed, rubygems.rb will be loaded from /usr/share/rubygems first (because of current load path). When rubygems is not installed, empty %_libdir/ruby/rubygems.rb will be loaded. Even with this situation ruby -e "puts 1 + 2" or ruby -e "puts RUBY_VERSION" still work, and the test case bug 845011 is still okay.

Comment 12 Vít Ondruch 2012-08-14 08:58:26 UTC
(In reply to comment #11)
I don't like it. RubyGems have to be installed. That is current expectation for Ruby 1.9.

Comment 13 Mamoru TASAKA 2012-08-14 09:19:54 UTC
(In reply to comment #12)
> (In reply to comment #11)
> I don't like it. 

But as this bug show, there are much more people who don't like the current state.

Comment 14 Vít Ondruch 2012-08-14 10:42:47 UTC
Going to revert Bug 845011 to solve this. Sorry guys for the mess.

Comment 15 Fedora Update System 2012-08-14 13:13:31 UTC
ruby- has been submitted as an update for Fedora 17.

Comment 16 Fedora Update System 2012-08-14 21:59:54 UTC
Package ruby-
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing ruby-'
as soon as you are able to.
Please go to the following url:
then log in and leave karma (feedback).

Comment 17 Fedora Update System 2012-08-22 21:01:18 UTC
ruby- has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Note You need to log in before you can comment on or make changes to this bug.