summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2020-07-18 08:31:05 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2020-07-18 08:31:05 +0000
commit0fd9f2a820c9f4551372e94364a1dae964202767 (patch)
treec1bdfeae2751b9d7c76496768f544cbbbd709a61
parentAdding upstream version 67.1. (diff)
downloadicu-0fd9f2a820c9f4551372e94364a1dae964202767.tar.xz
icu-0fd9f2a820c9f4551372e94364a1dae964202767.zip
Adding debian version 67.1-3.debian/67.1-3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--debian/README.source18
-rw-r--r--debian/changelog1213
-rw-r--r--debian/clean5
-rw-r--r--debian/control71
-rw-r--r--debian/copyright151
-rw-r--r--debian/fix_substvars.pl52
-rw-r--r--debian/icu-devtools.install12
-rw-r--r--debian/icu-doc.doc-base13
-rw-r--r--debian/icu-doc.install1
-rw-r--r--debian/libicu-dev.install6
-rw-r--r--debian/libicu67.install6
-rw-r--r--debian/libicu67.lintian-overrides3
-rw-r--r--debian/libicu67.shlibs7
-rw-r--r--debian/libiculx67.install1
-rw-r--r--debian/libiculx67.shlibs1
-rw-r--r--debian/patches/flaky-tests.patch30
-rw-r--r--debian/patches/gennorm2-man.patch130
-rw-r--r--debian/patches/hurd-fix.diff11
-rw-r--r--debian/patches/icudata-stdlibs.patch15
-rw-r--r--debian/patches/icuinfo-man.patch146
-rw-r--r--debian/patches/layout-test-fix.patch53
-rw-r--r--debian/patches/series6
-rwxr-xr-xdebian/rules81
-rw-r--r--debian/source/format1
-rw-r--r--debian/tests/build-test10
-rw-r--r--debian/tests/control7
-rw-r--r--debian/tests/smoke11
-rw-r--r--debian/tests/ustring.cpp600
-rw-r--r--debian/watch3
29 files changed, 2664 insertions, 0 deletions
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..bfdc143
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,18 @@
+INFORMATION SPECIFIC TO ICU
+===========================
+
+The packaging guidelines in the ICU documentation suggest that
+packagers should use the --enable-renaming option to ./configure. We
+should not do this could potentially result in using the same soname
+with ABI changes. Although ICU guarantees that no documented parts of
+the public ABI will change, there is nothing to stop people from using
+undocumented or deprecated interfaces. For additional details, please
+see the thread about this topic on the icu-design list. You can get
+to the mailing list archives here:
+
+http://sourceforge.net/mailarchive/forum.php?forum_name=icu-design
+
+and find the thread from June 10, 2008 with the subject "debian: use
+of --disable-rename and ICU library sonames".
+
+ -- Jay Berkenbilt <qjb@debian.org>, Sat, 6 Feb 2010 16:47:07 -0500
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..8c00db0
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,1213 @@
+icu (67.1-3) unstable; urgency=medium
+
+ * Don't run self-tests parallel until make-dfsg is fixed (closes: #964682).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 15 Jul 2020 06:51:53 +0200
+
+icu (67.1-2) unstable; urgency=medium
+
+ * Upload to Sid.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 01 Jun 2020 14:58:12 +0200
+
+icu (67.1-1) experimental; urgency=medium
+
+ * New major upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 24 Apr 2020 09:41:25 +0000
+
+icu (67.1~rc-1) experimental; urgency=medium
+
+ * New major upstream release candidate version.
+
+ [ Dimitri John Ledkov <xnox@ubuntu.com> ]
+ * Build with U_TIMEZONE_FILES_DIR defined to update tzdata post-release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 04 Apr 2020 09:49:40 +0000
+
+icu (66.1-2) experimental; urgency=high
+
+ * Backport upstream security fix for CVE-2020-10531: SEGV_MAPERR in
+ UnicodeString::doAppend() (closes: #953747).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 13 Mar 2020 00:18:02 +0000
+
+icu (66.1-1) experimental; urgency=medium
+
+ * New major upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 11 Mar 2020 23:46:38 +0000
+
+icu (66.1~rc-1) experimental; urgency=medium
+
+ * New major upstream release candidate version.
+ * Update debhelper level to 12 .
+ * Update Standards-Version to 4.5.0 .
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 29 Feb 2020 17:25:27 +0000
+
+icu (65.1-1) experimental; urgency=medium
+
+ * New major upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 04 Oct 2019 00:19:19 +0000
+
+icu (65.1~rc-1) experimental; urgency=medium
+
+ * New major upstream release candidate version.
+ * ICU time zone data update for 2019c.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 17 Sep 2019 16:51:06 +0000
+
+icu (64.2-4) experimental; urgency=medium
+
+ * Fix big-endian FTBFS.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 10 Sep 2019 20:23:08 +0000
+
+icu (64.2-3) experimental; urgency=medium
+
+ * Backport upstream fixes:
+ - ICU-20558 fix regression in DateTimePatternGenerator,
+ - ICU-20575 fix broken default locale mapping for C.UTF-8 .
+ * Disable flaky self-tests to fix FTBFS.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 26 Aug 2019 18:23:05 +0000
+
+icu (64.2-2) experimental; urgency=medium
+
+ * Fix build dependencies.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 07 Aug 2019 15:19:46 +0000
+
+icu (64.2-1) experimental; urgency=medium
+
+ * New major upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 26 Jul 2019 19:01:33 +0000
+
+icu (63.2-2) unstable; urgency=medium
+
+ * Revert ICU-20250 (ICU 63 UnicodeSet startup performance regression) to
+ fix ABI break (closes: #929474).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 08 Jun 2019 21:46:51 +0000
+
+icu (63.2-1) experimental; urgency=medium
+
+ * New upstream release with Japanese new era "Reiwa" support
+ (closes: #927933).
+ * Drop backported ICU-20246 and ICU-20208 fixes as no longer needed.
+ * Break Chromium versions that not built with this ICU release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 27 Apr 2019 06:44:54 +0000
+
+icu (63.1-6) unstable; urgency=medium
+
+ * Build without icu-config (closes: #898820).
+ * Update Standards-Version to 4.3.0 .
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 23 Jan 2019 16:51:20 +0000
+
+icu (63.1-5) unstable; urgency=medium
+
+ * Build without Paragraph Layout API.
+ * Remove libiculx63 package, no longer needed (closes: #898571).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 02 Dec 2018 10:31:22 +0000
+
+icu (63.1-4) unstable; urgency=medium
+
+ * Build with Paragraph Layout API.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 13 Nov 2018 05:48:13 +0000
+
+icu (63.1-3) unstable; urgency=high
+
+ * Backport fix for ICU-20246: fixing another integer overflow in number
+ parsing - fixes CVE-2018-18928 .
+ * Backport fix for ICU-20208: uspoof.cpp function checkImpl() should be
+ static, regenerate urename.h .
+ * Build without Paragraph Layout API.
+ * Upload to Sid.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 07 Nov 2018 18:15:15 +0000
+
+icu (63.1-2) experimental; urgency=medium
+
+ * Build with Paragraph Layout API.
+ * Link with the -Wl,--as-needed flag.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 31 Oct 2018 18:39:52 +0000
+
+icu (63.1-1) experimental; urgency=medium
+
+ * New major upstream release.
+ * Build without Paragraph Layout API.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 17 Oct 2018 16:44:27 +0000
+
+icu (62.1-2) experimental; urgency=medium
+
+ * Build with Paragraph Layout API.
+ * Add break for OpenTTD.
+
+ [ Matthias Klose <doko@ubuntu.com> ]
+ * Split Layout Engine shared library into a separate package, due to
+ heavy dependencies, and breaking circular dependency
+ (closes: #893801, #898571, #898806).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 29 Sep 2018 16:45:41 +0000
+
+icu (62.1-1) experimental; urgency=medium
+
+ * New major upstream release (closes: #907748).
+ * Update Standards-Version to 4.2.1 .
+
+ [ Helmut Grohne <helmut@subdivi.de> ]
+ * Fix FTCBFS: Build the native pass without libicu-le-hb-dev
+ (closes: #906906).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 04 Sep 2018 20:49:13 +0000
+
+icu (60.2-6) unstable; urgency=medium
+
+ * Build with Paragraph Layout API.
+ * Don't break OpenTTD anymore.
+ * Remove multiarch of libicu-dev due to icu-config installed
+ (closes: #898331).
+ * Remove libstdc++-6-dev dependency on libicu-dev (closes: #892598).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Thu, 10 May 2018 15:14:59 +0000
+
+icu (60.2-5) unstable; urgency=medium
+
+ * Upload to Sid.
+ * Break OpenTTD as this build is without Paragraph Layout API.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 09 May 2018 04:31:49 +0000
+
+icu (60.2-4) experimental; urgency=medium
+
+ * Install icu-config again.
+ * Don't specify parallel to debhelper.
+ * Update Standards-Version to 4.1.4 .
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 24 Apr 2018 16:45:42 +0000
+
+icu (60.2-3) experimental; urgency=medium
+
+ * Don't distclean in parallel (closes: #884898).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 24 Dec 2017 08:49:27 +0000
+
+icu (60.2-2) experimental; urgency=medium
+
+ * Backport Calendar buffer overrun compatibility fix.
+ * Remove outdated patches.
+ * Update debhelper level to 11 .
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Mon, 18 Dec 2017 19:32:35 +0000
+
+icu (60.2-1) experimental; urgency=high
+
+ * New upstream release.
+ * Build with ICU Layout Engine API (closes: #879820):
+ - add libicu-le-hb-dev build dependency,
+ - add libicu-le-hb-dev dependency to libicu-dev package,
+ - update layout extension tests,
+ - add libiculx to shlibs.
+ * Remove icu-config manpage.
+ * Backport fix for UTF-8->UTF-8 conversion overflow.
+ * Update Standards-Version to 4.1.2 .
+
+ [ Matthias Klose <doko@ubuntu.com> ]
+ * Revert the upstream fix for #13104, requiring C++11 for some header files.
+ The archive still has packages not ready for C++11, e.g. firebird3.0.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 09 Dec 2017 16:20:17 +0000
+
+icu (60.1-1) experimental; urgency=medium
+
+ * New major upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 01 Nov 2017 18:22:48 +0000
+
+icu (59.1-3) experimental; urgency=medium
+
+ * Refresh packaging:
+ - drop outdated -dbg packages,
+ - drop outdated NEWS file,
+ - build with all hardening.
+ * Fix spelling errors in upstream binaries and manpages.
+
+ [ Matthias Klose <doko@ubuntu.com> ]
+ * Fix build with glibc-2.26 (closes: #879233).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Thu, 19 Oct 2017 21:50:55 +0000
+
+icu (59.1-2) experimental; urgency=high
+
+ * Backport upstream security fix for CVE-2017-14952: double free in
+ createMetazoneMappings() .
+ * Disable self-test failure on x86 architectures due to French locale
+ problems.
+ * Make libicu59-dbg package 'Multi-Arch: same'.
+ * Update Standards-Version to 4.1.1:
+ - change libicu59-dbg priority to optional,
+ - change icu-devtools-dbg priority to optional.
+ * Update debhelper level to 10:
+ - remove autotools-dev build dependency.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 18 Oct 2017 21:12:22 +0000
+
+icu (59.1-1) experimental; urgency=low
+
+ * New major upstream release.
+ * Remove icu-config from libicu-dev :
+ - make the package 'Multi-Arch: same' again (closes: #837898).
+ * Don't fail on i386 self-tests, known problem.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 12 May 2017 15:34:54 +0000
+
+icu (58.2-1) experimental; urgency=low
+
+ * New upstream release.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 11 Dec 2016 14:02:13 +0000
+
+icu (58.1-1) experimental; urgency=low
+
+ * New major upstream release.
+ * Drop old patches.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 22 Oct 2016 11:08:24 +0200
+
+icu (57.1-4) unstable; urgency=high
+
+ * Backport upstream fix for CVE-2016-0494: integer signedness issue in
+ IndicRearrangementProcessor.
+ * Backport upstream fix for CVE-2016-6293: the uloc_acceptLanguageFromHTTP
+ function does not ensure that there is a '\0' character at the end of a
+ certain temporary array.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 07 Sep 2016 22:17:44 +0000
+
+icu (57.1-3) unstable; urgency=low
+
+ * Update libicu-dev dependency of libstdc++-dev (closes: #833938).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Wed, 10 Aug 2016 16:57:09 +0000
+
+icu (57.1-2) unstable; urgency=medium
+
+ [ Helmut Grohne <helmut@subdivi.de> ]
+ * Implement cross build support again for debhelper packaging
+ (closes: #833416).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Thu, 04 Aug 2016 04:57:45 +0000
+
+icu (57.1-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Upload to unstable.
+ * Update Standars-Version to 3.9.8.
+
+ -- Matthias Klose <doko@debian.org> Wed, 03 Aug 2016 20:49:39 +0200
+
+icu (57.1-1) experimental; urgency=low
+
+ * New major upstream release (closes: #804026).
+ * Update package names due to soname bump.
+ * Add icu-devtools debug package.
+ * Drop CVE-2015-2632.patch as this release contains it.
+ * Update patches.
+ * Keep rebuildable.
+ * Update Standars-Version to 3.9.7 .
+
+ [ Helmut Grohne <helmut@subdivi.de> ]
+ * Move icu-config to a M-A:no package (closes: #776821).
+ + Move icu-config from icu-devtools to libicu-dev.
+ + Declare relevant Breaks and Replaces.
+ + Remove Multi-Arch:same from libicu-dev.
+
+ [ Guido Günther <agx@sigxcpu.org> ]
+ * Add build and smoke autopkgtest (closes: #813338).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 27 Mar 2016 10:46:16 +0000
+
+icu (55.1-7) unstable; urgency=high
+
+ * Fix CVE-2015-2632 vulnerability.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 03 Jan 2016 16:44:55 +0100
+
+icu (55.1-6) unstable; urgency=low
+
+ * Don't force libicu-dev to depend on g++ (closes: #799100, #799101).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 03 Nov 2015 19:07:10 +0100
+
+icu (55.1-5) unstable; urgency=high
+
+ * Correct patch for CVE-2015-1270 (closes: #798647).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Fri, 11 Sep 2015 15:23:53 +0000
+
+icu (55.1-4) unstable; urgency=low
+
+ [ Helmut Grohne <helmut@subdivi.de> ]
+ * Support parallel building (closes: #794617).
+ * Support cross compilation (closes: #784668).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 08 Aug 2015 10:39:07 +0000
+
+icu (55.1-3.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Fix build on hurd-i386 (Samuel Thibault). Closes: #794404.
+
+ -- Matthias Klose <doko@debian.org> Mon, 03 Aug 2015 12:21:04 +0200
+
+icu (55.1-3) unstable; urgency=high
+
+ * Fix CVE-2015-1270 .
+ * Add fixes for CVE-2014-6585.patch and CVE-2015-4760.patch .
+ * Upload to unstable for GCC 5 transition (closes: #791072).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sun, 02 Aug 2015 14:13:05 +0200
+
+icu (55.1-2) experimental; urgency=low
+
+ [ Matthias Klose <doko@debian.org> ]
+ * Build using GCC 5.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 18 Jul 2015 12:33:19 +0000
+
+icu (55.1-1) experimental; urgency=low
+
+ * New upstream release (closes: #779245).
+ * Remove two-digit-year-test.patch , mlym-crash.patch and icu-config.patch
+ as applied upstream.
+ * Doesn't build with clang (closes: #778501).
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Sat, 04 Apr 2015 07:57:47 +0000
+
+icu (52.1-8) unstable; urgency=high
+
+ * New maintainer (closes: #777694).
+ * Update Standars-Version to 3.9.6 .
+
+ [ Michael Gilbert <mgilbert@debian.org> ]
+ * Apply a more complete fix for CVE-2014-7940 (closes: #780503).
+ - Thanks to Marc Deslauriers.
+
+ -- Laszlo Boszormenyi (GCS) <gcs@debian.org> Tue, 17 Mar 2015 11:14:15 +0000
+
+icu (52.1-7.1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * Unfixed issue from the previous upload (closes: #776264)
+ - CVE-2014-6585: out-of-bounds read.
+ * Issues fixed in chromium 40.0.2214.91 (closes: #776265, #776719).
+ - CVE-2014-7923: memory corruption in regular expression comparison.
+ - CVE-2014-7926: memory corruption in regular expression comparison.
+ - CVE-2014-7940: uninitialized memory in i18n/icol.cpp.
+ - CVE-2014-9654: more regular expression handling issues.
+
+ -- Michael Gilbert <mgilbert@debian.org> Sun, 15 Feb 2015 22:19:14 +0000
+
+icu (52.1-7) unstable; urgency=high
+
+ * Patch to CVE-2014-6591, CVE-2014-6585 a font parsing bug.
+ (Closes: #775884)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 21 Jan 2015 21:33:19 -0500
+
+icu (52.1-6) unstable; urgency=medium
+
+ * Ensure that only flags intended to be set by users make it into
+ icu-config. Previously hardening flags were sneaking in there.
+ (Closes: #759792)
+
+ -- Jay Berkenbilt <qjb@debian.org> Mon, 29 Sep 2014 09:59:09 -0400
+
+icu (52.1-5) unstable; urgency=medium
+
+ * Switch hardening back to dpkg-buildflags. It wasn't previously working
+ but now is, probably because of other bugfixes that have happened in
+ the mean time.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 26 Jul 2014 12:54:32 -0400
+
+icu (52.1-4) unstable; urgency=medium
+
+ * Fix test case that fails with gcc 4.9. Fix is from upstream. (Closes:
+ #746860)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 21 Jun 2014 16:52:47 -0400
+
+icu (52.1-3) unstable; urgency=medium
+
+ * Add package dependency information to assist with upgrades in Ubuntu.
+ This eliminates the need for a delta on the Ubuntu version of the
+ package.
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 24 Dec 2013 11:45:03 -0500
+
+icu (52.1-2) unstable; urgency=low
+
+ * Re-upload to unstable
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 03 Dec 2013 16:05:40 -0500
+
+icu (52.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Standards version 3.9.5 (no changes required)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 13 Nov 2013 16:20:40 -0500
+
+icu (52~m1-2) experimental; urgency=low
+
+ * Updated year in copyright file
+ * Standards version 3.9.4 (no changes required)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 15 Sep 2013 09:02:30 -0400
+
+icu (52~m1-1) experimental; urgency=low
+
+ * New upstream release
+ * Fixed debian/watch file based on new version numbering
+ * Various bugs have been fixed upstream. (Closes: #712501, #690156)
+ * Avoid packaging debugging library for libicudata since it has no
+ debugging symbols in it. (Closes: #698696)
+ * Clarify some ambiguous language in the copyright file, and address the
+ issue of derived data from an IETF RFC that does not actually appear
+ in the sources. (Closes: #721590)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 14 Sep 2013 20:52:27 -0400
+
+icu (4.8.1.1-14) unstable; urgency=high
+
+ * Acknowledge NMU. Thanks.
+ * Update standards version to 3.9.5. No changes required.
+ * No changes other than version numbers; uploading with urgency=high.
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 13 Nov 2013 16:19:32 -0500
+
+icu (4.8.1.1-13+nmu1) unstable; urgency=high
+
+ * Non-maintainer upload by the Security Team.
+ * Fix CVE-2013-2924: use-after-free issue in csrucode.cpp (closes: #726477).
+
+ -- Michael Gilbert <mgilbert@debian.org> Sun, 27 Oct 2013 03:49:58 +0000
+
+icu (4.8.1.1-13) unstable; urgency=low
+
+ * Multi-arch libicu-dev. Thanks Dmitrijs Ledkovs
+ <dmitrij.ledkov@ubuntu.com>! (Closes: #699763)
+ * Mark doxygen as architecture-independent build dependency.
+ (Closes: #706795)
+ * Depend on autotools-dev to update config.guess
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 21 Aug 2013 20:01:15 -0400
+
+icu (4.8.1.1-12) unstable; urgency=high
+
+ * Add patch to address CVE-2013-0900, a threading race condition.
+ (Closes: #702346)
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 21 Mar 2013 11:29:08 -0400
+
+icu (4.8.1.1-11) unstable; urgency=medium
+
+ * Fix crash on rendering incremental Malayalam text input. Thanks Colin
+ Watson. (Closes: #702982)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 16 Mar 2013 14:58:15 -0400
+
+icu (4.8.1.1-10) unstable; urgency=low
+
+ * Include pkg-config files in dev package. Thanks Tommi Vainikainen.
+ (Closes: #687339)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 17 Nov 2012 14:37:40 -0500
+
+icu (4.8.1.1-9) unstable; urgency=low
+
+ * debian/rules: Use xz compression for binary packages.
+ (Closes: #683901)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 11 Aug 2012 12:41:28 -0400
+
+icu (4.8.1.1-8) unstable; urgency=low
+
+ * Switch hardening back to hardening-wrapper again since otherwise some
+ things sneak into icu-config's output.
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 05 Jun 2012 14:27:27 -0400
+
+icu (4.8.1.1-7) unstable; urgency=low
+
+ * Switch hardening back to dpkg-buildoptions.
+ * Fix doc install for newer doxygen. (Closes: #674382)
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 24 May 2012 13:55:13 -0400
+
+icu (4.8.1.1-6) unstable; urgency=low
+
+ * Remove 32-bit packages built on 64-bit architectures, and enable
+ Multiarch. (Closes: #665416)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 22 Apr 2012 08:40:16 -0400
+
+icu (4.8.1.1-5) unstable; urgency=low
+
+ * Enable security hardening flags. Thanks to Simon Ruderich for doing
+ 100% of the work, sending a clean patch, and providing clear
+ instructions on how to verify. (Closes: #663601)
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 23 Mar 2012 22:45:55 -0400
+
+icu (4.8.1.1-4) unstable; urgency=low
+
+ * Add patch to add CCMP support for Indic. (Closes: #655101)
+ * Update standards version.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 11 Mar 2012 18:30:29 -0400
+
+icu (4.8.1.1-3) unstable; urgency=high
+
+ * Add patch to address CVE-2011-4599, a potential buffer overflow.
+ (Closes: #654883)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 21 Jan 2012 19:44:44 -0500
+
+icu (4.8.1.1-2) unstable; urgency=low
+
+ * debian/patches/icudata-stdlibs.patch: Link stdlibs to libicudata so we
+ get reasonably sane ELF headers on armhf. Thanks Adam Conrad
+ <adconrad@ubuntu.com>. (Closes: #653457)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 04 Jan 2012 09:52:11 -0500
+
+icu (4.8.1.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Add simple patch to define PATH_MAX when not defined. Not an ideal
+ solution, but it will do for now. (Closes: #643661)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 09 Nov 2011 09:59:08 -0500
+
+icu (4.8.1-2) experimental; urgency=low
+
+ * Fix 64-bit kfreebsd configure problem. Thanks Petr Salinger.
+ (Closes: #630517)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 10 Sep 2011 08:17:58 -0400
+
+icu (4.8.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Remove 32-bit source directory on clean. (Closes: #630514)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 03 Sep 2011 10:14:57 -0400
+
+icu (4.8-1) experimental; urgency=low
+
+ * New upstream release
+ * Upstream release includes fix to RegexMatch crash (Closes: #606886)
+ * Updated standards to 3.9.2; no changes required
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 28 May 2011 11:30:22 -0400
+
+icu (4.4.2-2) unstable; urgency=low
+
+ * Apply patch to fix Malayam rendering. (Closes: #591615)
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 25 Nov 2010 12:51:18 -0500
+
+icu (4.4.2-1) unstable; urgency=low
+
+ * New upstream release
+ * Updated standards version to 3.9.1; no changes required
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 17 Oct 2010 11:06:20 -0400
+
+icu (4.4.1-7) testing-proposed-updates; urgency=high
+
+ * Apply patch to fix Malayam rendering. (Closes: #591615)
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 25 Nov 2010 12:07:26 -0500
+
+icu (4.4.1-6) unstable; urgency=low
+
+ * Include patch from Alexander Kurtz to solve failure to build from
+ source resulting from doxygen generating different files. (Closes:
+ #590393)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 28 Jul 2010 18:44:01 -0400
+
+icu (4.4.1-5) unstable; urgency=low
+
+ * Include patch from upstream to fix arm assembler bug. Thanks to Adam
+ Barratt for finding the fix. (Closes: #589076)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 17 Jul 2010 07:30:22 -0400
+
+icu (4.4.1-4) unstable; urgency=low
+
+ * Re-upload to unstable
+ * Remove conficts and replaces for packages that have been gone since
+ before the release of lenny
+ * Updated standards version to 3.9.0
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 11 Jul 2010 12:19:00 -0400
+
+icu (4.4.1-3) experimental; urgency=low
+
+ * Replace my patch with a complete fix from upstream. The fix in the
+ previous upload behaves identically in a debian environment, but it's
+ better to track with upstream.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 22 May 2010 08:32:48 -0400
+
+icu (4.4.1-2) experimental; urgency=low
+
+ * Increase buffer sizes in pkgdata. Prevents bus errors in kfreebsd and
+ undetected overruns everywhere else. (Closes: #581174)
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 21 May 2010 21:56:34 -0400
+
+icu (4.4.1-1) experimental; urgency=low
+
+ * New upstream release
+ * Removed kfreebsd patch as kfreebsd works out of the box now, according
+ to upstream.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 01 May 2010 10:45:04 -0400
+
+icu (4.4-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 09 Apr 2010 22:27:30 -0400
+
+icu (4.4~rc1-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 06 Mar 2010 11:54:54 -0500
+
+icu (4.3.4-1) experimental; urgency=low
+
+ * New upstream release
+ * Upstream release includes change of static library names to be
+ consistent with normal standards. (Closes: #469454)
+ * Updated standards to 3.8.4. No changes needed.
+ * Updated source format to '3.0 (quilt)'
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 06 Feb 2010 16:55:29 -0500
+
+icu (4.2.1-3) unstable; urgency=low
+
+ * Change install-doc target to not fail if there are subdirectories of
+ doc/html. This is necessary to handle the doc/html/search directory
+ created by doxygen 3.6.1. (Closes: #544799)
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 04 Sep 2009 11:56:06 -0400
+
+icu (4.2.1-2) unstable; urgency=low
+
+ * Added missing 4.0.1-4 entry to changelog.
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 19 Aug 2009 21:58:56 -0400
+
+icu (4.2.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Updated standards version to 3.8.3. No changes required.
+ * First unstable upload to not use tarball in tarball packaging.
+ (Closes: #538560)
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 19 Aug 2009 17:11:40 -0400
+
+icu (4.2.1~rc1-3) experimental; urgency=low
+
+ * More aggressive fix to invalid object files being written by pkgdata.
+ This is a temporary fix until upstream provides a better one.
+ (Closes: #530568)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 28 Jun 2009 09:57:40 -0400
+
+icu (4.2.1~rc1-2) experimental; urgency=low
+
+ * Bug 530568 is not fixed. Add some debugging code.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 27 Jun 2009 09:34:16 -0400
+
+icu (4.2.1~rc1-1) experimental; urgency=low
+
+ * New upstream release
+ * Fixed bug in pkgdata that was causing build failures on most
+ platforms. (Closes: #530568)
+ * Removed /emul/ia32-linux stuff. (Closes: #533850)
+ * Updated standards version to 3.8.2
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 26 Jun 2009 22:12:55 -0400
+
+icu (4.0.1-4) unstable; urgency=high
+
+ * Added conflicts on older versions of libc6-i386 for 32-bit versions of
+ the libraries installed on 64-bit systems. (Closes: #538836)
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 04 Aug 2009 08:54:45 -0400
+
+icu (4.0.1-3) unstable; urgency=low
+
+ * Removed /emul/ia32-linux stuff. (Closes: #533850)
+ * Updated standards version to 3.8.2
+ * Fixed section of -dbg package
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 26 Jun 2009 22:12:06 -0400
+
+icu (4.2-1) experimental; urgency=low
+
+ * New upstream release
+ * Updated standards to 3.8.1: no changes required.
+ * Removed arm workarounds since the underlying problem has been fixed
+ upstream and arm is no longer supported anyway.
+ * Now that upstream has removed obsolete debian directory, this package
+ no longer uses tarball-in-tarball packaging.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 24 May 2009 09:35:30 -0400
+
+icu (4.0.1-2) unstable; urgency=low
+
+ * Include work-around from 3.8.1-3, inadvertently omitted from 4.0.1-1.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 08 Mar 2009 09:39:51 -0400
+
+icu (4.0.1-1) unstable; urgency=low
+
+ * New upstream release (Closes: #516674)
+ * Create README.source, convert patch system to quilt, update standards
+ version to 3.8.0
+ * Applied patch for compilation under gcc 4.4. This has also been fixed
+ upstream. (Closes: #505371)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 07 Mar 2009 19:19:39 -0500
+
+icu (3.8.1-3) unstable; urgency=medium
+
+ * Work around gcc internal error on armel. Temporary until bug 484053
+ is resolved.
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 10 Jul 2008 14:25:30 -0400
+
+icu (4.0-1) experimental; urgency=low
+
+ * New upstream release
+ * Remove setBreakType patch. See
+ http://bugs.icu-project.org/trac/ticket/5498 for a discussion. Based
+ on this report, and looking at the OpenOffice.org bug tracking system,
+ it seems that this is no longer needed by OpenOffice.
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 08 Jul 2008 12:08:13 -0400
+
+icu (4.0~d3-1) experimental; urgency=low
+
+ * New upstream release
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 27 Jun 2008 22:23:10 -0400
+
+icu (3.8.1-2) unstable; urgency=low
+
+ * Patch from Harshula to fix split conjuncts problem in
+ Sinhala. (Closes: #483563)
+ * Force structures to be padded at byte boundaries (rather than 32-bit
+ boundaries) on arm. (Closes: #484138)
+ * Update doc-base section.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 07 Jun 2008 13:09:07 -0400
+
+icu (3.8.1-1) unstable; urgency=low
+
+ * New upstream release
+ * Patch to support GNU/kFreeBSD. Thanks Aurelien Jarno. (Closes:
+ #461782)
+
+ -- Jay Berkenbilt <qjb@debian.org> Mon, 11 Feb 2008 20:11:00 -0500
+
+icu (3.8-6) unstable; urgency=high
+
+ * Add debian/patches/00-cve-2007-4770-4771.patch created from with
+ svn diff -c 23292 \
+ http://source.icu-project.org/repos/icu/icu/branches/maint/maint-3-8
+ to address the following security vulnerablilities:
+ - CVE-2007-4770: reference to non-existent capture group may
+ cause access to invalid memory
+ - CVE-2007-4771: buffer overflow in regexcmp.cpp
+ (Closes: #463688)
+ * Updated standards version to 3.7.3: no changes required.
+
+ -- Jay Berkenbilt <qjb@debian.org> Thu, 07 Feb 2008 12:58:34 -0500
+
+icu (3.8-5) unstable; urgency=low
+
+ * Filter out extraneous dependencies among different versions of the
+ library packages. (Closes: #451767, 451978)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 01 Dec 2007 09:47:32 -0500
+
+icu (3.8-4) experimental; urgency=low
+
+ * Include changes from 3.6-10.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 18 Nov 2007 11:04:16 -0500
+
+icu (3.6-10) unstable; urgency=low
+
+ * It appears that amd64 requires 32-bit libraries to be in
+ /emul/ia32-linux/usr/lib instead of /usr/lib32. Following zlib's
+ example of moving them around for amd64 only. (Closes: #451495)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 18 Nov 2007 11:03:10 -0500
+
+icu (3.8-3) experimental; urgency=low
+
+ * Include changes from 3.6-9.
+ * Include -dbg package with unstripped versions of the libraries.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 17 Nov 2007 15:02:36 -0500
+
+icu (3.6-9) unstable; urgency=low
+
+ * Yet another 32-bit library fix. Files were installed in /32 because
+ of the debian/tmp32 thing. How did this ever work? (Closes: #451495)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 17 Nov 2007 12:12:18 -0500
+
+icu (3.8-2) experimental; urgency=low
+
+ * Include changes from 3.6-8. (Closes: #448747)
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 06 Nov 2007 20:58:09 -0500
+
+icu (3.6-8) unstable; urgency=low
+
+ * Clean up 32-bit library patch to avoid excessive and unnecessary runs
+ of configure. (Closes: #447771)
+ * make setBreakType public in rbbi.h; needed by OpenOffice.org. This
+ patch is included in OpenOffice.org's internal ICU. Including it here
+ allows OpenOffice.org to continue to use this ICU package. Thanks
+ Rene Engelhard. (Closes: #448745)
+ * Rename debian/watch.not-yet to debian/no-watch so it won't get picked
+ up even though it's not supposed to. ICU's ftp site uses a structure
+ that isn't supported by uscan. (Closes: #449701)
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 06 Nov 2007 20:56:38 -0500
+
+icu (3.8-1) experimental; urgency=low
+
+ * New upstream release. All previously included patches have been
+ incorporated into upstream.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 20 Oct 2007 11:53:32 -0400
+
+icu (3.6-7) unstable; urgency=low
+
+ * Fix bug in which 32-bit library installs were overwriting files for
+ 64-bit libraries on amd64. Thanks Robert Millan for the patch.
+ (Closes: #447275)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 20 Oct 2007 11:30:12 -0400
+
+icu (3.6-6) unstable; urgency=low
+
+ * Oops: fixed one more problem with 32-bit builds on a 64-bit platform.
+ Thanks Aaron Ucko. (Closes: #398778)
+
+ -- Jay Berkenbilt <qjb@debian.org> Mon, 17 Sep 2007 15:19:59 -0400
+
+icu (3.6-5) unstable; urgency=low
+
+ * Add additional Build-Depends for 64-bit platforms. Thanks Robert
+ Millan. (Closes: #398778)
+
+ -- Jay Berkenbilt <qjb@debian.org> Mon, 17 Sep 2007 10:42:32 -0400
+
+icu (3.6-4) unstable; urgency=low
+
+ * Accepted patch from Robert Millan (with very slight, mostly cosmetic
+ modifications) to build 32-bit libraries on 64-bit architectures.
+ Many thanks to Robert Millan for supplying this patch! (Closes:
+ #398778)
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 15 Sep 2007 21:42:33 -0400
+
+icu (3.8~d01-1) experimental; urgency=low
+
+ * New upstream release
+ * Configure with weak reference to thread library. (Closes: #389260)
+ * The development package no longer has the library soname in its name.
+ It is now just libicu-dev.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 04 Aug 2007 11:04:49 -0400
+
+icu (3.6-3) unstable; urgency=low
+
+ * Include patch from Samuel Thibault to allow icu to build on gnu hurd.
+ (Closes: #414446)
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 10 Jul 2007 17:31:56 -0400
+
+icu (3.6-2) unstable; urgency=low
+
+ * Include patch to fix error in IndicClassTables to fix
+ worstCaseExpansion for Sinhala. Thanks to Harshula for forwarding
+ this.
+
+ -- Jay Berkenbilt <qjb@debian.org> Mon, 27 Nov 2006 21:19:09 -0500
+
+icu (3.6-1) unstable; urgency=low
+
+ * New upstream release
+ * Provide libicu34-dev since ICU 3.6 provides backward compatible
+ interfaces in addition to new ones.
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 19 Sep 2006 12:10:41 -0400
+
+icu (3.6~d02-1) experimental; urgency=low
+
+ * New upstream release.
+ * Remove special optimization hack to work around now-fixed m68k build
+ problems. (Closes: #360743)
+ * Update standards version. No changes required.
+
+ -- Jay Berkenbilt <qjb@debian.org> Tue, 15 Aug 2006 16:34:34 -0400
+
+icu (3.4.1a-1) unstable; urgency=low
+
+ * Upstream re-released 3.4.1 without changing the version number because
+ the header file with 3.4.1 still said it was 3.4. Unfortunately, the
+ debian 3.4.1 package had already been uploaded. This "3.4.1a" release
+ now matches upstream's 3.4.1.
+
+ -- Jay Berkenbilt <qjb@debian.org> Wed, 29 Mar 2006 22:19:08 -0500
+
+icu (3.4.1-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 3 Mar 2006 23:07:52 -0500
+
+icu (3.4-4) unstable; urgency=low
+
+ * Build with g++ 4.0 with -fno-strict-aliasing to work around g++ 4.0
+ bugs that impact ICU. Future versions should work properly with the
+ latest g++ without any special flags. (Closes: #342970)
+ * Enable static libraries.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sun, 22 Jan 2006 11:36:59 -0500
+
+icu (3.4-3) unstable; urgency=low
+
+ * Explicitly build with g++ 3.4. The current ICU fails its test suite
+ with 4.0 but not with 3.4. Future versions should work properly with
+ 4.0.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 19 Nov 2005 11:29:31 -0500
+
+icu (3.4-2) unstable; urgency=low
+
+ * Remove some extraneous build steps that may cause problems with
+ autobuilders.
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 13 Aug 2005 12:41:35 -0400
+
+icu (3.4-1) unstable; urgency=low
+
+ * New upstream release
+ * Completely new packaging
+
+ -- Jay Berkenbilt <qjb@debian.org> Fri, 5 Aug 2005 21:57:15 -0400
+
+icu (2.1-3) unstable; urgency=low
+
+ * New maintainer as per discussion with Ivo.
+ * g++ 4.0 transition: libicu21c102 is now libicu21c2.
+ * Accepted changes from NMU below for now. This change will be
+ reversed soon when icu is updated to the current upstream version.
+ The icu28 package will also be removed at that time, as per discussion
+ with the icu28 maintainer. Closes: #301316
+ * Add shlibs files
+
+ -- Jay Berkenbilt <qjb@debian.org> Sat, 9 Jul 2005 13:33:35 -0400
+
+icu (2.1-2.1) unstable; urgency=medium
+
+ * Rename icu-doc to icu21-doc. icu-doc is built by the icu28 package.
+
+ -- Matthias Klose <doko@debian.org> Sat, 21 May 2005 22:44:31 +0200
+
+icu (2.1-2) unstable; urgency=low
+
+ * debian/control: Changed maintainer, added Daniel Glassey as Uploader.
+ (Reference:
+ http://lists.debian.org/debian-devel/2003/debian-devel-200308/msg01963.html)
+
+ -- Ivo Timmermans <ivo@debian.org> Sun, 18 Jan 2004 23:52:03 +0100
+
+icu (2.6.1-1) experimental; urgency=low
+
+ * New upstream version.
+ * Ivo Timmermans:
+ * debian/rules Don't create arch-all packages in the binary-arch
+ target. Closes: #184403
+
+ -- Ivo Timmermans <ivo@debian.org> Thu, 6 Nov 2003 09:03:44 +0100
+
+icu (2.6-1) experimental; urgency=low
+
+ * New upstream version. Closes: #162975
+ * debian/control: New maintainers
+ * Daniel Glassey:
+ * debian/rules Don't use --enable-static as it bloats the packages
+ * debian/rules Change the optimisations to -O3 and -O to get it to build
+ * debian/rules get the latest config.{sub,guess} from /usr/share/misc
+ so add build-dep on autotools-dev
+ * debian/postinst gencnval is now in {prefix}/bin
+ * Ivo Timmermans:
+ * debian/control Tightened debhelper build dependency
+ * debian/control Update Standards-Version
+
+ -- Daniel Glassey <wdg@debian.org> Wed, 3 Sep 2003 12:39:35 +0200
+
+icu (2.1-1.2) unstable; urgency=low
+
+ * NMU.
+ * Updated source/config.{sub,guess}. Closes: #182697
+
+ -- Ivo Timmermans <ivo@debian.org> Fri, 7 Mar 2003 20:58:23 +0100
+
+icu (2.1-1.1) unstable; urgency=low
+
+ * NMU.
+ * debian/control: Go through G++ ABI transition. Closes: #180124
+ * source/common/unicode/docmain.h: Fix \mainpage and \section tags,
+ so doxygen doesn't get confused any more. Closes: #178344
+ * debian/copyright: Added upstream URL. Closes: #165780
+
+ -- Ivo Timmermans <ivo@debian.org> Fri, 14 Feb 2003 15:21:56 +0100
+
+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
diff --git a/debian/clean b/debian/clean
new file mode 100644
index 0000000..a105625
--- /dev/null
+++ b/debian/clean
@@ -0,0 +1,5 @@
+source/config.log
+source/config/icu-config.1
+source/test/letest/letest
+source/data/rules.mk
+source/test/testdata/rules.mk
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..4c2fdf1
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,71 @@
+Source: icu
+Section: libs
+Priority: optional
+Maintainer: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Standards-Version: 4.5.0
+Build-Depends: debhelper-compat (= 12), pkg-config, python3-distutils
+Build-Depends-Indep: doxygen (>= 1.7.1)
+Build-Conflicts: clang
+Homepage: http://www.icu-project.org
+
+Package: libicu67
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: openttd (<< 1.8.0-2~), libiculx63 (<< 63.1-5)
+Replaces: libiculx63 (<< 63.1-5)
+Description: International Components for Unicode
+ ICU is a C++ and C library that provides robust and full-featured
+ Unicode and locale support. This package contains the runtime
+ libraries for ICU.
+
+#Package: libiculx63
+#Multi-Arch: same
+#Architecture: any
+#Pre-Depends: ${misc:Pre-Depends}
+#Depends: ${misc:Depends}, ${shlibs:Depends}
+#Description: International Components for Unicode
+# ICU is a C++ and C library that provides robust and full-featured
+# Unicode and locale support. This package contains the runtime
+# libraries for ICU.
+# .
+# This package contains the layout engine.
+#
+Package: libicu-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, libicu67 (= ${binary:Version}), icu-devtools (>= ${binary:Version}), libc6-dev | libc-dev
+Replaces: icu-devtools (<< 67.1~rc-1~)
+Breaks: icu-devtools (<< 67.1~rc-1~)
+Suggests: icu-doc
+Description: Development files for International Components for Unicode
+ ICU is a C++ and C library that provides robust and full-featured
+ Unicode and locale support. This package contains the development
+ files for ICU.
+
+Package: icu-devtools
+Section: libdevel
+Architecture: any
+Multi-Arch: foreign
+Pre-Depends: ${misc:Pre-Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Replaces: libicu-dev (<< ${binary:Version}), icu-tools (<< 67.1~rc-1~)
+Breaks: libicu-dev (<< ${binary:Version}), icu-tools (<< 67.1~rc-1~)
+Description: Development utilities for International Components for Unicode
+ ICU is a C++ and C library that provides robust and full-featured
+ Unicode and locale support. This package contains programs used to
+ manipulate data files found in the ICU sources and is a dependency of
+ libicu-dev. End users would generally not need to install this package.
+
+Package: icu-doc
+Section: doc
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}
+Description: API documentation for ICU classes and functions
+ ICU is a C++ and C library that provides robust and full-featured
+ Unicode and locale support. This package contains HTML files
+ documenting the ICU APIs.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..987f947
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,151 @@
+This package was debianized by Jay Berkenbilt <qjb@debian.org> on
+August 5, 2005.
+The packaging was taken over by Laszlo Boszormenyi (GCS) <gcs@debian.org> on
+Tue, 17 Mar 2015.
+
+The original source was downloaded from
+http://site.icu-project.org/download
+
+The main web site for ICU is
+http://www.icu-project.org/
+
+ICU contains components with different licensing terms.
+
+ICU License
+===========
+
+COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
+
+Copyright © 1991-2019 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+
+---------------------
+
+Third-Party Software Licenses
+
+This section contains third-party software notices and/or additional
+terms for licensed third-party software components included within ICU
+libraries.
+
+Unicode Data License
+====================
+
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+ Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/ . Unicode Software includes any source code
+published in the Unicode Standard or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/.
+
+ NOTICE TO USER: Carefully read the following legal agreement. BY
+DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES
+("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND
+AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU
+DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES
+OR SOFTWARE.
+
+ COPYRIGHT AND PERMISSION NOTICE
+
+ Copyright © 1991-2008 Unicode, Inc. All rights reserved. Distributed under
+the Terms of Use in http://www.unicode.org/copyright.html.
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+of the Unicode data files and any associated documentation (the "Data Files") or
+Unicode software and any associated documentation (the "Software") to deal in
+the Data Files or Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files or
+Software are furnished to do so, provided that (a) the above copyright notice(s)
+and this permission notice appear with all copies of the Data Files or Software,
+(b) both the above copyright notice(s) and this permission notice appear in
+associated documentation, and (c) there is clear notice in each modified Data
+File or in the Software as well as in the documentation associated with the Data
+File(s) or Software that the data or software has been modified.
+
+ THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD
+PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
+SOFTWARE.
+
+ Except as contained in this notice, the name of a copyright holder shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in these Data Files or Software without prior written authorization of the
+copyright holder.
+
+Additional Copyrights
+=====================
+
+Some files are copyright by the following additional copyright
+holders, though in all cases, the copyright is held jointly with IBM
+and is subject ICU license above:
+
+ * Google Inc.
+ * Yahoo! Inc.
+
+Some files in source/data/sprep contain data that was programmatically
+extracted from RFC 3454, but this programmatic extraction was done as
+a one-time activity and is not part of ICU's build process. The
+non-free RFC 3454 document is not part of the sources. The files
+generated from RFC 3454 could be considered derived works, so the RFC
+3454 copyright requires the inclusion of the original RFC 3454
+copyright notice:
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/debian/fix_substvars.pl b/debian/fix_substvars.pl
new file mode 100644
index 0000000..186f9fe
--- /dev/null
+++ b/debian/fix_substvars.pl
@@ -0,0 +1,52 @@
+#
+# Remove any whose names that match the given pattern from the
+# shlibs:Depends entry in the given substvars.
+#
+
+BEGIN { $^W = 1; }
+use strict;
+my $whoami = ($0 =~ m,([^/\\]*)$,) ? $1 : $0;
+
+die "usage: $whoami substvars-file pattern" unless @ARGV == 2;
+my ($file, $pattern) = @ARGV;
+if (! -f $file)
+{
+ exit 0;
+}
+
+open(F, "<$file") or die "$whoami: can't open $file: $!\n";
+my @in = (<F>);
+close(F);
+my @out = ();
+
+for (@in)
+{
+ if (m/(shlibs:Depends=)(.*)/)
+ {
+ my $prefix = $1;
+ my $contents = $2;
+ my @items = split(',\s*', $contents);
+ my @new = ();
+ foreach my $i (@items)
+ {
+ $i =~ m/^(\S+)/ or die;
+ my $pkg = $1;
+ if ($pkg !~ m/^${pattern}$/)
+ {
+ push(@new, $i);
+ }
+ }
+ push(@out, $prefix . join(', ', @new) . "\n");
+ }
+ else
+ {
+ push(@out, $_);
+ }
+}
+
+open(F, ">$file") or die "$whoami: can't open $file.new: $!\n";
+foreach (@out)
+{
+ print F $_;
+}
+close(F);
diff --git a/debian/icu-devtools.install b/debian/icu-devtools.install
new file mode 100644
index 0000000..fc6022c
--- /dev/null
+++ b/debian/icu-devtools.install
@@ -0,0 +1,12 @@
+usr/bin/derb
+usr/bin/genbrk
+usr/bin/gencfu
+usr/bin/gencnval
+usr/bin/gendict
+usr/bin/genrb
+usr/bin/icuinfo
+usr/bin/makeconv
+usr/bin/pkgdata
+usr/bin/uconv
+usr/sbin
+usr/share/man
diff --git a/debian/icu-doc.doc-base b/debian/icu-doc.doc-base
new file mode 100644
index 0000000..119db5a
--- /dev/null
+++ b/debian/icu-doc.doc-base
@@ -0,0 +1,13 @@
+Document: icu-doc
+Title: ICU API Documentation
+Author: IBM Corporation and Others
+Abstract: This manual describes the APIs of the
+ International Components for Unicode C/C++
+ library. It is a useful reference for the
+ ICU programmer.
+Section: Programming
+
+Format: HTML
+Index: /usr/share/doc/icu-doc/html/index.html
+Files: /usr/share/doc/icu-doc/html/*.html
+
diff --git a/debian/icu-doc.install b/debian/icu-doc.install
new file mode 100644
index 0000000..56fe178
--- /dev/null
+++ b/debian/icu-doc.install
@@ -0,0 +1 @@
+usr/share/doc/icu/html usr/share/doc/icu-doc
diff --git a/debian/libicu-dev.install b/debian/libicu-dev.install
new file mode 100644
index 0000000..8c9d92e
--- /dev/null
+++ b/debian/libicu-dev.install
@@ -0,0 +1,6 @@
+usr/lib/*/lib*.so
+usr/lib/*/lib*.a
+usr/lib/*/icu
+usr/lib/*/pkgconfig/*.pc
+usr/include
+usr/share/icu
diff --git a/debian/libicu67.install b/debian/libicu67.install
new file mode 100644
index 0000000..d82950d
--- /dev/null
+++ b/debian/libicu67.install
@@ -0,0 +1,6 @@
+usr/lib/*/libicudata.so.*
+usr/lib/*/libicui18n.so.*
+usr/lib/*/libicuio.so.*
+usr/lib/*/libicutest.so.*
+usr/lib/*/libicutu.so.*
+usr/lib/*/libicuuc.so.*
diff --git a/debian/libicu67.lintian-overrides b/debian/libicu67.lintian-overrides
new file mode 100644
index 0000000..6490cbc
--- /dev/null
+++ b/debian/libicu67.lintian-overrides
@@ -0,0 +1,3 @@
+# libicu67 installs multiple shared libraries, none of which is
+# actually called libicu.so.67, but all of which are libicu*.so.67.
+libicu67: package-name-doesnt-match-sonames libicudata67 libicui18n67 libicuio67 libicutest67 libicutu67 libicuuc67
diff --git a/debian/libicu67.shlibs b/debian/libicu67.shlibs
new file mode 100644
index 0000000..d2d8b42
--- /dev/null
+++ b/debian/libicu67.shlibs
@@ -0,0 +1,7 @@
+libicudata 67 libicu67 (>= 67.1-1~)
+libicui18n 67 libicu67 (>= 67.1-1~)
+libicuio 67 libicu67 (>= 67.1-1~)
+libicutest 67 libicu67 (>= 67.1-1~)
+libicutu 67 libicu67 (>= 67.1-1~)
+libicuuc 67 libicu67 (>= 67.1-1~)
+#libiculx 67 libicu67 (>= 67.1-1~)
diff --git a/debian/libiculx67.install b/debian/libiculx67.install
new file mode 100644
index 0000000..d36c0a2
--- /dev/null
+++ b/debian/libiculx67.install
@@ -0,0 +1 @@
+usr/lib/*/libiculx.so.*
diff --git a/debian/libiculx67.shlibs b/debian/libiculx67.shlibs
new file mode 100644
index 0000000..7e06e86
--- /dev/null
+++ b/debian/libiculx67.shlibs
@@ -0,0 +1 @@
+libiculx 67 libicu67 (>= 67.1-1~)
diff --git a/debian/patches/flaky-tests.patch b/debian/patches/flaky-tests.patch
new file mode 100644
index 0000000..65049a5
--- /dev/null
+++ b/debian/patches/flaky-tests.patch
@@ -0,0 +1,30 @@
+Description: disable flaky tests
+ These fail on buildds but not on porterboxes (unreproducible ones).
+Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Forwarded: no
+Last-Update: 2019-08-26
+
+---
+
+--- icu-64.2.orig/source/test/cintltst/udatpg_test.c
++++ icu-64.2/source/test/cintltst/udatpg_test.c
+@@ -45,7 +45,7 @@ static void TestOptions(void);
+ static void TestGetFieldDisplayNames(void);
+
+ void addDateTimePatternGeneratorTest(TestNode** root) {
+- TESTCASE(TestOpenClose);
++ /* TESTCASE(TestOpenClose); */
+ TESTCASE(TestUsage);
+ TESTCASE(TestBuilder);
+ TESTCASE(TestOptions);
+--- icu-64.2.orig/source/test/intltest/uobjtest.cpp
++++ icu-64.2/source/test/intltest/uobjtest.cpp
+@@ -610,7 +610,7 @@ void UObjectTest::runIndexedTest( int32_
+ {
+ switch (index) {
+
+- TESTCASE(0, testIDs);
++ // TESTCASE(0, testIDs);
+ TESTCASE(1, testUMemory);
+ TESTCASE(2, TestMFCCompatibility);
+ TESTCASE(3, TestCompilerRTTI);
diff --git a/debian/patches/gennorm2-man.patch b/debian/patches/gennorm2-man.patch
new file mode 100644
index 0000000..e75077f
--- /dev/null
+++ b/debian/patches/gennorm2-man.patch
@@ -0,0 +1,130 @@
+Description: supply manual page for program that doesn't have one
+Author: Jay Berkenbilt <qjb@debian.org>
+Bug: http://bugs.icu-project.org/trac/ticket/7554
+
+Index: icu-52~m1/source/tools/gennorm2/Makefile.in
+===================================================================
+--- icu-52~m1.orig/source/tools/gennorm2/Makefile.in 2013-09-14 18:53:23.432040469 -0400
++++ icu-52~m1/source/tools/gennorm2/Makefile.in 2013-09-14 18:53:23.428040469 -0400
+@@ -16,8 +16,13 @@
+
+ TARGET_STUB_NAME = gennorm2
+
++SECTION = 8
++
++MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
++
++
+ ## Extra files to remove for 'make clean'
+-CLEANFILES = *~ $(DEPS)
++CLEANFILES = *~ $(DEPS) $(MAN_FILES)
+
+ ## Target information
+ TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
+@@ -44,12 +49,16 @@
+ dist: dist-local
+ check: all check-local
+
+-all-local: $(TARGET)
++all-local: $(TARGET) $(MAN_FILES)
+
+-install-local: all-local
++install-local: all-local install-man
+ $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+ $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+
++install-man: $(MAN_FILES)
++ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
++ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
++
+ dist-local:
+
+ clean-local:
+@@ -70,6 +79,11 @@
+ $(POST_BUILD_STEP)
+
+
++%.$(SECTION): $(srcdir)/%.$(SECTION).in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
++
++
+ ifeq (,$(MAKECMDGOALS))
+ -include $(DEPS)
+ else
+Index: icu-52~m1/source/tools/gennorm2/gennorm2.8.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ icu-52~m1/source/tools/gennorm2/gennorm2.8.in 2013-09-14 18:53:23.428040469 -0400
+@@ -0,0 +1,71 @@
++.\" Hey, Emacs! This is -*-nroff-*- you know...
++.\"
++.\" gennorm2.8: manual page for the gennorm2 utility
++.\"
++.\" Copyright (C) 2005-2006 International Business Machines Corporation and others
++.\"
++.TH GENNORM2 8 "15 March 2010" "ICU MANPAGE" "ICU @VERSION@ Manual"
++.SH NAME
++.B gennorm2
++\- Builds binary data file with Unicode normalization data.
++.SH SYNOPSIS
++.B gennorm2
++[
++.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
++]
++[
++.BR "\-V\fP, \fB\-\-version"
++]
++[
++.BR "\-c\fP, \fB\-\-copyright"
++]
++[
++.BR "\-v\fP, \fB\-\-verbose"
++]
++[
++.BI "\-u\fP, \fB\-\-unicode" " unicode\-version\-number"
++]
++[
++.BI "\-s\fP, \fB\-\-sourcedir" " source\-directory"
++]
++[
++.BI "\-o\fP, \fB\-\-output" " output\-filename"
++]
++.BI "\fB\-\-fast"
++.SH DESCRIPTION
++.B gennorm2
++reads text files that define Unicode normalization,
++them, and builds a binary data file.
++.SH OPTIONS
++.TP
++.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
++Print help about usage and exit.
++.TP
++.BR "\-V\fP, \fB\-\-version"
++Print the version of
++.B gennorm2
++and exit.
++.TP
++.BR "\-c\fP, \fB\-\-copyright"
++Include a copyright notice.
++.TP
++.BR "\-v\fP, \fB\-\-verbose"
++Display extra informative messages during execution.
++.TP
++.BR "\-u\fP, \fB\-\-unicode"
++Specify Unicode version number, such as 5.2.0.
++.TP
++.BI "\-s\fP, \fB\-\-sourcedir" " source\-directory"
++Specify the input directory.
++.TP
++.BI "\-s\fP, \fB\-\-sourcedir" " source\-directory"
++Set the name of the output file.
++.TP
++.BI "\fB\-\-fast"
++optimize the .nrm file for fast normalization,
++which might increase its size (Writes fully decomposed
++regular mappings instead of delta mappings.
++You should measure the runtime speed to make sure that
++this is a good trade-off.)
++.SH COPYRIGHT
++Copyright (C) 2009-2010 International Business Machines Corporation and others
diff --git a/debian/patches/hurd-fix.diff b/debian/patches/hurd-fix.diff
new file mode 100644
index 0000000..96c3487
--- /dev/null
+++ b/debian/patches/hurd-fix.diff
@@ -0,0 +1,11 @@
+--- ./source/tools/toolutil/udbgutil.cpp.orig 2015-08-03 11:53:13.788781812 +0200
++++ ./source/tools/toolutil/udbgutil.cpp 2015-08-03 11:53:14.736758140 +0200
+@@ -366,8 +366,6 @@
+ return "Linux";
+ #elif U_PLATFORM == U_PF_ANDROID
+ return "Android";
+-#elif U_PLATFORM == U_PF_CLASSIC_MACOS
+- return "MacOS (Classic)";
+ #elif U_PLATFORM == U_PF_OS390
+ return "IBM z";
+ #elif U_PLATFORM == U_PF_OS400
diff --git a/debian/patches/icudata-stdlibs.patch b/debian/patches/icudata-stdlibs.patch
new file mode 100644
index 0000000..5e92bde
--- /dev/null
+++ b/debian/patches/icudata-stdlibs.patch
@@ -0,0 +1,15 @@
+Index: icu-52~m1/source/config/mh-linux
+===================================================================
+--- icu-52~m1.orig/source/config/mh-linux 2013-09-14 18:53:23.284040467 -0400
++++ icu-52~m1/source/config/mh-linux 2013-09-14 18:53:23.284040467 -0400
+@@ -21,7 +21,9 @@
+ LD_RPATH_PRE = -Wl,-rpath,
+
+ ## These are the library specific LDFLAGS
+-LDFLAGSICUDT=-nodefaultlibs -nostdlib
++#LDFLAGSICUDT=-nodefaultlibs -nostdlib
++# Debian change: linking icudata as data only causes too many problems.
++LDFLAGSICUDT=
+
+ ## Compiler switch to embed a library name
+ # The initial tab in the next line is to prevent icu-config from reading it.
diff --git a/debian/patches/icuinfo-man.patch b/debian/patches/icuinfo-man.patch
new file mode 100644
index 0000000..7f7e0f9
--- /dev/null
+++ b/debian/patches/icuinfo-man.patch
@@ -0,0 +1,146 @@
+Description: supply manual page for program that doesn't have one
+Author: Jay Berkenbilt <qjb@debian.org>
+Bug: http://bugs.icu-project.org/trac/ticket/7665
+
+Index: icu-52~m1/source/tools/icuinfo/Makefile.in
+===================================================================
+--- icu-52~m1.orig/source/tools/icuinfo/Makefile.in 2013-09-14 18:53:23.552040471 -0400
++++ icu-52~m1/source/tools/icuinfo/Makefile.in 2013-09-14 18:53:23.544040471 -0400
+@@ -14,8 +14,15 @@
+ ## Build directory information
+ subdir = tools/icuinfo
+
++TARGET_STUB_NAME = icuinfo
++
++SECTION = 1
++
++MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
++
++
+ ## Extra files to remove for 'make clean'
+-CLEANFILES = *~ $(DEPS) $(PLUGIN_OBJECTS) $(PLUGINFILE) $(PLUGIN)
++CLEANFILES = *~ $(DEPS) $(PLUGIN_OBJECTS) $(PLUGINFILE) $(PLUGIN) $(MAN_FILES)
+
+ ## Target information
+ TARGET = icuinfo$(EXEEXT)
+@@ -35,7 +42,8 @@
+
+ ## List of phony targets
+ .PHONY : all all-local install install-local clean clean-local \
+-distclean distclean-local dist dist-local check check-local plugin-check
++distclean distclean-local dist dist-local check check-local plugin-check \
++install-man
+
+ ## Clear suffix list
+ .SUFFIXES :
+@@ -48,12 +56,16 @@
+ dist: dist-local
+ check: all check-local
+
+-all-local: $(TARGET)
++all-local: $(TARGET) $(MAN_FILES)
+
+-install-local: all-local
++install-local: all-local install-man
+ $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+ $(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
+
++install-man: $(MAN_FILES)
++ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
++ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
++
+ dist-local:
+
+ clean-local:
+@@ -103,6 +115,10 @@ plugin plugin-check $(PLUGIN):
+ @echo "Plugins are disabled (use --enable-plugins to enable)"
+ endif
+
++%.$(SECTION): $(srcdir)/%.$(SECTION).in
++ cd $(top_builddir) \
++ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
++
+ ifeq (,$(MAKECMDGOALS))
+ -include $(DEPS)
+ else
+Index: icu-52~m1/source/tools/icuinfo/icuinfo.1.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ icu-52~m1/source/tools/icuinfo/icuinfo.1.in 2013-09-14 18:53:23.552040471 -0400
+@@ -0,0 +1,76 @@
++.\" Hey, Emacs! This is -*-nroff-*- you know...
++.\"
++.\" icuinfo.1: manual page for the icuinfo utility
++.\"
++.\" Copyright (C) 2005-2006 International Business Machines Corporation and others
++.\"
++.TH ICUINFO 1 "1 May 2010" "ICU MANPAGE" "ICU @VERSION@ Manual"
++.SH NAME
++.B icuinfo
++\- Shows some basic info about the current ICU
++.SH SYNOPSIS
++.B icuinfo
++[
++.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
++]
++[
++.BR "\-V\fP, \fB\-\-version"
++]
++[
++.BR "\-c\fP, \fB\-\-copyright"
++]
++[
++.BI "\-i\fP, \fB\-\-icudatadir" " directory"
++]
++[
++.BR "\-v\fP, \fB\-\-verbose"
++]
++[
++.BI "\-L\fP, \fB\-\-list-plugins"
++]
++[
++.BI "\-m\fP, \fB\-\-milisecond-time"
++]
++[
++.BI "\-K\fP, \fB\-\-cleanup"
++]
++.SH DESCRIPTION
++.B icuinfo
++prints basic information about the current version of ICU.
++.SH OPTIONS
++.TP
++.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
++Print help about usage and exit.
++.TP
++.BR "\-V\fP, \fB\-\-version"
++Print the version of
++.B icuinfo
++and exit.
++.TP
++.BR "\-c\fP, \fB\-\-copyright"
++Embeds the standard ICU copyright into the
++.IR output-file .
++.TP
++.BR "\-v\fP, \fB\-\-verbose"
++Display extra informative messages during execution.
++.TP
++.BI "\-i\fP, \fB\-\-icudatadir" " directory"
++Look for any necessary ICU data files in
++.IR directory .
++For example, the file
++.B pnames.icu
++must be located when ICU's data is not built as a shared library.
++The default ICU data directory is specified by the environment variable
++.BR ICU_DATA .
++Most configurations of ICU do not require this argument.
++.TP
++.BI "\-L\fP, \fB\-\-list-plugins"
++If specified, list and diagnose issues with ICU plugins.
++.TP
++.BI "\-K\fP, \fB\-\-cleanup"
++Attempt to unload plugins before exiting.
++.TP
++.BI "\-m\fP, \fB\-\-milisecond-time"
++Print the current UTC time in milliseconds.
++.SH COPYRIGHT
++Copyright (C) 2010 International Business Machines Corporation and others
diff --git a/debian/patches/layout-test-fix.patch b/debian/patches/layout-test-fix.patch
new file mode 100644
index 0000000..a91047a
--- /dev/null
+++ b/debian/patches/layout-test-fix.patch
@@ -0,0 +1,53 @@
+Description: update tests to match new Layout Extension
+ Update glyphs, indices and positions.
+Forwarded: no
+Author: Laszlo Boszormenyi (GCS) <gcs@debian.org>
+Bug-Debian: https://bugs.debian.org/879820
+Last-Update: 2017-11-04
+
+---
+
+--- icu-60.1.orig/source/test/testdata/letest.xml
++++ icu-60.1/source/test/testdata/letest.xml
+@@ -1016,16 +1016,16 @@
+ <test-text>शङ़ु</test-text>
+
+ <result-glyphs>
+- 0x00000002, 0x00000001, 0x00000006, 0x0000FFFF
++ 0x00000002, 0x00000001, 0x00000006, 0x0000FFFF, 0x0000FFFF
+ </result-glyphs>
+
+ <result-indices>
+- 0x00000000, 0x00000001, 0x00000002, 0x00000003
++ 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000003
+ </result-indices>
+
+ <result-positions>
+- 0.000000, 0.000000, 7.572000, 0.000000, 15.108000, 0.000000, 15.108000, 0.000000,
+- 15.108000, 0.000000
++ 0.000000, 0.000000, 7.571777, 0.000000, 15.107666, 0.000000, 15.107666, 0.000000,
++ 15.107666, 0.000000, 15.107666, 0.000000
+ </result-positions>
+ </test-case>
+
+@@ -1035,16 +1035,16 @@
+ <test-text>शङ़ु</test-text>
+
+ <result-glyphs>
+- 0x00000005, 0x00000001, 0x00000006, 0x0000FFFF
++ 0x00000005, 0x00000001, 0x00000006, 0x0000FFFF, 0x0000FFFF
+ </result-glyphs>
+
+ <result-indices>
+- 0x00000000, 0x00000001, 0x00000002, 0x00000003
++ 0x00000000, 0x00000001, 0x00000001, 0x00000002, 0x00000003
+ </result-indices>
+
+ <result-positions>
+- 0.000000, 0.000000, 7.392000, 0.000000, 14.927999, 0.000000, 14.927999, 0.000000,
+- 14.927999, 0.000000
++ 0.000000, 0.000000, 7.391846, 0.000000, 14.927734, 0.000000, 14.927734, 0.000000,
++ 14.927734, 0.000000, 14.927734, 0.000000
+ </result-positions>
+ </test-case>
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..87451a2
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,6 @@
+icudata-stdlibs.patch
+gennorm2-man.patch
+icuinfo-man.patch
+hurd-fix.diff
+layout-test-fix.patch
+#flaky-tests.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..20d006b
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,81 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+include /usr/share/dpkg/architecture.mk
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+DPKG_EXPORT_BUILDFLAGS = 1
+
+ifeq ($(DEB_HOST_ARCH_ENDIAN),little)
+export DEB_CPPFLAGS_MAINT_APPEND = -DU_TIMEZONE_FILES_DIR=/usr/share/zoneinfo-icu/44/le/
+endif
+ifeq ($(DEB_HOST_ARCH_ENDIAN),big)
+export DEB_CPPFLAGS_MAINT_APPEND = -DU_TIMEZONE_FILES_DIR=/usr/share/zoneinfo-icu/44/be/
+endif
+
+include /usr/share/dpkg/buildflags.mk
+
+l_SONAME=67
+
+override_dh_auto_clean:
+ dh_auto_clean --no-parallel
+
+override_dh_clean:
+ dh_clean
+ find $(CURDIR)/source/ \( -name Makefile -o -name pkgdataMakefile \) \
+ -exec rm {} \;
+ rm -Rf build-native
+
+override_dh_auto_configure:
+ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+ dh_auto_configure -- --enable-static --disable-layoutex --disable-icu-config
+else
+ dh_auto_configure -B $(CURDIR)/build-native -- --host=$(DEB_BUILD_GNU_TYPE) --disable-layoutex --disable-icu-config
+ dh_auto_build -B $(CURDIR)/build-native
+ dh_auto_configure -- --enable-static --with-cross-build=$(CURDIR)/build-native
+endif
+
+override_dh_auto_build:
+ dh_auto_build --parallel -- VERBOSE=1
+ dh_auto_build --parallel -- VERBOSE=1 doc
+
+override_dh_auto_test:
+ifeq (,$(findstring $(DEB_BUILD_ARCH),i386 hurd-i386 kfreebsd-i386))
+ dh_auto_test --no-parallel
+else
+ # French locale has test problems on x86 architectures
+ -dh_auto_test --no-parallel
+endif
+
+override_dh_auto_install:
+ dh_auto_install
+ $(MAKE) -C $(CURDIR)/source/ install-doc DESTDIR=$(CURDIR)/debian/tmp/
+ # delete extra license file
+ $(RM) $(CURDIR)/debian/tmp/usr/share/icu/$(l_SONAME).?/LICENSE
+ # remove not needed manpage
+# $(RM) $(CURDIR)/debian/tmp/usr/share/man/man1/icu-config.1
+
+override_dh_installdocs-indep:
+ dh_installdocs -i
+ # symlink duplicated files
+ for file in `find debian/icu-doc/usr/share/doc/icu-doc/html/ -name \*icu_1_1\*`; do \
+ normal=`echo $$file | sed s/icu_1_1//`; \
+ if [ -f $$normal ]; then \
+ $(RM) $$file; \
+ ln -s `basename $$normal` $$file; \
+ fi; \
+ done
+
+override_dh_missing:
+ dh_missing --list-missing
+
+%:
+ dh $@ --sourcedirectory=$(CURDIR)/source/
+
+.PHONY: override_dh_auto_clean override_dh_clean override_dh_auto_configure \
+ override_dh_auto_build override_dh_auto_test \
+ override_dh_auto_install override_dh_installdocs-indep \
+ override_dh_missing
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/tests/build-test b/debian/tests/build-test
new file mode 100644
index 0000000..1de6ecb
--- /dev/null
+++ b/debian/tests/build-test
@@ -0,0 +1,10 @@
+#!/usr/bin/make -f
+
+CFLAGS=$(shell pkg-config --cflags icu-io)
+LIBS=$(shell pkg-config --libs icu-io)
+
+a.out: debian/tests/ustring.cpp
+ g++ $(CFLAGS) $< $(LIBS)
+ @echo "Build test of $< succeeded"
+ ./a.out
+ @rm -f a.out
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..ce2c1e5
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,7 @@
+Tests: smoke
+Depends: @
+Restrictions: allow-stderr
+
+Tests: build-test
+Depends: libicu-dev, pkg-config
+Restrictions: allow-stderr
diff --git a/debian/tests/smoke b/debian/tests/smoke
new file mode 100644
index 0000000..88c2f1f
--- /dev/null
+++ b/debian/tests/smoke
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+set -e
+set -x
+
+# Smoke test some of the tools
+uconv -f utf8 -t latin1 /etc/hostname
+icu-config --unicode-version
+
+echo 'Smoke test of test driver succesful'
+exit 0
diff --git a/debian/tests/ustring.cpp b/debian/tests/ustring.cpp
new file mode 100644
index 0000000..43254d8
--- /dev/null
+++ b/debian/tests/ustring.cpp
@@ -0,0 +1,600 @@
+/*
+ * Simple compile test, based on samples/ustring which is:
+*******************************************************************************
+*
+* Copyright (C) 2000-2014, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+*/
+
+#include <stdio.h>
+#include <unicode/utypes.h>
+#include <unicode/uchar.h>
+#include <unicode/locid.h>
+#include <unicode/ustring.h>
+#include <unicode/ucnv.h>
+#include <unicode/unistr.h>
+
+#define UPRV_LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
+// helper functions -------------------------------------------------------- ***
+
+// default converter for the platform encoding
+static UConverter *cnv=NULL;
+
+static void
+printUString(const char *announce, const UChar *s, int32_t length) {
+ static char out[200];
+ UChar32 c;
+ int32_t i;
+ UErrorCode errorCode=U_ZERO_ERROR;
+
+ /*
+ * Convert to the "platform encoding". See notes in printUnicodeString().
+ * ucnv_fromUChars(), like most ICU APIs understands length==-1
+ * to mean that the string is NUL-terminated.
+ */
+ ucnv_fromUChars(cnv, out, sizeof(out), s, length, &errorCode);
+ if(U_FAILURE(errorCode) || errorCode==U_STRING_NOT_TERMINATED_WARNING) {
+ printf("%sproblem converting string from Unicode: %s\n", announce, u_errorName(errorCode));
+ return;
+ }
+
+ printf("%s%s {", announce, out);
+
+ /* output the code points (not code units) */
+ if(length>=0) {
+ /* s is not NUL-terminated */
+ for(i=0; i<length; /* U16_NEXT post-increments */) {
+ U16_NEXT(s, i, length, c);
+ printf(" %04x", c);
+ }
+ } else {
+ /* s is NUL-terminated */
+ for(i=0; /* condition in loop body */; /* U16_NEXT post-increments */) {
+ U16_NEXT(s, i, length, c);
+ if(c==0) {
+ break;
+ }
+ printf(" %04x", c);
+ }
+ }
+ printf(" }\n");
+}
+
+static void
+printUnicodeString(const char *announce, const UnicodeString &s) {
+ static char out[200];
+ int32_t i, length;
+
+ // output the string, converted to the platform encoding
+
+ // Note for Windows: The "platform encoding" defaults to the "ANSI codepage",
+ // which is different from the "OEM codepage" in the console window.
+ // However, if you pipe the output into a file and look at it with Notepad
+ // or similar, then "ANSI" characters will show correctly.
+ // Production code should be aware of what encoding is required,
+ // and use a UConverter or at least a charset name explicitly.
+ out[s.extract(0, 99, out)]=0;
+ printf("%s%s {", announce, out);
+
+ // output the code units (not code points)
+ length=s.length();
+ for(i=0; i<length; ++i) {
+ printf(" %04x", s.charAt(i));
+ }
+ printf(" }\n");
+}
+
+// sample code for utf.h macros -------------------------------------------- ***
+
+static void
+demo_utf_h_macros() {
+ static UChar input[]={ 0x0061, 0xd800, 0xdc00, 0xdbff, 0xdfff, 0x0062 };
+ UChar32 c;
+ int32_t i;
+ UBool isError;
+
+ printf("\n* demo_utf_h_macros() -------------- ***\n\n");
+
+ printUString("iterate forward through: ", input, UPRV_LENGTHOF(input));
+ for(i=0; i<UPRV_LENGTHOF(input); /* U16_NEXT post-increments */) {
+ /* Iterating forwards
+ Codepoint at offset 0: U+0061
+ Codepoint at offset 1: U+10000
+ Codepoint at offset 3: U+10ffff
+ Codepoint at offset 5: U+0062
+ */
+ printf("Codepoint at offset %d: U+", i);
+ U16_NEXT(input, i, UPRV_LENGTHOF(input), c);
+ printf("%04x\n", c);
+ }
+
+ puts("");
+
+ isError=FALSE;
+ i=1; /* write position, gets post-incremented so needs to be in an l-value */
+ U16_APPEND(input, i, UPRV_LENGTHOF(input), 0x0062, isError);
+
+ printUString("iterate backward through: ", input, UPRV_LENGTHOF(input));
+ for(i=UPRV_LENGTHOF(input); i>0; /* U16_PREV pre-decrements */) {
+ U16_PREV(input, 0, i, c);
+ /* Iterating backwards
+ Codepoint at offset 5: U+0062
+ Codepoint at offset 3: U+10ffff
+ Codepoint at offset 2: U+dc00 -- unpaired surrogate because lead surr. overwritten
+ Codepoint at offset 1: U+0062 -- by this BMP code point
+ Codepoint at offset 0: U+0061
+ */
+ printf("Codepoint at offset %d: U+%04x\n", i, c);
+ }
+}
+
+// sample code for Unicode strings in C ------------------------------------ ***
+
+static void demo_C_Unicode_strings() {
+ printf("\n* demo_C_Unicode_strings() --------- ***\n\n");
+
+ static const UChar text[]={ 0x41, 0x42, 0x43, 0 }; /* "ABC" */
+ static const UChar appendText[]={ 0x61, 0x62, 0x63, 0 }; /* "abc" */
+ static const UChar cmpText[]={ 0x61, 0x53, 0x73, 0x43, 0 }; /* "aSsC" */
+ UChar buffer[32];
+ int32_t compare;
+ int32_t length=u_strlen(text); /* length=3 */
+
+ /* simple ANSI C-style functions */
+ buffer[0]=0; /* empty, NUL-terminated string */
+ u_strncat(buffer, text, 1); /* append just n=1 character ('A') */
+ u_strcat(buffer, appendText); /* buffer=="Aabc" */
+ length=u_strlen(buffer); /* length=4 */
+ printUString("should be \"Aabc\": ", buffer, -1);
+
+ /* bitwise comparing buffer with text */
+ compare=u_strcmp(buffer, text);
+ if(compare<=0) {
+ printf("String comparison error, expected \"Aabc\" > \"ABC\"\n");
+ }
+
+ /* Build "A<sharp s>C" in the buffer... */
+ u_strcpy(buffer, text);
+ buffer[1]=0xdf; /* sharp s, case-compares equal to "ss" */
+ printUString("should be \"A<sharp s>C\": ", buffer, -1);
+
+ /* Compare two strings case-insensitively using full case folding */
+ compare=u_strcasecmp(buffer, cmpText, U_FOLD_CASE_DEFAULT);
+ if(compare!=0) {
+ printf("String case insensitive comparison error, expected \"AbC\" to be equal to \"ABC\"\n");
+ }
+}
+
+// sample code for case mappings with C APIs -------------------------------- ***
+
+static void demoCaseMapInC() {
+ /*
+ * input=
+ * "aB<capital sigma>"
+ * "iI<small dotless i><capital dotted I> "
+ * "<sharp s> <small lig. ffi>"
+ * "<small final sigma><small sigma><capital sigma>"
+ */
+ static const UChar input[]={
+ 0x61, 0x42, 0x3a3,
+ 0x69, 0x49, 0x131, 0x130, 0x20,
+ 0xdf, 0x20, 0xfb03,
+ 0x3c2, 0x3c3, 0x3a3, 0
+ };
+ UChar buffer[32];
+
+ UErrorCode errorCode;
+ UChar32 c;
+ int32_t i, j, length;
+ UBool isError;
+
+ printf("\n* demoCaseMapInC() ----------------- ***\n\n");
+
+ /*
+ * First, use simple case mapping functions which provide
+ * 1:1 code point mappings without context/locale ID.
+ *
+ * Note that some mappings will not be "right" because some "real"
+ * case mappings require context, depend on the locale ID,
+ * and/or result in a change in the number of code points.
+ */
+ printUString("input string: ", input, -1);
+
+ /* uppercase */
+ isError=FALSE;
+ for(i=j=0; j<UPRV_LENGTHOF(buffer) && !isError; /* U16_NEXT post-increments */) {
+ U16_NEXT(input, i, INT32_MAX, c); /* without length because NUL-terminated */
+ if(c==0) {
+ break; /* stop at terminating NUL, no need to terminate buffer */
+ }
+ c=u_toupper(c);
+ U16_APPEND(buffer, j, UPRV_LENGTHOF(buffer), c, isError);
+ }
+ printUString("simple-uppercased: ", buffer, j);
+ /* lowercase */
+ isError=FALSE;
+ for(i=j=0; j<UPRV_LENGTHOF(buffer) && !isError; /* U16_NEXT post-increments */) {
+ U16_NEXT(input, i, INT32_MAX, c); /* without length because NUL-terminated */
+ if(c==0) {
+ break; /* stop at terminating NUL, no need to terminate buffer */
+ }
+ c=u_tolower(c);
+ U16_APPEND(buffer, j, UPRV_LENGTHOF(buffer), c, isError);
+ }
+ printUString("simple-lowercased: ", buffer, j);
+ /* titlecase */
+ isError=FALSE;
+ for(i=j=0; j<UPRV_LENGTHOF(buffer) && !isError; /* U16_NEXT post-increments */) {
+ U16_NEXT(input, i, INT32_MAX, c); /* without length because NUL-terminated */
+ if(c==0) {
+ break; /* stop at terminating NUL, no need to terminate buffer */
+ }
+ c=u_totitle(c);
+ U16_APPEND(buffer, j, UPRV_LENGTHOF(buffer), c, isError);
+ }
+ printUString("simple-titlecased: ", buffer, j);
+ /* case-fold/default */
+ isError=FALSE;
+ for(i=j=0; j<UPRV_LENGTHOF(buffer) && !isError; /* U16_NEXT post-increments */) {
+ U16_NEXT(input, i, INT32_MAX, c); /* without length because NUL-terminated */
+ if(c==0) {
+ break; /* stop at terminating NUL, no need to terminate buffer */
+ }
+ c=u_foldCase(c, U_FOLD_CASE_DEFAULT);
+ U16_APPEND(buffer, j, UPRV_LENGTHOF(buffer), c, isError);
+ }
+ printUString("simple-case-folded/default: ", buffer, j);
+ /* case-fold/Turkic */
+ isError=FALSE;
+ for(i=j=0; j<UPRV_LENGTHOF(buffer) && !isError; /* U16_NEXT post-increments */) {
+ U16_NEXT(input, i, INT32_MAX, c); /* without length because NUL-terminated */
+ if(c==0) {
+ break; /* stop at terminating NUL, no need to terminate buffer */
+ }
+ c=u_foldCase(c, U_FOLD_CASE_EXCLUDE_SPECIAL_I);
+ U16_APPEND(buffer, j, UPRV_LENGTHOF(buffer), c, isError);
+ }
+ printUString("simple-case-folded/Turkic: ", buffer, j);
+
+ /*
+ * Second, use full case mapping functions which provide
+ * 1:n code point mappings (n can be 0!) and are sensitive to context and locale ID.
+ *
+ * Note that lower/upper/titlecasing take a locale ID while case-folding
+ * has bit flag options instead, by design of the Unicode SpecialCasing.txt UCD file.
+ *
+ * Also, string titlecasing requires a BreakIterator to find starts of words.
+ * The sample code here passes in a NULL pointer; u_strToTitle() will open and close a default
+ * titlecasing BreakIterator automatically.
+ * For production code where many strings are titlecased it would be more efficient
+ * to open a BreakIterator externally and pass it in.
+ */
+ printUString("\ninput string: ", input, -1);
+
+ /* lowercase/English */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToLower(buffer, UPRV_LENGTHOF(buffer), input, -1, "en", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-lowercased/en: ", buffer, length);
+ } else {
+ printf("error in u_strToLower(en)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* lowercase/Turkish */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToLower(buffer, UPRV_LENGTHOF(buffer), input, -1, "tr", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-lowercased/tr: ", buffer, length);
+ } else {
+ printf("error in u_strToLower(tr)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* uppercase/English */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToUpper(buffer, UPRV_LENGTHOF(buffer), input, -1, "en", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-uppercased/en: ", buffer, length);
+ } else {
+ printf("error in u_strToUpper(en)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* uppercase/Turkish */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToUpper(buffer, UPRV_LENGTHOF(buffer), input, -1, "tr", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-uppercased/tr: ", buffer, length);
+ } else {
+ printf("error in u_strToUpper(tr)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* titlecase/English */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToTitle(buffer, UPRV_LENGTHOF(buffer), input, -1, NULL, "en", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-titlecased/en: ", buffer, length);
+ } else {
+ printf("error in u_strToTitle(en)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* titlecase/Turkish */
+ errorCode=U_ZERO_ERROR;
+ length=u_strToTitle(buffer, UPRV_LENGTHOF(buffer), input, -1, NULL, "tr", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-titlecased/tr: ", buffer, length);
+ } else {
+ printf("error in u_strToTitle(tr)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* case-fold/default */
+ errorCode=U_ZERO_ERROR;
+ length=u_strFoldCase(buffer, UPRV_LENGTHOF(buffer), input, -1, U_FOLD_CASE_DEFAULT, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-case-folded/default: ", buffer, length);
+ } else {
+ printf("error in u_strFoldCase(default)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+ /* case-fold/Turkic */
+ errorCode=U_ZERO_ERROR;
+ length=u_strFoldCase(buffer, UPRV_LENGTHOF(buffer), input, -1, U_FOLD_CASE_EXCLUDE_SPECIAL_I, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ printUString("full-case-folded/Turkic: ", buffer, length);
+ } else {
+ printf("error in u_strFoldCase(Turkic)=%ld error=%s\n", length, u_errorName(errorCode));
+ }
+}
+
+// sample code for case mappings with C++ APIs ------------------------------ ***
+
+static void demoCaseMapInCPlusPlus() {
+ /*
+ * input=
+ * "aB<capital sigma>"
+ * "iI<small dotless i><capital dotted I> "
+ * "<sharp s> <small lig. ffi>"
+ * "<small final sigma><small sigma><capital sigma>"
+ */
+ static const UChar input[]={
+ 0x61, 0x42, 0x3a3,
+ 0x69, 0x49, 0x131, 0x130, 0x20,
+ 0xdf, 0x20, 0xfb03,
+ 0x3c2, 0x3c3, 0x3a3, 0
+ };
+
+ printf("\n* demoCaseMapInCPlusPlus() --------- ***\n\n");
+
+ UnicodeString s(input), t;
+ const Locale &en=Locale::getEnglish();
+ Locale tr("tr");
+
+ /*
+ * Full case mappings as in demoCaseMapInC(), using UnicodeString functions.
+ * These functions modify the string object itself.
+ * Since we want to keep the input string around, we copy it each time
+ * and case-map the copy.
+ */
+ printUnicodeString("input string: ", s);
+
+ /* lowercase/English */
+ printUnicodeString("full-lowercased/en: ", (t=s).toLower(en));
+ /* lowercase/Turkish */
+ printUnicodeString("full-lowercased/tr: ", (t=s).toLower(tr));
+ /* uppercase/English */
+ printUnicodeString("full-uppercased/en: ", (t=s).toUpper(en));
+ /* uppercase/Turkish */
+ printUnicodeString("full-uppercased/tr: ", (t=s).toUpper(tr));
+ /* titlecase/English */
+ printUnicodeString("full-titlecased/en: ", (t=s).toTitle(NULL, en));
+ /* titlecase/Turkish */
+ printUnicodeString("full-titlecased/tr: ", (t=s).toTitle(NULL, tr));
+ /* case-folde/default */
+ printUnicodeString("full-case-folded/default: ", (t=s).foldCase(U_FOLD_CASE_DEFAULT));
+ /* case-folde/Turkic */
+ printUnicodeString("full-case-folded/Turkic: ", (t=s).foldCase(U_FOLD_CASE_EXCLUDE_SPECIAL_I));
+}
+
+// sample code for UnicodeString storage models ----------------------------- ***
+
+static const UChar readonly[]={
+ 0x61, 0x31, 0x20ac
+};
+static UChar writeable[]={
+ 0x62, 0x32, 0xdbc0, 0xdc01 // includes a surrogate pair for a supplementary code point
+};
+static char out[100];
+
+static void
+demoUnicodeStringStorage() {
+ // These sample code lines illustrate how to use UnicodeString, and the
+ // comments tell what happens internally. There are no APIs to observe
+ // most of this programmatically, except for stepping into the code
+ // with a debugger.
+ // This is by design to hide such details from the user.
+ int32_t i;
+
+ printf("\n* demoUnicodeStringStorage() ------- ***\n\n");
+
+ // * UnicodeString with internally stored contents
+ // instantiate a UnicodeString from a single code point
+ // the few (2) UChars will be stored in the object itself
+ UnicodeString one((UChar32)0x24001);
+ // this copies the few UChars into the "two" object
+ UnicodeString two=one;
+ printf("length of short string copy: %d\n", two.length());
+ // set "one" to contain the 3 UChars from readonly
+ // this setTo() variant copies the characters
+ one.setTo(readonly, UPRV_LENGTHOF(readonly));
+
+ // * UnicodeString with allocated contents
+ // build a longer string that will not fit into the object's buffer
+ one+=UnicodeString(writeable, UPRV_LENGTHOF(writeable));
+ one+=one;
+ one+=one;
+ printf("length of longer string: %d\n", one.length());
+ // copying will use the same allocated buffer and increment the reference
+ // counter
+ two=one;
+ printf("length of longer string copy: %d\n", two.length());
+
+ // * UnicodeString using readonly-alias to a const UChar array
+ // construct a string that aliases a readonly buffer
+ UnicodeString three(FALSE, readonly, UPRV_LENGTHOF(readonly));
+ printUnicodeString("readonly-alias string: ", three);
+ // copy-on-write: any modification to the string results in
+ // a copy to either the internal buffer or to a newly allocated one
+ three.setCharAt(1, 0x39);
+ printUnicodeString("readonly-aliasing string after modification: ", three);
+ // the aliased array is not modified
+ for(i=0; i<three.length(); ++i) {
+ printf("readonly buffer[%d] after modifying its string: 0x%lx\n",
+ i, readonly[i]);
+ }
+ // setTo() readonly alias
+ one.setTo(FALSE, writeable, UPRV_LENGTHOF(writeable));
+ // copying the readonly-alias object with fastCopyFrom() (new in ICU 2.4)
+ // will readonly-alias the same buffer
+ two.fastCopyFrom(one);
+ printUnicodeString("fastCopyFrom(readonly alias of \"writeable\" array): ", two);
+ printf("verify that a fastCopyFrom(readonly alias) uses the same buffer pointer: %d (should be 1)\n",
+ one.getBuffer()==two.getBuffer());
+ // a normal assignment will clone the contents (new in ICU 2.4)
+ two=one;
+ printf("verify that a regular copy of a readonly alias uses a different buffer pointer: %d (should be 0)\n",
+ one.getBuffer()==two.getBuffer());
+
+ // * UnicodeString using writeable-alias to a non-const UChar array
+ UnicodeString four(writeable, UPRV_LENGTHOF(writeable), UPRV_LENGTHOF(writeable));
+ printUnicodeString("writeable-alias string: ", four);
+ // a modification writes through to the buffer
+ four.setCharAt(1, 0x39);
+ for(i=0; i<four.length(); ++i) {
+ printf("writeable-alias backing buffer[%d]=0x%lx "
+ "after modification\n", i, writeable[i]);
+ }
+ // a copy will not alias any more;
+ // instead, it will get a copy of the contents into allocated memory
+ two=four;
+ two.setCharAt(1, 0x21);
+ for(i=0; i<two.length(); ++i) {
+ printf("writeable-alias backing buffer[%d]=0x%lx after "
+ "modification of string copy\n", i, writeable[i]);
+ }
+ // setTo() writeable alias, capacity==length
+ one.setTo(writeable, UPRV_LENGTHOF(writeable), UPRV_LENGTHOF(writeable));
+ // grow the string - it will not fit into the backing buffer any more
+ // and will get copied before modification
+ one.append((UChar)0x40);
+ // shrink it back so it would fit
+ one.truncate(one.length()-1);
+ // we still operate on the copy
+ one.setCharAt(1, 0x25);
+ printf("string after growing too much and then shrinking[1]=0x%lx\n"
+ " backing store for this[1]=0x%lx\n",
+ one.charAt(1), writeable[1]);
+ // if we need it in the original buffer, then extract() to it
+ // extract() does not do anything if the string aliases that same buffer
+ // i=min(one.length(), length of array)
+ if(one.length()<UPRV_LENGTHOF(writeable)) {
+ i=one.length();
+ } else {
+ i=UPRV_LENGTHOF(writeable);
+ }
+ one.extract(0, i, writeable);
+ for(i=0; i<UPRV_LENGTHOF(writeable); ++i) {
+ printf("writeable-alias backing buffer[%d]=0x%lx after re-extract\n",
+ i, writeable[i]);
+ }
+}
+
+// sample code for UnicodeString instantiations ----------------------------- ***
+
+static void
+demoUnicodeStringInit() {
+ // *** Make sure to read about invariant characters in utypes.h! ***
+ // Initialization of Unicode strings from C literals works _only_ for
+ // invariant characters!
+
+ printf("\n* demoUnicodeStringInit() ---------- ***\n\n");
+
+ // the string literal is 32 chars long - this must be counted for the macro
+ UnicodeString invariantOnly=UNICODE_STRING("such characters are safe 123 %-.", 32);
+
+ /*
+ * In C, we need two macros: one to declare the UChar[] array, and
+ * one to populate it; the second one is a noop on platforms where
+ * wchar_t is compatible with UChar and ASCII-based.
+ * The length of the string literal must be counted for both macros.
+ */
+ /* declare the invString array for the string */
+ U_STRING_DECL(invString, "such characters are safe 123 %-.", 32);
+ /* populate it with the characters */
+ U_STRING_INIT(invString, "such characters are safe 123 %-.", 32);
+
+ // compare the C and C++ strings
+ printf("C and C++ Unicode strings are equal: %d\n", invariantOnly==UnicodeString(TRUE, invString, 32));
+
+ /*
+ * convert between char * and UChar * strings that
+ * contain only invariant characters
+ */
+ static const char *cs1="such characters are safe 123 %-.";
+ static UChar us1[40];
+ static char cs2[40];
+ u_charsToUChars(cs1, us1, 33); /* include the terminating NUL */
+ u_UCharsToChars(us1, cs2, 33);
+ printf("char * -> UChar * -> char * with only "
+ "invariant characters: \"%s\"\n",
+ cs2);
+
+ // initialize a UnicodeString from a string literal that contains
+ // escape sequences written with invariant characters
+ // do not forget to duplicate the backslashes for ICU to see them
+ // then, count each double backslash only once!
+ UnicodeString german=UNICODE_STRING(
+ "Sch\\u00f6nes Auto: \\u20ac 11240.\\fPrivates Zeichen: \\U00102345\\n", 64).
+ unescape();
+ printUnicodeString("german UnicodeString from unescaping:\n ", german);
+
+ /*
+ * C: convert and unescape a char * string with only invariant
+ * characters to fill a UChar * string
+ */
+ UChar buffer[200];
+ int32_t length;
+ length=u_unescape(
+ "Sch\\u00f6nes Auto: \\u20ac 11240.\\fPrivates Zeichen: \\U00102345\\n",
+ buffer, UPRV_LENGTHOF(buffer));
+ printf("german C Unicode string from char * unescaping: (length %d)\n ", length);
+ printUnicodeString("", UnicodeString(buffer));
+}
+
+extern int
+main(int argc, const char *argv[]) {
+ UErrorCode errorCode=U_ZERO_ERROR;
+
+ // Note: Using a global variable for any object is not exactly thread-safe...
+
+ // You can change this call to e.g. ucnv_open("UTF-8", &errorCode) if you pipe
+ // the output to a file and look at it with a Unicode-capable editor.
+ // This will currently affect only the printUString() function, see the code above.
+ // printUnicodeString() could use this, too, by changing to an extract() overload
+ // that takes a UConverter argument.
+ cnv=ucnv_open(NULL, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "error %s opening the default converter\n", u_errorName(errorCode));
+ return errorCode;
+ }
+
+ ucnv_setFromUCallBack(cnv, UCNV_FROM_U_CALLBACK_ESCAPE, UCNV_ESCAPE_C, NULL, NULL, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "error %s setting the escape callback in the default converter\n", u_errorName(errorCode));
+ ucnv_close(cnv);
+ return errorCode;
+ }
+
+ demo_utf_h_macros();
+ demo_C_Unicode_strings();
+ demoCaseMapInC();
+ demoCaseMapInCPlusPlus();
+ demoUnicodeStringStorage();
+ demoUnicodeStringInit();
+
+ ucnv_close(cnv);
+ return 0;
+}
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..5e9b07d
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,3 @@
+version=3
+opts="uversionmangle=s/_/\./g" \
+http://download.icu-project.org/files/icu4c/(\d+\.[\d\.]+)/icu4c-([\d_\.]+)-src.tgz