|
krh@65
|
1 |
Towards replacing rpm + yum (0.1):
|
|
krh@65
|
2 |
|
|
krh@65
|
3 |
- installer part
|
|
krh@65
|
4 |
|
|
krh@65
|
5 |
- rpm file parser, create repo command
|
|
krh@65
|
6 |
|
|
krh@65
|
7 |
- conflicts, obsoletes
|
|
krh@65
|
8 |
|
|
krh@65
|
9 |
- versions in depsolving
|
|
krh@65
|
10 |
|
|
krh@65
|
11 |
- signed packages
|
|
krh@65
|
12 |
|
|
krh@65
|
13 |
- merge file lists when merging package sets
|
|
krh@65
|
14 |
|
|
krh@65
|
15 |
- import filelist.xml.gz too in yum importer
|
|
krh@65
|
16 |
|
|
krh@65
|
17 |
- download (libcurl?)
|
|
krh@65
|
18 |
|
|
krh@65
|
19 |
- figure out how to canonically represent empty string... ~0?
|
|
krh@65
|
20 |
|
|
krh@65
|
21 |
Misc ideas:
|
|
krh@65
|
22 |
|
|
krh@1
|
23 |
- keep history of installed packages/journal of package transaction,
|
|
krh@1
|
24 |
so we can roll back to yesterday, or see what got installed in the
|
|
krh@1
|
25 |
latest yum update.
|
|
krh@1
|
26 |
|
|
krh@8
|
27 |
- gzip repository of look-aside pkg xml files somehow?
|
|
krh@8
|
28 |
|
|
krh@8
|
29 |
- transactions, proper recovery, make sure we don't poop our package
|
|
krh@8
|
30 |
database (no more rm /var/lib/rpm/__cache*).
|
|
krh@8
|
31 |
|
|
krh@18
|
32 |
- rewrite qsort and bsearch that doesn't require global context var
|
|
krh@18
|
33 |
and can output a map describing the permutaion.
|
|
krh@18
|
34 |
|
|
krh@18
|
35 |
- use hash table for package and property lists so we only store
|
|
krh@18
|
36 |
unique lists (like for string pool).
|
|
krh@40
|
37 |
|
|
krh@40
|
38 |
- use existing, running system as repo; eg
|
|
krh@40
|
39 |
|
|
krh@40
|
40 |
razor update razor://other-box.local evince
|
|
krh@40
|
41 |
|
|
krh@40
|
42 |
to pull eg the latest evince and dependencies from another box. We
|
|
krh@40
|
43 |
should be able to regenerate a rzr pkg from the system so we can
|
|
krh@40
|
44 |
reuse the signature from the originating repo.
|
|
krh@41
|
45 |
|
|
krh@41
|
46 |
- Ok, maybe the fastest package set merge method in the end is to use
|
|
krh@41
|
47 |
the razor_importer, but use a hash table for the properties. This
|
|
krh@41
|
48 |
way we can assign them unique IDs immediately (like tokenizing
|
|
krh@41
|
49 |
strings).
|
|
krh@47
|
50 |
|
|
krh@47
|
51 |
- test suite should be easy, just keep .repo files around and test
|
|
krh@47
|
52 |
different type of upgrades that way (obsoletes, conflicts, file
|
|
krh@47
|
53 |
conflicts, file/dir problems etc). Or maybe just keep a simple file
|
|
krh@47
|
54 |
format ad use a custom importer to create the .repo files.
|
|
krh@47
|
55 |
|
|
krh@51
|
56 |
- pipelined download and install; download is network bound, install
|
|
krh@51
|
57 |
is disk bound. Start installing once we have self-contained set of
|
|
krh@51
|
58 |
packages. Install in reverse topo-sort order. Interruptible
|
|
krh@51
|
59 |
installation; stops at nearest checkpoint.
|
|
krh@52
|
60 |
|
|
krh@55
|
61 |
- split out hash table code from importer, make the merger use just
|
|
krh@55
|
62 |
the hash table.
|
|
krh@56
|
63 |
|
|
krh@56
|
64 |
- try to clean up the
|
|
krh@56
|
65 |
|
|
krh@56
|
66 |
do { ... } while (((e++)->name & RAZOR_ENTRY_LAST) == 0);
|
|
krh@56
|
67 |
|
|
krh@56
|
68 |
idiom for iteration of directories.
|
|
krh@63
|
69 |
|
|
krh@63
|
70 |
- version the sections in the file, put the element size in the header
|
|
krh@63
|
71 |
so we can add stuff to elements in a backwards compatible way.
|
|
krh@63
|
72 |
|
|
krh@63
|
73 |
- overlay package sets? mount a read-only /usr over nfs or from the
|
|
krh@63
|
74 |
virt-host and have a local package set overlaid over the read-only
|
|
krh@63
|
75 |
one. shouldn't need new features in the core package set data
|
|
krh@63
|
76 |
structure, but should be just conventions on top. we have the base
|
|
krh@63
|
77 |
package set from the r/o system, the overlay set from the local
|
|
krh@63
|
78 |
system and we can have an effective package set which is the merge
|
|
krh@63
|
79 |
of everything from the overlay into the base set. the effective set
|
|
krh@63
|
80 |
is easy to compute and we could do it on the fly or cache it. or
|
|
krh@63
|
81 |
maybe the effective set is the on-disk representation and the
|
|
krh@63
|
82 |
overlay can be computed when needed, we just keep a link back to the
|
|
krh@63
|
83 |
base.
|