Plan
The canonical TODO list is in the source but some of the bigger points are:
- Link to a crypto library (nss, I guess, but euw, it's ugly) so we can add support for signed packages.
- Update depsolver to be able to scan through lists of packages and properties from a number of package sets. I'm thinking we need to make a sorted index of all properties in all sets by merging the property lists from all the involved package sets. Use a priority queue to merge n sorted lists.
- Finish installer part to figure out the right install order, be able to remove and update packages, store all rpm metadata . selinux stuff?
- Pipelined download and install. Downloading is network bound, installing is cpu/disk bound. We can run the depsolver a number of times to split up a big transaction in a number of sub-transactions. Then download all packages for one sub-transaction and start doing it. In the background, figure out the next sub-transaction and start downloading that.
- Split package set file out into optional parts: one core package set with the packages and properties, one with file info, and one with the rest of the rpm metadata. Regular depsolving will only need the core set, which should be small, but "yum install /usr/bin/xeyes" will have to download file list.