This package, the EXT2 filesystem utilities, are protected by the GNU
Public License, with the following exception --- 

	If the version string in the file version.h contains the
	string "pre-", or "WIP" then this package must be distributed
	in source form only.  You can give a copy of the binary for
	e2fsck to help a friend recover his or her filesystem, as the
	need arises.  However, "pre" or "WIP" indicates that this
	release is under development, and available for ALPHA testing.
	So for your protection as much as mine, I'd rather not have it
	appear in a some distribution --- especially not a CD-ROM
	distribution!

The most recent officially distributed version can be found at
http://e2fsprogs.sourceforge.net.  If you need to make a distribution,
that's the one you should use.  If there is some reason why you'd like
a more recent version that is still in ALPHA testing for your
distribution, please contact me (tytso@mit.edu), and we can see if we
can't come to an arrangement.  The release schedules for this package
are flexible, if you give me enough lead time.


					Theodore Ts'o
					26-Jul-2000
