On Fri, 20 Jul 2012 15:48:34 -0400
Alexandre Rostovtsev <tetrom...@gentoo.org> wrote:
> On Fri, 2012-07-20 at 20:17 +0100, Ciaran McCreesh wrote:
> > On Fri, 20 Jul 2012 15:15:31 -0400
> > Alexandre Rostovtsev <tetrom...@gentoo.org> wrote:
> > > > That's sensitive to old versions ebuilds being removed from the
> > > > tree, so it's utterly unworkable.
> > > 
> > > I do not see why you think it's unworkable. Ebuilds already have
> > > dependencies that can be broken by removing an old version; if
> > > wombat depends on foo[bar], and you removed the only version of
> > > foo that had bar in IUSE, you broke wombat. Adding special
> > > LINGUAS handling would not change the fact that before deleting
> > > an ebuild, you need to verify that you did not render other
> > > ebuilds' dependencies unsatisfiable.
> > 
> > That's not how undefaulted use dependencies work. If wombat depends
> > upon foo[bar], it is an error if there is *any* version of foo
> > *ever* that doesn't have bar in IUSE_EFFECTIVE.
> 
> Very odd; AFAICT neither portage nor repoman treats that situation as
> an error. I am guessing that this is another case where paludis does
> things differently?

Paludis yells. Portage silently ignores the error and does something
unexpected. The spec is clear that it is an error, though.

> Be that as it may, even with paludis, the foo maintainer could easily
> break wombat if wombat depended on foo:bar, and the last ebuild
> matching foo:bar got removed; or on foo[bar,baz], and the only
> remaining versions of foo in the tree have REQUIRED_USE="^^ ( bar baz
> )"; or on foo[bar], when the only remaining versions of foo in the
> tree have bar disabled via profiles/base/package.use.mask.

Which is why it's policy that you check every dependent before making
changes to a package. You *do* follow that policy, and not just assume
that repoman passing means it's fine, right?

-- 
Ciaran McCreesh

Attachment: signature.asc
Description: PGP signature

Reply via email to