[DRE-maint] Bug#768850: ruby-activemodel, ruby-activesupport: needs Breaks for the packages it Replaces

Andreas Beckmann anbe at debian.org
Tue Nov 18 11:58:16 UTC 2014


On 2014-11-14 20:51, Antonio Terceiro wrote:
> The following packages will be REMOVED:
>   gcc-4.7-base
> The following packages have been kept back:
>   rails

The problematic package is ruby-activesupport-2.3 which gets a higher
score (score=21) than ruby-activesupport (score=11) (probably due to a high number of
rdepends in wheezy, the scoring seems to be fixed in jessie though):

  Investigating (0) ruby-activesupport [ amd64 ] < none -> 2:4.1.7-1 > ( ruby )
  Broken ruby-activesupport:amd64 Breaks on ruby-activesupport-2.3 [ amd64 ] < 2.3.14-7 > ( ruby )
    Considering ruby-activesupport-2.3:amd64 21 as a solution to ruby-activesupport:amd64 11
    Holding Back ruby-activesupport:amd64 rather than change ruby-activesupport-2.3:amd64

and this starts a cascade of keeping the *-2.3 packages installed,
resulting in the old rails being kept.


So add a transitional dummy package that ensures the stack of *-2.3
packages gets removed:

Package: ruby-activesupport-2.3
Architecture: all
Depends: ruby-activesupport (>= 2:4),
         ${misc:Depends},
         ${shlibs:Depends}
Breaks:
 ruby-activesupport-3.2,
 ruby-activesupport-4.0,
 ruby-actionpack-2.3,
 ruby-activerecord-2.3,
 ruby-activeresource-2.3,
 ruby-rails-2.3,
Description: transitional dummy package
 Ensure the removal of rails 2.3 on upgrades from wheezy.
 This package can be safely removed.

and in ruby-activesupport use

Replaces: ruby-activesupport-2.3 (<< 2:4), ruby-activesupport-3.2, ruby-activesupport-4.0
Breaks: ruby-activesupport-2.3 (<< 2:4), ruby-activesupport-3.2, ruby-activesupport-4.0

It's important to have the Breaks directly in ruby-activesupport-2.3,
having them only transitively via ruby-activesupport does not work -
that seems to be the apt bug fixed in jessie.

The upgrade then looks like this:

  Investigating (0) ruby-activesupport-2.3 [ amd64 ] < 2.3.14-7 -> 2:4.1.7-1 > ( ruby )
  Broken ruby-activesupport-2.3:amd64 Breaks on ruby-actionpack-2.3 [ amd64 ] < 2.3.14-5 > ( ruby )
    Considering ruby-actionpack-2.3:amd64 5 as a solution to ruby-activesupport-2.3:amd64 22
    Added ruby-actionpack-2.3:amd64 to the remove list
  Broken ruby-activesupport-2.3:amd64 Breaks on ruby-activerecord-2.3 [ amd64 ] < 2.3.14-6 > ( ruby )
    Considering ruby-activerecord-2.3:amd64 9 as a solution to ruby-activesupport-2.3:amd64 22
    Added ruby-activerecord-2.3:amd64 to the remove list
  Broken ruby-activesupport-2.3:amd64 Breaks on ruby-activeresource-2.3 [ amd64 ] < 2.3.14-3 > ( ruby )
    Considering ruby-activeresource-2.3:amd64 1 as a solution to ruby-activesupport-2.3:amd64 22
    Added ruby-activeresource-2.3:amd64 to the remove list
  Broken ruby-activesupport-2.3:amd64 Breaks on ruby-rails-2.3 [ amd64 ] < 2.3.14-4 > ( ruby )
    Considering ruby-rails-2.3:amd64 -1 as a solution to ruby-activesupport-2.3:amd64 22
    Added ruby-rails-2.3:amd64 to the remove list
    Fixing ruby-activesupport-2.3:amd64 via remove of ruby-actionpack-2.3:amd64
    Fixing ruby-activesupport-2.3:amd64 via remove of ruby-activerecord-2.3:amd64
    Fixing ruby-activesupport-2.3:amd64 via remove of ruby-activeresource-2.3:amd64
    Fixing ruby-activesupport-2.3:amd64 via remove of ruby-rails-2.3:amd64
  Investigating (0) ruby-actionmailer-2.3 [ amd64 ] < 2.3.14-3 > ( ruby )
  Broken ruby-actionmailer-2.3:amd64 Depends on ruby-actionpack-2.3 [ amd64 ] < 2.3.14-5 > ( ruby ) (>= 2.3.14)
    Considering ruby-actionpack-2.3:amd64 5 as a solution to ruby-actionmailer-2.3:amd64 1
    Removing ruby-actionmailer-2.3:amd64 rather than change ruby-actionpack-2.3:amd64
  Done

The transitional package now causes a cascade of removals, not keeps :-)
(the score increased by one because the package now exists in the target release)

  The following packages will be REMOVED:
    ruby-actionmailer-2.3 ruby-actionpack-2.3 ruby-activerecord-2.3
    ruby-activeresource-2.3 ruby-rails-2.3
...


It's sufficient to have only one transitional package - the one that gets the highest score from apt.


Andreas



More information about the Pkg-ruby-extras-maintainers mailing list