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