Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 645310 - dependency resolution issues with sys-apps/portage-2.3.20
Summary: dependency resolution issues with sys-apps/portage-2.3.20
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Zac Medico
URL:
Whiteboard:
Keywords:
: 645284 (view as bug list)
Depends on:
Blocks: 645550
  Show dependency tree
 
Reported: 2018-01-21 23:49 UTC by Carlo
Modified: 2018-01-24 12:22 UTC (History)
3 users (show)

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 Carlo 2018-01-21 23:49:50 UTC
With v2.3.20 I get the following:

[ebuild     UD ] dev-libs/leveldb-1.15.0-r1 [1.18-r2]
[ebuild     UD#] net-libs/ldns-1.7.0-r1 [1.7.0-r2] USE="ssl%*" 
[ebuild     UD ] dev-cpp/gtest-1.7.0-r1 [1.8.0-r1] USE="-static-libs%" 
[ebuild  N     ] dev-cpp/gmock-1.7.0-r1  USE="{test} -static-libs" ABI_X86="(64) -32 (-x32)" 
[ebuild     UD#] dev-libs/protobuf-3.3.0 [3.5.1.1] USE="python%* {test*} -java%" PYTHON_TARGETS="python2_7%* python3_4%* python3_6%* -python3_5%" 
[ebuild  NS    ] sys-devel/automake-1.12.6-r1 [1.11.6-r2, 1.15.1-r1]
[ebuild  NS    ] sys-devel/automake-1.14.1-r1 [1.11.6-r2, 1.15.1-r1]
[ebuild  N     ] media-libs/speexdsp-1.2_rc3-r2  USE="-static-libs" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse sse2" 
[uninstall     ] media-libs/speex-1.2_rc1-r2 
[blocks b      ] <media-libs/speex-1.2.0 ("<media-libs/speex-1.2.0" is blocking media-libs/speexdsp-1.2_rc3-r2)

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

dev-libs/protobuf:0

  (dev-libs/protobuf-3.5.1.1:0/15::gentoo, installed) pulled in by
    dev-libs/protobuf:0/15= required by (dev-qt/qtwebengine-5.7.1-r2:5/5.7::playground, installed)
                     ^^^^^^                                                                                                           
    ~dev-libs/protobuf-3.5.1.1 required by (dev-python/protobuf-python-3.5.1.1:0/15::gentoo, installed)
    ^                  ^^^^^^^                                                                                                                                
    (and 3 more with the same problems)

  (dev-libs/protobuf-3.3.0:0/13::gentoo, ebuild scheduled for merge) pulled in by
    dev-libs/protobuf[python,python_targets_python2_7(-),-python_single_target_python2_7(-)] required by (sys-process/criu-2.5:0/0::gentoo, installed)
                      ^^^^^^                                                                                                                                                              

dev-libs/leveldb:0

  (dev-libs/leveldb-1.18-r2:0/0::gentoo, installed) pulled in by
    >=dev-libs/leveldb-1.18-r1 required by (dev-qt/qtwebkit-5.7.1:5/5.7::gentoo, installed)
    ^^                 ^^^^^^^

  (dev-libs/leveldb-1.15.0-r1:0/0::gentoo, ebuild scheduled for merge) pulled in by
    =dev-libs/leveldb-1.15.0-r1 required by (virtual/bitcoin-leveldb-0-r1:0/0::gentoo, installed)



issues one by one:

1a)
[ebuild     UD ] dev-libs/leveldb-1.15.0-r1 [1.18-r2]


virtual/bitcoin-leveldb-0-r1 lists dev-libs/leveldb-1.18-r2:0/0 as || dependency, the downgrade is incorrect. Issue might be the following difference between VDB and Gentoo repository:

--- /var/db/pkg/virtual/bitcoin-leveldb-0-r1/bitcoin-leveldb-0-r1.ebuild        2017-07-11 09:23:47.517452323 +0200
+++ virtual/bitcoin-leveldb/bitcoin-leveldb-0-r1.ebuild 2017-08-17 18:00:57.872178511 +0200
@@ -9,7 +9,7 @@

 RDEPEND="
        || (
-               =dev-libs/leveldb-1.18-r1
+               =dev-libs/leveldb-1.18-r2
                =dev-libs/leveldb-1.18
                =dev-libs/leveldb-1.17
                =dev-libs/leveldb-1.15.0-r1
1b)
[ebuild     UD#] net-libs/ldns-1.7.0-r1 [1.7.0-r2] USE="ssl%*" 

Basically the same issue with a silent dependency change in the openssh ebuilds 

-               !bindist? ( net-libs/ldns[ecdsa,ssl] )
-               bindist? ( net-libs/ldns[-ecdsa,ssl] )
+               !bindist? ( net-libs/ldns[ecdsa,ssl(+)] )
+               bindist? ( net-libs/ldns[-ecdsa,ssl(+)] )

without version bump. Running 

emerge openssh virtual/bitcoin-leveldb

fixed the issue. These silent dependency changes without revision bump should still be acceptable from my point of view. Instead of resorting to some magic by Portage, a (reviewable) VDB update, when dependencies get updated behind ones back, would be quite nice.

 
2a)
[ebuild     UD#] dev-libs/protobuf-3.3.0 [3.5.1.1] USE="python%* {test*} -java%" PYTHON_TARGETS="python2_7%* python3_4%* python3_6%* -python3_5%" 

Actually valid, the python use flag isn't available in protobuf-3.5.1.1


2b) [uninstall     ] media-libs/speex-1.2_rc1-r2 
[blocks b      ] <media-libs/speex-1.2.0 ("<media-libs/speex-1.2.0" is blocking media-libs/speexdsp-1.2_rc3-r2)

 The bug here is that net-analyzer/wireshark-2.4.3 requires <media-libs/speex-1.2.0 as well as speexdsp, but speex-1.2.0-r1 went stable, without caring that all consumers of the stable tree are compatible.

It would be nice, if Portage gave a suitable hint regarding newer ebuilds use flag requirements or the speex/wireshark dependency issue.


I see non of the issues with v2.3.19-r1. Congratulations regarding the improvements.
Comment 1 Carlo 2018-01-21 23:59:22 UTC
p.s.:

Portage provides the information regarding wireshark when trying to emerge speex.  It's just not available, when running 'emerge -puD world'.

emerge speex -pv

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

Calculating dependencies... done!
[ebuild   R    ] media-libs/speex-1.2_rc1-r2::gentoo  USE="ogg -static-libs" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

media-libs/speex:0

  (media-libs/speex-1.2.0-r1:0/0::gentoo, ebuild scheduled for merge) conflicts with
    <media-libs/speex-1.2.0 required by (net-analyzer/wireshark-2.4.3:0/2.4.3::gentoo, installed)
Comment 2 Larry the Git Cow gentoo-dev 2018-01-22 00:33:36 UTC
The bug has been referenced in the following commit(s):

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

commit bff161dc0ddd14907fdc459e0cded3e1b22eca70
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-01-22 00:28:08 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-01-22 00:33:28 +0000

    virtual/bitcoin-leveldb: revbump to 0-r2 for leveldb-1.18-r2 dep change (bug 645310)
    
    Since sys-apps/portage-2.3.20 defaults to --dynamic-deps=n, this revbump
    is needed in order to correct the dependencies of installed instances of
    virtual/bitcoin-leveldb-r1.
    
    Fixes: e8bc28b6fdd ("virtual/bitcoin-leveldb: Add =dev-libs/leveldb-1.18-r2")
    Bug: https://bugs.gentoo.org/645310
    Package-Manager: Portage-2.3.20, Repoman-2.3.6
    RepoMan-Options: --force

 .../{bitcoin-leveldb-0-r1.ebuild => bitcoin-leveldb-0-r2.ebuild}        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)}
