Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 312971 - Please re-keyword dev-ruby/sinatra-1.0 and new dependency
Summary: Please re-keyword dev-ruby/sinatra-1.0 and new dependency
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All All
: High enhancement (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords: KEYWORDREQ
Depends on:
Blocks:
 
Reported: 2010-04-03 13:41 UTC by Hans de Graaff
Modified: 2010-06-30 06:46 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hans de Graaff gentoo-dev Security 2010-04-03 13:41:01 UTC
I've dropped the x86 keyword from dev-ruby/sinatra-1.0 due to a new dependency. Please test and re-add the keyword.

dev-ruby/erubis-2.6.5
dev-ruby/sinatra-1.0
Comment 1 Andreas Schürch gentoo-dev 2010-05-05 07:30:21 UTC
It has a un-keyworded dep and conflicts with dev-ruby/rack-test-0.5.3 when it comes to  =dev-ruby/rack-1.0*!

# tail /etc/portage/package.keywords/arch -n 7
=dev-ruby/sinatra-1.0 **
dev-ruby/haml
dev-ruby/rack-test
dev-ruby/rack
dev-ruby/test-spec
dev-ruby/mocha

# emerge -av sinatra

 * IMPORTANT: 2 news items need reading for repository 'gentoo'.
 * Use eselect news to read news items.                         


These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:                

dev-ruby/rack:0

  ('ebuild', '/', 'dev-ruby/rack-1.0.1-r1', 'merge') pulled in by
    =dev-ruby/rack-1.0*[ruby_targets_ruby18] required by ('ebuild', '/', 'dev-ruby/rack-test-0.5.3', 'merge')

  ('ebuild', '/', 'dev-ruby/rack-1.1.0', 'merge') pulled in by
    >=dev-ruby/rack-1.0[ruby_targets_ruby18] required by ('ebuild', '/', 'dev-ruby/sinatra-1.0', 'merge')


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are       
impossible to satisfy simultaneously. If such a conflict exists in the
dependencies of two different packages, then those packages can not be
installed simultaneously. You may want to try a larger value of the   
--backtrack option, such as --backtrack=30, in order to see if that will
solve this conflict automatically.                                      

For more information, see MASKED PACKAGES section in the emerge man page
or refer to the Gentoo Handbook.                                        


!!! All ebuilds that could satisfy ">=dev-ruby/abstract-1.0.0[ruby_targets_ruby18]" have been masked.
!!! One of the following masked packages is required to complete your request:
- dev-ruby/abstract-1.0.0 (masked by: missing keyword)

(dependency required by "dev-ruby/erubis-2.6.5" [ebuild])
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])
(dependency required by "sinatra" [argument])

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
Comment 2 Hans de Graaff gentoo-dev Security 2010-05-06 18:12:19 UTC
Good catch on the additional dependency, that also needs to be keyworded:

dev-ruby/abstract-1.0.0

As for the rack situation, it looks like we added dev-ruby/rack-test specifically to support sinatra's tests, so I've adjusted dev-ruby/sinatra's requirement to be similar to that of rack-test. This should fix the conflict you reported.

Thanks for the report!
Comment 3 Andreas Schürch gentoo-dev 2010-05-07 05:14:19 UTC
dev-ruby/haml-2.2.24 and some others should probably depend on a few packages with higher version numbers than currently stable, because of "Missing IUSE: ruby_targets_ruby18" on older ebuilds...


- dev-ruby/hpricot-0.6 (Missing IUSE: ruby_targets_ruby18)                                           
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                             
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                             
(dependency required by "sinatra" [argument])                  



- dev-ruby/actionpack-2.3.5 (Missing IUSE: ruby_targets_ruby18)                                         
- dev-ruby/actionpack-2.2.3-r1 (Missing IUSE: ruby_targets_ruby18)                                      
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                                
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                                
(dependency required by "sinatra" [argument])   


