do { ... } while (((e++)->name & RAZOR_ENTRY_LAST) == 0);
idiom for iteration of directories.
+
+- version the sections in the file, put the element size in the header
+ so we can add stuff to elements in a backwards compatible way.
+
+- overlay package sets? mount a read-only /usr over nfs or from the
+ virt-host and have a local package set overlaid over the read-only
+ one. shouldn't need new features in the core package set data
+ structure, but should be just conventions on top. we have the base
+ package set from the r/o system, the overlay set from the local
+ system and we can have an effective package set which is the merge
+ of everything from the overlay into the base set. the effective set
+ is easy to compute and we could do it on the fly or cache it. or
+ maybe the effective set is the on-disk representation and the
+ overlay can be computed when needed, we just keep a link back to the
+ base.