Summary: | sys-apps/portage doesn't remove backtrack masks if the reason for the mask got masked itself | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Cyprien Nicolas (fulax) <cyprien> |
Component: | Core - Dependencies | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | toralf |
Priority: | Normal | Keywords: | InVCS |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: | https://bugs.gentoo.org/show_bug.cgi?id=475850 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 300071, 381649 | ||
Attachments: |
emerge -DuNp @world --debug
emerge -DuNp --autounmask=n @world --debug |
Description
Cyprien Nicolas (fulax)
2011-07-18 15:28:51 UTC
(In reply to comment #0) > I didn't notice anything similar with alpha43 (I cannot tell for alpha44). > Adding --noreplace make things go worse, see bug 375571. > > sita ~ # emerge -DuNa @world > > These are the packages that would be merged, in order: > > Calculating dependencies... done! > [ebuild R ] x11-libs/libdrm-2.4.22 USE="libkms -static-libs" > VIDEO_CARDS="nouveau -intel -radeon -vmware" 0 kB This is similar to the way that kde-base/pykde4-4.6.5-r1 got pulled in as shown in bug 375039, comment #0. Please attach debug output: emerge -DuNa @world --debug &> debug.log Created attachment 280323 [details]
emerge -DuNp @world --debug
Here it is.
(BTW, the bug has been mark as CONFIRMED as I have EditBugs privileges, and I didn't find the input form to change it during initial bug submission)
Here's the most interesting part of the log: backtracking due to slot conflict: first package: (x11-libs/libdrm-2.4.22::gentoo, installed) second package: (x11-libs/libdrm-2.4.26::gentoo, ebuild scheduled for merge) package to mask: (x11-libs/libdrm-2.4.22::gentoo, installed) slot: x11-libs/libdrm:0 parents: ((media-libs/mesa-7.9::fulax, installed), '<x11-libs/libdrm-2.4.23'), ((x11-drivers/xf86-video-nouveau-0.0.16_pre20110711::gentoo, ebuild scheduled for merge), '>=x11-libs/libdrm-2.4.24[video_cards_nouveau]') You can see that backtracking creates a temporary mask for the installed libdrm-2.4.22 instance, in order to try and solve the conflict. Maybe we can handle this by making it mask all other instances of libdrm-2.4.22 at the same time, given that none of them will satisfy the >=x11-libs/libdrm-2.4.24[video_cards_nouveau] atom that triggered the conflict. Created attachment 280339 [details] emerge -DuNp --autounmask=n @world --debug (In reply to comment #3) > You can see that backtracking creates a temporary mask for the installed > libdrm-2.4.22 instance, in order to try and solve the conflict. Maybe we can > handle this by making it mask all other instances of libdrm-2.4.22 at the same > time, given that none of them will satisfy the > >=x11-libs/libdrm-2.4.24[video_cards_nouveau] atom that triggered the conflict. Maybe this comes with the --autounmask feature. Since a few weeks, --autounmask suggests me to override my package.mask by adding entries in portage.unmask. If I disable this feature, I get: $ emerge -DuNp --autounmask=n @world These are the packages that would be merged, in order: Calculating dependencies... done! Total: 0 packages, Size of downloads: 0 kB !!! The following update has been skipped due to unsatisfied dependencies: x11-drivers/xf86-video-nouveau:0 !!! All ebuilds that could satisfy ">=x11-libs/libdrm-2.4.24[video_cards_nouveau]" have been masked. !!! One of the following masked packages is required to complete your request: - x11-libs/libdrm-2.4.26::gentoo (masked by: package.mask) - x11-libs/libdrm-2.4.25::gentoo (masked by: package.mask) - x11-libs/libdrm-2.4.24::gentoo (masked by: package.mask) (dependency required by "x11-drivers/xf86-video-nouveau-0.0.16_pre20110711" [ebuild]) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. (In reply to comment #3) > [...] > You can see that backtracking creates a temporary mask for the installed > libdrm-2.4.22 instance, in order to try and solve the conflict. Maybe we can > handle this by making it mask all other instances of libdrm-2.4.22 at the same > time, given that none of them will satisfy the > >=x11-libs/libdrm-2.4.24[video_cards_nouveau] atom that triggered the conflict. This would result in an unsatisfied dependency, instead of a skipped update. The problem is that the mask for the installed libdrm is created for the update of nouveau. Some backtracks later it figures out that the update of nouveau leads to an unsolvable conflict and masks the update. At this point the masks created for libdrm because of the update for nouveau should be removed. *** Bug 375039 has been marked as a duplicate of this bug. *** This is fixed in git: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6cea2091526659521d35be6c8dc7733f69f1a760 This is fixed in 2.1.10.20 and 2.2.0_alpha60. |