trusty SRU: change the ruby default from 1.9.1 to 2.0

Bug #1315143 reported by Matthias Klose on 2014-05-01
60
This bug affects 9 people
Affects Status Importance Assigned to Milestone
puppet (Ubuntu)
Undecided
Unassigned
Trusty
Undecided
Canonical Server Team
ruby-defaults (Ubuntu)
Undecided
Unassigned
Trusty
Undecided
Matthias Klose

Bug Description

proposing a SRU for trusty, changing the ruby default from 1.9.1 to 2.0, and stop building the tcltk ruby bindings.

rationale: trusty currently has two ruby versions and two Tcl/Tk versions in main. reducing these to one of each lowers the maintenance burden for the LTS.

The transition to ruby2.0/ruby2.1 in utopic is almost done, so problems and fixes are already known on a large scale.

Packages which would need updating:

 - update ruby2.0 to the version from utopic (this one was used for all uploads in utopic,
   so it would be good to use this working version.

 - update the gem2deb and rubygems-integration packages to drop ruby1.9.1 support.

 - rebuild all packages having a Ruby-Version: attribute without 2.0 (this is not strictly related
   to the SRU, but should be done anyway). you currently can't use ruby2.0 gems where
   this information is missing for 300+ packages. These are no-change rebuilds.

- fix build failures with 2.0 as the default. The majority of these are caused by .install
  files pointing to outdated ruby1.9.1 locations.

Testing:

 - explicity test puppet working with 2.0

 - a test rebuild of the archive, or a partial test rebuild.

Implementation:

 - use a ppa to prepare all these changes, and then copy these changes to trusty-proposed.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in puppet (Ubuntu):
status: New → Confirmed
Changed in ruby-defaults (Ubuntu):
status: New → Confirmed
Changed in ruby-defaults (Ubuntu Trusty):
status: New → Confirmed
Changed in puppet (Ubuntu Trusty):
status: New → Confirmed
Changed in ruby-defaults (Ubuntu Trusty):
assignee: nobody → Matthias Klose (doko)
Changed in puppet (Ubuntu Trusty):
assignee: nobody → Canonical Server Team (canonical-server)
Changed in ruby-defaults (Ubuntu):
status: Confirmed → Fix Released
Changed in puppet (Ubuntu):
status: Confirmed → Fix Released
Matthias Klose (doko) on 2014-05-01
description: updated
Adam Conrad (adconrad) wrote :

No matter what you do here, you can't demote anything to universe in a released series. The release pocket is set in stone.

Am 02.05.2014 00:43, schrieb Adam Conrad:
> No matter what you do here, you can't demote anything to universe in a
> released series. The release pocket is set in stone.

references?

Allard Hoeve (allardhoeve) wrote :

Any progress in the issue?

Todd Vierling (duh) wrote :

I don't see how it is possible to justify this kind of change in a LTS release. This proposal ignores the whole point of what a LTS release is: version stability is the default. The above suggestion doesn't even belong in trusty-backports, never mind trusty-proposed or trusty-updates.

Putting this change into the default repos will, by definition, break existing system deployments. You cannot swap out ruby1.9.1 with ruby2.0 without breaking the ABI of native code or breaking parts of the Ruby API on which applications may currently depend. This is directly in conflict with LTS goals.

There are other possibilities, such as the following change steps:

1. make the binary 'ruby'/'ruby1.9.1'/'ruby2.0' package indirect through alternatives, which would allow a much easier way to swap out (this is something that should be propagated forward to newer releases)

2. drop the dependency from 'ruby2.0' to 'ruby' (which then depends on 'ruby1.9.1')

This will give you a less painful way to change the version desired via update-alternatives.

Otherwise, as an alternative, a PPA could provide a replacement for ruby-defaults which, simply symlinks to the desired version and replaces/supersedes the 'ruby' binary package. To do this, the Utopic source package could be pulled down, edited to remove references to 'ruby2.1', and rebuilt for Trusty.

As-is, this recommendation is a non-starter. Consider the above suggestions instead.

Todd Vierling (duh) wrote :

Ah, and someone already implemented *precisely* what I specified above using update-alternatives. See this PPA:

https://launchpad.net/~brightbox/+archive/ubuntu/ruby-ng?field.series_filter=trusty

IMNSHO, this proposal should be rejected in favor of a PPA solution such as above.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers