DEPSOLVE.txt
changeset 173 41e125a91a03
parent 158 9745a231f8d7
child 174 ac1387f6aba4
     1.1 --- a/DEPSOLVE.txt	Mon Mar 10 11:30:00 2008 -0400
     1.2 +++ b/DEPSOLVE.txt	Wed Mar 12 16:40:50 2008 -0400
     1.3 @@ -25,23 +25,26 @@
     1.4  Depsolver:
     1.5  
     1.6      - Create new razor_transaction_packages ("rtp"s) for each
     1.7 -      requested install or remove.
     1.8 +      requested install or remove. These will be "unresolved", because
     1.9 +      we haven't yet found the razor_packages that correspond to them.
    1.10  
    1.11      - while there are new rtps:
    1.12  
    1.13 -	- qsort the new rtps
    1.14 +	- sort the new rtps
    1.15  
    1.16 -	- Walk the system package list, upstream package list, and new
    1.17 -          rtps in parallel. For each new INSTALL/FORCED_UPDATE rtp,
    1.18 -          set the "new_package" field and the appropriate bit in the
    1.19 -          upstream bit array. (For any not-found packages, set an
    1.20 -          UNAVAILABLE error.) For each new rtp of any type (INSTALL,
    1.21 -          REMOVE, FORCED_UPDATE, OBSOLETED), if there's a matching
    1.22 -          system package, set the "old_package" field and clear the
    1.23 -          appropriate bit in the system bit array.
    1.24 +	- Walk the system property list, upstream property list, and
    1.25 +          new rtp list in parallel, and:
    1.26  
    1.27 -	- Walk the system and upstream property lists in parallel,
    1.28 -          and:
    1.29 +	    - For each uninstalled PROVIDES:
    1.30 +
    1.31 +		- If the property is a valid package name (that is,
    1.32 +                  either it's a package providing its own name, or it
    1.33 +                  has a matching OBSOLETES), and it matches the name
    1.34 +                  of a new rtp of type INSTALL or FORCED_UPDATE with
    1.35 +                  an unresolved new_package, then set the rtp's
    1.36 +                  new_package to point to the package providing this
    1.37 +                  property and set the appropriate bit in the upstream
    1.38 +                  bit array.
    1.39  
    1.40  	    - For each to-be-installed non-file REQUIRES:
    1.41  
    1.42 @@ -138,6 +141,16 @@
    1.43  		  that PROVIDES that property. If so, we have a
    1.44  		  CONTRADICTION error.
    1.45  
    1.46 +
    1.47 +	    - For each installed PROVIDES:
    1.48 +
    1.49 +		- If the property is a valid package name (that is,
    1.50 +                  it's a package providing its own name), and it
    1.51 +                  matches the name of a new rtp with an unresolved
    1.52 +                  old_package, then set the rtp's old_package to point
    1.53 +                  to the package providing this property and clear the
    1.54 +                  appropriate bit in the system bit array.
    1.55 +
    1.56  	    - For each to-be-removed PROVIDES:
    1.57  
    1.58  		- If there's also an identical to-be-installed