Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2013 14:05:22 GMT
From:      Paul Mather <paul@gromit.dlib.vt.edu>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/184748: Upgrade of devel/rubygem-sprockets to 2.10.1 breaks www/rubygem-rails
Message-ID:  <201312131405.rBDE5Mek087586@oldred.freebsd.org>
Resent-Message-ID: <201312131410.rBDEA01Q001739@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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@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@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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312131405.rBDE5Mek087586>