1.1 --- a/DEPSOLVE.txt Mon Mar 10 11:30:00 2008 -0400
1.2 +++ b/DEPSOLVE.txt Tue Mar 11 15:45:53 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