This is the Debian GNU/Linux prepackaged version of the static EXT2
file system consistency checker (e2fsck.static).  The EXT2 utilities
were written by Theodore Ts'o <tytso@mit.edu> and Remy Card
<card@masi.ibp.fr>.

Sources were obtained from http://sourceforge.net/projects/e2fsprogs

Packaging is Copyright (c) 2003-2006 Theodore Ts'o <tytso@mit.edu>
             Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
	     Copyright (c) 2001 Alcove <http://www.alcove.com/>
	     Copyright (c) 1997 Klee Dienes
	     Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>

Upstream Author: Theodore Ts'o <tytso@mit.edu>

Copyright notice:

This package, the EXT2 filesystem utilities, is protected by the GNU
General Public License.

	Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
	2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o

On Debian GNU systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

