Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 469648 - sys-apps/portage: account for blockers when satisfying dependencies
Summary: sys-apps/portage: account for blockers when satisfying dependencies
Status: CONFIRMED
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:
: 497160 587072 (view as bug list)
Depends on:
Blocks: 300071
  Show dependency tree
 
Reported: 2013-05-13 04:53 UTC by Patrick Lauer
Modified: 2023-11-11 04:34 UTC (History)
8 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 Patrick Lauer gentoo-dev 2013-05-13 04:53:30 UTC
RDEP of genkernel-3.4.45:

                >=app-misc/pax-utils-0.2.1
                !=app-misc/pax-utils-0.5
                <app-misc/pax-utils-0.6

There is no version of pax-utils that can satisfy this.
Comment 1 Mike Auty (RETIRED) gentoo-dev 2013-05-13 07:59:32 UTC
pax-utils-{0.2.1,0.2.2,0.2.3,0.3.0,0.4} can all satisfy this dependency?  Can you explain further how this can't be satisfied?
Comment 2 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-05-13 09:29:45 UTC
There is nothing to be explained unless Patrick has something non-default going on, let us instead explain why certain versions satisfy this; it is somewhat tedious to explain, but then we can link to it in the future if others wonder the same.

1. Check out the present versions on http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-misc/pax-utils/ or sync your tree and see which versions are not visible by default.

2. Versions that genkernel sees without conditions:
       0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.4, 0.5, 0.6, 0.7

3. Apply condition: >=app-misc/pax-utils-0.2.1:
       We want versions newer than and including 0.2.1.

4. Versions that genkernel still sees with 1 condition applied:
       0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.4, 0.5, 0.6, 0.7

5. Apply condition: !=app-misc/pax-utils-0.5:
       Don't give me version 0.5.

6. Versions that genkernel still sees with 2 conditions applied:
       0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.4, 0.6, 0.7

7. Apply condition: <app-misc/pax-utils-0.6
       We want versions older than 0.6.

8. Versions that genkernel will see after all conditions are applied:
       0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.4

9. In order to eliminate the blocker, you mask >=app-misc/pax-utils-0.5.

10. More information can be obtained at http://wiki.gentoo.org/wiki/Known_Problems#app-misc.2Fpax-utils-0.5_is_blocking_sys-kernel.2Fgenkernel
Comment 3 Patrick Lauer gentoo-dev 2013-05-21 06:02:27 UTC
Let me rephrase:

Portage is unable to figure that out by itself:

# emerge -pv genkernel

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

Calculating dependencies... done!
[ebuild     UD ] app-misc/pax-utils-0.5 [0.7] USE="-caps (-python%)" 0 kB
[ebuild  N     ] sys-kernel/genkernel-3.4.45  USE="crypt -cryptsetup (-ibm) (-selinux)" 0 kB
[blocks B      ] =app-misc/pax-utils-0.5 ("=app-misc/pax-utils-0.5" is blocking sys-kernel/genkernel-3.4.45)

Total: 2 packages (1 downgrade, 1 new), Size of downloads: 0 kB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-kernel/genkernel-3.4.45::gentoo, ebuild scheduled for merge) pulled in by
    genkernel

  (app-misc/pax-utils-0.5::gentoo, ebuild scheduled for merge) pulled in by
    >=app-misc/pax-utils-0.1.17 required by (sys-apps/portage-2.1.12::gentoo, installed)
    <app-misc/pax-utils-0.6 required by (sys-kernel/genkernel-3.4.45::gentoo, ebuild scheduled for merge)
    >=app-misc/pax-utils-0.2.1 required by (sys-kernel/genkernel-3.4.45::gentoo, ebuild scheduled for merge)


So why not have a proper dependency on <pax-utils-0.5 so that portage has a chance?
Comment 4 Patrick Lauer gentoo-dev 2013-05-21 06:06:15 UTC
+  21 May 2013; Patrick Lauer <patrick@gentoo.org> genkernel-3.4.45.ebuild:
+  Collapse pax-utils blockers/dependencies to make portage able to resolve
+  dependencies #469648

Tadaah. Happy portage means happy users.
Comment 5 Tom Wijsman (TomWij) (RETIRED) gentoo-dev 2013-05-21 08:56:08 UTC
I see, but that's still a bug in Portage then, let's fix it there...
Comment 6 Zac Medico gentoo-dev 2013-05-21 18:12:28 UTC
The issue is that portage simply ignores blockers for most dependency calculations, and then bails out at the end if necessary. It works fine for most simple cases, but not for some complex ones.
Comment 7 Sebastian Luther (few) 2014-01-05 18:48:51 UTC
*** Bug 497160 has been marked as a duplicate of this bug. ***
Comment 8 Zac Medico gentoo-dev 2016-07-09 18:34:24 UTC
*** Bug 587072 has been marked as a duplicate of this bug. ***