krh@1: - keep history of installed packages/journal of package transaction, krh@1: so we can roll back to yesterday, or see what got installed in the krh@1: latest yum update. krh@1: krh@1: - signed pkgs krh@8: krh@8: - gzip repository of look-aside pkg xml files somehow? krh@8: krh@8: - transactions, proper recovery, make sure we don't poop our package krh@8: database (no more rm /var/lib/rpm/__cache*). krh@8: krh@18: - diff from one package set to another answers: "what changed in krh@18: rawhide between since yesterday?" krh@18: krh@18: - rewrite qsort and bsearch that doesn't require global context var krh@18: and can output a map describing the permutaion. krh@18: krh@18: - use hash table for package and property lists so we only store krh@18: unique lists (like for string pool). krh@40: krh@40: - use existing, running system as repo; eg krh@40: krh@40: razor update razor://other-box.local evince krh@40: krh@40: to pull eg the latest evince and dependencies from another box. We krh@40: should be able to regenerate a rzr pkg from the system so we can krh@40: reuse the signature from the originating repo. krh@41: krh@41: - Ok, maybe the fastest package set merge method in the end is to use krh@41: the razor_importer, but use a hash table for the properties. This krh@41: way we can assign them unique IDs immediately (like tokenizing krh@41: strings). krh@47: krh@47: - test suite should be easy, just keep .repo files around and test krh@47: different type of upgrades that way (obsoletes, conflicts, file krh@47: conflicts, file/dir problems etc). Or maybe just keep a simple file krh@47: format ad use a custom importer to create the .repo files. krh@47: krh@51: - pipelined download and install; download is network bound, install krh@51: is disk bound. Start installing once we have self-contained set of krh@51: packages. Install in reverse topo-sort order. Interruptible krh@51: installation; stops at nearest checkpoint. krh@52: krh@52: - make packages pointers be either an index into the package pool or a krh@52: direct link to a package when there is only one package. set a high krh@52: bit to indicate which it is. similar for properties. krh@55: krh@55: - split out hash table code from importer, make the merger use just krh@55: the hash table. krh@56: krh@56: - try to clean up the krh@56: krh@56: do { ... } while (((e++)->name & RAZOR_ENTRY_LAST) == 0); krh@56: krh@56: idiom for iteration of directories.