icu (2.1-1) unstable; urgency=low

  * Update to ICU version 2.1. (This comment is generated.)

 -- Yves Arrouye <yves@debian.org>  Tue, 19 Mar 2002 18:40:16 -0800

icu (2.0-2.1pre20020318-1) unstable; urgency=low

  * Use the library number in the development package too.
  * ICU changed to version 2.1.

 -- Yves Arrouye <yves@debian.org>  Tue, 19 Mar 2002 18:38:37 -0800

icu (2.0-2.1pre20020303-1) unstable; urgency=low

  * Fixed a crash in uconv when no argument is passed to -f or -t.
  * Other upstream changes.
  * Fresh upload with an up to date orig tar file so that future
    diffs won't be 6 megabytes long!

 -- Yves Arrouye <yves@debian.org>  Sun,  3 Mar 2002 15:31:13 -0800

icu (2.0-2.1pre-1) unstable; urgency=low

  * Prerelease of 2.1 with a working upgraded uconv(1).

 -- Yves Arrouye <yves@debian.org>  Fri,  1 Mar 2002 21:51:47 -0800

icu (2.0-3) unstable; urgency=low

  * Renamed doc-base to icu-doc.doc-base. Closes: 127487

 -- Yves Arrouye <yves@debian.org>  Fri, 18 Jan 2002 22:33:53 -0800

icu (2.0-2) unstable; urgency=low

  * Fixed a bug in uprv_uca_cloneTempTable().  Closes: 128484
  * Update Debian bugs status.  Closes: 104642
  * Use the official 2.0 tarball as the original tar.
  * Added manual pages for every tool.

 -- Yves Arrouye <yves@debian.org>  Wed, 16 Jan 2002 20:45:42 -0800

icu (2.0-1) unstable; urgency=low

  * Update to ICU version 2.0.

 -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:58:19 -0800

icu (1.8.1-2) unstable; urgency=low

  * Updated copyright file. Closes: 112488
  * Updated icu-locales description. Closes: 75499

 -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:58 -0800

icu (1.8.1-1.1) unstable; urgency=low

  * NMU to resolve build failures on ia64 and (hopefully) hppa.
  * config.{sub|guess} update
  * source/tools/ctestfw/ctest.c: Add static declaration to global
    variables local to that module to avoid @gprel relocation errors.
    Closes: 104642

 -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:44 -0800

icu (1.8.1-1) unstable; urgency=low

  * Update to ICU version 1.8.1.

 -- root <yves@debian.org>  Mon, 21 May 2001 15:27:36 -0700

icu (1.7-1) unstable; urgency=low

  * Update to ICU version 1.7.

 -- Yves Arrouye <yves@debian.org>  Tue, 21 Nov 2000 22:54:52 -0800

icu (1.6.0.1-20001113-2) unstable; urgency=low

  * New snapshot with better ISO-2022.

 -- Yves Arrouye <yves@debian.org>  Mon, 13 Nov 2000 21:05:00 -0800

icu (1.6.0.1-20001027-1) unstable; urgency=low

  * Move architecture-dependent files into /usr/lib, instead of
    /usr/share.
  * Move convrtrs.txt into /etc/icu, make it a conffile, and generate
    /usr/lib/icu/1.6.0.1/cnvalias.dat from it at postinst time.
  * Manage a /usr/lib/icu/current symbolic link across installations
    of the libicuXX packages. The symlink will always point to the
    highest numbered version of ICU.

 -- Yves Arrouye <yves@debian.org>  Fri, 27 Oct 2000 15:40:12 -0700

icu (1.6.0.1-20001017-1) unstable; urgency=low

  * Initial Release.

 -- Yves Arrouye <yves@debian.org>  Tue, 24 Oct 2000 16:14:12 -0700

Local variables:
mode: debian-changelog
End:
