[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