diff --git a/rpm/icu-config.sh b/rpm/icu-config.sh new file mode 100644 index 0000000..7a75efa --- /dev/null +++ b/rpm/icu-config.sh @@ -0,0 +1,11 @@ +#!/bin/sh +OOO_ARCH=$(uname -m) +case $OOO_ARCH in + x86_64 | s390x | ppc64 | sparc64 | aarch64) + bits=64 + ;; + * ) + bits=32 + ;; +esac +exec icu-config-$bits "$@" diff --git a/rpm/icu.spec b/rpm/icu.spec new file mode 100644 index 0000000..d6a5445 --- /dev/null +++ b/rpm/icu.spec @@ -0,0 +1,158 @@ +Name: icu +Version: 52.1 +Release: 10%{?dist} +Summary: International Components for Unicode +Group: Development/Tools +License: MIT and UCD and Public Domain +URL: http://www.icu-project.org/ +Source0: %{name}-%{version}.tar.gz +Source1: icu-config.sh +BuildRequires: autoconf, python +Requires: lib%{name}%{?_isa} = %{version}-%{release} + +%description +Tools and utilities for developing with icu. + +%package -n lib%{name} +Summary: International Components for Unicode - libraries +Group: System Environment/Libraries + +%description -n lib%{name} +The International Components for Unicode (ICU) libraries provide +robust and full-featured Unicode services on a wide variety of +platforms. ICU supports the most current version of the Unicode +standard, and they provide support for supplementary Unicode +characters (needed for GB 18030 repertoire support). +As computing environments become more heterogeneous, software +portability becomes more important. ICU lets you produce the same +results across all the various platforms you support, without +sacrificing performance. It offers great flexibility to extend and +customize the supplied services. + +%package -n lib%{name}-devel +Summary: Development files for International Components for Unicode +Group: Development/Libraries +Requires: lib%{name}%{?_isa} = %{version}-%{release} +Requires: pkgconfig + +%description -n lib%{name}-devel +Includes and definitions for developing with icu. + +%package -n lib%{name}-doc +Summary: Documentation for International Components for Unicode +Group: Documentation +BuildArch: noarch + +%description -n lib%{name}-doc +%{summary}. + +%{!?endian: %global endian %(%{__python} -c "import sys;print (0 if sys.byteorder=='big' else 1)")} +# " this line just fixes syntax highlighting for vim that is confused by the above and continues literal + +%prep +%setup -q -n %{name}-%{version}/%{name} + +%build +cd source +autoconf +CFLAGS='%optflags -fno-strict-aliasing' +CXXFLAGS='%optflags -fno-strict-aliasing' +# Endian: BE=0 LE=1 +%if ! 0%{?endian} +CPPFLAGS='-DU_IS_BIG_ENDIAN=1' +%endif +#rhbz856594 do not use --disable-renaming or cope with the mess +%configure --with-data-packaging=library --disable-samples +#rhbz#225896 +sed -i 's|-nodefaultlibs -nostdlib||' config/mh-linux +#rhbz#681941 +sed -i 's|^LIBS =.*|LIBS = -L../lib -licuuc -lpthread -lm|' i18n/Makefile +sed -i 's|^LIBS =.*|LIBS = -nostdlib -L../lib -licuuc -licui18n -lc -lgcc|' io/Makefile +sed -i 's|^LIBS =.*|LIBS = -nostdlib -L../lib -licuuc -lc|' layout/Makefile +sed -i 's|^LIBS =.*|LIBS = -nostdlib -L../lib -licuuc -licule -lc|' layoutex/Makefile +sed -i 's|^LIBS =.*|LIBS = -nostdlib -L../../lib -licutu -licuuc -lc|' tools/ctestfw/Makefile +sed -i 's|^LIBS =.*|LIBS = -nostdlib -L../../lib -licui18n -licuuc -lpthread -lc|' tools/toolutil/Makefile +#rhbz#813484 +sed -i 's| \$(docfilesdir)/installdox||' Makefile +# There is no source/doc/html/search/ directory +sed -i '/^\s\+\$(INSTALL_DATA) \$(docsrchfiles) \$(DESTDIR)\$(docdir)\/\$(docsubsrchdir)\s*$/d' Makefile +# rhbz#856594 The configure --disable-renaming and possibly other options +# result in icu/source/uconfig.h.prepend being created, include that content in +# icu/source/common/unicode/uconfig.h to propagate to consumer packages. +test -f uconfig.h.prepend && sed -e '/^#define __UCONFIG_H__/ r uconfig.h.prepend' -i common/unicode/uconfig.h + +make %{?_smp_mflags} +#make %{?_smp_mflags} doc + +%install +rm -rf $RPM_BUILD_ROOT source/__docs +make %{?_smp_mflags} -C source install DESTDIR=$RPM_BUILD_ROOT +make %{?_smp_mflags} -C source install-doc docdir=__docs +chmod +x $RPM_BUILD_ROOT%{_libdir}/*.so.* +( + cd $RPM_BUILD_ROOT%{_bindir} + mv icu-config icu-config-%{__isa_bits} +) +install -p -m755 -D %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/icu-config + +%check +# test to ensure that -j(X>1) didn't "break" man pages. b.f.u #2357 +if grep -q @VERSION@ source/tools/*/*.8 source/tools/*/*.1 source/config/*.1; then + exit 1 +fi +make %{?_smp_mflags} -C source check + +%post -n lib%{name} -p /sbin/ldconfig + +%postun -n lib%{name} -p /sbin/ldconfig + +%files +%defattr(-,root,root,-) +%{_bindir}/derb +%{_bindir}/genbrk +%{_bindir}/gencfu +%{_bindir}/gencnval +%{_bindir}/gendict +%{_bindir}/genrb +%{_bindir}/makeconv +%{_bindir}/pkgdata +%{_bindir}/uconv +%{_sbindir}/* +%{_mandir}/man1/derb.1* +%{_mandir}/man1/gencfu.1* +%{_mandir}/man1/gencnval.1* +%{_mandir}/man1/gendict.1* +%{_mandir}/man1/genrb.1* +%{_mandir}/man1/genbrk.1* +%{_mandir}/man1/makeconv.1* +%{_mandir}/man1/pkgdata.1* +%{_mandir}/man1/uconv.1* +%{_mandir}/man8/*.8* + +%files -n lib%{name} +%defattr(-,root,root,-) +%doc license.html readme.html +%{_libdir}/*.so.* + +%files -n lib%{name}-devel +%defattr(-,root,root,-) +%{_bindir}/%{name}-config* +%{_bindir}/icuinfo +%{_mandir}/man1/%{name}-config.1* +%{_mandir}/man1/icuinfo.1* +%{_includedir}/layout +%{_includedir}/unicode +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc +%{_libdir}/%{name} +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/%{version} +%{_datadir}/%{name}/%{version}/install-sh +%{_datadir}/%{name}/%{version}/mkinstalldirs +%{_datadir}/%{name}/%{version}/config +%doc %{_datadir}/%{name}/%{version}/license.html + +%files -n lib%{name}-doc +%defattr(-,root,root,-) +%doc license.html readme.html +%doc source/__docs/%{name}/html/*