1999-10-25    <tytso@valinux.com>

	* gen_uuid_nt.c (uuid_generate): W2K strikes again!  An
		incompatible interface change means we need to detect
		whether the code is running on an NT4 or NT5 system.

1999-10-22    <tytso@valinux.com>

	* Release of E2fsprogs 1.16

1999-10-21    <tytso@valinux.com>

	* uuid_generate.8.in: Update man page to use a more standard
		format (bold option flags and italicized variables), as
		suggested by Andreas Dilger (adilger@enel.ucalgary.ca)

1999-09-24    <tytso@valinux.com>

	* gen_uuid_nt.c: New file which creates a UUID under Windows NT.

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.
