1 | <?xml version="1.0" encoding="UTF-8"?>
|
---|
2 | <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
---|
3 | "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
---|
4 | <!ENTITY % general-entities SYSTEM "../../general.ent">
|
---|
5 | %general-entities;
|
---|
6 |
|
---|
7 | <!ENTITY icu-download-http
|
---|
8 | "https://github.com/unicode-org/icu/releases/download/release-&icu-major;-&icu-minor;/icu4c-&icu-major;_&icu-minor;-src.tgz">
|
---|
9 | <!ENTITY icu-download-ftp " ">
|
---|
10 | <!ENTITY icu-md5sum "a83c1499e508f73ddbc60002f84ea42a">
|
---|
11 | <!ENTITY icu-size "25 MB">
|
---|
12 | <!ENTITY icu-buildsize "341 MB (add 45 MB for tests)">
|
---|
13 | <!ENTITY icu-time "0.7 SBU (Using parallelism=4; add 2.0 SBU for tests)">
|
---|
14 | ]>
|
---|
15 |
|
---|
16 | <sect1 id="icu" xreflabel="ICU-&icu-version;">
|
---|
17 | <?dbhtml filename="icu.html"?>
|
---|
18 |
|
---|
19 |
|
---|
20 | <title>icu-&icu-version;</title>
|
---|
21 |
|
---|
22 | <indexterm zone="icu">
|
---|
23 | <primary sortas="a-icu">icu</primary>
|
---|
24 | </indexterm>
|
---|
25 |
|
---|
26 | <sect2 role="package">
|
---|
27 | <title>Introduction to ICU</title>
|
---|
28 |
|
---|
29 | <para>
|
---|
30 | The <application>International Components for Unicode</application> (ICU)
|
---|
31 | package is a mature, widely used set of C/C++ libraries providing Unicode
|
---|
32 | and Globalization support for software applications.
|
---|
33 | <application>ICU</application> is widely portable and gives applications
|
---|
34 | the same results on all platforms.
|
---|
35 | </para>
|
---|
36 |
|
---|
37 | <warning>
|
---|
38 | <para>
|
---|
39 | Upgrading this package to a new major version (for example, from
|
---|
40 | 72.1 to &icu-version;) will require rebuilding of many other
|
---|
41 | packages. If some packages that use the libraries built by
|
---|
42 | icu4c-&icu-major; are rebuilt, they will use the new libraries while
|
---|
43 | current packages will use the previous libraries. If the Linux
|
---|
44 | application loader
|
---|
45 | (<filename class='libraryfile'>/usr/lib/ld-linux-x86-64.so.2</filename>)
|
---|
46 | determines that both the old and new libraries are needed, and a
|
---|
47 | symbol (name of data or function) exists in both versions of the
|
---|
48 | library, all references to the symbol will be resolved to the
|
---|
49 | version appearing earlier in the breadth-first sequence of the
|
---|
50 | dependency graph. This may result in the application failing if
|
---|
51 | the definition of the data or the behavior of the function referred
|
---|
52 | by the symbol differs in two versions. To avoid the issue, users
|
---|
53 | will need to rebuild every package linked to an ICU library as soon
|
---|
54 | as possible once ICU is updated to a new major version.
|
---|
55 | </para>
|
---|
56 |
|
---|
57 | <para>
|
---|
58 | To determine what external libraries are needed (directly or indirectly)
|
---|
59 | by an application or a library, run:
|
---|
60 | </para>
|
---|
61 |
|
---|
62 | <screen><userinput>ldd <application or library> </userinput></screen>
|
---|
63 |
|
---|
64 | <para>
|
---|
65 | or to see only the directly needed libraries:
|
---|
66 | </para>
|
---|
67 |
|
---|
68 | <screen><userinput>readelf -d <application or library> | grep NEEDED</userinput></screen>
|
---|
69 |
|
---|
70 | </warning>
|
---|
71 |
|
---|
72 | &lfs122_checked;
|
---|
73 |
|
---|
74 | <bridgehead renderas="sect3">Package Information</bridgehead>
|
---|
75 | <itemizedlist spacing="compact">
|
---|
76 | <listitem>
|
---|
77 | <para>
|
---|
78 | Download (HTTP): <ulink url="&icu-download-http;"/>
|
---|
79 | </para>
|
---|
80 | </listitem>
|
---|
81 | <listitem>
|
---|
82 | <para>
|
---|
83 | Download (FTP): <ulink url="&icu-download-ftp;"/>
|
---|
84 | </para>
|
---|
85 | </listitem>
|
---|
86 | <listitem>
|
---|
87 | <para>
|
---|
88 | Download MD5 sum: &icu-md5sum;
|
---|
89 | </para>
|
---|
90 | </listitem>
|
---|
91 | <listitem>
|
---|
92 | <para>
|
---|
93 | Download size: &icu-size;
|
---|
94 | </para>
|
---|
95 | </listitem>
|
---|
96 | <listitem>
|
---|
97 | <para>
|
---|
98 | Estimated disk space required: &icu-buildsize;
|
---|
99 | </para>
|
---|
100 | </listitem>
|
---|
101 | <listitem>
|
---|
102 | <para>
|
---|
103 | Estimated build time: &icu-time;
|
---|
104 | </para>
|
---|
105 | </listitem>
|
---|
106 | </itemizedlist>
|
---|
107 | <!--
|
---|
108 | <bridgehead renderas="sect3">Additional Downloads</bridgehead>
|
---|
109 | <itemizedlist spacing="compact">
|
---|
110 | <listitem>
|
---|
111 | <para>
|
---|
112 | Required patch:
|
---|
113 | <ulink url="&patch-root;/icu4c-&icu-version;-fix_enumeration-1.patch"/>
|
---|
114 | </para>
|
---|
115 | </listitem>
|
---|
116 | </itemizedlist>
|
---|
117 | -->
|
---|
118 | <bridgehead renderas="sect3">ICU Dependencies</bridgehead>
|
---|
119 |
|
---|
120 | <bridgehead renderas="sect4">Optional</bridgehead>
|
---|
121 | <para role="optional">
|
---|
122 | <xref linkend="llvm"/> (with Clang), and
|
---|
123 | <xref linkend="doxygen"/> (for documentation)
|
---|
124 | </para>
|
---|
125 |
|
---|
126 | </sect2>
|
---|
127 |
|
---|
128 | <sect2 role="installation">
|
---|
129 | <title>Installation of ICU</title>
|
---|
130 |
|
---|
131 | <note>
|
---|
132 | <para>
|
---|
133 | This package expands to the directory
|
---|
134 | <filename class='directory'>icu</filename>.
|
---|
135 | </para>
|
---|
136 | </note>
|
---|
137 |
|
---|
138 | <note>
|
---|
139 | <para>
|
---|
140 | If <command>clang++</command> is available, it will be used in the
|
---|
141 | mistaken belief that <command>g++</command> might not support C++11,
|
---|
142 | even though <command>configure</command> has tested for that. If
|
---|
143 | using <command>g++</command> there will be an unnecessary warning at
|
---|
144 | the end of <command>configure</command>. Building with
|
---|
145 | <command>g++</command> also takes longer than the estimated SBU shown.
|
---|
146 | </para>
|
---|
147 | </note>
|
---|
148 | <!--
|
---|
149 | <para>
|
---|
150 | First, fix a regression in version 58.1:
|
---|
151 | </para>
|
---|
152 |
|
---|
153 | <screen><userinput>patch -p1 -i ../icu4c-&icu-version;-fix_enumeration-1.patch</userinput></screen>
|
---|
154 | -->
|
---|
155 | <para>
|
---|
156 | Install <application>ICU</application> by running the following commands:
|
---|
157 | </para>
|
---|
158 |
|
---|
159 | <!-- Review comments at:
|
---|
160 | https://chromium.googlesource.com/chromium/src/+/e58fa0ba66272c5f28828b15d06c7e42a9882b3b
|
---|
161 | To see if the following prebuild command is appropriate for BLFS:
|
---|
162 | sed '/fdef U_CHARSET_I/i#define U_CHARSET_IS_UTF8 1' -i common/unicode/platform.h
|
---|
163 | -->
|
---|
164 | <screen><userinput>cd source &&
|
---|
165 |
|
---|
166 | ./configure --prefix=/usr &&
|
---|
167 | make</userinput></screen>
|
---|
168 |
|
---|
169 | <para>
|
---|
170 | To test the results, issue: <command>make check</command>.
|
---|
171 | </para>
|
---|
172 |
|
---|
173 | <para>
|
---|
174 | Now, as the <systemitem class="username">root</systemitem> user:
|
---|
175 | </para>
|
---|
176 |
|
---|
177 | <screen role="root"><userinput>make install</userinput></screen>
|
---|
178 | </sect2>
|
---|
179 |
|
---|
180 | <sect2 role="content">
|
---|
181 | <title>Contents</title>
|
---|
182 |
|
---|
183 | <segmentedlist>
|
---|
184 | <segtitle>Installed Programs</segtitle>
|
---|
185 | <segtitle>Installed Libraries</segtitle>
|
---|
186 | <segtitle>Installed Directories</segtitle>
|
---|
187 |
|
---|
188 | <seglistitem>
|
---|
189 | <seg>
|
---|
190 | derb, escapesrc, genbrk, genccode, gencfu, gencmn, gencnval,
|
---|
191 | gendict, gennorm2,
|
---|
192 | genrb, gensprep, icu-config, icuexportdata, icuinfo, icupkg,
|
---|
193 | makeconv, pkgdata, and uconv
|
---|
194 | </seg>
|
---|
195 | <seg>
|
---|
196 | libicudata.so, libicui18n.so, libicuio.so,
|
---|
197 | libicutest.so, libicutu.so, and libicuuc.so
|
---|
198 | </seg>
|
---|
199 | <seg>
|
---|
200 | /usr/include/unicode,
|
---|
201 | /usr/lib/icu, and
|
---|
202 | /usr/share/icu
|
---|
203 | </seg>
|
---|
204 | </seglistitem>
|
---|
205 | </segmentedlist>
|
---|
206 |
|
---|
207 | <variablelist>
|
---|
208 | <bridgehead renderas="sect3">Short Descriptions</bridgehead>
|
---|
209 | <?dbfo list-presentation="list"?>
|
---|
210 | <?dbhtml list-presentation="table"?>
|
---|
211 |
|
---|
212 | <varlistentry id="derb">
|
---|
213 | <term><command>derb</command></term>
|
---|
214 | <listitem>
|
---|
215 | <para>
|
---|
216 | disassembles a resource bundle
|
---|
217 | </para>
|
---|
218 | <indexterm zone="icu derb">
|
---|
219 | <primary sortas="b-derb">derb</primary>
|
---|
220 | </indexterm>
|
---|
221 | </listitem>
|
---|
222 | </varlistentry>
|
---|
223 |
|
---|
224 | <varlistentry id="escapesrc">
|
---|
225 | <term><command>escapesrc</command></term>
|
---|
226 | <listitem>
|
---|
227 | <para>
|
---|
228 | converts <quote>\u</quote> escaped characters into unicode
|
---|
229 | characters
|
---|
230 | </para>
|
---|
231 | <indexterm zone="icu escapesrc">
|
---|
232 | <primary sortas="b-escapesrc">escapesrc</primary>
|
---|
233 | </indexterm>
|
---|
234 | </listitem>
|
---|
235 | </varlistentry>
|
---|
236 |
|
---|
237 | <varlistentry id="genbrk">
|
---|
238 | <term><command>genbrk</command></term>
|
---|
239 | <listitem>
|
---|
240 | <para>
|
---|
241 | compiles ICU break iteration rules source files into binary data
|
---|
242 | files
|
---|
243 | </para>
|
---|
244 | <indexterm zone="icu genbrk">
|
---|
245 | <primary sortas="b-genbrk">genbrk</primary>
|
---|
246 | </indexterm>
|
---|
247 | </listitem>
|
---|
248 | </varlistentry>
|
---|
249 |
|
---|
250 | <varlistentry id="genccode">
|
---|
251 | <term><command>genccode</command></term>
|
---|
252 | <listitem>
|
---|
253 | <para>
|
---|
254 | generates C or platform specific assembly code from an ICU data
|
---|
255 | file
|
---|
256 | </para>
|
---|
257 | <indexterm zone="icu genccode">
|
---|
258 | <primary sortas="b-genccode">genccode</primary>
|
---|
259 | </indexterm>
|
---|
260 | </listitem>
|
---|
261 | </varlistentry>
|
---|
262 |
|
---|
263 | <varlistentry id="gencfu">
|
---|
264 | <term><command>gencfu</command></term>
|
---|
265 | <listitem>
|
---|
266 | <para>
|
---|
267 | reads in Unicode confusable character definitions and writes out the
|
---|
268 | binary data
|
---|
269 | </para>
|
---|
270 | <indexterm zone="icu gencfu">
|
---|
271 | <primary sortas="b-gencfu">gencfu</primary>
|
---|
272 | </indexterm>
|
---|
273 | </listitem>
|
---|
274 | </varlistentry>
|
---|
275 |
|
---|
276 | <varlistentry id="gencmn">
|
---|
277 | <term><command>gencmn</command></term>
|
---|
278 | <listitem>
|
---|
279 | <para>
|
---|
280 | generates an ICU memory-mappable data file
|
---|
281 | </para>
|
---|
282 | <indexterm zone="icu gencmn">
|
---|
283 | <primary sortas="b-gencmn">gencmn</primary>
|
---|
284 | </indexterm>
|
---|
285 | </listitem>
|
---|
286 | </varlistentry>
|
---|
287 |
|
---|
288 | <varlistentry id="gencnval">
|
---|
289 | <term><command>gencnval</command></term>
|
---|
290 | <listitem>
|
---|
291 | <para>
|
---|
292 | compiles the converter's aliases file
|
---|
293 | </para>
|
---|
294 | <indexterm zone="icu gencnval">
|
---|
295 | <primary sortas="b-gencnval">gencnval</primary>
|
---|
296 | </indexterm>
|
---|
297 | </listitem>
|
---|
298 | </varlistentry>
|
---|
299 |
|
---|
300 | <varlistentry id="gendict">
|
---|
301 | <term><command>gendict</command></term>
|
---|
302 | <listitem>
|
---|
303 | <para>
|
---|
304 | compiles word lists into ICU string trie dictionaries
|
---|
305 | </para>
|
---|
306 | <indexterm zone="icu gendict">
|
---|
307 | <primary sortas="b-gendict">gendict</primary>
|
---|
308 | </indexterm>
|
---|
309 | </listitem>
|
---|
310 | </varlistentry>
|
---|
311 |
|
---|
312 | <varlistentry id="gennorm2">
|
---|
313 | <term><command>gennorm2</command></term>
|
---|
314 | <listitem>
|
---|
315 | <para>
|
---|
316 | builds binary data files with Unicode normalization data
|
---|
317 | </para>
|
---|
318 | <indexterm zone="icu gennorm2">
|
---|
319 | <primary sortas="b-gennorm2">gennorm2</primary>
|
---|
320 | </indexterm>
|
---|
321 | </listitem>
|
---|
322 | </varlistentry>
|
---|
323 |
|
---|
324 | <varlistentry id="genrb">
|
---|
325 | <term><command>genrb</command></term>
|
---|
326 | <listitem>
|
---|
327 | <para>
|
---|
328 | compiles a resource bundle
|
---|
329 | </para>
|
---|
330 | <indexterm zone="icu genrb">
|
---|
331 | <primary sortas="b-genrb">genrb</primary>
|
---|
332 | </indexterm>
|
---|
333 | </listitem>
|
---|
334 | </varlistentry>
|
---|
335 |
|
---|
336 | <varlistentry id="gensprep">
|
---|
337 | <term><command>gensprep</command></term>
|
---|
338 | <listitem>
|
---|
339 | <para>
|
---|
340 | compiles StringPrep data from filtered RFC 3454 files
|
---|
341 | </para>
|
---|
342 | <indexterm zone="icu gensprep">
|
---|
343 | <primary sortas="b-gensprep">gensprep</primary>
|
---|
344 | </indexterm>
|
---|
345 | </listitem>
|
---|
346 | </varlistentry>
|
---|
347 |
|
---|
348 | <varlistentry id="icu-config">
|
---|
349 | <term><command>icu-config</command></term>
|
---|
350 | <listitem>
|
---|
351 | <para>
|
---|
352 | outputs ICU build options
|
---|
353 | </para>
|
---|
354 | <indexterm zone="icu icu-config">
|
---|
355 | <primary sortas="b-icu-config">icu-config</primary>
|
---|
356 | </indexterm>
|
---|
357 | </listitem>
|
---|
358 | </varlistentry>
|
---|
359 |
|
---|
360 | <varlistentry id="icuinfo">
|
---|
361 | <term><command>icuinfo</command></term>
|
---|
362 | <listitem>
|
---|
363 | <para>
|
---|
364 | outputs configuration information about the current ICU
|
---|
365 | </para>
|
---|
366 | <indexterm zone="icu icuinfo">
|
---|
367 | <primary sortas="b-icuinfo">icuinfo</primary>
|
---|
368 | </indexterm>
|
---|
369 | </listitem>
|
---|
370 | </varlistentry>
|
---|
371 |
|
---|
372 | <varlistentry id="icupkg">
|
---|
373 | <term><command>icupkg</command></term>
|
---|
374 | <listitem>
|
---|
375 | <para>
|
---|
376 | extracts or modifies an ICU .dat archive
|
---|
377 | </para>
|
---|
378 | <indexterm zone="icu icupkg">
|
---|
379 | <primary sortas="b-icupkg">icupkg</primary>
|
---|
380 | </indexterm>
|
---|
381 | </listitem>
|
---|
382 | </varlistentry>
|
---|
383 |
|
---|
384 | <varlistentry id="makeconv">
|
---|
385 | <term><command>makeconv</command></term>
|
---|
386 | <listitem>
|
---|
387 | <para>
|
---|
388 | compiles a converter table
|
---|
389 | </para>
|
---|
390 | <indexterm zone="icu makeconv">
|
---|
391 | <primary sortas="b-makeconv">makeconv</primary>
|
---|
392 | </indexterm>
|
---|
393 | </listitem>
|
---|
394 | </varlistentry>
|
---|
395 |
|
---|
396 | <varlistentry id="pkgdata">
|
---|
397 | <term><command>pkgdata</command></term>
|
---|
398 | <listitem>
|
---|
399 | <para>
|
---|
400 | packages data for use by ICU
|
---|
401 | </para>
|
---|
402 | <indexterm zone="icu pkgdata">
|
---|
403 | <primary sortas="b-pkgdata">pkgdata</primary>
|
---|
404 | </indexterm>
|
---|
405 | </listitem>
|
---|
406 | </varlistentry>
|
---|
407 |
|
---|
408 | <varlistentry id="uconv">
|
---|
409 | <term><command>uconv</command></term>
|
---|
410 | <listitem>
|
---|
411 | <para>
|
---|
412 | converts data from one encoding to another
|
---|
413 | </para>
|
---|
414 | <indexterm zone="icu uconv">
|
---|
415 | <primary sortas="b-uconv">uconv</primary>
|
---|
416 | </indexterm>
|
---|
417 | </listitem>
|
---|
418 | </varlistentry>
|
---|
419 |
|
---|
420 | <varlistentry id="libicudata">
|
---|
421 | <term><filename class="libraryfile">libicudata.so</filename></term>
|
---|
422 | <listitem>
|
---|
423 | <para>
|
---|
424 | is the data library
|
---|
425 | </para>
|
---|
426 | <indexterm zone="icu libicudata">
|
---|
427 | <primary sortas="c-libicudata">libicudata.so</primary>
|
---|
428 | </indexterm>
|
---|
429 | </listitem>
|
---|
430 | </varlistentry>
|
---|
431 |
|
---|
432 | <varlistentry id="libicui18n">
|
---|
433 | <term><filename class="libraryfile">libicui18n.so</filename></term>
|
---|
434 | <listitem>
|
---|
435 | <para>
|
---|
436 | is the internationalization (i18n) library
|
---|
437 | </para>
|
---|
438 | <indexterm zone="icu libicui18n">
|
---|
439 | <primary sortas="c-libicui18n">libicui18n.so</primary>
|
---|
440 | </indexterm>
|
---|
441 | </listitem>
|
---|
442 | </varlistentry>
|
---|
443 |
|
---|
444 | <varlistentry id="libicuio">
|
---|
445 | <term><filename class="libraryfile">libicuio.so</filename></term>
|
---|
446 | <listitem>
|
---|
447 | <para>
|
---|
448 | is the ICU I/O (unicode stdio) library
|
---|
449 | </para>
|
---|
450 | <indexterm zone="icu libicuio">
|
---|
451 | <primary sortas="c-libicuio">libicuio.so</primary>
|
---|
452 | </indexterm>
|
---|
453 | </listitem>
|
---|
454 | </varlistentry>
|
---|
455 |
|
---|
456 | <!-- <varlistentry id="libicule">
|
---|
457 | <term><filename class="libraryfile">libicule.so</filename></term>
|
---|
458 | <listitem>
|
---|
459 | <para>
|
---|
460 | is the layout engine.
|
---|
461 | </para>
|
---|
462 | <indexterm zone="icu libicule">
|
---|
463 | <primary sortas="c-libicule">libicule.so</primary>
|
---|
464 | </indexterm>
|
---|
465 | </listitem>
|
---|
466 | </varlistentry>
|
---|
467 |
|
---|
468 | <varlistentry id="libiculx">
|
---|
469 | <term><filename class="libraryfile">libiculx.so</filename></term>
|
---|
470 | <listitem>
|
---|
471 | <para>
|
---|
472 | is the layout extensions engine.
|
---|
473 | </para>
|
---|
474 | <indexterm zone="icu libiculx">
|
---|
475 | <primary sortas="c-libiculx">libiculx.so</primary>
|
---|
476 | </indexterm>
|
---|
477 | </listitem>
|
---|
478 | </varlistentry>-->
|
---|
479 |
|
---|
480 | <varlistentry id="libicutest">
|
---|
481 | <term><filename class="libraryfile">libicutest.so</filename></term>
|
---|
482 | <listitem>
|
---|
483 | <para>
|
---|
484 | is the test library
|
---|
485 | </para>
|
---|
486 | <indexterm zone="icu libicutest">
|
---|
487 | <primary sortas="c-libicutest">libicutest.so</primary>
|
---|
488 | </indexterm>
|
---|
489 | </listitem>
|
---|
490 | </varlistentry>
|
---|
491 |
|
---|
492 | <varlistentry id="libicutu">
|
---|
493 | <term><filename class="libraryfile">libicutu.so</filename></term>
|
---|
494 | <listitem>
|
---|
495 | <para>
|
---|
496 | is the tool utility library
|
---|
497 | </para>
|
---|
498 | <indexterm zone="icu libicutu">
|
---|
499 | <primary sortas="c-libicutu">libicutu.so</primary>
|
---|
500 | </indexterm>
|
---|
501 | </listitem>
|
---|
502 | </varlistentry>
|
---|
503 |
|
---|
504 | <varlistentry id="libicuuc">
|
---|
505 | <term><filename class="libraryfile">libicuuc.so</filename></term>
|
---|
506 | <listitem>
|
---|
507 | <para>
|
---|
508 | is the common library
|
---|
509 | </para>
|
---|
510 | <indexterm zone="icu libicuuc">
|
---|
511 | <primary sortas="c-libicuuc">libicuuc.so</primary>
|
---|
512 | </indexterm>
|
---|
513 | </listitem>
|
---|
514 | </varlistentry>
|
---|
515 |
|
---|
516 | </variablelist>
|
---|
517 |
|
---|
518 | </sect2>
|
---|
519 |
|
---|
520 | </sect1>
|
---|