2001-05-25  Theodore Tso  <tytso@valinux.com>

	* Release of E2fsprogs 1.20

2001-05-14  Theodore Tso  <tytso@valinux.com>

	* tst_uuid.c, uuid_time.c: Remove unneeded #include of ext2_fs.h

2001-05-12  Theodore Tso  <tytso@valinux.com>

	* libuuid.3.in, uuid_clear.3.in, uuid_compare.3.in, uuid_copy.3.in,
		uuid_generate.3.in, uuid_is_null.3.in, uuid_parse.3.in,
		uuid_time.3.in, uuid_unparse.3.in: Update URL location of
		e2fsprogs package.

2001-05-01  Theodore Tso  <tytso@valinux.com>

	* parse.c, compare.c: Include string.h to fix gcc -Wall
		complaints.

	* gen_uuid.c: Define _SVID_SOURCE to avoid gcc -Wall errors
		because some required structures wouldn't be otherwise
		defined.  Fix a minor gcc -Wall nit in the declaration of
		get_random_fd().

2001-01-12  Theodore Ts'o  <tytso@valinux.com>

	* uuid_time.c (main), tst_uuid.c (main): Fix gcc -Wall complaints.

	* uuid.h, copy.c (uuid_copy): Change arguments to make it
		clear which argument is the source and which is the
		destination.

	* gen_uuid.c (get_random_fd): Use gettimeofday to seed the PRNG,
		so we can take advantage of tv_usec to do (slightly)
		better at seeding it.

2000-07-13    <tytso@valinux.com>

	* Release of E2fsprogs 1.19

2000-07-07  Theodore Ts'o  <tytso@valinux.com>

	* Makefile.in (uuid_time): Fix compilation rule so that
		uuid_time.o doesn't get bashed in order to build the
		command-line version of uuid_time.

2000-07-04  Theodore Ts'o  <tytso@valinux.com>

	* Makefile.in: Remove explicit link of -lc in the shared library.
		(It shouldn't be necessary, and is harmful in some cases).

2000-06-12  Theodore Ts'o  <tytso@valinux.com>

	* gen_uuid.c (get_random_bytes): Use O_NONBLOCK when trying to
		open /dev/random.  Break out the /dev/random
		initialization code into a get_random_fd() function, and
		use that function in uuid_generate() to determine whether
		to use uuid_generate_random()  or uuid_generate_time().

2000-05-25    <tytso@snap.thunk.org>

	* Makefile: Add hack dependency rule so that parallel makes work
		correctly. 

2000-04-07  Theodore Ts'o  <tytso@valinux.com>

	* clear.c, compare.c, copy.c, gen_uuid.c, isnull.c, pack.c,
		parse.c, uuid.h, uuidP.h: Changed copyright to be the
		LGPL. 

Thu Apr  6 17:38:58 2000  Theodore Y. Ts'o  <tytso@signal.thunk.org>

	* Makefile.in (uuid_time): Compile uuid_time in two steps (first
		create .o, then link it against the libraries) to work
		around bug in a.out linker.

	* dll/jump.funcs, dll/jump.import, dll/jump.params: Update a.out
		shared library control files to reflect new added files.

2000-04-03  Theodore Ts'o  <tytso@valinux.com>

	* gen_uuid.c (get_clock): Fix bug where the last timeval wasn't
		getting set, causing potentially duplicate UUID's to be
		generated.

2000-03-12  Theodore Ts'o  <tytso@valinux.com>

	* gen_uuid.c (get_random_bytes): Make more paranoid about
		misbehaving /dev/urandom.  If we get a return of zero
		without an error more than 8 times in a row, we break out
		and return an error.  Also, if /dev/urandom doesn't exist,
		try /dev/random.

2000-01-18  Theodore Ts'o  <tytso@valinux.com>

	* Makefile.in: Since LIBUUID can sometimes include
		"-lsocket" we need a separate DEPLIBUUID that can be used
		in Makefile's dependency rules.

1999-11-19    <tytso@valinux.com>

	* Makefile.in (distclean): Remove TAGS and Makefile.in.old from
		the source directory.

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

	* Release of E2fsprogs 1.18

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

	* Release of E2fsprogs 1.17

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

	* uuid_time.c (variant_string): Declare to be static to avoid gcc
		warnings.

	* uuid.h: Add function prototypes for uuid_generate_random() and
		uuid_generate_time().

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.
