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.)