Comment 3 Zac Medico gentoo-dev 2018-01-22 01:13:55 UTC
You notice the problem with sys-apps/portage-2.3.20 because it defaults to --dynamic-deps=n.

It's also possible to use the emerge --dynamic-deps=y or --changed-deps=y options as a workaround for this sort of issue.

I'm going to revbump all of the ebuilds in order to trigger rebuilds for everyone.
Comment 4 josef.95 2018-01-22 01:17:17 UTC
Same with the dev-python/reportlab versions after this commit: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf7345045e1414960dc4672d50827fbb73aa6960

emerge -avuDN @world

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

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-python/pillow:0

  (dev-python/pillow-4.3.0:0/0::gentoo, ebuild scheduled for merge) conflicts with
    >=dev-python/pillow-2.4.0[tiff,truetype,jpeg,python_targets_python2_7(-),python_targets_python3_6(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-),-python_single_target_python3_6(-)] required by (dev-python/reportlab-3.4.0:0/0::gentoo, installed)
                                            ^^^^                                                                                                                                                                                                     


Nothing to merge; quitting.

Rebuild dev-python/reportlab fixed this.
I think a revision bump on dev-python/reportlab versions would be fine.

Thanks.
Comment 5 Larry the Git Cow gentoo-dev 2018-01-22 01:26:56 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=862b70b2c90e1889e684381b188d492027755573

commit 862b70b2c90e1889e684381b188d492027755573
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-01-22 01:14:34 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-01-22 01:26:46 +0000

    net-analyzer/wireshark: revbumps for media-libs/speexdsp dep change
    
    Since sys-apps/portage-2.3.20 defaults to --dynamic-deps=n, this revbump
    is needed in order to correct the dependencies of installed instances of
    wireshark.
    
    Fixes: 68e22dda8c90 ("net-analyzer/wireshark: Preferentially depend on media-libs/speexdsp over media-libs/speex (bug #611766).")
    Bug: https://bugs.gentoo.org/645310
    Bug: https://bugs.gentoo.org/611766
    Package-Manager: Portage-2.3.20, Repoman-2.3.6
    RepoMan-Options: --force

 .../wireshark/{wireshark-2.2.7.ebuild => wireshark-2.2.7-r1.ebuild}     | 2 +-
 .../wireshark/{wireshark-2.4.2.ebuild => wireshark-2.4.2-r1.ebuild}     | 2 +-
 .../wireshark/{wireshark-2.4.3.ebuild => wireshark-2.4.3-r1.ebuild}     | 0
 3 files changed, 2 insertions(+), 2 deletions(-)}
