Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 658326

Summary: Poor handling of texlive-core dependency on older freetype
Product: Portage Development Reporter: aditsu <aditsu>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description aditsu 2018-06-17 18:38:04 UTC
First, I upgraded media-libs/freetype-2.8 to 2.9.1-r3, and emerge did it without any complaint.
Later, when emerging world, I found that it wants to downgrade freetype to 2.8, but without any explanation. With -t, it shows a different random package that requires freetype every time, and none of them need the downgrade. That would be the first problem.

After a lot of digging, I found that app-text/texlive-core-2017-r3 (which was previously installed) depends on "<media-libs/freetype-2.9.1-r3". Then the second problem is why it let me upgrade freetype in the first place, if it conflicts with texlive-core.

Finally, after downgrading freetype to 2.8, "emerge -av1 freetype" offers to upgrade it again, but "emerge -upvtDN world" eventually shows the conflict with textlive-core.

Reproducible: Always
Comment 1 Zac Medico gentoo-dev 2018-06-18 07:36:27 UTC
(In reply to aditsu from comment #0)
> First, I upgraded media-libs/freetype-2.8 to 2.9.1-r3, and emerge did it
> without any complaint.
> Later, when emerging world, I found that it wants to downgrade freetype to
> 2.8, but without any explanation. With -t, it shows a different random
> package that requires freetype every time, and none of them need the
> downgrade. That would be the first problem.

That's a variant of bug 444894.

> After a lot of digging, I found that app-text/texlive-core-2017-r3 (which
> was previously installed) depends on "<media-libs/freetype-2.9.1-r3". Then
> the second problem is why it let me upgrade freetype in the first place, if
> it conflicts with texlive-core.

It's only a build time dependency (DEPEND only), which means that it's only strictly required if you need to rebuild app-text/texlive-core-2017-r3 for some reason.

> Finally, after downgrading freetype to 2.8, "emerge -av1 freetype" offers to
> upgrade it again,

The default behavior is to choose the highest available version, so that's what it does.

> but "emerge -upvtDN world" eventually shows the conflict
> with textlive-core.

What does the conflict look like? Does it show as a missed update, or what? Note that build time dependencies are pulled in by default since bug 598444.
Comment 2 aditsu 2018-06-18 22:17:54 UTC
(In reply to Zac Medico from comment #1)
> What does the conflict look like? Does it show as a missed update, or what?

This is what it looks like:

# emerge -upvtDN world                                              

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

media-libs/freetype:2

  (media-libs/freetype-2.9.1-r3:2/2::gentoo, ebuild scheduled for merge) conflicts with
    <media-libs/freetype-2.9.1-r3 required by (app-text/texlive-core-2017-r3:0/0::gentoo, installed)
    ^                    ^^^^^^^^
Comment 3 aditsu 2018-06-18 22:21:33 UTC
(In reply to Zac Medico from comment #1)
> It's only a build time dependency (DEPEND only), which means that it's only
> strictly required if you need to rebuild app-text/texlive-core-2017-r3 for
> some reason.

Then I'm not sure it should even have a conflict. But I guess I can accept it either way, as long as it's consistent.

> > Finally, after downgrading freetype to 2.8, "emerge -av1 freetype" offers to
> > upgrade it again,
> 
> The default behavior is to choose the highest available version, so that's
> what it does.
> 
> > but "emerge -upvtDN world" eventually shows the conflict
> > with textlive-core.

Well, it's really confusing that the first emerge has no conflict, but the 2nd one does. It should make up its mind one way or another.
Comment 4 Zac Medico gentoo-dev 2018-06-18 22:42:26 UTC
(In reply to aditsu from comment #3)
> (In reply to Zac Medico from comment #1)
> > The default behavior is to choose the highest available version, so that's
> > what it does.
> > 
> > > but "emerge -upvtDN world" eventually shows the conflict
> > > with textlive-core.
> 
> Well, it's really confusing that the first emerge has no conflict, but the
> 2nd one does. It should make up its mind one way or another.

Yes, I think what we should do is force build time dependencies to be satisfied by default, and provide some way to override it if needed.

*** This bug has been marked as a duplicate of bug 427938 ***