Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 547332 - sys-apps/portage-2.2.18: autounmask pulls in unstable dependencies to satisfy stable virtual/jdk in a stable system
Summary: sys-apps/portage-2.2.18: autounmask pulls in unstable dependencies to satisfy...
Status: RESOLVED OBSOLETE
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Dependencies (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on: 658648
Blocks: autounmask
  Show dependency tree
 
Reported: 2015-04-21 20:00 UTC by Leif Biberg Kristensen
Modified: 2020-04-18 20:45 UTC (History)
5 users (show)

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


Attachments
debug log (debug.log.gz,398.00 KB, application/gzip)
2015-04-22 15:08 UTC, Leif Biberg Kristensen
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Leif Biberg Kristensen 2015-04-21 20:00:22 UTC
See the topic https://forums.gentoo.org/viewtopic-t-1015376.html for further details. I'm running a stable x86_64 systewm, and I currently have dev-java/icedtea-bin-6.1.13.5 installed. 3 days ago, portage wanted to install dev-java/oracle-jdk-bin along with virtual/jdk-1.7.0. I then put dev-java/oracle-jdk-bin and dev-java/oracle-jre-bin in my /etc/portage/package.mask, after which portage no longer insisted on installing virtual/jdk-1.7.0 and virtual/jre-1.7.0. After today's upgrade to portage 2.2.18, emerge -avuDN @world will pull in the unstable packages dev-java/icedtea-bin-7.2.5.3 and dev-java/icedtea-web-1.5.1-r1, again as dependencies to the 1.7 virtuals. Normally, no stable packages will try to pull in unstable packages as dependencies, and I consider this a bug.

In order to circumvent the problem, I could of course mask the virtual/{jdk,jre}-1.7.0 packages, but I greatly prefer the old behaviour, which would seem to put the emerge of the 1.7 virtuals on hold until icedtea 1.7 was marked stable. If I must manually mask the 1.7 virtuals, it puts the responsibility on me to manually unmask them when icedtea 1.7 is marked stable. I'd rather not be bothered with that kind of micro-management.

Reproducible: Always
Comment 1 Leif Biberg Kristensen 2015-04-21 20:43:53 UTC
I should mention that adding "=sys-apps/portage-2.2.18" to /etc/portage/package.mask and then downgrading to portage 2.2.14 resolved the situation.
Comment 2 Pacho Ramos gentoo-dev 2015-04-22 08:48:03 UTC
This is probably because of --backtrack value being reduced by default (in previous versions portage was probably able to skip the virtual update in that way)

This reminds me that we need to push a bit in bug 546902 :S
Comment 3 Zac Medico gentoo-dev 2015-04-22 14:09:09 UTC
(In reply to Pacho Ramos from comment #2)
> This is probably because of --backtrack value being reduced by default (in
> previous versions portage was probably able to skip the virtual update in
> that way)

It doesn't have anything to do with the default --backtrack setting, because when it settles on what it considers a viable solution (which pulled in unstable deps), it does not backtrack. So, what you want is for it to avoid settling on this solution in the first place.
Comment 4 Zac Medico gentoo-dev 2015-04-22 14:33:21 UTC
We actually have a test case called VirtualSlotResolverTestCase.testLicenseMaskedVirtualSlotUpdate for bug 382557 which is supposed to cover this, and the test still passes:

https://gitweb.gentoo.org/proj/portage.git/tree/pym/portage/tests/resolver/test_virtual_slot.py

So, I guess something about the dependencies on your system is causing autounmask to pull in java 1.7. Does the problem go away if you add --autounmask=n to your emerge options?
Comment 5 Leif Biberg Kristensen 2015-04-22 14:47:09 UTC
(In reply to Zac Medico from comment #4)
> We actually have a test case called
> VirtualSlotResolverTestCase.testLicenseMaskedVirtualSlotUpdate for bug
> 382557 which is supposed to cover this, and the test still passes:
> 
> https://gitweb.gentoo.org/proj/portage.git/tree/pym/portage/tests/resolver/
> test_virtual_slot.py
> 
> So, I guess something about the dependencies on your system is causing
> autounmask to pull in java 1.7. Does the problem go away if you add
> --autounmask=n to your emerge options?

Actually, it does. I reemerged portage 2.2.18 and here are the results, without and with "--autounmask=n":

balapapa ~ # nice emerge -avuDN @world

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

Calculating dependencies... done!
[ebuild  NS   ~] dev-java/icedtea-bin-7.2.5.3:7::gentoo [6.1.13.5:6::gentoo] USE="X alsa cups nsplugin -cjk -doc -examples (-selinux) -source -webstart" 54 414 KiB
[ebuild  NS    ] virtual/jdk-1.7.0:1.7::gentoo [1.6.0-r2:1.6::gentoo] 0 KiB
[ebuild  NS    ] virtual/jre-1.7.0:1.7::gentoo [1.6.0-r1:1.6::gentoo] 0 KiB
[ebuild     U ~] dev-java/icedtea-web-1.5.1-r1::gentoo [1.4.2::gentoo] USE="icedtea7%* nsplugin -doc -javascript -tagsoup% {-test}" 1 579 KiB

Total: 4 packages (1 upgrade, 3 in new slots), Size of downloads: 55 993 KiB

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by virtual/jdk-1.7.0::gentoo
# required by virtual/jre-1.7.0::gentoo
# required by net-dns/libidn-1.29::gentoo[java]
# required by app-text/acroread-9.5.5-r2::gentoo
# required by @selected
# required by @world (argument)
=dev-java/icedtea-bin-7.2.5.3 ~amd64
# required by dev-java/icedtea-bin-7.2.5.3::gentoo[nsplugin]
# required by virtual/jdk-1.7.0::gentoo
# required by virtual/jre-1.7.0::gentoo
# required by net-dns/libidn-1.29::gentoo[java]
# required by app-text/acroread-9.5.5-r2::gentoo
# required by @selected
# required by @world (argument)
=dev-java/icedtea-web-1.5.1-r1 ~amd64

Would you like to add these changes to your config files? [Yes/No] n

balapapa ~ # nice emerge -avuDN --autounmask=n @world

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

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

Nothing to merge; quitting.
Comment 6 Zac Medico gentoo-dev 2015-04-22 14:56:26 UTC
(In reply to Leif Biberg Kristensen from comment #5)
> Actually, it does. I reemerged portage 2.2.18 and here are the results,
> without and with "--autounmask=n":
> 
> balapapa ~ # nice emerge -avuDN @world
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> [ebuild  NS   ~] dev-java/icedtea-bin-7.2.5.3:7::gentoo [6.1.13.5:6::gentoo]
> USE="X alsa cups nsplugin -cjk -doc -examples (-selinux) -source -webstart"
> 54 414 KiB
> [ebuild  NS    ] virtual/jdk-1.7.0:1.7::gentoo [1.6.0-r2:1.6::gentoo] 0 KiB
> [ebuild  NS    ] virtual/jre-1.7.0:1.7::gentoo [1.6.0-r1:1.6::gentoo] 0 KiB
> [ebuild     U ~] dev-java/icedtea-web-1.5.1-r1::gentoo [1.4.2::gentoo]
> USE="icedtea7%* nsplugin -doc -javascript -tagsoup% {-test}" 1 579 KiB

Please attach a debug log of the above calculation, created as follows:

  emerge -pvuDN @world --debug > debug.log 2>&1
Comment 7 Leif Biberg Kristensen 2015-04-22 15:08:46 UTC
Created attachment 401810 [details]
debug log
Comment 8 Zac Medico gentoo-dev 2020-04-18 20:44:16 UTC
Please reopen if you can trigger this with a recent version of portage.

Since bug 658648, keyword changes are disabled by default, so you won't be able to trigger it unless you explicitly enable --autounmask.