2019-08-02:
	* (seebs) Pass flags & O_NOFOLLOW, also use that to influence
	  stat types. Note. &. Not |.

2019-08-01:
	* (seebs) Pass flags|O_NOFOLLOW on when resolving paths with openat.

2019-05-15:
	* (RP) Add SDPX license headers to source files.

2019-04-10:
	* (seebs) Experimental workaround for special non-blocking open
	  case.
	* (seebs) fix warnings in renameat2.

2019-04-09:
	* (seebs) Partial fix for db corruption issue.
	* (seebs) Make a glibc renameat2 wrapper that just fails because
	  implementing renameat2 semantics is Surprisingly Hard.

2018-12-15:
	* (seebs) Import IPC patch from Rasmus Villemoes.
	* (seebs) Import (another) IPC patch from Rasmus Villemoes.

2018-11-29:
	* (seebs) add missing <stdint.h> to pseudo_db.c. Thanks to
	  Bernhard Hartleb <bernhard.hartleb@gmail.com> for pointing
	  this out.

2018-09-20:
	* (seebs) coerce inodes to signed int64_t range when shoving
	  them into sqlite.
	* (seebs) add another /*fallthrough*/ comment to make gcc7 happy.
	* (seebs) also make sure inodes are handled as 64-bit, not
	  32-bit, which probably matters more. Thanks to <Jack.Fewx@dell.com>
	  for catching this.

2018-04-13:
	* (seebs) Reduce spamminess of path mismatches.
	  Don't log path mismatches with multiple links unless you've
	  requested path+verbose debugging. Also allow pseudo_debug
	  to take a 0 to indicate "always debug", because we want that
	  message unconditionally, and I don't want near-identical
	  calls to diag() and debug().
	* (seebs) Fix a lurking stray slash that could happen while
	  resolving absolute symlinks.
	* (seebs) fix mishandled flags for symlink following.

2018-04-02:
	* (seebs) Change default copyright notice in guts to
	  say "Peter Seebach" rather than "Wind River" as I haven't
	  worked there in over a year.

2018-03-31:
	* (seebs) keep pseudo_fix_path from changing errno, because
	  *some* people think they should check errno to find out
	  whether an error occurred, even if no call has returned
	  a status indicating an error, and this is completely wrong
	  but we can't fix them all.
	* (seebs) check for wrapper initialization in syscall wrapper,
	  because what if it was the *first* call someone made. (Thanks
	  to Joshua Watt <jpewhacker@gmail.com> for diagnosing this
	  before I got a chance.)

2018-03-30:
	* (seebs) fix path stuff more thoroughly.
	* (seebs) Merge suggested README change from Richard Tollerton
	  <rich.tollerton@ni.com> pointing to oe-core list.
	* (seebs) Merge suggested setuid/etc bit change from
	  Richard Tollerton, and associated test case.

2018-03-29:
	* (seebs) wrap syscall, and if SYS_renameat2 exists, try to
	  reject it with ENOSYS, because coreutils started using a
	  new syscall. An actual renameat2 wrapper will be a major
	  effort ("changing the pseudo_ipc data structure") and is
	  pointless when glibc hasn't got a wrapper so we have no
	  viable test cases.

2018-03-06:
	* (seebs) Update path handling a bit to correctly fail if a path
	  tries to have a slash after a plain file name, even in cases
	  like "foo/.", which were previously ignored (or in the case of
	  "..", resolved as though it had been a directory).

2018-03-01:
	* (seebs) If you get a CREAT for an existing file, and it matches
	  both path and inode, don't delete the entry because the inode
	  matched and then not create it because the path used to match
	  before you delete it.

2018-02-26:
	* (seebs) implement mkstemps, mkostemp, and mkostemps. Actually,
	  move implementation all to mkostemps, then implement the others
	  in terms of it.

2018-02-19:
	* (seebs) fix using index of request rather than request's value

2018-02-16:
	* (seebs) allow closing client #0.

2018-02-15:
	* (seebs) O_TMPFILE is actually some other flag AND O_DIRECTORYy,
	  so a test for (flags & O_TMPFILE) does not actually test that
	  O_TMPFILE is set.

2018-01-20:
	* (seebs) merge patch from <joshua.g.lock@linux.intel.com> to fix
	  open/openat flags.

