13 package contents integrity
14 sha256 sums of installed files
17 lists of directory contents
19 package database editing
20 e.g. marking a file as a configuration file
23 creating a package from the current state of an installed package
26 create a package from a tarball
34 build from shell scripts
38 write ahead log for package filesystem operations
39 it should always be possible for the package system
40 to figure out if it was interrupted
42 install, uninstall, upgrade, and downgrade hooks
46 network fetching of packages and package databases
47 reference counting of dynamic libs
49 simple packaging constructs
50 use shell scripts where possible
51 use shell functions as hooks and callbacks
53 package is just a tarball
54 can contain more than one package
58 package-name/version/files/{usr/bin/foo, etc}
59 package-name/version/info/hooks - shell script of functions
60 package-name/version/info/pkginfo - shell readable
61 package-name/version/info/manifest? derivable from tarball
62 package-name/version/info/dynamiclibs, or greppable from manifest?
65 packages/installed/<package>/files/sha1/ab/ab/hash -> file
66 librefs/<library name>/<package> (or file?)
67 sha1/ab/ab/<sha1hashs> -> file
68 fileowner/sha1/ab/ab/hash/packagename - can be more than one
70 need to mark a package as held for no automatic upgrade
72 configure to run a command after an any package work