Wed Mar 12 13:32:05 1997  Theodore Y. Ts'o  <tytso@mit.edu>

	* Release of E2fsprogs version 1.07

Wed Jan 15 11:37:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* config.sub (basic_machine): Added i686-* as another name for the
 		Pentium Pro.

Tue Oct  8 02:02:03 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.06

Mon Oct  7 08:22:31 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (all): Don't run "make check" by default.  User
 	 	should manually run "make check" if they wish to test
 	 	things out.

Thu Sep 12 15:23:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.05

Sat Aug 31 10:55:45 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in (AC_CHECK_FUNCS): Add fchown to list of functions
	 	that we check.

Wed Aug 28 14:42:12 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* configure.in (usr_prefix): To be slightly more conformant with
		the coding standards, always default to ${prefix}
		unless on a linux system with prefix = ''.  Allow
		--with-usr-prefix option.

Tue Aug 27 16:53:29 1996  Miles Bader  <miles@gnu.ai.mit.edu>

	* configure.in (AC_CHECK_HEADERS): Add net/if.h & netinet/in.h.
		Add `--enable-fsck' switch, to allow configuration of
		fsck wrapper building (default yes except on the hurd).
		Make '' prefix default and LDFLAG_STATIC hacks work on
		the hurd as well as linux.

Tue Aug 27 16:23:56 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Check to see if sys/types.h defines ino_t.  Add
		support for checking/sizing "long long".

Wed Aug 21 00:44:22 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Added configure flag --enable-old-bitops, which
 		forces the bitops to use the standard bitmask operations.

Fri Aug  9 08:29:00 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Check for existence of sys/utsname.h and
	 	strcasecmp().  Remove check for EXT2 fragment in system
	 	header file.  E2fsprogs now deals with the fragment fields
	 	by dispatching off of the OS field.

Tue Aug  6 14:34:19 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in (AC_OUPUT): Create substitutions for the uuid
	 	library.

	* MCONFIG.in (all): Add new variables for the uuid library.

Thu May 23 12:39:07 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Make the default prefix be '' for Linux.

Thu May 16 11:12:30 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.04

Thu May 16 09:38:40 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: 
	  MCONFIG.in: Man pages, shell scripts and include files are now
		generated using the lib/substitute_sh script.  This is
		faster than the configure substitution, and it doesn't
		change the mod time of the file if it hasn't changed,
		which prevents needless compilation of files.

		Define new sets of Makefile variables: LIBSS, LIBCOM_ERR,
 		LIBEXT2FS, LIBE2P, and their static and profiled variants,
 		STATIC_* and PROFILED_*, which point to the actual file of
 		the shared or static library.  This way makefiles can link
 		directly with exactly the library they want.  Many ld's
		(include GNU ld) have a really broken idea of how -L
		works, and will link against an older library in /usr/lib
		even though there is a newer on in a specified -L directory.
		  
Wed May 15 21:40:22 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* configure.in: Add support for --enable-dynamic-e2fsck, for
 		people who don't want to link e2fsck statically.  This
 		saves space, at the cost of increasing the reliance of
 		e2fsck other files (3-4 shared libraries).

Wed Mar 27 00:33:40 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.03

Wed Jan 31 11:06:08 1996    <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.02

Thu Oct 26 11:59:44 1995    <tytso@rsts-11.mit.edu>

	* configure.in (LDFALG_STATIC): Add temporary kludge for
		determining how to link executables statically.  For now,
		we assume that Linux systems only can link statically.

Fri Sep 22 18:23:55 1995    <tytso@rsts-11.mit.edu>

	* depfix.sed: Remove /usr/include lines which occur at the end of
		the dependency listing.

Mon Sep  4 21:40:22 1995  Remy Card  <card@bbj>

	* configure.in: Added support for the --enable-bsd-shlibs option.

Wed Aug  9 21:33:31 1995  Theodore Y. Ts'o  <tytso@dcl>

	* MCONFIG.in (LD): Add $(PURE) to the definition to make it easier
		to link executables using programs like purify.

Sat Aug  5 11:41:03 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* configure.in: Check to see if strdup() is present

	* INSTALL: Updated building and installation instructions to
		reflect the new configure system.

	* Makefile.in (install): When doing a general install, install the
		shared libraries as well by using the new target 
		install-shlibs-libs-recursive.

	* configure.in: If we are building on a Linux system, set $prefix
		to be '/' by default.

Sun Jul  9 13:38:20 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* configure.in (checking type sizes): provide some default for
	type-sizes when cross-compiling, as we can't check them then.
	(SS_DIR, ET_DIR): Make these correct even when ${srcdir} is absolute.

Thu Jun 15 23:33:37 1995  Remy Card  <card@bbj>

	* Makefile.in (distclean-local): Added config.cache and
		include/linux/types.h.

	* configure.in: Added support for the --enable-elf option.
		Added a test to check for llseek() in the C library.

	* lib/Makefile.dll-lib: Fixed incorrect RM and LN calls.

	* lib/Makefile.elf-lib: New file, to create ELF shared libraries.

Sat Jun 10 19:52:51 1995  Theodore Y. Ts'o  <tytso@lurch.mit.edu>

	* configure.in: Create ET_DIR and SS_DIR, which gives the absolute
		pathname to the source directories of the lib/et and
		lib/ss.  (Can't just use $srcdir since that may be a
		relative path.)

Thu Jun  8 12:25:57 1995  Miles Bader  <miles@churchy.gnu.ai.mit.edu>

	* lib/Makefile.library ($(LIBRARY).a): Changed to work with the
	new makefiles.
	* lib/Makefile.dll-lib: Ditto.
	* lib/Makefile.profiled: Ditto.
	* lib/Makefile.checker: Ditto.

	* Add the include subdirectory to hold substitute include files
	for systems that need them.

	* Makefile.in: Rewritten to conform to GNU coding standards.
	* MCONFIG: Moved to MCONFIG.in, and totally changed to support
	GNU-style makefiles.
	* mkinstalldirs: New file, copied from /gd/gnu/lib.
	* config.guess: Ditto.
	* config.sub: Ditto.
	* install-sh: Ditto.

	* configure.in: Many new tests added.  --with-cc and --with-ccopts
	options removed as configure already supports a method to do this,
	and they were interfering with normal usage.

Sat Mar 11 18:23:45 1995  Theodore Y. Ts'o  <tytso@localhost>

	* Makefile.in (bin-tree): Add Makefile target which automatically
		generates the binary distribution for e2fsprogs.


