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.7.README   # Description, from the tar file
           File:   plasticfs-1.7.lsm      # Description, LSM format
           File:   plasticfs-1.7.spec     # RedHat package specification
           File:   plasticfs-1.7.tar.gz   # the complete source
           File:   plasticfs-1.7.pdf      # Reference Manual

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

COPYRIGHT
       plasticfs version 1.7
       Copyright (C) 2002, 2003 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, write to the Free
       Software Foundation, Inc., 59 Temple Place, Suite 330,
       Boston, MA 02111, USA.

       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.7
       * Several GCC 3.2 build problems have been fixed.

   Release 1.6
       * 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
       * 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
       * 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





       * 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
       * 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
       First public release.



Reference Manual            PlasticfS          Read Me(PlasticFS)
