Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 373441 - portage-2.1.9.42: portage --pretend doesn't
Summary: portage-2.1.9.42: portage --pretend doesn't
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-29 07:36 UTC by Raymond Jennings
Modified: 2016-08-17 14:00 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Raymond Jennings 2011-06-29 07:36:50 UTC
I lost track of some USE flag settings, so I attempted to mask something and emerge --emptytree --pretend @world to see what I had missed, and my intent was to discover a use flag induced block.

Reproducible: Always

Steps to Reproduce:
1.  emerge some package that has a depencendy with a required USE flag
2.  change package.use to mask out the flag
3.  attempt to remember the flag with emerge --pretend --emptytree.
Actual Results:  
Pretend worked

Expected Results:  
Pretend would have errored out saying that the package whose USE flag was just changed failed to satisfy a dependency.

The package in question was gnome-base/gvfs, a dependency of brasero.

Brasero requires gnome-base/gvfs with the cdda USE flag.

if I go to make.conf or package.use and remove the cdda USE flag from gnome-base/gvfs, any pretend merges of brasero should choke whether or not gnome-base/gvfs itself is actually recompiled with new USE flags.

Instead, it appears as if portage doesn't take into account the use flag settings when computing whehter or not a given package's dependencies are satisfied.

What should happen is that portage should assume a change in gvfs's use flags, and use that to provoke a dependency failure for brasero.
Comment 1 Raymond Jennings 2011-06-29 08:38:35 UTC
In theory, this means that if brasero and gvfs are both merged in the same batch, then portage's failure to pick up gvfs's changed USE flags while analyzing compliance with brasero's deps would cause brasero to have an unmet dependency once gvfs got remerged with a deficient use flag.
Comment 2 Raymond Jennings 2011-06-29 09:06:50 UTC
Confirmed.

Simultaneously merging brasero, and remerging gvfs with a (required by brasero) cdda use flag removed, caused brasero to be installed simultaenously with a cdda-less gvfs.

This should not be possible.

Portage should be taking into account proposed use flag changes in already installed packages when running dep checks for packages to be freshly merged.

To add insult to injury, gvfs lacking the cdda use flag didn't even cause a build failure in brasero.
Comment 3 Raymond Jennings 2011-06-29 09:15:00 UTC
It seems like USE flag changes of packages that have already been installed (and are set to be reinstalled with the changed flags) aren't taken into account when other packages that depend on them have their dependencies evaluated.
Comment 4 Raymond Jennings 2011-06-29 09:19:07 UTC
I should also note that while re-emerging both brasero and gvfs simultaneously (after changing gvfs's use flags) causes an inconsistent situation, remerging gvfs and brasero serially causes brasero to dep-barf after gvfs is remerged manually.

I don't think it's ok for emerge to behave differently depending on whether two packages are emerged at the same time or in series.
Comment 5 Zac Medico gentoo-dev 2011-06-29 12:13:07 UTC
(In reply to comment #2)
> Simultaneously merging brasero, and remerging gvfs with a (required by brasero)
> cdda use flag removed, caused brasero to be installed simultaenously with a
> cdda-less gvfs.

This looks like bug 367555. You can set EMERGE_DEFAULT_OPTS="--complete-graph" in order to avoid this behavior. See "Why doesn't emerge account for reverse dependencies sometimes?" in the FAQ:

  http://www.gentoo.org/proj/en/portage/doc/faq.xml
Comment 6 Sebastian Luther (few) 2011-09-19 18:52:25 UTC
The behavior in comment 0 could also be bug 266836.
Comment 7 Zac Medico gentoo-dev 2012-09-04 03:45:51 UTC
(In reply to comment #5)
> This looks like bug 367555. You can set
> EMERGE_DEFAULT_OPTS="--complete-graph" in order to avoid this behavior.

The new -complete-graph-if-new-use option (enabled by default) helps for this case (see bug #425558).