2018-01-16:
	* (seebs) rework the LINKAT case significantly but now
	  it's actually probably right.
	* (<zboszor@pr.hu>) handle extremely long group names
	  in getgrnam and similar functions.
	* (seebs) drop the diagnostic for a missing "real" function
	  as it turns out to be counterproductive at best.
	* (seebs) merge epoll support from <alexander.kanavin@linux.intel.com>
	* (seebs) add wrapper for statvfs (based on patch from
	  <dan.dedrick@gmail.com>)
	* (seebs) Call this 1.9.0.
	* (seebs) Experimental-ish: Require a response even for FASTOP
	  just to confirm delivery of message/server availability.

2017-12-22:
	* (seebs) handle the pathological case of LINKAT with
	  AT_SYMLINK_FOLLOW on /proc/self/fd/N.

2017-12-18:
	* (seebs) Add a list of clients as a handler for SIGUSR2. (Useful
	  for debugging, maybe.)

2017-04-13:
	* (seebs) don't unset LD_PRELOAD or the like, because if you
	  do that, bash can segfault because it "knows" how many
	  fields are in environ.

2017-02-24:
	* (seebs) import posix_acl_default fix from Anton Gerasimov
	  <anton@advancedtelematic.com>
2017-02-03:
	* (gportay) contributed fix to Makefile (fix binaries rebuild).

2017-02-01:
	* (seebs) handle xattr deletion slightly more carefully.
	* (seebs) tag this as 1.8.2

2016-12-12:
	* (seebs) contributed fix to makewrappers (fix space/tab issues)
	* (seebs) contributed fixes for Python 3 print support
	* (seebs) contributed fixes for Python 3 support
	* All of these from: Gaël PORTAY <gael.portay@savoirfairelinux.com>
	* (seebs) import fix from Rabin Vincent for test case
	* (seebs) import fix from Rabin Vincent for pthread mutexes
	* (seebs) import fix from George McCollister for capset.
	* (seebs) import fix from Igor Gnatenko for man page sections.

2016-11-23:
	* (seebs) actually wait on server shutdown for pseudo -S [cmd]

2016-11-04:
	* (seebs) clarify usage message on missing --prefix

2016-10-31:
	* (seebs) drop silly if

2016-10-29:
	* (seebs) handle x32

2016-10-13:
	* (seebs) handle commas in CFLAGS

2016-09-30:
	* (seebs) Fix rename at, matching fix from ee00f63d for rename. Bug
	  and fix provided by Anton Gerasimov <anton@advancedtelematic.com>.

2016-09-28:
	* (seebs) Send errors to log when daemonizing, but do that a lot
	  sooner to prevent startup messages which can show up spuriously
	  with multiple clients.
	* (seebs) return file descriptor from pseudo_logfile, so we set
	  pseudo_util_debug_fd to the right value instead of to stdin.
	  Nice bug.

2016-09-22:
	* (seebs) don't send SIGUSR1 to init.

2016-07-29:
	* (seebs) Don't clear bindings for a statement with no bindings.

2016-07-28:
	* (seebs) Fix performance issue on deletion with xattr changes.

2016-07-08:
	* (RP) release 1.8.1
	* (joshuagl) Fix log table creation issue
	* (joshuagl) Fix sqlite usage pseudo segfault
	* (joshuagl) Fix directory permissions for build

2016-05-18:
	* (seebs) move syncfs to a subport so it can be enabled only on
	  systems which have it.
	* (seebs) make pseudo_foo() wrappers for mknod/mknodat, similar to
	  the ones for stat/fstat, because Linux doesn't actually have mknod
	  (or stat) in glibc.
	* Post diagnostic for missing real_foo() functions even when dlerror
	  doesn't give a specific error.
	* All of this because ld.so started giving dlerror results for
	  missing functions with RTLD_NEXT. It turns out we were failing to
	  notice some missing functions. None of them actually mattered, but
	  it's worth fixing.

2016-05-12:
	* (seebs) merge kergoth's fix to respect $(LDFLAGS) from environment.
	* (seebs) call this 1.8.0

2016-03-25:
	* (seebs) handle deletion of xattrs, renames, and so on. Eww.

2016-03-24:
	* (seebs) make xattr db use {dev, ino}. this includes an in-place
	  migration of the tables for existing databases.

