Hi!

seth vidal wrote:
Okay, I'm losing my mind on this so I'm going to write pseudo-code of
what should be happening for this dep presentation. Everyone who can
understand this, please respond:


- get the list of items in the transaction:
- for installs, check that all the reqs of this install are provided
    - for each pkg that provides for it, make sure the pkg is not
being updated/removed/obsoleted. - if providing_pkg is being updated/obsoleted: verify that the updating/obsoleting pkg provides the reqs
             - if it does not, mark the req as needed
- if providing_pkg is being removed: - mark the dep as being needed
 - for removes, for each provide of each removing_pkg:
   - for each pkg that requires this provide, mark it as needing a
dependency unless:
      - something else provides the dep
      - something being installed provides the dep


May be this could be implemented easier if there is a representation of the rpm db + the delta of currently added/removed pkgs. Then you would just need to resolve the deps in that db.

 - for updates
   - break them into install and remove
   - for all installs, pass to install
   - for all removes pass to delete

If updates are just seen as install and remove information is lost between these two steps. For smarter handling of multilib situations this information could be needed. This would allow keeping just one arch installed. For the kernel this is needed even on single arch systems while on multilib systems this may be wanted behaviour for all packages.

 - for obsoletes
   - break them into install and remove
   - for all installs, pass to install
   - for all removes, pass to remove


I'm not sure I have the case right for updates/obsoletes but looking
through the code it seems to be quasi-sane for matching the sets of
deps/provs.

Obsoletes for "yum update" and "yum update pkg" should probably be handled differently. The first case should IMHO handle all obsoletes in the given repositories while the later should just handle the obsoletes for the updating pkgs.

cu

        Florian
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to