Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 800815 - "emerge --depclean" does not recognize cyclic dependency of dev-python/fixtures-3.0.0-r1 and dev-python/testtools-2.4.0-r1
Summary: "emerge --depclean" does not recognize cyclic dependency of dev-python/fixtur...
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-06 09:30 UTC by Mark Dominik Bürkle
Modified: 2021-07-06 10:39 UTC (History)
0 users

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


Attachments
emerge --info (emerge-info.txt,7.16 KB, text/plain)
2021-07-06 09:30 UTC, Mark Dominik Bürkle
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Dominik Bürkle 2021-07-06 09:30:02 UTC
Created attachment 722332 [details]
emerge --info

imho "depclean" emerge action should
recognize that the referencing packages are given on the commandline (ie candidates to be removed)
or that they are referencing each other
and treat the requirements as solved
or ignore them.


the text leading to this bug was:


- dev-python/traceback2-1.4.0-r1::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Michał Górny <mgorny@gentoo.org> (2021-07-06)
# Various Python 2-specific backports.  All the reverse dependencies
# (except for deps between these packages) have been eliminated.
# Removal on 2021-08-05.  Bug #800698.

- dev-python/unittest2-1.1.0-r1::gentoo (masked by: package.mask)
- dev-python/linecache2-1.0.0-r1::gentoo (masked by: package.mask)
For more information, see the MASKED PACKAGES section in the emerge


followed (at the end) by:


wks058 ~ # emerge -av --depclean dev-python/traceback2 dev-python/unittest2 dev-python/linecache2

Calculating dependencies... done!
  dev-python/linecache2-1.0.0-r1 pulled in by:
    dev-python/traceback2-1.4.0-r1 requires dev-python/linecache2[python_targets_python3_9(-)]
    dev-python/unittest2-1.1.0-r1 requires dev-python/linecache2[python_targets_python3_9(-)]

  dev-python/traceback2-1.4.0-r1 pulled in by:
    dev-python/testtools-2.4.0-r1 requires dev-python/traceback2[python_targets_python3_9(-)]
    dev-python/unittest2-1.1.0-r1 requires dev-python/traceback2[python_targets_python3_9(-)]

  dev-python/unittest2-1.1.0-r1 pulled in by:
    dev-python/testtools-2.4.0-r1 requires >=dev-python/unittest2-1.0.0[python_targets_python3_9(-)]

>>> No packages selected for removal by depclean
Packages installed:   1523
Packages in world:    177
Packages in system:   43
Required packages:    1523
Number removed:       0
...


which ultimately led to a cyclic dependency of dev-python/fixtures-3.0.0-r1 and dev-python/testtools-2.4.0-r1 as can be seen here:


wks058 ~ # eix dev-python/testtools
[U] dev-python/testtools
     Verfügbare Versionen:   2.4.0-r2^t {doc test PYTHON_TARGETS="pypy3 python3_10 python3_8 python3_9"}
     Installierte Versionen: 2.4.0-r1^t{tbz2}(01:01:00 05.07.2021)(-doc -test PYTHON_TARGETS="python3_9 -pypy3 -python3_8")
     Startseite:             https://github.com/testing-cabal/testtools
     Beschreibung:           Extensions to the Python standard library unit testing framework

wks058 ~ # eix dev-python/fixtures
[I] dev-python/fixtures
     Verfügbare Versionen:   3.0.0-r1^t{tbz2} {test PYTHON_TARGETS="pypy3 python3_10 python3_8 python3_9"}
     Installierte Versionen: 3.0.0-r1^t{tbz2}(01:02:05 05.07.2021)(-test PYTHON_TARGETS="python3_9 -pypy3 -python3_8")
     Startseite:             https://launchpad.net/python-fixtures https://pypi.org/project/fixtures/
     Beschreibung:           Fixtures, reusable state for writing clean tests and more

wks058 ~ # emerge -av --depclean dev-python/traceback2 dev-python/unittest2 dev-python/linecache2 dev-python/testtools dev-python/fixtures

Calculating dependencies... done!
  dev-python/fixtures-3.0.0-r1 pulled in by:
    dev-python/testtools-2.4.0-r1 requires >=dev-python/fixtures-1.3.0[python_targets_python3_9(-)]

  dev-python/linecache2-1.0.0-r1 pulled in by:
    dev-python/traceback2-1.4.0-r1 requires dev-python/linecache2[python_targets_python3_9(-)]
    dev-python/unittest2-1.1.0-r1 requires dev-python/linecache2[python_targets_python3_9(-)]

  dev-python/testtools-2.4.0-r1 pulled in by:
    dev-python/fixtures-3.0.0-r1 requires >=dev-python/testtools-0.9.22[python_targets_python3_9(-)]
    dev-python/subunit-1.4.0 requires >=dev-python/testtools-0.9.34[python_targets_python3_9(-)]

  dev-python/traceback2-1.4.0-r1 pulled in by:
    dev-python/testtools-2.4.0-r1 requires dev-python/traceback2[python_targets_python3_9(-)]
    dev-python/unittest2-1.1.0-r1 requires dev-python/traceback2[python_targets_python3_9(-)]

  dev-python/unittest2-1.1.0-r1 pulled in by:
    dev-python/testtools-2.4.0-r1 requires >=dev-python/unittest2-1.0.0[python_targets_python3_9(-)]

