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 to pseudo_db.c. Thanks to Bernhard Hartleb 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 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 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 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 to fix open/openat flags. 2018-01-16: * (seebs) rework the LINKAT case significantly but now it's actually probably right. * () 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 * (seebs) add wrapper for statvfs (based on patch from ) * (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 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 * (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 . 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.)