[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: apt-get should correctly process dependencies



> > > > Package mailx has broken dep on smail
> > > 
> > > This is fine, because it's:
> > > 
> > > Depends: libc6, smail | mail-transport-agent
> > 
> > What do you mean "This is fine"? :-)
> 
> It's fine dependency-wise... read on
> 
> > What about that policy rule that says that a package shouldn't depend on a
> > package with a lower priority? mailx (priority: Important) is depending on
> > smail, that's not even on the archive.
> > AFAICT this is a bug.
> 
> Yes, but something I haven't thought of at the time of writing :)
> 
> > And what about when I try to install smail with 'apt-get install smail'?
> > It says that smail doesn't exist, and it offers to install ssmtp.
> That's a problem I hadn't thought of: smail package no longer exists...

So I think that every package should depend _not_ in a specific MTA (unless it
really needs _this_ or _that_ MTA), but it should depend on the virtual package
that provides an MTA. This way things like the one above shouldn't exist.

> > WHAT?> ssmtp? This is a package with 'priority: Extra'. Shouldn't it suggest
> > exim? I think it should, because exim is 'priority: Important' (and is the
> > Debian default MTA).
> 
> Perhaps apt is doing a random guess, not based on priorities...

I confess that I don't know much about how apt is calculating its priorities,
but IMHO it should first check for the highest priority, and go downstream.
It shouldn't make a random guess. :-)

> > > > Package mailx has broken dep on mail-transport-agent
> > > >   Considering zmailer-ssl 0 as a solution to mailx 8
> > > >   Holding Back mailx rather than change mail-transport-agent
> > > 
> > > Now this is wrong, it should have picked zmailer-ssl. Anyway, there should
> > > be other packages providing mail-transport-agent, not just zmailer-ssl...
> > 
> > Read above. It _must_ pick exim. After all, what's the use of having a
> > default MTA, if the packages don't pick it up when thay need a MTA? ;-)
> 
> Because of the default installs? :)

Uh? Shouldn't the default installs pick up Important packages and not any
others?

> > When I package need some service provided by a virtual package
> > (mail-transport-agent, x-terminal, whatever), apt should pick up the one with
> > the highest priority, not the first one it sees. From what I'm seeing, it
> > isn't. Or am I missing something?
> 
> Maintainers help the tools pick the right thing by having:
> 
> Depends: real-package-providing-virtual-package-foo | virtual-package-foo

Are maintainers _really_ helping, are are they just confusing apt?
>From what I've said earlier, shouldn't it be

Depends: virtual-package-foo

and leave it up to apt to pick up the default package that provides
vitual-package-foo? This way when we changed a default (like when we changed
from smail to exim for the default MTA) things wouldn't break.
Of course this is intuition speaking. I've got no ideia if things like this
would break more than it fix. :-)

> However in this case the first component doesn't exist, so something went
> wrong with apt-get logic...

Yeah, well what went wrong? :-) Maybe the help of the maintainers? ;-)

pmg


Reply to: