Read Me(PlasticFS)                                          Read Me(PlasticFS)



NAME
       PlasticFS - The Plastic File System

DESCRIPTION
       The Plastic File System is an LD_PRELOAD module for manipulating what
       the file system looks like for programs.  This allows virtual file
       systems to exist in user space, without kernel hacks or modules.

       chroot  The chroot filter may be used to simulate the effects of the
               chroot(2) system call.  It is usually used in combination with
               other filters.

       dos     The dos filter may be used to simulate an 8.3 DOS filesystem.

       downcase
               The downcase filter may be used to make file names appear to be
               in lower-case when listed.  File names are case-insensitive
               when being opened, etc.

       log     The log filter may be used to transparently log file system
               access, similar to the strace(1) program.

       nocase  The nocase filter make be used to make file names appear to be
               case-insensitive when being opened, etc.

       shortname
               The shortname filter may be used to simulate file systems with
               shorter filenames.

       smartlink
               The smartlink filter make be used to expand environment
               variables in symbolic links, using the usual $name notation.

       titlecase
               The downcase filter may be used to make file names appear to be
               capitalized when listed.  File names are case-insensitive when
               being opened, etc.

       upcase  The upcase filter may be used to make file names appear to be
               in upper-case when listed.  File names are case-insensitive
               when being opened, etc.

       viewpath
               The viewpath filter may be used to union all the directory
               trees in a view path, so that they appear to be a single
               directory tree.

       Filters may be piped on into the next to form powerful combinations.

       It is possible to extend PlasticFS with loadable file system filter
       modules from shared object files.

       The implementation of PlasticFS is strongly tied to GNU Libc, so it is
       probably Linux specific.

ARCHIVE SITE
       The latest version of plasticfs is available on the Web from:

           URL:    http://plasticfs.sourceforge.net/
           File:   plasticfs.html          # the plasticfs page
           File:   plasticfs-1.11.README   # Description, from the tar file

           File:   plasticfs-1.11.lsm      # Description, LSM format
           File:   plasticfs-1.11.spec     # RedHat package specification
           File:   plasticfs-1.11.tar.gz   # the complete source
           File:   plasticfs-1.11.pdf      # Reference Manual

BUILDING PlasticFS
       Full instructions for building plasticfs may be found in the BUILDING
       file included in this distribution.

USING PlasticFS
       See plasticfs(3) for how to make use of PlasticFS on your system.

COPYRIGHT
       plasticfs version 1.11
       Copyright (C) 2002, 2003, 2004, 2006, 2007 Peter Miller; All rights
       reserved.

       This program is free software; you can redistribute it and/or modify it
       under the terms of the GNU General Public License as published by the
       Free Software Foundation; either version 2 of the License, or (at your
       option) any later version.

       This program is distributed in the hope that it will be useful, but
       WITHOUT ANY WARRANTY; without even the implied warranty of
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       General Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program. If not, see <http://www.gnu.org/licenses/>.

       It should be in the LICENSE file included with this distribution.

AUTHOR
       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*          WWW:      http://www.canb.auug.org.au/~millerp/
































RELEASE NOTES
       This section details the various features and bug fixes of the various
       releases.  For excruciating and complete detail, and also credits for
       those of you who have generously sent me suggestions and bug reports,
       see the etc/CHANGES.* files.

   Release 1.11 (7-Jul-2007)
       * The probems with tabs in the Makefile hve been fixed.

   Release 1.10 (6-Jul-2007)
       * The following SourceForge bugs have been fixed: 1120110, 1747933,
       1747971, and 1748056.

       * A problem with the errno symbol has been fixed.

       * Build problems on machines without <bits/libc-lock.h> have been fixed
       to use pthreads locks instead.

       * Build problems on 64-bit machines have been fixed.

       * The project has been updated to use version 3 of the GNU GPL.

       * There is better use of multithreaded I/O in the open hook.

   Release 1.9 (6-Jul-2004)
       * A bug has been ficed in the viewpath filter's readdir function.  It
       now correctly deals with .whiteout and removed entries.

       * The code has been updated to compile under GCC 3.4.

       * A bug has been fixed in the 64-bit file locking.  Not all fcntl(2)
       commands were handled.

   Release 1.8 (16-Jan-2004)
       * Notes have been added about overcoming the glibc 2.x hidden symbols
       problem.  See the BUILDING file or the Reference Manual for more
       information.

   Release 1.7 (3-Mar-2003)
       * Several GCC 3.2 build problems have been fixed.

   Release 1.6 (28-Feb-2003)
       * A bug has been fixed in the viewpath filter which allowed removed
       (whiteout-ed) files to be opened, even when ls couldn't see them.

       * A bug has been fixed in the reference counted string code, which
       resulted in dereferencing uninitialized pointers, resulting in
       segfaults.

   Release 1.5 (3-Feb-2003)
       * The bug on Debian 2.2 (and possibly other distributions) which
       resulted in a segfault has been fixed.

       * Intercept have been added for the truncate(2) and ftruncate(2) system
       calls.

       * There is a new shortname file system filter which may be used to
       simulate file systems with short file names.  By default it imitates V7
       unix, with 14 character filenames.

       * There is anew dos file system filter, which maye be used to make a
       Unix file system looks like an 8.3 DOS file system.

   Release 1.4 (24-Jan-2003)
       * An attempt has been made to fix a problem which sometimes caused
       plasticfs::getcwd to segfault.   It appears that it may have been cause
       by over-zealoue optimization by the compilter, so the addition of some
       strategic "volatile" keywords is an attempt to fix it.

       * Several build problems have been fixed.

       * A problem has been fixed which caused recent versions of GNU find to
       work incorrectly.

       * The problem which caused the chroot filter to constatntly print an
       error message has been fixed.

       * A statfs(2) intercept has been added, so the df(1) command is
       happier.

       * The nocase, upcase, downcase and titlecase file system filters have
       been added.  These filters cause filename to appear to be case-
       insensitive.  In addition, each of the filters except nocase converts
       the characters of filenames according to their names (upper-case,
       lower-case and capitalized, respectively).

   Release 1.3 (16-Jan-2003)
       * A bug has been fixed with the handling of ".." in pathnames.

       * The chroot file system filter has been added.  This may be used to
       change the aparrent root of the file system.

       * A bug has been fixed which caused the PLASTICFS environment to be
       parsed exactly backwards.

       * The viewpath copy-on-write functionality now only copies regular
       files.  Devices are not copied when opened for writing.  Also, file
       copies are unlinked if there was any problem with the copying, rather
       than leave incomplete copies to confuse future operations.

   Release 1.2 (13-Jan-2003)
       * Code has been added so that of the effective user ID is root (0) then
       PlasticFS does absolutely nothing; the program sees the real file
       system, not the plastic one.  This is to prevent PlasticFS being used
       to subvert security.

       * The viewpath copy-on-write functionality now preserves the file's
       modification time ans last access time.

       * An intercept has been added for the access(2) system call.

       * A bug in the viewpath filter has been fixed which caused it to have
       problems removing directories.

       * A bug in the viewpath filter has been fixed which caused it to
       incorrectly following symbolic links outside the mount point.

       * An intercept has been added for the execve(2) system call, and the
       execl(3), execlp(3), execle(3), execv(3) and execvp(3) functions.

       * The smartlink filter has been added, which expands shell variables in
       symbolic links.

       * Intercepts have been added for the utime(2), lutime(2) and futime(2)
       system calls.

   Release 1.1 (8-Jan-2003)
       First public release.



Reference Manual                   PlasticfS                Read Me(PlasticFS)
