cromfs - Copyright (C) 1992,2006 Bisqwit (http://iki.fi/bisqwit/)
License: GPL
Homepage: http://bisqwit.iki.fi/source/cromfs.html

Changelog

1.2.0	2006-06-04 Joel Yliluoma <bisqwit@iki.fi>
- New filesystem format (old filesystems are still supported)
  The inode table inode and root directory inode are now compressed.
- New utility: cvcromfs (to convert filesystems between versions 01 and 02)

1.1.7	2006-06-04 Joel Yliluoma <bisqwit@iki.fi>
- Hardlink extraction support in unmkcromfs
- Added tests: make test

1.1.6.1	2006-06-04 Joel Yliluoma <bisqwit@iki.fi>
- Compilation workaround
- More options in unmkcromfs

1.1.6	2006-06-04 Joel Yliluoma <bisqwit@iki.fi>
- Added a new utility: unmkcromfs
  It extracts the contents of a cromfs volume without mounting it
  using an optimized algorithm that minimizes duplicate data access.

1.1.5	2006-06-03 Joel Yliluoma <bisqwit@iki.fi>
- Made the --bruteforcelimit option (-c) more useful
  in mkcromfs (performance tuning).

1.1.4.3	2006-06-01 Joel Yliluoma <bisqwit@iki.fi>
- Minor tuning in mkcromfs
- Nice image of a box to the program homepage. :)

1.1.4.2	2006-05-22 Joel Yliluoma <bisqwit@iki.fi>
- Documentation updates

1.1.4.1	2006-05-22 Joel Yliluoma <bisqwit@iki.fi>
- mkcromfs speed optimization: Bayer-Moore search algorithm
  (Noticeably faster than the Horspool version)
- Fixed mkcromfs
  - mkcromfs from 1.1.4 crashed in certain situations
  - mkcromfs 1.1.4 failed to create a filesystem
    (a debugging option was accidentally left activated)

1.1.4	2006-05-21  Joel Yliluoma <bisqwit@iki.fi>
- mkcromfs speed optimization: Bayer-Moore-Horspool search algorithm
- Documentation updates

1.1.3.1	2006-05-18 Joel Yliluoma <bisqwit@iki.fi>
- Documentation updates
- Rewrite of cromfs::read_fblock to utilize mmap64

1.1.3	2006-05-17 Joel Yliluoma <bisqwit@iki.fi>
- Changing some occassions of std::map and std::multimap
  into gnu hash_map in mkcromfs. This might enable some
  extra speed. (Though the bottleneck is in the disk access.)
- mmap-based optimizations in mkcromfs (this time
  implemented in a way that shouldn't make reiser4fs crash.)
- Possibly a crash bug fix in mkcromfs

1.1.2.3	2006-05-16 Joel Yliluoma <bisqwit@iki.fi>
- Upgraded LZMA SDK to version 4.42.
  (Ps: Someone _really_ should rewrite the LZMA compressor
  using _SANE_ C++. The official version is just horrible.
  It goes to very extremes to hack&introduce concepts which are foreign
  to C++, such as GUID, variants and C# style interfaces, and it reinvents
  many standard concepts such as integer types, smart pointers and streams,
  and as such, the code is very unmaintainable and likely suboptimal too.
  On the other hand, the C# version seems quite tidy...
  I wonder if it's the authoritative implementation? (hint: port it)
  I can only have nightmares trying to get into the mindscape
  of the programmer who wrote that horrible C++ code version.)
- Documentation updates

1.1.2.2	2006-05-15 Joel Yliluoma <bisqwit@iki.fi>
- Tuned the --bruteforcelimit function
- Documentation updates

1.1.2.1	2006-05-15 Joel Yliluoma <bisqwit@iki.fi>
- Fixed --bruteforcelimit. It didn't work in 1.1.2.
- Documentation updates

1.1.2	2006-05-15 Joel Yliluoma <bisqwit@iki.fi>
- Ownerships are now saved too (in a mostly backward+forward compatible way).
- Added new option in mkcromfs, --bruteforcelimit.

1.1.1	2006-05-14 Joel Yliluoma <bisqwit@iki.fi>
- Data integrity problem hopefully fixed now.
- Improved the usefulness of the caching in read_dir.

1.1.0.2	2006-05-14 Joel Yliluoma <bisqwit@iki.fi>
- Workaround for some noticed data integrity problem
  (some compressed blocks were assumed as uncompressed,
   and compressed over again)

1.1.0.1	2006-05-14 Joel Yliluoma <bisqwit@iki.fi>
- A compilation fix (thanks to Cu Van Chuoi)

1.1.0	2006-05-14 Joel Yliluoma <bisqwit@iki.fi>
- Removed OpenSSL dependency
- Replaced MD5 with CRC32 for smaller memory usage in mkcromfs
  (This has no effect in data integrity; a hash is just a hash.)
- Worked around an instability problem when used together with reiserfs4
  (mmapping a sparse file as read-write with copy-on-write mapping,
   and changing that underlying file, seems to under some circumstances
   cause kernel crash and kernel BUGs when the underlying filesystem is
   reiser4.)
- Disabled the auto deallocator hack for now; it hasn't worked properly.
- Changed FSIZE semantics: fsize now denotes the maximum uncompressed
 fblock size, not the maximum compressed fblock size. This made mkcromfs
 somewhat easier in design, and probably more useful for the users too.
- Removed mkcromfs option: --tryhard
- Added mkcromfs option: --autoindexratio
- Documentation updates

1.0.6	2006-05-12 Joel Yliluoma <bisqwit@iki.fi>
- Another compilation fix
- Documentation updates
- mkcromfs's temporary directory now configurable
 (recognizes the environment variable TEMP or TMP)
- mkcromfs optimization: Uses mmapping to compare portions of files.
 Most effective when used together with --decompresslookups.

1.0.5.1	2006-05-12 Joel Yliluoma <bisqwit@iki.fi>
- A compilation fix

1.0.5	2006-05-11 Joel Yliluoma <bisqwit@iki.fi>
- Added compatibility for older versions of Fuse
 (2.5.2 now supported, previously only compiled on 2.6.0)
- Changed filesystem format: FBLOCKs are now stored without padding.
 This will result in better compression, and opens opportunities
 to make mkcromfs faster.
- Added commandline option in mkcromfs:
 --tryhard

1.0.4	2006-05-11 Joel Yliluoma <bisqwit@iki.fi>
- Documentation updates
- Fixed mkcromfs error from 1.0.3 version
- Added commandline options in mkcromfs:
 --decompresslookups, --randomcompressperiod and --minfreespace

1.0.3  	2006-05-11 Joel Yliluoma <bisqwit@iki.fi>
- Documentation updates
- Broken mkcromfs release
- Added statistics reporting in mkcromfs at end

1.0.2
- Added support for block devices and character devices
- Documentation updates
- Added commandline options in mkcromfs: --bsize, --fsize
- Fixed exception handling in cromfs-driver
- Changed cromfs-driver so that uid/gid now refer to the one
 who mounted the filesystem, not root
- Disabled the tracing output in cromfs-driver by default
- Changed attribute cache timeout to ~infinite
- Added periodical deallocation of BLKTAB
- Added cache of read_dir() when it's used by lookup()
- Misc tuning in mkcromfs
- mkcromfs now can stand running multiple instances at same time
- Changed the LZMA dictionary size selection method (heavier settings now)

1.0.1
- Changed the LZMA implementation slightly more straight-forward
- Changed filesystem format: BLKTAB is now compressed within BLKDATA
- A slight speed optimization (later to become the "decompresslookups" option)

1.0.0
- Initial release