- dev-ruby/actionmailer-2.3.5 (Missing IUSE: ruby_targets_ruby18)                                             
(dependency required by "dev-ruby/actionpack-2.3.5-r1" [ebuild])                                              
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                                      
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                                      
(dependency required by "sinatra" [argument])      

                 
- dev-ruby/activerecord-2.3.5 (Missing IUSE: ruby_targets_ruby18)                                             
(dependency required by "dev-ruby/actionpack-2.3.5-r1" [ebuild])                                              
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                                      
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                                      
(dependency required by "sinatra" [argument])                


- dev-ruby/activesupport-2.3.5 (Missing IUSE: ruby_targets_ruby18)                                                
(dependency required by "dev-ruby/actionpack-2.3.5-r1" [ebuild])                                                  
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                                          
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                                          
(dependency required by "sinatra" [argument])               



- dev-ruby/racc-1.4.5 (Missing IUSE: ruby_targets_ruby18)                                         
(dependency required by "dev-ruby/tmail-1.2.3.1" [ebuild])                                        
(dependency required by "dev-ruby/actionmailer-2.3.5-r1" [ebuild])                                
(dependency required by "dev-ruby/actionpack-2.3.5-r1" [ebuild])                                  
(dependency required by "dev-ruby/haml-2.2.24" [ebuild])                                          
(dependency required by "dev-ruby/sinatra-1.0" [ebuild])                                          
(dependency required by "sinatra" [argument])        



- dev-ruby/mysql-ruby-2.8.1 (Missing IUSE: ruby_targets_ruby18)
(dependency required by "dev-ruby/activerecord-2.3.5-r1" [ebuild])
(dependency required by "dev-ruby/actionpack-2.3.5-r1" [ebuild])
(dependency required by "dev-ruby/actionmailer-2.3.5-r1" [ebuild])





And in the end i get a circular dep!

[nomerge      ] dev-ruby/sinatra-1.0  USE="test" RUBY_TARGETS="ruby18"
[ebuild  N    ]  dev-ruby/rack-test-0.5.3  USE="test" RUBY_TARGETS="ruby18" 19 kB
[ebuild  N    ]   dev-ruby/sinatra-1.0  USE="test" RUBY_TARGETS="ruby18" 119 kB
[nomerge      ] dev-ruby/sinatra-1.0  USE="test" RUBY_TARGETS="ruby18"
[nomerge      ]  dev-ruby/haml-2.2.24  USE="test -doc" RUBY_TARGETS="ruby18"
[nomerge      ]   dev-ruby/actionpack-2.3.5-r1  USE="test -doc" RUBY_TARGETS="ruby18 -jruby"
[ebuild  N    ]    dev-ruby/actionmailer-2.3.5-r1  USE="test -doc" RUBY_TARGETS="ruby18 -jruby" 109 kB
[ebuild  N    ]  dev-ruby/haml-2.2.24  USE="test -doc" RUBY_TARGETS="ruby18" 152 kB
[ebuild  N    ]   dev-ruby/actionpack-2.3.5-r1  USE="test -doc" RUBY_TARGETS="ruby18 -jruby" 721 kB

Total: 5 packages (5 new), Size of downloads: 1,119 kB

 * Error: circular dependencies:

('ebuild', '/', 'dev-ruby/haml-2.2.24', 'merge') depends on
  ('ebuild', '/', 'dev-ruby/actionpack-2.3.5-r1', 'merge') (buildtime)
('ebuild', '/', 'dev-ruby/actionpack-2.3.5-r1', 'merge') depends on
  ('ebuild', '/', 'dev-ruby/actionmailer-2.3.5-r1', 'merge') (buildtime)
('ebuild', '/', 'dev-ruby/actionmailer-2.3.5-r1', 'merge') depends on
  ('ebuild', '/', 'dev-ruby/actionpack-2.3.5-r1', 'merge') (buildtime)
('ebuild', '/', 'dev-ruby/rack-test-0.5.3', 'merge') depends on
  ('ebuild', '/', 'dev-ruby/sinatra-1.0', 'merge') (buildtime)
('ebuild', '/', 'dev-ruby/sinatra-1.0', 'merge') depends on
  ('ebuild', '/', 'dev-ruby/haml-2.2.24', 'merge') (buildtime)
  ('ebuild', '/', 'dev-ruby/rack-test-0.5.3', 'merge') (buildtime)


