- we could use getdents() nstead of readdir() to make it faster
  (this should currently be no performance problem...)
- change reading the config file, all additional things should be kept
  in the same order, negating should be possible
  just read all those lines into one big buffer? (no...)
- what happens if we move a file from one package to another?
  -> move to a global database
- add support for a list of postinstall-scripts
- add support for preinstall commands
- should these scripts be run once or every time?
- could we need something like obstack for memory allocation? (no...)
- log-file and better control of error messages
- add skip_regex again and use /usr/include/regex/
- add ghost entries with file-globbing
- allow writing sparse files
- MAX_SYMLINK=4069 is a hardcoded limit for symlinks, can we make this
  a dynamic value? maybe put the maximum value into the binary package
- add a flag HAVE_NUL if a file contains '\0'
- add a new compressed section with tags (for the missing info fields from
  a rpm package...)
- have file-globbing where all files will be replaced and never backed up
  (could be used to keep /usr always sane...)
- make the binary package byte order independent for other architectures
  I'd go for extra overhead for sparc and m68k...   ????
- check all paths that could leave half-written files behind due to
  fatal_no_mem ()
- make the listing of files much more configurable
- implement buffered writing/reading
- it should be possible to run checks as non-root (maybe not...)
- check all getopt() options against the ones in the config file
- add support to allow not only one package, but several different ones
  that can be marked as "stable" or "unstable" etc.
  I only want to change a global config option to go from a "stable"
  to an experimental "unstable" system. the global option can be
  overwritten by a per-package option...
  (this should probably be like dselect from debian. jur-unpack should
  be like dpkg...)
- check filesystems to have enough space: compute needed space for
  each dir, stat each dir and see what filesystems the dirs are on.
  the space should be added in 1k blocks for en ext2 filesystem.
  this should be done only by the client as it is filesystem dependent.
- maybe add a filemode abstraction layer that can be enabled at compile
  time. this might be needed if we add non-standard modes. all normal
  file modes should be portable across unix systems.
  otherwise the binary packages will get specific for different unix systems.

pkgmake:
- list of contents of a single package
- extract of a single package without any database modification

problems:
- old kernel modules are removed and might be needed before the next reboot
- news syslog-messages: logfile often has 0 bytes and is thought unchanged
- /etc/ppp/pap-secrets was changed to a symlink and just deleted for the
  original file again

i = 1;
if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &i, sizeof i)) {
  printf("Can't setsokcopt(TCP_NODELAY)\n");
}
