tex / fusecompress

Transparent (using fuse) compressing filesystem.

This URL has Read+Write access

tex (author)
Sun Oct 11 01:21:05 -0700 2009
commit  9e9d59d58464b82595638549bd2df6e605e25479
tree    0ac370f51b6992685a4cca56ac21d20112c1a034
parent  c7aa99ba5638f93e32ab74061fbbde765387ad67
name age message
file AUTHORS Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
file COPYING Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
file ChangeLog Mon Sep 29 00:38:39 -0700 2008 Increase verison number. [Milan Svoboda]
file INSTALL Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
file LICENSE Loading commit data...
file Makefile.am Fri Nov 28 02:01:53 -0800 2008 Use m4 macros to detect boost libraries. [tex]
file Makefile.in Sun May 03 00:44:39 -0700 2009 During installation create a symlink to mount.f... [tex]
file NEWS Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
file README
file TODO Fri Nov 28 01:51:21 -0800 2008 Don't write LayerMap if file has not been modif... [tex]
file aclocal.m4 Sat Apr 11 02:21:52 -0700 2009 Use PKG_CONFIG to detect fuse headers and libra... [tex]
file config.guess Mon Apr 13 12:15:19 -0700 2009 Replace symlinks with real files. Add compilati... [tex]
file config.h.in Fri May 01 06:27:37 -0700 2009 Get rid of rlog library. Get rid of -pedantic s... [tex]
file config.sub Mon Apr 13 12:15:19 -0700 2009 Replace symlinks with real files. Add compilati... [tex]
file configure Thu Jul 09 09:28:57 -0700 2009 Now, hopefully a correct autoconf's test. [tex]
file configure.ac Thu Jul 09 09:28:57 -0700 2009 Now, hopefully a correct autoconf's test. [tex]
file depcomp Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
file install-sh Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
directory m4/ Sat Apr 11 00:50:44 -0700 2009 Make it compile with --as-needed LDFLAGS [Timothy Redaelli]
file missing Thu Sep 11 23:02:38 -0700 2008 Initial commit. [tex]
directory src/
README
FuseCompress (compressed filesystem in userspace)
  http://www.miio.net/fusecompress

We are not responsible for any badness that may happen to you during using
this software.

Todo:

Bugs:
  File becames unreadable when it hits not enought space condition. So
  be careful to really have enought free space on the disk to store all data.

Problems:
  Do NOT compile FuseCompress with g++-4.3.3! Strange threading problems
  (broken locking) were detected (thank you Steve!) when using this version of
  g++.

  There is a memory leak (not too big, user detects it after milions of
  copyied files) in 'file' package, more exactly in it's magic library, see:

  http://mx.gw.com/pipermail/file/2009/000306.html

==13747== 1,356 bytes in 135 blocks are definitely lost in loss record 9 of 12                                           
                                                  
==13747==    at 0x4C256AE: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)                             
                                                  
==13747==    by 0x725503F: __vasprintf_chk (in /lib64/libc-2.9.so)                                                       
                                                  
==13747==    by 0x7254ED2: __asprintf_chk (in /lib64/libc-2.9.so)                                                        
                                                  
==13747==    by 0x63C2993: file_printf (in /usr/lib64/libmagic.so.1.0.0)                                                 
                                                  
==13747==    by 0x63BBDC5: (within /usr/lib64/libmagic.so.1.0.0)                                                         
                                                  
==13747==    by 0x63BC6A7: file_softmagic (in /usr/lib64/libmagic.so.1.0.0)                                              
                                                  
==13747==    by 0x63C2B8A: file_buffer (in /usr/lib64/libmagic.so.1.0.0)                                                 
                                                  
==13747==    by 0x63B6104: magic_buffer (in /usr/lib64/libmagic.so.1.0.0)                                                
                                                  
==13747==    by 0x41F9CF: CompressedMagic::isNativelyCompressed(char const*, int) (CompressedMagic.cpp:140)              
                                                  
==13747==    by 0x42A44F: Compress::write(char const*, unsigned long, long) (Compress.cpp:361)                           
                                                  
==13747==    by 0x43B99E: Memory::write(bool) (Memory.cpp:203)                                                           
                                                  
==13747==    by 0x43BC77: Memory::merge(char const*) (Memory.cpp:53)                                                     
                                                  
==13747==                                                                                                                
                                                  

Requires:

  boost >= 1.33.1

  libz
  libbz2
  xz-4.999.9beta (lzma library from http://tukaani.org/xz/xz-4.999.9beta.tar.gz)
  liblzo2

Compile:

  Boost's libraries may be stored in /usr/lib64 on 64bit systems,
  configure script needs to be called with:

  ./configure --with-boost-libdir=/usr/lib64/

  Don't use --enable-debug flag. Build fails during linking with boost
  libraries.

  If you don't have pkg-tool installed, try following:

  FUSE_CFLAGS="-D_GNU_SOURCE -D_REENTRANT -D_POSIX_C_SOURCE=200112L -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE 
  -D_XOPEN_SOURCE=500 -pedantic -Wno-long-long -Wall -fpermissive -D_FILE_OFFSET_BITS=64 -DFUSE_USE_VERSION=26" 
  FUSE_LIBS="-lfuse" ./configure --with-boost=/usr/include/ --with-boost-libdir=/usr/lib64

  If your boost library was compiled for 32bit system without support for long files (bigger than 2GiB)
  configure script prints this error message:
    Boost library compiled for 32bit architecture without long file support!

  It means that any program using this library is limited to work with files smaller than 2GiB.
  You can either ignore this problem by passing --enable-crippled_boost to FuseCompress' configure script
  or compile boost with long file support. In both cases, try to report this problem to authors of your
  Linux distribution.

  There are switches you can use to build boost library with long file support:

  ./bjam "define=_FILE_OFFSET_BITS=64" release --toolset=gcc --build-type=minimal --layout=system --libdir=/usr/lib/ 
  --prefix=/usr
  sudo ./bjam "define=_FILE_OFFSET_BITS=64" release --toolset=gcc --build-type=minimal --layout=system 
  --libdir=/usr/lib/ --includedir=/usr/include/boost --prefix=/usr install

Usage:

  See man pages for fusecompress and fusecompress_offline.

Author:

Milan Svoboda <milan.svoboda@centrum.cz> (author and project maintainer)

Feel free to contact me with suggestions and bug reports.