2016-03-22:
	* (seebs) extract variable name from message for remove_xattr so it
	  actually works.

2016-03-11:
	* (seebs) set sane umask in server, just in case.

2016-03-10:
	* (seebs) make bind work (so userspace NFS server can handle pseudo)

2016-03-09:
	* (seebs) workaround for bash redefining getenv/unsetenv/etc.

2016-03-02:
	* (seebs) more server launch rework and updates
	* (seebs) make dup/dup2 less verbose in client
	* (seebs) cleanup client spawning code a bit

2016-03-01:
	* (seebs) server launch reworking

2016-02-24:
	* (seebs) event logger cleanup, improved diagnostics for client
	  spawning, server exit cleanup.

2016-02-23:
	* (seebs) event logger initial implementation

2016-02-16:
	* (seebs) don't try to force pseudo's debug fd to fd 2 in clients.
	  Also, don't allow server to end up with a client on fd 2, whether
	  or not fd 2 is already in use.

2016-02-09:
        * (seebs) 1.7.5 release

2016-02-08:
        * (seebs) require -S to shutdown server when running a command.
        * (seebs) improve logic for server shutdowns, increase short timeout
        * (seebs) rework client server-spawning logic significantly
        * (seebs) make abort messages make it out, display message on abort

2016-02-05:
	* (seebs) don't abort search for server on first try.
        * (seebs) new clients cancel a shutdown request.
        * (seebs) sort xattrs when returning list.
        * (seebs) add retry interval, rather than instant retries.

2016-01-22:
        * (seebs) Mask in S_IFREG when mknod called with no S_IFMT bits.

2015-09-22:
	* (seebs) Fix modes after fopen/fopen64.

2015-09-04:
	* (seebs) add return value printing to wrapper debug!
	* (seebs) make mkdirat() restore errno, also don't pass
	  AT_SYMLINK_NOFOLLOW to fchmodat() since it is ignored, and
	  we know that if the thing exists at all, it is a directory
	  and thus AT_SYMLINK_NOFOLLOW would be irrelevant anyway.
	* (seebs) and 1.7.3, of course.

2015-09-03:
	* (seebs) Use original mode, not 0600, for the chmods used to
	  ensure that an 0700 umask didn't prevent writing.
	* (seebs) remove the comment saying that 0700 umasks were expected
	  to break things.
	* (seebs) and call this 1.7.2.

2015-09-02:
	* (seebs) call this 1.7.1, since that seems to be all the bugs
	  I can immediately find.

2015-09-01:
	* (seebs) use PSEUDO_STATBUF and base_lstat in path resolution, because
	  plain lstat can fail on XFS if an inode number is out of the 32-bit
	  range.
	* (seebs) if no pointer was provided to realpath, provide allocated
	  dup.

2015-08-24:
        * (seebs) drop unused/unimplemented "picky_fchmodat", since I
          currently have no systems which implement it, and the implementation
          for NO_REAL_AT_FUNCTIONS was difficult to define.
        * (seebs) drop unused "doing_link" in fchownat, which I think predates
          the current database entirely.
        * (seebs) drop unused "old_trailing_slash".
	* (seebs) tag this as 1.7.0.

2015-08-22:
	* (seebs) Prevent files from getting created with real filesystem
	  mode 0, even with umask.
	* (seebs) xattrdb logic fixes.
	* (seebs) Debugging messages.

2015-08-21:
	* (seebs) don't put incorrect host UIDs in dummy entries in db.
	* (seebs) merge existing values for chown/chmod with xattrdb.

2015-08-20:
        * (seebs) don't send open/exec messages unless server is logging.

2015-08-19:
        * (seebs) Reduce alloc/free cycles in path computations.

2015-08-17:
	* (seebs) profiling improvements

2015-08-14:
	* (seebs) profiling cleanup, add profiler to gitignore
	* Start using 1.7.0 version for internal work.

2015-08-13:
	* (seebs) client profiling stuff (first pass)

2015-07-17:
	* (seebs) allow actually making fifos without randomly closing fd 0
	* 1.6.7

2015-07-16:
	* (seebs) don't truncate xattr attributes that end with a slash.
	* (seebs) allow actually making fifos
	* 1.6.6

