e64523e7417acb7692212185856950e65c1c47e1
[platform/upstream/icu.git] / packaging / icu.spec
1 ###############################################################################
2 # if you build icu date files,
3 # please remove file source/data/in/icudt60l.dat file
4 ###############################################################################
5
6 %define tzdata_version 2021e
7
8 Name:      icu
9 Version:   70.1
10 Release:   1
11 Summary:   International Components for Unicode
12 Group:     System/Libraries
13 License:   ICU and Unicode-TOU and BSD-2.0
14 URL:       http://www.icu-project.org/
15 Source0:   %{name}-%{version}.tar.gz
16 Source1:   tzdata%{tzdata_version}.tar.gz
17 Source2:   set_disable_renameing.patch
18 Source3:   Disable-the-default-LDFLAGSICUDT.patch
19 Source4:   Add_PIE_option_for_tzcode.patch
20 Source5:   Set_define_false_and_true.patch
21
22 Source1001:     icu.manifest
23 BuildRequires: doxygen
24 BuildRequires: autoconf
25 BuildRequires: python
26
27 %description
28 Tools and utilities for developing with icu.
29
30 %package -n libicu
31 Summary: International Components for Unicode - libraries
32
33 %description -n libicu
34 The International Components for Unicode (ICU) libraries provide
35 robust and full-featured Unicode services on a wide variety of
36 platforms. ICU supports the most current version of the Unicode
37 standard, and they provide support for supplementary Unicode
38 characters (needed for GB 18030 repertoire support).
39 As computing environments become more heterogeneous, software
40 portability becomes more important. ICU lets you produce the same
41 results across all the various platforms you support, without
42 sacrificing performance. It offers great flexibility to extend and
43 customize the supplied services.
44
45 %package  -n libicu-devel
46 Summary:  Development files for International Components for Unicode
47 Requires: libicu = %{version}-%{release}
48 Requires: pkgconfig
49
50 %description -n libicu-devel
51 Includes and definitions for developing with icu.
52
53 %if "%{?profile}" == "tv"
54 %package  -n libicu-tzdata
55 Summary:  package for ICU TimeZone Updating
56 Requires: libicu = %{version}-%{release}
57 Requires: pkgconfig
58
59 %description -n libicu-tzdata
60 Initial setup for ICU timezone .res file
61 %endif
62
63 %prep
64 %setup -q
65 cp %{SOURCE1001} .
66 %{__patch} -p1 < %{SOURCE2}
67 %{__patch} -p1 < %{SOURCE3}
68 %{__patch} -p1 < %{SOURCE4}
69 %{__patch} -p1 < %{SOURCE5}
70
71 %if "%{?profile}" == "tv"
72 cp %{SOURCE1} ./source/tools/tzcode
73 %endif
74
75 %build
76 export CFLAGS="$CFLAGS -D_TIZEN_FEATURE_ -fPIC"
77 export CXXFLAGS="$CXXFLAGS -D_TIZEN_FEATURE_ -fPIC"
78 export LINKFLAGS=" -pie"
79 export LANG=C.UTF-8
80
81 cd source
82 %{configure} --enable-static=no \
83             --enable-renaming=no \
84             --enable-shared \
85             --enable-plugins=yes \
86             --enable-samples=no \
87 %ifarch armv7hl
88             --with-data-packaging=archive
89 %else
90             --with-data-packaging=library
91 %endif
92 %{__make} %{?_smp_mflags}
93
94 %check
95 #    pushd source
96 #    %__make check || exit 0
97 #    popd
98
99 %install
100 cd source
101 %make_install
102
103 # bugs of rpmdeps
104 chmod +x %{buildroot}/%{_libdir}/lib*.so.*
105 %if "%{?profile}" == "tv"
106 mkdir -p %{buildroot}/opt/share/icu_tzdata/
107 mkdir -p %{buildroot}/usr/share/icu_zoneinfo/
108 export ICUDATA_NAME=`cat ./data/makedata.mak  | grep "^U_ICUDATA_NAME=" | head -n 1 | sed -e 's/^.*=//g' | sed -e 's/\r$//g'`
109 export ICUDATA_ENDIAN_SUFFIX=`cat ./data/makedata.mak  | grep "^U_ICUDATA_ENDIAN_SUFFIX=" | head -n 1 | sed -e 's/^.*=//g' | sed -e 's/\r$//g'`
110 echo "============================================="
111 echo "ICUDATA_NAME [$ICUDATA_NAME]"
112 echo "ICUDATA_ENDIAN_SUFFIX [$ICUDATA_ENDIAN_SUFFIX]"
113 echo "============================================="
114 cp -af ./data/out/build/"$ICUDATA_NAME$ICUDATA_ENDIAN_SUFFIX"/zoneinfo64.res %{buildroot}/usr/share/icu_zoneinfo/
115 cp -af ./data/out/build/"$ICUDATA_NAME$ICUDATA_ENDIAN_SUFFIX"/metaZones.res %{buildroot}/usr/share/icu_zoneinfo/
116 cp -af ./data/out/build/"$ICUDATA_NAME$ICUDATA_ENDIAN_SUFFIX"/timezoneTypes.res %{buildroot}/usr/share/icu_zoneinfo/
117 ln -sf /usr/share/icu_zoneinfo/zoneinfo64.res %{buildroot}/opt/share/icu_tzdata/zoneinfo64.res
118 ln -sf /usr/share/icu_zoneinfo/metaZones.res %{buildroot}/opt/share/icu_tzdata/metaZones.res
119 ln -sf /usr/share/icu_zoneinfo/timezoneTypes.res %{buildroot}/opt/share/icu_tzdata/timezoneTypes.res
120 cp -af ./data/misc/timezoneTypes.txt %{buildroot}/opt/share/icu_tzdata/
121 cp -af ./data/misc/metaZones.txt %{buildroot}/opt/share/icu_tzdata/
122 cp -af ./tools/tzcode/zoneinfo %{buildroot}/usr/share/icu_zoneinfo/
123 cp -af ./tools/tzcode/zone.tab %{buildroot}/usr/share/icu_zoneinfo/
124 cp -af ./tools/tzcode/icu_zone.txt %{buildroot}/usr/share/icu_zoneinfo/
125 cp -af ./data/misc/zoneinfo64.txt %{buildroot}/usr/share/icu_zoneinfo/
126
127 mkdir -p %{buildroot}/usr/sbin/icu_bin/
128 cp ./bin/zic %{buildroot}/usr/sbin/icu_bin/
129 cp ./bin/tz2icu %{buildroot}/usr/sbin/icu_bin/
130 %endif
131
132 %remove_docs
133
134
135 %post -n libicu -p /sbin/ldconfig
136
137 %postun -n libicu -p /sbin/ldconfig
138
139 %files
140 %manifest %{name}.manifest
141 %license LICENSE
142
143 %files -n libicu
144 %manifest %{name}.manifest
145 %license LICENSE
146 %{_libdir}/*.so*
147 %{_bindir}/derb
148 %{_bindir}/genbrk
149 %{_bindir}/gencfu
150 %{_bindir}/gencnval
151 %{_bindir}/gendict
152 %{_bindir}/genrb
153 %{_bindir}/makeconv
154 %{_bindir}/pkgdata
155 %{_bindir}/uconv
156 %{_bindir}/icuinfo
157 %{_bindir}/icu-config
158 %{_bindir}/icuexportdata
159 %{_sbindir}/*
160 %dir %{_datadir}/icu/%{version}
161 %{_datadir}/icu/%{version}/config/mh-linux
162 %{_datadir}/icu/%{version}/install-sh
163 %{_datadir}/icu/%{version}/LICENSE
164 %{_datadir}/icu/%{version}/mkinstalldirs
165 %ifarch armv7hl
166 %{_datadir}/icu/%{version}/*.dat
167 %endif
168
169 %files -n libicu-devel
170 %manifest %{name}.manifest
171 %license LICENSE
172 %{_includedir}/unicode
173 %{_libdir}/*.so
174 %{_libdir}/pkgconfig/icu-*.pc
175 %{_libdir}/%{name}
176
177 %if "%{?profile}" == "tv"
178 %files -n libicu-tzdata
179 %{_sbindir}/icu_bin/*
180 /opt/share/icu_tzdata/*
181 %{_datadir}/icu_zoneinfo/*
182 %endif