1999-07-18  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.15

1999-05-17    <tytso@rsts-11.mit.edu>

	* gen_uuid.c (get_random_bytes): Use a while loop when reading
		from /dev/urandom so that if we get interrupted while
		reading the right thing happens.
		(uuid_generate_random): Add new function which uses the
		new UUID format which uses 122 random bits to form the
		128-bit UUID. 
		(uuid_generate): Rename the old uuid_generate to be
		uuid_generate_time, and create a new uuid_generate
		function which calls either uuid_generate_random or
		uuid_genereate_time depending on whether /dev/urandom is
		present. 

	* uuid_generate.3.in: Update to reflect changesin uuid_generate
		and its two new variants.

	* tst_uuid.c: Updated to test new uuid_generate functions, and to
		reflect new semantics of uuid_compare.  Added tests to
		make sure the UUID type and variant created by UUID
		generate is correct.

	* uuid_time.c (uuid_variant, uuid_type): Added new functions to 
		return the UUID variant and type information.  The
		debugging program now prints the UUID variant and type, 
		and warns if the unparsed time information is likely to be
		incorrect.

	* uuid_parse.3.in, libuuid.3.in: Miscellaneous text cleanups.

1999-05-03    <tytso@rsts-11.mit.edu>

	* compare.c (uuid_compare): Change sense of uuid_compare so that
		its return values match that of memcpy and the
		uuid_compare() found in Paul Leach's internet-draft.

1999-03-11  Andreas Dilger <adilger@enel.ucalgary.ca>

	* Created man pages for libuuid functions.

1999-01-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.14

1998-12-15  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.13

1998-12-04  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Update version numbers of the UUID shared library,
		since we've added a new function (uuid_time()).

	* uuid_time.c: New file which returns the time field of a UUID.
		(Good for debugging purposes)

1998-07-09  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.12

1998-06-25  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* tst_uuid.c (main): Fixed bogus declaration of the main's argv
		parameter.

1998-04-26  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* uuidP.h: Use asm/types.h instead of linux/types.h to avoid a
		problem caused by glibc hack to prevent linux/types.h from
		being included.

1998-03-30  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in: Change to use new installation directory variables
		convention.  Fix uninstall rules to take $(DESTDIR) into
		account.

Sun Mar  8 22:17:59 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* gen_uuid.c (get_node_id): Use char * instead of caddr_t, which
		doesn't always exist for glibc.

Tue Oct 14 21:48:16 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* gen_uuid.c: Use clock_reg instead of clock, since clock
		conflicts with a header file declaration.

Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs 1.11

Thu Apr 24 12:16:42 1997  Theodre Ts'o  <tytso@localhost.mit.edu>

	* Release of E2fsprogs version 1.10

Thu Apr 17 12:23:38 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.09

Fri Apr 11 18:56:26 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Release of E2fsprogs version 1.08

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

	* Release of E2fsprogs version 1.07

Sun Mar  2 16:45:36 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (ELF_VERSION): Change version to be 1.1

Thu Feb  6 23:08:07 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* gen_uuid.c (uuid_generate): Set Multicast bit when picking a
		random node_id, to prevent conflicts with IEEE 802
		addresses obtained from network cards.

Wed Jan  1 23:51:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* unpack.c, pack.c: Include string.h, since we use memcpy().

Tue Dec  3 13:05:11 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* parse.c: Add #include of ctype.h and stdlib.h, to pull in the
		required prototypes.

Fri Oct 11 17:15:10 1996  Theodore Ts'o  <tytso@rsts-11.mit.edu>

	* Makefile.in (DLL_ADDRESS): Updated DLL address for libuuid.

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

	* Release of E2fsprogs version 1.06

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

	* Release of E2fsprogs version 1.05

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

	* uuid/gen_uuid.c [HAVE_NET_IF_H] <net/if.h>: Include guarded.
	[HAVE_NETINET_IN_H] <netinet/in.h>: Include guarded.
	(get_node_id): Surround bulk of function with #ifdef HAVE_NET_IF_H.

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

	* gen_uuid.c (get_node_id): Add a specific ifdef for the HURD,
		since it is broken w.r.t getting hardware addresses.
