Drop unused sha1.c from repository.
1 Towards replacing rpm + yum (0.1):
5 - rpm file parser, create repo command
9 - versions in depsolving
13 - merge file lists when merging package sets
17 - figure out how to canonically represent empty string... ~0?
19 - space calculation before transaction, but ideally, do a number of
22 - pre-link changing binaries and libs on disk screwing up checksum?
24 - nail down byte-order and word sizes of repo file.
26 - version the sections in the file, put the element size in the header
27 so we can add stuff to elements in a backwards compatible way.
31 - eliminate duplicate entries in package property lists.
33 - keep history of installed packages/journal of package transaction,
34 so we can roll back to yesterday, or see what got installed in the
37 - gzip repository of look-aside pkg xml files somehow?
39 - transactions, proper recovery, make sure we don't poop our package
40 database (no more rm /var/lib/rpm/__cache*).
42 - rewrite qsort and bsearch that doesn't require global context var
43 and can output a map describing the permutaion.
45 - use hash table for package and property lists so we only store
46 unique lists (like for string pool).
48 - use existing, running system as repo; eg
50 razor update razor://other-box.local evince
52 to pull eg the latest evince and dependencies from another box. We
53 should be able to regenerate a rzr pkg from the system so we can
54 reuse the signature from the originating repo.
56 - Ok, maybe the fastest package set merge method in the end is to use
57 the razor_importer, but use a hash table for the properties. This
58 way we can assign them unique IDs immediately (like tokenizing
61 - test suite should be easy, just keep .repo files around and test
62 different type of upgrades that way (obsoletes, conflicts, file
63 conflicts, file/dir problems etc). Or maybe just keep a simple file
64 format ad use a custom importer to create the .repo files.
66 - pipelined download and install; download is network bound, install
67 is disk bound. Start installing once we have self-contained set of
68 packages. Install in reverse topo-sort order. Interruptible
69 installation; stops at nearest checkpoint.
71 - split out hash table code from importer, make the merger use just
76 do { ... } while (((e++)->name & RAZOR_ENTRY_LAST) == 0);
78 idiom for iteration of directories.
80 - overlay package sets? mount a read-only /usr over nfs or from the
81 virt-host and have a local package set overlaid over the read-only
82 one. shouldn't need new features in the core package set data
83 structure, but should be just conventions on top. we have the base
84 package set from the r/o system, the overlay set from the local
85 system and we can have an effective package set which is the merge
86 of everything from the overlay into the base set. the effective set
87 is easy to compute and we could do it on the fly or cache it. or
88 maybe the effective set is the on-disk representation and the
89 overlay can be computed when needed, we just keep a link back to the
92 - incremental rawhide repo updates? instead of downloading 10MB zipped
93 repo every time, download a diff repo?
95 - use hash tables for dirs when importing files to avoid qsorting all
98 - corner cases such as no files/properties in repo etc segfault.