Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 431424 - xfce-base/thunar - USE dependencies cause emerge to pull in unstable dependencies instead of asking to satisfy the USE requirements
Summary: xfce-base/thunar - USE dependencies cause emerge to pull in unstable dependen...
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Unclassified (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
: 436672 (view as bug list)
Depends on: 476364
Blocks: 155723 autounmask
  Show dependency tree
Reported: 2012-08-14 19:27 UTC by Ben Kohler
Modified: 2014-06-03 16:23 UTC (History)
6 users (show)

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

output of USE="X udev" emerge -pv thunar (thunar-autounmask.log,6.71 KB, text/plain)
2012-08-14 19:27 UTC, Ben Kohler
emerge -pv thunar output (emerge-thunar.log,11.59 KB, text/plain)
2013-08-14 14:06 UTC, Ben Kohler
USE="X udev" emerge -pvt thunar (emerge-pvt-thunar.log,18.67 KB, text/plain)
2013-08-14 14:14 UTC, Ben Kohler
ebuild patch (thunar-ebuild-fix.patch,469 bytes, patch)
2013-08-14 14:38 UTC, Ben Kohler
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ben Kohler gentoo-dev 2012-08-14 19:27:21 UTC
Created attachment 321356 [details]
output of USE="X udev" emerge -pv thunar

On a fresh stable amd64 install, with default default/linux/amd64/10.0 profile:
USE="X udev" emerge -pv thunar  
will try to pull several ~amd64 deps including udev.  This is due to line 37 in the current thunar-1.4.0.ebuild:

udev? ( || ( ${GVFS_DEPEND}[udisks,udev] ${GVFS_DEPEND}[gdu,udev] ) )

The first [udisks,udev] one is for ~amd64 gvfs, so if the user has neither udisks nor gdu in USE, then autounmask tries to unmask all requirements to get ~amd64 gvfs.  I believe the order on these should be swapped so that stable users don't get hit with a wall of dangerous autounmask stuff on a fairly typical installation.  I have verified that swapping the order will fix the issue on stable amd64-- that is, autounmask just reports a couple of USE changes, rather than a half dozen ~amd64 keywords + USE changes.

Now, if a full ~amd64 user tries to do the same thing (wrong USE) after the order was swapped, he may see some funky behavior like a suggested gvfs downgrade, until he or she sets USE=udisks.  But IMHO we need to get this fixed for stable users.

Tested with freshly unpacked stage3-amd64-20120621.tar.bz2 and portage tree dated Tue Aug 14 14:37:57 UTC 2012.
Comment 1 Jeroen Roovers (RETIRED) gentoo-dev 2012-08-15 01:06:31 UTC
Probably a duplicate.
Comment 2 Zac Medico gentoo-dev 2012-08-15 01:23:47 UTC
The issue is in portage's dep_zapdeps function, since it doesn't distinguish between these two choices. Specifically, it needs to distinguish between two choices that both have unsatisfied USE deps, where one of the choices is more desirable due to IUSE differences between stable and unstable versions.
Comment 3 Zac Medico gentoo-dev 2012-10-05 20:58:17 UTC
*** Bug 436672 has been marked as a duplicate of this bug. ***
Comment 4 Toni Ballesta 2013-08-14 10:28:16 UTC
I can now install gvfs ONLY with my ~amd64 keyword, plus keywording the glib and gobject-introspection. The gvfs version stable 1.12.3-r1 DON'T support USE="udisks" and then not supported by Thunar.
Comment 5 Ben Kohler gentoo-dev 2013-08-14 14:06:24 UTC
Created attachment 355998 [details]
emerge -pv thunar output

Can someone from xfce@ take a look at this too?  This is still happening when a stable user tries to do:
USE="X udev" emerge -pv thunar

I cannot see a reason that unstable gvfs is needed at all.  It seems like autounmask just gets excited because it will be needed to add USE=udisks on gvfs, but it goes ahead and creates a package.accept_keywords entry as well.

Just for a test, I simplified the dep, removing possibility for old gvfs with USE=gdu... so now the dep reads:
udev? ( ${GVFS_DEPEND}[udisks,udev] )

...which can be satisfied just by adding udisks to stable gvfs, but it still tries to pull unstable gvfs.  emerge output attached.
Comment 6 Ben Kohler gentoo-dev 2013-08-14 14:14:29 UTC
Created attachment 356000 [details]
USE="X udev" emerge -pvt thunar

Here is the output with --tree added... I'm not seeing any extra helpful info, maybe someone else will.
Comment 7 Ben Kohler gentoo-dev 2013-08-14 14:38:37 UTC
Created attachment 356004 [details, diff]
ebuild patch

I didn't realize the udisks flag had been masked on stable gvfs.  So the issue here is what it always has been.

I believe that *stable* thunar's gvfs deps (the udev? ( || ( ) ) construct) should list *stable* gvfs first, then unstable gvfs as a second option.  Yes, there's a portage bug here too, probably.  But this can be trivially worked around in the ebuild.  And I believe the ebuild should be written this way anyway.
Comment 8 Ian Stakenvicius (RETIRED) gentoo-dev 2013-08-14 17:20:37 UTC
Short-term fix -- stabilize a gvfs that works with stable udisks:2 -- see bug 481072.

Long-term fix, portage needs to use the second dep in the || () list instead of --autounmask'ing the first one.
Comment 9 Julian Ospald 2013-08-18 14:21:50 UTC
that's a pretty bad and conufing bug imo and the average user might not get to the root cause of these ~arch deps being pulled in