2015-05-04:
	* (seebs) don't give spurious trailing slash diagnostics
	* 1.6.5

2015-01-22:
	* (seebs) work when --prefix doesn't exist yet
	* 1.6.4

2015-01-15:
	* (seebs) Rework PSEUDO_PASSWD path allocation for clarity,
	  I hope.
	* 1.6.3

2015-01-14:
	* (seebs) Merge pabigot's fix for a missing antimagic() in
	  etc_file code.
	* (seebs) Make configure reject a "prefix" of the current
	  directory. It fails in strange ways and is easy to detect.
	* (seebs) handle colon-separated lists in PSEUDO_PASSWD.
	  Derived in part from contribution from pabigot.
	* (seebs) change allocation order in password file locking.

2015-01-05:
	* (seebs) First try at handling trailing slashes in path names
	  correctly. (Which is to say, a trailing slash on a file name
	  which is not a directory name should yield ENOTDIR from a lot
	  of things.)

2014-10-03:
	* (seebs) in fact, suppress a lot of sanity checks entirely for
	  did_unlink.
	* (seebs) merge get_file_path functionality into find_file_dev,
	  since you never call find_file_dev unless you want to do that.
	* (seebs) If a file is in the database by inode but not path,
	  don't try to create a new link for it.
	* (seebs) when renaming, the link of the "old" file name should be
	  contingent on whether *it* was in the database, not whether
	  the *new* name was in the database. Whoops.
	* (seebs) 1.6.2

2014-10-02:
	* (seebs) use sqlite3_bind_int64 for inodes.
	* (seebs) suppress path mismatch warnings for did_unlink.

2014-07-18:
	* (seebs) Make "server already offline" message into a debugging
	  message (PDBGF_INVOKE).
	* (seebs) 1.6.1

2014-07-17:
	* (seebs) Restrict symbol version restrictions to x86-64 and i386
	  rather than x86-64 and any old thing. Fixes build problems on ARM.

2014-07-11:
	* (seebs) merge in symbol version restrictions (slightly tweaked)
	  for Linux.

2014-07-10:
	* (seebs) Don't pass -L/usr/lib* for sqlite, because that's probably
	  the default.
	* (seebs) include sys/xattr.h explicitly for Darwin, also fix things
	  up so we aren't relying on seeing a declaration for our dummy
	  wrapper for fgetgrent_r which doesn't exist here.
	* (seebs) fix typo in xattr message
	* (seebs) make xattr work on Darwin, too.

2014-06-13:
	* (seebs) don't follow symlinks for lutimes.
	* (seebs) Use sizeof instead of strlen to initialize static value.

2014-05-27:
	* (seebs) start noticing umask, mask it out from open or mkdir
	  calls rather than relying on underlying open/mkdir to do it.
	* (seebs) add a test for umask and filesystem-vs-db modes.

2014-05-16:
	* (seebs) fchmodat: don't drop flags, report failures, to improve
	  compatibility/consistency. Cache the knowledge that
	  AT_SYMLINK_NOFOLLOW gets ENOTSUP.
	* (seebs) mask out group/other write bits in real filesystem to
	  reduce risks when assembling a rootfs including world-writeable
	  directories.
	* (seebs) send a round-trip message to the server before exiting
	  if any messages have been sent, so the program won't exit before
	  the server processed those messages.
	* (pabigot) Don't memory-leak on checks for PSEUDO_UNLOAD, also
	  check the correct environment when spawning new things. (Contributed
	  by Peter A. Bigot).
	* (seebs) mask 022 back in too, when restoring a database mode.

2014-05-15:
	* (seebs) drop flags when calling fchmodat() to appease GNU tar.

2014-04-24:
	* (seebs) extended attribute support

2014-01-23:
	* (seebs) mknod wasn't calling mknodat.
	* (seebs) mkdirat wasn't recording the logical DB mode for directories

2014-01-22:
	* (seebs) notes on some Futures planning.
	* (seebs) Typo/formatting issue in man page.
	* (seebs) message formatting/clarity cleanup and typo fixes.
	* (seebs) First draft of passwd_fallback implementation.
	* (seebs) bump this all to 1.6.0.

2014-01-15:
	* (seebs) performance test/test case updates.

2013-06-20:
	* (seebs) refactor debugging code
	* (seebs) start using 1.5.2 numbering