>>> No packages selected for removal by depclean
Packages installed:   1523
Packages in world:    177
Packages in system:   43
Required packages:    1523
Number removed:       0
wks058 ~ # less /usr/portage/dev-python/testtools/testtools-2.4.0-r2.ebuild

=> updating to testtools-2.4.0-r2 would not change the dependency, afaik.
Comment 1 Mark Dominik Bürkle 2021-07-06 10:39:45 UTC
current run of "emerge gentoo-sources; oldconfig, make kernel, etc.; emerge -vuNUD @world && emerge -a --depclean" worked.

Most likely because of one of 20 merges (19 updates 1 rebuild: rebuilding dev-python/fixtures-3.0.0-r1 for added python3_10 flag) being

[ebuild     U  ] dev-python/testtools-2.4.0-r2::gentoo [2.4.0-r1::gentoo] USE="-doc -test" PYTHON_TARGETS="python3_9 (-pypy3) (-python3_10) -python3_8" 0 KiB

resulting in fixtures still "rdepend+bdepend"ing on testtools but testtols only "pdepend"ing on fixtures:

# eix -vv dev-python/fixtures
* dev-python/fixtures
     Verfügbare Versionen:   3.0.0-r1^t{tbz2}
     IUSE (alle Versionen):  test PYTHON_TARGETS="pypy3 python3_10 python3_8 python3_9"
     Installierte Versionen: Version:   3.0.0-r1^t{tbz2}
                             Datum:     11:30:02 06.07.2021
                             USE:       -test PYTHON_TARGETS="python3_9 -pypy3 -python3_10 -python3_8"
                             RDEPEND:   >=dev-python/pbr-0.11[python_targets_python3_9(-)] dev-python/six[python_targets_python3_9(-)] >=dev-python/testtools-0.9.22[python_targets_python3_9(-)] dev-lang/python:3.9 >=dev-lang/python-exec-2:2/2=[python_targets_python3_9(-)]
                             BDEPEND:   >=dev-python/pbr-0.11[python_targets_python3_9(-)] dev-python/six[python_targets_python3_9(-)] >=dev-python/testtools-0.9.22[python_targets_python3_9(-)] dev-lang/python:3.9 >=dev-lang/python-exec-2:2/2=[python_targets_python3_9(-)] >=dev-python/setuptools-42.0.2[python_targets_python3_9(-)]
                             SRC_URI:
                             EAPI:      8
     Beste Versionen/Slot:   3.0.0-r1^t{tbz2}
     Startseite:             https://launchpad.net/python-fixtures https://pypi.org/project/fixtures/
     Beschreibung:           Fixtures, reusable state for writing clean tests and more
     Lizenz:                 || ( Apache-2.0 BSD )

# eix -vv dev-python/testtools
* dev-python/testtools
     Verfügbare Versionen:   2.4.0-r2^t{tbz2}
     IUSE (alle Versionen):  doc test PYTHON_TARGETS="pypy3 python3_10 python3_8 python3_9"
     Installierte Versionen: Version:   2.4.0-r2^t{tbz2}
                             Datum:     11:29:33 06.07.2021
                             USE:       -doc -test PYTHON_TARGETS="python3_9 -pypy3 -python3_10 -python3_8"
                             RDEPEND:   >=dev-python/extras-1.0.0[python_targets_python3_9(-)] dev-python/python-mimeparse[python_targets_python3_9(-)] >=dev-python/pbr-0.11[python_targets_python3_9(-)] dev-python/pyrsistent[python_targets_python3_9(-)] >=dev-python/six-1.4.0[python_targets_python3_9(-)] dev-lang/python:3.9[threads(+)] >=dev-lang/python-exec-2:2/2=[python_targets_python3_9(-)]
                             PDEPEND:   >=dev-python/fixtures-1.3.0[python_targets_python3_9(-)]
                             BDEPEND:   dev-lang/python:3.9[threads(+)] >=dev-lang/python-exec-2:2/2=[python_targets_python3_9(-)] >=dev-python/setuptools-42.0.2[python_targets_python3_9(-)]
                             SRC_URI:
                             EAPI:      8
     Beste Versionen/Slot:   2.4.0-r2^t{tbz2}
     Startseite:             https://github.com/testing-cabal/testtools
     Beschreibung:           Extensions to the Python standard library unit testing framework
     Lizenz:                 MIT


so I'm closing this as "worksforme".