Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 705986 - sys-apps/portage: circular dependency not solved for dev-python/pypy and dev-python/pypy-exe
Summary: sys-apps/portage: circular dependency not solved for dev-python/pypy and dev-...
Status: IN_PROGRESS
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on: 382421
Blocks: 706142
  Show dependency tree
 
Reported: 2020-01-21 00:28 UTC by Zac Medico
Modified: 2020-01-28 03:08 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 Zac Medico gentoo-dev 2020-01-21 00:28:22 UTC
It looks like maybe the "smart" USE suggestion prevents application of the || preference adjustment from bug 382421 (which would solve it with dev-python/pypy-exe-bin):

> # emerge -pv --autounmask dev-python/pypy
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> 
> 
> [nomerge       ] dev-python/pypy-7.3.0:0/73::gentoo  USE="bzip2 gdbm jit ncurses sqlite -libressl -tk" 
> [ebuild  N    ~]  dev-python/pypy-exe-7.3.0:7.3.0::gentoo  USE="bzip2 jit ncurses -low-memory" CPU_FLAGS_X86="(-sse2)" 19,853 KiB
> [ebuild  N    ~]   dev-python/pypy-7.3.0:0/73::gentoo  USE="bzip2 gdbm jit ncurses sqlite -libressl -tk" 15 KiB
> 
> Total: 2 packages (2 new), Size of downloads: 19,867 KiB
> 
>  * Error: circular dependencies:
> 
> (dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::gentoo, ebuild scheduled for merge) depends on
>  (dev-python/pypy-7.3.0:0/73::gentoo, ebuild scheduled for merge) (buildtime)
>   (dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::gentoo, ebuild scheduled for merge) (buildtime)
> 
> It might be possible to break this cycle
> by applying the following change:
> - dev-python/pypy-exe-7.3.0 (Change USE: +low-memory)
Comment 1 Georgy Yakovlev gentoo-dev 2020-01-21 00:35:07 UTC
originated here

https://bugs.gentoo.org/705690
Comment 2 Larry the Git Cow gentoo-dev 2020-01-21 02:37:21 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=e5878170638a091db1331df7e7922c8a14e29e86

commit e5878170638a091db1331df7e7922c8a14e29e86
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-01-21 01:59:30 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-01-21 02:35:43 +0000

    Add unit test which demonstrates bug 705986
    
    This USE suggestion appears to prevent application of || preference
    adjustment to solve the cycle (pypy-exe-bin would solve it):
    
     * Error: circular dependencies:
    
    (dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::test_repo, ebuild scheduled for merge) depends on
     (dev-python/pypy-7.3.0:0/73::test_repo, ebuild scheduled for merge) (buildtime)
      (dev-python/pypy-exe-7.3.0:7.3.0/7.3.0::test_repo, ebuild scheduled for merge) (buildtime)
    
    It might be possible to break this cycle
    by applying the following change:
    - dev-python/pypy-exe-7.3.0 (Change USE: +low-memory)
    
    Meanwhile, an explicit pypy-exe-bin argument adjusts the || preference
    and breaks the cycle:
    
    $ emerge -pq pypy pypy-exe-bin
    [ebuild  N     ] dev-python/pypy-exe-bin-7.3.0
    [ebuild  N     ] dev-python/pypy-7.3.0
    
    Bug: https://bugs.gentoo.org/705986
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 .../tests/resolver/test_circular_choices.py        | 48 ++++++++++++++++++++++
 1 file changed, 48 insertions(+)
Comment 4 Larry the Git Cow gentoo-dev 2020-01-23 05:54:33 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=ef66aab178180288132177011ad0e910fb2cd55e

commit ef66aab178180288132177011ad0e910fb2cd55e
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-01-21 03:19:01 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-01-23 05:52:43 +0000

    dep_zapdeps: break more buildtime cycles (bug 705986)
    
    Buildtime cycle breaking was not enabled in cases where
    the all_in_graph variable was False, and this prevented the
    pypy / pypy-exe dependency cycle from being broken as shown
    in the test case for bug 705986. In order to break more
    buildtime cycles, enable cycle breaking regardless of the
    state of the all_in_graph variable.
    
    Bug: https://bugs.gentoo.org/705986
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/portage/dep/dep_check.py                        |  5 ++---
 lib/portage/tests/resolver/test_circular_choices.py | 14 ++++----------
 2 files changed, 6 insertions(+), 13 deletions(-)
Comment 5 Larry the Git Cow gentoo-dev 2020-01-23 07:04:51 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=926daa64ce2932685e50c5b87ebe6e1f2578feb2

commit 926daa64ce2932685e50c5b87ebe6e1f2578feb2
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2020-01-23 06:54:10 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2020-01-23 07:04:32 +0000

    sys-apps/portage: Bump to version 2.3.85
    
     #615594 dosym: revert deprecated prefix compat
     #704256 emerge-webrsync: chmod 755 temp dir
     #704320 Add QA check for unresolved soname dependencies
     #704848 doebuild: export SANDBOX_LOG=${T}/sandbox.log
     #705986 solve pypy / pypy-exe dependency cycle
    
    Bug: https://bugs.gentoo.org/706142
    Bug: https://bugs.gentoo.org/615594
    Bug: https://bugs.gentoo.org/704256
    Bug: https://bugs.gentoo.org/704320
    Bug: https://bugs.gentoo.org/704848
    Bug: https://bugs.gentoo.org/705986
    Package-Manager: Portage-2.3.85, Repoman-2.3.20
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 sys-apps/portage/Manifest              |   1 +
 sys-apps/portage/portage-2.3.85.ebuild | 276 +++++++++++++++++++++++++++++++++
 2 files changed, 277 insertions(+)
Comment 6 Georgy Yakovlev gentoo-dev 2020-01-28 03:08:52 UTC
tested on fresh stage, confirm it works fine now, thanks Zac!