2013-06-18:
	* (seebs) Fix bug in oldclone (reported by rich@noir.com).

2013-02-27:
	* (seebs) Oh, hey, what if I took out my debug messages?
	* (seebs) update docs a bit to reduce bitrot

2013-02-26:
	* (seebs) When built -DNDEBUG, completely drop pseudo_debug calls.
	* (seebs) Add PSEUDO_ALLOW_FSYNC to allow temporary re-enabling of
	  fsync to work around filesystem bugs.
	* (seebs) call that 1.5.1.

2013-02-17:
	* (seebs) Fix uninitialized variable in unlink, fix force-fsync for
	  Darwin (off64_t is not a distinct type there).

2013-02-16:
	* (seebs) Add wrapper setting which automatically returns a fixed
	  value from some wrappers. Add fixed-value wrappers for all the
	  *sync() functions. These are all contingent on --enable-force-async.

2013-02-15:
	* (seebs) Add support for in-memory DB. This, plus upcoming
	  fsync-related changes, are expected to be big enough to justify
	  calling this 1.5.

2013-02-13:
        * (seebs) calling link while chrooted could in some cases result
          in the root path not being prepended at all. One more try!
        * (seebs) 1.4.5.

2013-02-12:
        * (seebs) calling link while chrooted could in some cases result
          in the root path being double-appended.
        * (seebs) and tag 1.4.4 so that can get out as a clean update.

2013-01-31:
        * (seebs) tag 1.4.3 (to avoid any problems with the changes since
          1.4.2 and old tarballs)

2013-01-30:
        * (seebs) Subtle tweaks to avoid GLIBC_2.7 dependencies which
          can cause trouble trying to copy libpseudo.so to older hosts.
        * (seebs) add "with-sqlite-lib" to simplify cases where sqlite's
          libdir computation differs from what we otherwise want; for
          instance, with bitbake, we often end up wanting $lib = lib64,
          but $sqlite_lib = lib.

2012-12-13:
        * (seebs) tag 1.4.2.

2012-12-12:
        * (seebs) Remove extra tab from the path alloc code in
          makewrappers. (Which has no effect since I changed my mind about
          the implementation which would have made it show up.)
        * (seebs) linkat() implementation. as a side effect, clear up
          the documentation and behavior of link(2) to reflect host
          OS semantics: Linux will hardlink symlinks, Darwin will only
          hardlink their targets.
	* (seebs) make linkat() implementation compile/run on Darwin,
	  fix header bitrot for Mountain Lion.

2012-08-09:
	* (seebs) base_stat should be real_stat64, not stat64
	* (seebs) add stat64/lstat64/fstat64 wrappers to Linux (not
	  previously needed because the libc versions call stuff we
	  already wrap).