Comment 4 Hans de Graaff gentoo-dev Security 2010-05-09 11:40:49 UTC
(In reply to comment #3)
> dev-ruby/haml-2.2.24 and some others should probably depend on a few packages
> with higher version numbers than currently stable, because of "Missing IUSE:
> ruby_targets_ruby18" on older ebuilds...

I'd like to follow the upstream versions as much as possible, and this should not be a problem since the package manager will work it out. Note that this is a re-keywording bug, so using all testing packages should work.


> And in the end i get a circular dep!

Yes, this is due to using test and doc in USE. A lot of ruby stuff interdepends on each other, especially using testing. Recommended workaround: install with FEATURES=-test USE=-doc first, then reinstall with FEATURES=test USE=doc to test things and install docs.
Comment 5 Andreas Schürch gentoo-dev 2010-06-01 07:40:55 UTC
sinatra depends on a rack-1.0 version and on haml which depends on any version of actionpack for USE=test.
The problem is that the latest keyworded actionpack has >=dev-ruby/rack-1.1.0.

So IMHO haml-2.2.24.ebuild should have ">=dev-ruby/actionpack-2.3.5-r1 <dev-ruby/actionpack-2.3.8" for USE=test. Otherwise one has to fix the version within package.keywords...

Anyway... 
I think the following 3 packages can get keyworded on x86:
=dev-ruby/sinatra-1.0
=dev-ruby/abstract-1.0.0
=dev-ruby/erubis-2.6.5
(I get some sandbox failures, but they seem to be quite common in dev-ruby... )





Comment 6 Hans de Graaff gentoo-dev Security 2010-06-01 11:41:24 UTC
(In reply to comment #5)

> (I get some sandbox failures, but they seem to be quite common in dev-ruby... )

I have never seen sandbox failures for ruby packages, so please include a log for these.

Comment 7 Andreas Schürch gentoo-dev 2010-06-01 12:31:04 UTC
(In reply to comment #6)
> I have never seen sandbox failures for ruby packages, so please include a log
> for these.
> 
Hmm.. i just recompiled sandbox itself now and these problems are gone! :-)  I previously had sandbox issues with a few other packages as well on that box, but almost every ruby package got catched by sandbox somehow!? It seems that it didn't liked filesystem linking (symbolic and hard) for whatever reason....  
Nice to have that clean now! Thanks! :-)
Comment 8 Hans de Graaff gentoo-dev Security 2010-06-05 07:42:06 UTC
(In reply to comment #5)
> sinatra depends on a rack-1.0 version and on haml which depends on any version
> of actionpack for USE=test.
> The problem is that the latest keyworded actionpack has >=dev-ruby/rack-1.1.0.

I've updated the sinatra dependency on rack to include rack 1.1 as well. We can do this now because the latest rack-test also works with rack 1.1.
Comment 9 Andreas Schürch gentoo-dev 2010-06-07 17:40:23 UTC
It looks better now!

If you now also add dev-ruby/builder as test-dep of sinatra, we can finally get friends! Sorry for the nitpicking! ;-)


* Running test phase for ruby18 ...                                                                                                                
(in /var/tmp/portage/dev-ruby/sinatra-1.0/work/ruby18/sinatra-1.0)                                                                                  
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- builder (LoadError)                    
        from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'                                                                 
        from ./test/builder_test.rb:2                                                                                                               
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `load'                                                        
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5                                                                  
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5:in `each'                                                        
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb:5                                                                  
rake aborted!                                                                                                                                       
Command failed with status (1): [/usr/bin/ruby18 -I"lib" -rubygems -I. "/us...] 
Comment 10 Hans de Graaff gentoo-dev Security 2010-06-07 18:25:01 UTC
(In reply to comment #9)

> If you now also add dev-ruby/builder as test-dep of sinatra, we can finally get
> friends! Sorry for the nitpicking! ;-)

No no, *I'm* sorry for not properly adding otherwise-unadvertised dependencies. :-)

I've now added a dependency on builder when testing.
Comment 11 Christian Faulhammer (RETIRED) gentoo-dev 2010-06-30 06:46:50 UTC
added ~x86, thanks Andreas.