Home | History | Annotate | Download | only in packaging
      1 Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 License & terms of use: http://www.unicode.org/copyright.html
      3 Copyright (C) 2000-2003, International Business Machines
      4 Corporation and others.  All Rights Reserved.
      5 ICU is packaged into a number of small, interdependent packages. This
      6 file describes what these packages are, what their name should be
      7 like, and what their contents are. It is useful as a reference and a
      8 guide when packaging ICU on a new system.
      9 
     10 + List of ICU packages.
     11 
     12 ICU is distributed as the following packages:
     13 
     14 - ICU libraries. This package contains the runtime libraries needed by
     15 applications that use ICU. All the other packages require this package
     16 to be installed.
     17 - ICU. This package contains the converters data, the timezones data,
     18 and all the ICU tools.
     19 - ICU locales. This package adds locales and break data.
     20 - ICU development. This package contains the files necessary to build
     21 applications that use ICU, i.e. header files, links to shared
     22 libraries used by the linker, static libraries, etc... It also
     23 contains sample applications and documentation.
     24 - ICU docs. This package contains further documentation for ICU,
     25 including a complete API reference.
     26 - ICU data. This package contains the source for the compiled data
     27 contained by the ICU package.
     28 - ICU international data. This package contains the source for the
     29 compiled data contained by the ICU locales package.
     30 
     31 In this file, we will refer to Autoconf variables as in $(bindir). In
     32 addition to these, we will use the following variables to denote
     33 ICU-specific directories or information:
     34 
     35   VERSION       ICU's dotted version number, e.g. 1.6.0.1 as of this
     36 		writing.
     37 
     38   ICUDATADIR	The directory where portable ICU data are. This is
     39 	        defined as $(datadir)/icu/$(VERSION).
     40   ICULIBDIR	The directory where platform-specific ICU data
     41 		are. This is defined as $(libdir)/icu/$(VERSION).
     42   ICUSYSCONFDIR	The directory where ICU configuration files are. This
     43 		is defined as $(sysconfdir)/icu.
     44 
     45 When referring to libraries, .so will be used to denote the extension
     46 of a shared library, and .a to denote the extension of a static
     47 library. These extensions will actually be different on some platforms.
     48 
     49 + Configuration and compilation of ICU
     50 
     51 ICU should be configured with the following options:
     52 
     53   --with-data-packaging=files
     54   --disable-rpath
     55   --enable-shared
     56   --enable-static
     57   --without-samples
     58 
     59 in addition to platform-specific settings (like a specific mandir or
     60 sysconfdir). Note that the use of --disable-rpath assumes that the
     61 packaging is made for a standard location, or that the package
     62 installation/deinstallation will correctly manage the configuration
     63 of the system's dyanmic loader. This is the right way of doing things.
     64 
     65 The configure script invokation should also be done with
     66 
     67   CFLAGS="-O2"
     68 
     69 set, as in:
     70 
     71   $ CFLAGS="-O2" ./configure ...
     72 
     73 The files packaging mode is chosen because it offers the maximum
     74 flexibility. Packages can be split easily, and system administrators
     75 can add converters, aliases, and other resources with little
     76 effort. Ideally, the ICU build will be modified to allow for distributing a
     77 libicudata.so with all the converters and locales, but indexes and aliases
     78 as separate files. But for now, this is the easiest way to get started.
     79 
     80 + The ICU libraries package
     81 
     82 The ICU libraries package is typically named `libicuXX' where XX is
     83 the major number of ICU's libraries. This number is ICU's version
     84 number multiplied by 10 and rounded down to the nearest integer (it is
     85 also the value of the LIB_VERSION_MAJOR configure substitution
     86 variable). For example, for ICU 1.6.0.1, it is 16, so the package name
     87 is `libicu16'. The major version is part of the package name to allow
     88 for the simultaneous installation of different ICU releases.
     89 
     90 This package contains:
     91 
     92 - All the shared libraries, and their major number symbolic link, but
     93 not the .so symbolic link that is only used at link time (this one is
     94 part of the development package). These are $(libdir)/libicu*.so.* and
     95 $(libdir)/libustdio.so.* at the time of this writing.
     96 
     97 + The ICU package
     98 
     99 The ICU package is simply named `icu'.  It provides data used by the ICU
    100 libraries package and commands to create and manipulate that data.
    101 
    102 This package contains:
    103 
    104 - The Unicode data files (uprops.dat and unames.dat as of this writing).
    105 - The time zones data files (tz.dat).
    106 - All the binary data files for converters (.cnv files).
    107 - All the ICU commands.
    108 - The manual pages for ICU commands and file formats.
    109 
    110 + The ICU locales package
    111 
    112 The ICU locales package is named `icu-locales'. It provides data used by
    113 internationalization support in ICU.
    114 
    115 This package contains:
    116 
    117 - All the data for locales in ICU (.dat files).
    118 - All the break data for specific locales (.brk files).
    119 
    120 + The ICU development package
    121 
    122 The ICU developpment package is named `libicu-dev'. It provides all
    123 the files necessary to write applications that use ICU, along with
    124 examples and some documentation.
    125 
    126 This package contains:
    127 
    128 - The /usr/include/unicode directory which contains all the ICU
    129 headers.
    130 - The .so symbolic links used by the linker to link against the
    131 latest version of the libraries.
    132 - A sample Makefile fragment that can be included by applications
    133 using ICU, to faciliate their building, along with a platform-specific
    134 configuration file included by this fragment.
    135 - The sample applications from the ICU source tree, in an appropriate
    136 location for the system that the package is installed on (for example,
    137 on Debian, in /usr/share/doc/libicu-dev/examples).
    138 
    139 This package depends on the ICU libraries package with the exact same
    140 version, since it provides .so symbolic links to the latest libraries.
    141 
    142 + The ICU docs package
    143 
    144 The ICU docs package is named `libicu-doc'. It contains the files
    145 generated by doxygen when the `make doc' command is executed, in a
    146 location appropriate for the system that the package is installed on.
    147 
    148 + The ICU data package
    149 
    150 The ICU data package is named `icu-data'. It contains source files for
    151 the data found in the ICU package. These files are installed in
    152 $(ICUDATADIR).
    153 
    154 + The ICU international data package
    155 
    156 The ICU data package is named `icu-i18ndata'. It contains source files for
    157 the dat founf in the ICU locales package. These files are installed in
    158 $(ICUDATADIR).
    159 
    160 ----
    161 Yves Arrouye <yves (a] realnames.com>
    162