2012-08-02:
	* (seebs) fix some Darwin-specific bitrot for clang/llvm.
        * (seebs) Drop the _plain thing, convert unix/guts/* to use
          PSEUDO_STATBUF.
        * (seebs) Tag 1.4.1.

2012-07-27:
	* (seebs) Convert from .tgz to tar.bz2 since that's handier for
	  Yocto.

2012-07-24:
	* (seebs) Fix a couple of bitrots from the update.

2012-07-20:
	* (seebs) Add --cflags, deprecate --arch.
	* (seebs) tag 1.4 (since this should now work on arbitrary targets)

2012-06-28:
        * (seebs) Tag 1.3.1.

2012-06-27:
        * (seebs) Fix chroot coredump with long root path.

2012-04-30:
	* (seebs) Update README about new upstream.

2012-04-09:
	* (seebs) Improvements to rpath logic for sqlite, etc.
	* (seebs) Improvements to the logic for picking options
	  like -m32, -m64 (which is to say, on ARM:  Don't.)

2012-03-28:
	* (seebs) Cleanup unused variables, stray semicolons, add
	  comments to some unused functions which exist because the
	  wrapper generator makes them anyway.
	* (seebs) Make system() drop environment if PSEUDO_UNLOAD is
	  set.

2012-03-27:
	* (seebs) Merge in:
	* (mhatle) Improve configuration compatibility with OE-Core.
	* (seebs) Provide option to statically link libsqlite.
	* (seebs) 1.3 branch

2012-03-26:
	* (seebs) Add popen() call to set up environment.

2012-02-06:
	* (seebs) Merge O_LARGEFILE into flags, not mode (thanks to Lei
	  Liu at Wind River for the fix).

2012-02-02:
	* (seebs) stash dir name for DIR * from opendir using dirfd.
	* (seebs) add closedir.
	* (seebs) add initial pass at renameat()
	* (seebs) update makewrappers with smarter *dirfd handling.
	* (seebs) in base_path, don't try to strlen the result if
	  fd_path() returns NULL.

2011-11-02:
	* (seebs) Call this 1.2 because the UNLOAD change is moderately
	  significant, and so's the clone change.

2011-11-01:
	* (mhatle) Stop valgrind from reporting use of uninitialized
	  memory from pseudo_client:client_ping()

2011-10-26:
	* (mhatle) update clone wrapper to add an intermediate function
	  to avoid setting environment variables in the parent.

2011-10-20:
	* (mhatle) change from internal PSEUDO_RELOADED to external
	  PSEUDO_UNLOAD environment variable.  Enable external programs
	  to have a safe and reliable way to unload pseudo on the next
	  exec*.  PSEUDO_UNLOAD also will disable pseudo if we're in a
	  fork/clone situation in the same way PSEUDO_DISABLED=1 would.

2011-07-19:
	* (seebs) initialize a variable in that "realpath" code.

2011-06-08:
	* (seebs) Get the modern realpath from glibc instead of the old
	  one inexplicably proferred by RTLD_NEXT.  Fixes realpath(path, NULL)
	  when PSEUDO_DISABLED=1.

2011-06-06:
	* (seebs) revise system() handler substantially.  It now
	  pollutes the environment but works.
	* (seebs) Call it "1.1.1" so the nice folks doing Yocto
	  can have an official branch and not need to use git.
	* (seebs) add "tarball" make target.

2011-06-02:
	* (seebs) intercept system() so the pseudo environment is
	  properly set for it.
	* (seebs) call this "1.1" since the cumulative result of all
	  of these changes is pretty big.

2011-05-31:
	* (seebs) Don't mask in 0100 to filesystem modes for things which
	  are not actually directories, because this breaks the special
	  logic in euidaccess for X_OK.

2011-05-25:
	* (seebs) fix for ulckpwdf()

2011-04-21:
	* (seebs) don't use strerror in wrappers, because it can
	  lead to malloc deadlocks if part of setting up a malloc
	  operation falls into strerror which uses locale... Curse
	  you, Fedora 13.  You and your perfectly reasonable and
	  standards-conforming behavior which happened to inconvenience
	  me.

2011-04-16:
	* (seebs) remove duplicate definition of real_clone() from
	  the oldclone port.

2011-04-13:
	* (seebs) base_path of an empty string should be an empty string,
	  not $pwd.

2011-04-04:
	* (seebs) whitespace cleanup for Python code

2011-04-01:
	* (seebs) update README

2011-03-25:
	* (seebs) don't try to search path when you don't have one
	* (seebs) merge in ports branch
	* (seebs) fix permissions on subports/preports
	* (seebs) try to force debug fd to 2

2011-03-24:
	* (seebs) more work on OS X port.
	* (seebs) include errno in the verbose debug output
	* (seebs) fix darwin fcntl.
	* (seebs) fix *xattr for darwin (they take more arguments)

2011-02-18:
	* (seebs) moving things to Unix port, cleanup for Darwin

2011-02-14:
	* (seebs) first pass on splitting out ports
	* (seebs) various cleanup
 
2011-02-10:
	* (seebs) pseudo_client_shutdown(), and the pseudo server, have to
	  be smart enough to make the local state directory in case the
	  pseudo binary is invoked directly by a user before being spawned
	  by the client.

2011-02-09:
	* (seebs) the long-awaited cleanup of the database initialization
	  code.  it's not really beautiful but it's quite a bit better.

2011-02-08:
	* (seebs) Get full paths for exec*()

2011-01-24:
	* (mhatle) Revert last result cache and related commits.
	  caching proved to be unreliable.

2011-01-14:
	* (seebs) Automatically create prefix/state directories.
	* (mhatle) Avoid caching OP_EXEC calls

2011-01-13:
	* (seebs) Subtle cache fixup.

2010-12-17:
	* (mhatle) Disabled additional early setup if pseudo is disabled

2010-12-16:
	* (mhatle) change the journal from PERSIST to OFF
	* (seebs) update docs now that fakeroot and password support are in,
	  this being long overdue
	* (seebs) fix parallel build issue introduced with maketables

2010-12-15:
	* (mhatle) add sqlite call profiling, enable with NPROFILE
	* (mhatle) as a result of profiling, optimize inode search
	* (mhatle) rearrange the pseudo_op file data operations to reduce
		   the number of selects.
	* (mhatle) add the ability to cache the last select result
	* (mhatle) change the indexing in pseudo_db.c

2010-12-14:
	* (mhatle) restructure wrapfuncs.c

2010-12-09:
	* (mhatle) Add doc/program_flow to attempt to explain startup/running
	* (mhatle) guts/* minor cleanup
	* (mhatle) Reorganize into a new constructor for libpseudo ONLY
		   pseudo main() now manually calls the util init
		   new / revised init for client, wrappers and utils
	* (mhatle) Add central "reinit" function
	* (mhatle) Add manul execv* functions
	* (mhatle) rename pseudo_populate_wrappers to pseudo_check_wrappers

2010-12-08:
	* (mhatle) Add guts/clone.c to cleanup the clone support
	* (mhatle) guts/clone.c only run setupenv and reinit when NOT PSEUDO_RELOADED
	* (mhatle) guts/execve.c whitespace fixe
	* (mhatle) guts/fork.c similar to guts/clone.c change
	* (mhatle) pseudo_client.c add reinit function
	* (mhatle) pseudo_client.c revise client reset, include code from pseudo_wrappers.c
	* (mhatle) pseudo_server.c move the pid writing to the parent
	* (mhatle) pseudo_wrappers.c clone cleanup and populate cleanup

2010-12-07:
	* (seebs) whitespace fixes
	* (seebs) improve fork and PSEUDO_DISABLED
	* (seebs) add support for clone(2)
	* (mhatle) rework/improve clone(2) support
	* (mhatle) add test code for PSEUDO_DISABLED

2010-12-02:
	* (seebs) rework of fork/exec, add PSEUDO_DISABLED

2010-11-30:
	* (seebs) move *_t types to a separate file.
	* (seebs) remove unused tables from pseudo_db.c
	* (seebs) cleanup .gitignore

2010-11-17:
	* (seebs) add "Futures.txt" notes about future development plans
	* (seebs) split some of the templating code out of makewrappers

2010-11-16:
	* (seebs) database move functionality (first pass)

2010-10-25:
	* (seebs) various makewrappers cleanups (pylint, mostly)

2010-10-12:
	* (seebs) add missing copyright to Python makewrappers.
	* (seebs) detab makewrappers

2010-10-11:
	* (seebs) do the other *xattr() wrappers.
	* (seebs) Replace makewrappers with Python implementation and some
	  template files.

2010-10-06:
	* (mhatle) Add the fsetxattr wrapper to return ENOTSUP
          (note: workaround gnu coreutils 'cp')

2010-09-16:
	* (seebs) change exec*() to use file, rather than path or filename,
	  also add OP_EXEC where it was missing.

2010-09-15:
	* (seebs) allow setting default RPATH entry distinct from sqlite3
	  directory.

2010-09-08:
	* (seebs) handle mkfifo without guaranteeing an EINVAL response.

2010-09-02:
	* (seebs) fix errno for getcwd() with insufficient size
	* (seebs) Add an RPATH entry to the pseudo binary to find the sqlite3
	  library.

2010-09-01:
	* (seebs) add missing casts to even more printf arguments

2010-08-31:
	* (seebs) add missing casts to printf arguments, after being warned
	  about them a mere twenty or thirty thousand times.

2010-08-27:
	* (seebs) fix a bug caused by memcmp with wrong length
	* (seebs) stop hand-coding lengths of memcmp (torek was right...)

2010-08-26:
	* (seebs) make offsets.c slightly less useless
	* (seebs) don't overwrite LD_LIBRARY_PATH values that include us

2010-08-25:
	* (seebs) fix the signal mask restore

2010-08-24:
	* (seebs) try to restore signal mask before calling exec()
	* (seebs) move errno restoration after code which could set errno

2010-08-19:
	* (seebs) handle insane edge case involving regcomp/regexec

2010-08-17:
	* (seebs) create speculative-deletion logic
	* (seebs) remove crackpot theories about cross-device renames

2010-08-16:
	* (rp) Fix ld_preload/ld_library_path mixup.
	* (seebs) Handle failed allocations.
	* (seebs) Fix logic for dropping empty LD_PRELOAD.

2010-08-12:
	* (seebs) Fix install of libpseudo so the plain library is created
		when using $(SUFFIX), this is needed so pseudo daemons don't
		need to know $(SUFFIX) so you can use prebuilts.
	* (seebs) Remove spurious "const" from modifiable table.

2010-08-11:
	* (seebs) document the new variables.

2010-08-10:
	* (mhatle) add execl, execle, execlp, execv, and execvp wrappers
	* (seebs) handle ... for execl, etc.
	* (mhatle) add a local cache of variables, instead of using environ
	* (mhatle) rewrite pseudo_setupenv, pseudo_dropenv routines
		we now support running "/usr/bin/env -i env" in pseudo!

2010-08-06:
	* (mhatle) Fix an exec program with an empty environment

2010-08-03:
	* (mhatle) Fix parallel build problem
	* (mhatle) allow both environment CFLAGS and internals CFLAGS
	* (mhatle) add PSEUDO_BINDIR, PSEUDO_LIBDIR, PSEUDO_LOCALSTATEDIR
	  to allow specific overrides above and beyond PSEUDO_PREFIX

2010-07-30:
    * (kscherer) added .gitignore file
    * (kscherer) added sqlite version check to configure script
    * (kscherer) added basic test harness
    * (kscherer) fixed bug that when moving a directory the contents
       of the dir were removed from the db

2010-06-29:
	* (seebs) handle the other half of the suffix case -- when
	  libpseudo is in LD_PRELOAD under another name.
	* (seebs) remove a couple of debugging messages.

2010-06-28: 0.3
	* (seebs) back out PSEUDO_SUFFIX -- it causes problem when
	  rebuilding the library but not the server, but this is
	  a permissible use case.

2010-06-21:
	* (seebs) add mkstemp64

2010-06-02:
	* (seebs) add PSEUDO_NOSYMLINKEXP feature and documentation.

2010-04-30:
	* (seebs) rework pdb_history
	* (seebs) small cleanups and bulletproofing.
	* (seebs) fix up PSEUDO_DEBUG_FILE, use it for server as well.

2010-04-27:
	* (seebs) fix -P in pseudolog
	* (seebs) document PSEUDO_DEBUG_FILE

2010-04-26:
	* (seebs) many bug fixes and updates
	* (seebs) allow deleting entries in pseudolog
	* (seebs) correct race conditions and related bugs

2010-04-20:
	* (seebs) add quick sanity-check option for pseudo
	* (seebs) report on rows deleted
	* (seebs) unlink after removing db entry to reduce race conditions

2010-04-19:
	* (seebs) fix crash if xstat() or similar routine called with null path
	* (seebs) fix list of client processes still running
	* (seebs) fix pathname mismatches introduced by chroot() support

2010-04-16:
	* (seebs) add tracking of program names
	* (seebs) track message types
	* (seebs) small bug fixes and improvements galore

2010-04-06:
	* (seebs) implement various passwd-related utilities, various
	  bugfixes.

2010-03-25:
	* (seebs) fix return values.

2010-03-24:
	* (seebs) add chroot syscall
	* (seebs) add chroot handling to path canonicalization
	* (seebs) add many calls just to get path fixups
	* (seebs) handle virtualizing rootness of absolute symlinks

2010-03-24:
	* (seebs) regenerate wrappers when makewrappers is changed.
	* (seebs) begin prep for chroot
	* (seebs) standardize path expansion
	* (seebs) extend makewrappers to handle function pointer args

2010-03-17:
	* (seebs) fixup help options
	* (seebs) use strerror() in a couple more places
	* (seebs) mention ^ specification in pseudolog -h output.

2010-03-16:
	* (seebs) Fix missing error checking noted by comp.lang.c reader.

2010-03-16: 0.2
	* first public release

(There's no changelog before that, sorry.)