Comment 6 Larry the Git Cow gentoo-dev 2018-01-22 01:42:34 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c7d03d22b3b20d80a30c56cf118d6b848341718

commit 9c7d03d22b3b20d80a30c56cf118d6b848341718
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-01-22 01:37:02 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-01-22 01:42:26 +0000

    sys-process/criu: revbumps for protobuf-python dep change
    
    Since sys-apps/portage-2.3.20 defaults to --dynamic-deps=n, this revbump
    is needed in order to correct the dependencies of installed instances of
    criu.
    
    Fixes: 11f24667f843 ("sys-process/criu: Depend on || ( dev-python/protobuf-python dev-libs/protobuf[python] ).")
    Bug: https://bugs.gentoo.org/645310
    Package-Manager: Portage-2.3.20, Repoman-2.3.6
    RepoMan-Options: --force

 sys-process/criu/{criu-2.12.1.ebuild => criu-2.12.1-r1.ebuild} | 2 +-
 sys-process/criu/{criu-2.5.ebuild => criu-2.5-r1.ebuild}       | 2 +-
 sys-process/criu/{criu-3.4.ebuild => criu-3.4-r1.ebuild}       | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)}
Comment 7 Larry the Git Cow gentoo-dev 2018-01-22 01:51:10 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1966270177684d9503d861cefcf9e7b6567c5c3c

commit 1966270177684d9503d861cefcf9e7b6567c5c3c
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-01-22 01:48:09 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-01-22 01:48:56 +0000

    dev-python/reportlab: revbumps for changed pillow dep
    
    Since sys-apps/portage-2.3.20 defaults to --dynamic-deps=n, this revbump
    is needed in order to correct the dependencies of installed instances of
    reportlab.
    
    Fixes: cf7345045e14 ("dev-python/reportlab: Fix dev-python/pillow dependency")
    Bug: https://bugs.gentoo.org/645310
    Package-Manager: Portage-2.3.20, Repoman-2.3.6
    RepoMan-Options: --force

 .../reportlab/{reportlab-3.3.0-r1.ebuild => reportlab-3.3.0-r2.ebuild}  | 2 +-
 .../reportlab/{reportlab-3.4.0.ebuild => reportlab-3.4.0-r1.ebuild}     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)}
Comment 8 Larry the Git Cow gentoo-dev 2018-01-22 02:22:13 UTC
The bug has been referenced in the following commit(s):

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

commit de02520f0c9d660af8a2cd0317648f69177f57c1
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-01-22 02:10:08 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2018-01-22 02:18:16 +0000

    net-misc/openssh: revbumps for net-libs/ldns dep change
    
    Since sys-apps/portage-2.3.20 defaults to --dynamic-deps=n, this revbump
    is needed in order to correct the dependencies of installed instances of
    openssh.
    
    It's not possible to revbump the 7.6_p1 ebuild to 7.6_p1-r1, since the
    7.6_p1-r1 ebuild already exists with the only difference being that
    the HPN_PATCH variable is commented out. As a compromise, make 7.6_p1-r2
    include HPN_PATCH but also remove the default IUSE setting for hpn in
    order to suppress bug 634594 by default.
    
    Fixes: a71042d76cb4 ("net-misc/openssh: Fix net-libs/ldns dependency")
    Bug: https://bugs.gentoo.org/645310
    Bug: https://bugs.gentoo.org/634594
    Package-Manager: Portage-2.3.20, Repoman-2.3.6
    RepoMan-Options: --force

 ...h-7.5_p1-r3.ebuild => openssh-7.5_p1-r4.ebuild} |   0
 net-misc/openssh/openssh-7.6_p1-r1.ebuild          | 336 ---------------------
 ...nssh-7.6_p1.ebuild => openssh-7.6_p1-r2.ebuild} |   4 +-
 3 files changed, 2 insertions(+), 338 deletions(-)}
Comment 9 Zac Medico gentoo-dev 2018-01-22 02:37:58 UTC
Hopefully I've fixed all of the issues mentioned here.

Please open new bugs for any more issues that you find.
Comment 10 Zac Medico gentoo-dev 2018-01-22 03:05:29 UTC
*** Bug 645284 has been marked as a duplicate of this bug. ***
Comment 11 Carlo 2018-01-22 21:35:07 UTC
Thank you, Zac.


As I'm not following gentoo-dev the policy change¹ comes as a surprise. This change requires quite some sensibility on the maintainers side or it will imply _plenty_ of additional (up to now avoidable) rebuilds. Gentoo ebuilds have never been that exact or static regarding their dependencies. There will always be the need to change a dependency from foo/bar to foo/bar-X to foo/bar:Y over time; And for lots of systems it'll mean full rebuild cycles - with the only real change being updated vdb entries. For a binary distribution the advantages of a static resolver make lots of sense, for Gentoo I'm not so sure.

This has probably been discussed to death on the mailing list, so I'll stop here. :)



[1] https://wiki.gentoo.org/wiki/Project:Portage/Dynamic_dependencies