ports/184748: Upgrade of devel/rubygem-sprockets to 2.10.1 breaks www/rubygem-rails

Paul Mather paul at gromit.dlib.vt.edu
Fri Dec 13 14:10:00 UTC 2013


>Number:         184748
>Category:       ports
>Synopsis:       Upgrade of devel/rubygem-sprockets to 2.10.1 breaks www/rubygem-rails
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 13 14:10:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator:     Paul Mather
>Release:        9.2-STABLE
>Organization:
Virginia Tech
>Environment:
FreeBSD gromit.dlib.vt.edu 9.2-STABLE FreeBSD 9.2-STABLE #0 r258978: Thu Dec  5 09:22:36 EST 2013     pmather at gromit.dlib.vt.edu:/usr/obj/usr/src/sys/GROMIT  amd64
>Description:
I upgraded my packages on RELENG_9 via poudriere recently and discovered that www/rubygem-rails is now broken.  It appears the cause of the breakage is the upgrade of devel/rubygem-sprockets to 2.10.1.  The latter upgrade breaks www/rubygem-actionpack, whose gemspec depends upon V2.2.X of sprockets.  The current version of sprockets fails to satisfy this dependency, causing Rails to fail to start:

root at gromit:/home/pmather # rails
/usr/local/lib/ruby/site_ruby/1.9/rubygems/dependency.rb:247:in `to_specs': Could not find sprockets (~> 2.2.1) amongst [abstract-1.0.0, actionmailer-3.2.16, actionpack-3.2.16, activemodel-3.2.16, activerecord-3.2.16, activeresource-3.2.16, activesupport-3.2.16, ansi-1.4.3, arel-3.0.2, atomic-1.1.14, builder-3.0.4, bundler-1.3.5, classifier-1.3.3, coffee-rails-3.2.2, coffee-script-2.2.0, coffee-script-source-1.6.3, colorator-0.1, colored-1.2, commander-4.1.4, cri-2.3.0, daemon_controller-1.1.7, directory_watcher-1.4.1, erubis-2.7.0, execjs-1.4.0, fast-stemmer-1.0.2, fastthread-1.0.7, highline-1.6.20, hike-1.2.3, i18n-0.6.9, jekyll-1.0.3, journey-1.0.4, jquery-rails-3.0.1, json-1.8.0, json_pure-1.8.1, kramdown-1.0.2, liquid-2.5.0, mail-2.5.4, maruku-0.6.1, mime-types-1.23, minitest-5.0.6, minitest-4.7.5, multi_json-1.8.2, nanoc-3.6.5, passenger-4.0.27, pg-0.15.1, polyglot-0.3.3, posix-spawn-0.3.6, pygments.rb-0.5.2, rack-1.4.5, rack-1.2.3, rack-cache-1.2, rack-ssl-1.3.3, rack-test-0.6
 .2, rails-3.2.16, railties-3.2.16, rake-10.1.0, rake-10.0.4, rake-compiler-0.8.3, safe_yaml-0.9.4, sass-3.2.12, sass-rails-3.2.6, sequel-4.5.0, sprockets-2.10.1, sqlite3-1.3.8, syntax-1.0.0, thor-0.18.1, tilt-2.0.0, treetop-1.4.14, turn-0.9.6, tzinfo-0.3.38, uglifier-2.3.2, yajl-ruby-1.1.0] (Gem::LoadError)
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:778:in `block in activate_dependencies'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:767:in `each'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:767:in `activate_dependencies'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:751:in `activate'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:781:in `block in activate_dependencies'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:767:in `each'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:767:in `activate_dependencies'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems/specification.rb:751:in `activate'
       from /usr/local/lib/ruby/site_ruby/1.9/rubygems.rb:1232:in `gem'
       from /usr/local/bin/rails:22:in `<main>'
root at gromit:/home/pmather # pkg info -d rubygem-actionpack
rubygem-actionpack-3.2.16:
       rubygem-rack-test-0.6.2
       rubygem-rack-cache-1.2
       rubygem-rack-1.4.5,3
       rubygem-journey-1.0.4
       rubygem-erubis-2.7.0
       libyaml-0.1.4_2
       ruby-1.9.3.484,1
       rubygem-tilt-2.0.0
       rubygem-sprockets-2.10.1
       rubygem-multi_json-1.8.2
       rubygem-json_pure-1.8.1
       rubygem-i18n-0.6.9,2
       rubygem-hike-1.2.3
       rubygem-builder-3.0.4
       rubygem-activesupport-3.2.16
       rubygem-abstract-1.0.0_1
       ruby19-gems-1.8.29
       libffi-3.0.13
       libexecinfo-1.1_3
       rubygem-activemodel-3.2.16
       ruby19-iconv-1.9.3.484,1
       libiconv-1.14_1
root at gromit:/home/pmather # gem dependency actionpack
Gem actionpack-3.2.16
 activemodel (= 3.2.16)
 activesupport (= 3.2.16)
 builder (~> 3.0.0)
 erubis (~> 2.7.0)
 journey (~> 1.0.4)
 rack (~> 1.4.5)
 rack-cache (~> 1.2)
 rack-test (~> 0.6.1)
 sprockets (~> 2.2.1)
 tzinfo (~> 0.3.29, development)



Note that the gem spec dependency of "~> 2.2.1" is not the same semantics as the ports Makefile dependency of "rubygem-sprockets>=2.2.1:${PORTSDIR}/devel/rubygem-sprockets".  The latter will be satisfied by rubygem-sprockets-2.10.1 whereas the former will not.

Note that because Rails 3.2.15 is flagged by pkg audit as vulnerable, many people will upgrade to 3.2.16 and have their Rails install break if they also upgrade ruby gem-sprockets, so a fix for this would be nice.

>How-To-Repeat:
On a machine without Rails installed, do the following:

cd /usr/ports/www/rubygem-rails
make install clean
rails
>Fix:
If ruby gem-actionpack is compatible with version 2.10.1 of sprockets you could update /usr/local/lib/ruby/gems/1.9/specifications/actionpack-3.2.16.gemspec so that the sprockets gem dependencies are changed from "~> 2.2.1" to "~> 2.10.1".  I don't know whether version 2.10.1 of the sprockets gem is compatible with action pack 3.2.16, though.

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-ports-bugs mailing list