icu (2.1-1) unstable; urgency=low

  * ICU 2.1 release.
  * Changed the icu package description. Closes: 142886
  * Use -O1 for CXXFLAGS for OS/390. Closes: 143021

 -- Yves Arrouye <yves@debian.org>  Mon, 15 Apr 2002 14:03:12 -0700

icu (2.0.2-1) unstable; urgency=low

  * Minor release of ICU with fixes for threading and strTo/FromWCS

 -- Yves Arrouye <yves@debian.org>  Tue,  2 Apr 2002 09:06:00 -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:
