Summary: | || dependencies do not work | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Daniel Harding <dharding> |
Component: | Unclassified | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | crusaderky, jjnievel, jrmalaq, lanius, mr_bones_, radek, usata |
Priority: | High | Keywords: | Inclusion |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 32290 | ||
Attachments: |
patch for portage.py
patch for portage.py patch for portage.py patch for portage.py |
Description
Daniel Harding
2003-09-28 18:04:37 UTC
*** Bug 29726 has been marked as a duplicate of this bug. *** Created attachment 20197 [details, diff]
patch for portage.py
Fixed.
Created attachment 20203 [details, diff]
patch for portage.py
Sorry!
I didn't think about 3 or more dependency.
The patch appears to fix the symptom, but I believe that there is a deeper problem that should be addressed, namely that dep_wordreduce is not reducing the deplist correctly. The existing logic in dep_zapdeps and dep_eval is correct for handing || dependencies, provided that dep_zapdeps is provided a properly reduced deplist. I will try to look into this again, although in my first investigation I was not able find the root of the problem. I was able to step through the execution of dep_wordreduce, but it was not clear at which point the behavior deviated from what it should have been. OK. I just looked into portage.py again. I think I fixed the problem more deeply :) What do you think? *** I explain why this bug happens: This problem happens when you set '-u' option and not first package in || dependecy is installed. portage builds entire tree and then removes the files which are alrealy installed when you set -u. portage always add first package in || dependecy to the entire tree even if it's not installed. In this case, || ( net-www/lynx net-www/links ) portage adds net-www/lynx to the entire tree. But net/www/lynx will not be removed because it's not being installed. portage should add net-www/links to the entire tree. I've corrected this point. Created attachment 20261 [details, diff]
patch for portage.py
Created attachment 20278 [details, diff]
patch for portage.py
Masatomo - thanks for your explanation. I now understand why dep_wordreduce
is
behaving the way it does. I've also made some minor improvements to your
patch
- the comments in dep_zapdeps have been updated, and dep_zapdeps creates
only a
single vardbapi object.
I modified it a bit more and remove the need to create a vardbapi at all. db[root]["vartree"].dbapi Included for -r17, *** Bug 33451 has been marked as a duplicate of this bug. *** *** Bug 30997 has been marked as a duplicate of this bug. *** this bug occurs again with portage-2.0.50-r2, it want's to install libelf although elfutils is already installed (ntp dependencie) According to the documentation, the || dependencies should be checked in order. With the ntp dependencies, I also would expect an already installed dep to be utilized. However, there's two camps on this one and the existing documentation points the other way. Check bug 46005. seems to be fixed in -r3 again |