diff --git a/.cvsignore b/.cvsignore index 23826a3..aeb81f3 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1,2 +1,2 @@ icu-config -icu4c-4_2_1-src.tgz +icu4c-4_4-src.tgz diff --git a/icu.6969.pkgdata.patch b/icu.6969.pkgdata.patch deleted file mode 100644 index 094b0bf..0000000 --- a/icu.6969.pkgdata.patch +++ /dev/null @@ -1,189 +0,0 @@ -Index: source/tools/pkgdata/pkgdata.cpp -=================================================================== ---- source.orig/tools/pkgdata/pkgdata.cpp 2009-06-26 14:57:38.000000000 -0400 -+++ source/tools/pkgdata/pkgdata.cpp 2009-06-27 10:12:08.437285758 -0400 -@@ -118,6 +118,7 @@ - static void createFileNames(const char *version_major, const char *version, const char *libName, const UBool reverseExt); - - static int32_t pkg_getOptionsFromICUConfig(UOption *option); -+static int runCommand(const char* command); - - enum { - NAME, -@@ -461,6 +462,17 @@ - return result; - } - -+static int runCommand(const char* command) -+{ -+ printf("pkgdata: %s\n", command); -+ int result = system(command); -+ if (result != 0) -+ { -+ printf("-- return status = %d\n", result); -+ } -+ return result; -+} -+ - #define LN_CMD "ln -s" - #define RM_CMD "rm -f" - -@@ -724,7 +736,7 @@ - LN_CMD, - libFileNames[LIB_FILE_VERSION], - libFileNames[LIB_FILE_VERSION_MAJOR]); -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - return result; - } -@@ -737,7 +749,7 @@ - libFileNames[LIB_FILE_VERSION], - libFileNames[LIB_FILE], pkgDataFlags[SO_EXT]); - -- result = system(cmd); -+ result = runCommand(cmd); - - return result; - } -@@ -753,7 +765,7 @@ - installDir, PKGDATA_FILE_SEP_STRING, libFileNames[LIB_FILE_VERSION] - ); - -- result = system(cmd); -+ result = runCommand(cmd); - - if (result != 0) { - return result; -@@ -795,7 +807,7 @@ - srcDir, PKGDATA_FILE_SEP_STRING, buffer, - installDir, PKGDATA_FILE_SEP_STRING, buffer); - -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - fprintf(stderr, "Failed to install data file with command: %s\n", cmd); - break; -@@ -815,7 +827,7 @@ - } - #else - sprintf(cmd, "%s %s %s %s", WIN_INSTALL_CMD, srcDir, installDir, WIN_INSTALL_CMD_FLAGS); -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - fprintf(stderr, "Failed to install data file with command: %s\n", cmd); - } -@@ -849,7 +861,17 @@ - targetDir, - libFileNames[LIB_FILE_VERSION_TMP]); - -- result = system(cmd); -+ result = runCommand(cmd); -+ if (result != 0) { -+ return result; -+ } -+ -+ sprintf(cmd, "%s %s%s", -+ pkgDataFlags[RANLIB], -+ targetDir, -+ libFileNames[LIB_FILE_VERSION]); -+ -+ result = runCommand(cmd); - if (result != 0) { - return result; - } -@@ -860,7 +882,7 @@ - targetDir, - libFileNames[LIB_FILE_VERSION_TMP]); - -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - return result; - } -@@ -908,7 +930,21 @@ - pkgDataFlags[A_EXT], - objectFile); - -- result = system(cmd); -+ result = runCommand(cmd); -+ if (result == 0) -+ { -+#ifdef OS400 -+ sprintf(cmd, "QSH CMD('%s %s%s.%s')", -+#else -+ sprintf(cmd, "%s %s%s.%s", -+#endif -+ pkgDataFlags[RANLIB], -+ targetDir, -+ libFileNames[LIB_FILE], -+ pkgDataFlags[A_EXT]); -+ -+ result = runCommand(cmd); -+ } - } else /* if (mode == MODE_DLL) */ { - #ifdef U_CYGWIN - sprintf(cmd, "%s%s%s %s -o %s%s %s %s%s %s %s", -@@ -935,7 +971,7 @@ - pkgDataFlags[BIR_FLAGS]); - - /* Generate the library file. */ -- result = system(cmd); -+ result = runCommand(cmd); - } - - if (freeCmd) { -@@ -961,7 +997,7 @@ - tempObjectFile, - gencFilePath); - -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - return result; - } -@@ -1043,7 +1079,7 @@ - tempObjectFile, - gencmnFile); - -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - break; - } -@@ -1094,7 +1130,7 @@ - sprintf(cmd, "cat %s >> %s", gencmnFile, icudtAll); - #endif - -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - break; - } -@@ -1110,7 +1146,7 @@ - pkgDataFlags[LIBFLAGS], - tempObjectFile, - gencmnFile); -- result = system(cmd); -+ result = runCommand(cmd); - if (result != 0) { - break; - } -@@ -1139,7 +1175,7 @@ - tempObjectFile, - icudtAll); - -- result = system(cmd); -+ result = runCommand(cmd); - if (result == 0) { - sprintf(buffer, "%s %s", - buffer, -@@ -1222,7 +1258,7 @@ - ); - } - -- return system(cmd); -+ return runCommand(cmd); - } - #endif - diff --git a/icu.XXXX.buildfix.patch b/icu.XXXX.buildfix.patch index 182b317..f519e60 100644 --- a/icu.XXXX.buildfix.patch +++ b/icu.XXXX.buildfix.patch @@ -1,14 +1,3 @@ ---- icu/source/Makefile.in 2009-08-31 21:15:03.000000000 +0100 -+++ icu/source/Makefile.in 2009-08-31 21:19:23.000000000 +0100 -@@ -146,7 +146,7 @@ - install-doc: doc - $(RM) -r $(DESTDIR)$(docdir)/$(docsubdir) - $(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(docsubdir) -- $(INSTALL_DATA) doc/html/* $(DESTDIR)$(docdir)/$(docsubdir) -+ cp -r doc/html/* $(DESTDIR)$(docdir)/$(docsubdir) - endif - - $(DESTDIR)$(pkglibdir)/%: $(top_srcdir)/../data/% --- icu/source/configure.in 2009-07-01 19:51:26.000000000 +0100 +++ icu/source/configure.in 2009-11-19 09:12:23.000000000 +0000 @@ -57,6 +57,11 @@ diff --git a/icu.icu7039.badextract.patch b/icu.icu7039.badextract.patch deleted file mode 100644 index 3b27762..0000000 --- a/icu.icu7039.badextract.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -ru icu.orig/source/common/unicode/unistr.h icu/source/common/unicode/unistr.h ---- icu.orig/source/common/unicode/unistr.h 2009-07-28 16:02:03.000000000 +0100 -+++ icu/source/common/unicode/unistr.h 2009-07-28 16:36:48.000000000 +0100 -@@ -4048,7 +4048,7 @@ - - { - // This dstSize value will be checked explicitly -- return extract(start, _length, dst, dst!=0 ? 0xffffffff : 0, codepage); -+ return extract(start, _length, dst, dst!=0 ? (((size_t)dst >= ((size_t)-1) - UINT32_MAX) ? (((char*)UINT32_MAX) - dst) : UINT32_MAX) : 0, codepage); - } - - #endif -diff -ru icu.orig/source/test/intltest/dadrcal.cpp icu/source/test/intltest/dadrcal.cpp ---- icu.orig/source/test/intltest/dadrcal.cpp 2009-07-28 16:01:10.000000000 +0100 -+++ icu/source/test/intltest/dadrcal.cpp 2009-07-28 16:52:15.000000000 +0100 -@@ -114,7 +114,7 @@ - + UnicodeString(" - ")); - continue; - } -- testSetting.extract(0, testSetting.length(), toCalLoc, (const char*)0); -+ testSetting.extract(0, testSetting.length(), toCalLoc, sizeof(toCalLoc)-1, (const char*)0); - fromCalendar = Calendar::createInstance(toCalLoc, status); - if (U_FAILURE(status)) { - errln(caseString+": Unable to instantiate calendar for " -@@ -371,7 +371,7 @@ - // build to calendar - UnicodeString testSetting = settings->getString("ToCalendar", status); - if (U_SUCCESS(status)) { -- testSetting.extract(0, testSetting.length(), toCalLoc, (const char*)0); -+ testSetting.extract(0, testSetting.length(), toCalLoc, sizeof(toCalLoc)-1, (const char*)0); - toCalendar = Calendar::createInstance(toCalLoc, status); - if (U_FAILURE(status)) { - errln("Unable to instantiate ToCalendar for "+testSetting); -@@ -394,7 +394,7 @@ - Calendar *fromCalendar= NULL; - UnicodeString locale = currentCase->getString("locale", status); - if (U_SUCCESS(status)) { -- locale.extract(0, locale.length(), fromCalLoc, (const char*)0); // default codepage. Invariant codepage doesn't have '@'! -+ locale.extract(0, locale.length(), fromCalLoc, sizeof(fromCalLoc)-1, (const char*)0); // default codepage. Invariant codepage doesn't have '@'! - fromCalendar = Calendar::createInstance(fromCalLoc, status); - if (U_FAILURE(status)) { - errln("Unable to instantiate fromCalendar for "+locale); -@@ -464,7 +464,7 @@ - logln("---"); - } - logln(testSetting + "---"); -- testSetting.extract(0, testSetting.length(), testType, ""); -+ testSetting.extract(0, testSetting.length(), testType, sizeof(testType)-1, ""); - } else { - errln("Unable to extract 'Type'. Skipping.."); - continue; -diff -ru icu.orig/source/test/intltest/dadrcoll.cpp icu/source/test/intltest/dadrcoll.cpp ---- icu.orig/source/test/intltest/dadrcoll.cpp 2009-07-28 16:01:10.000000000 +0100 -+++ icu/source/test/intltest/dadrcoll.cpp 2009-07-28 16:49:56.000000000 +0100 -@@ -179,7 +179,7 @@ - testSetting = settings->getString("TestLocale", intStatus); - if(U_SUCCESS(intStatus)) { - char localeName[256]; -- testSetting.extract(0, testSetting.length(), localeName, ""); -+ testSetting.extract(0, testSetting.length(), localeName, sizeof(localeName)-1, ""); - col = Collator::createInstance(localeName, status); - if(U_SUCCESS(status)) { - logln("Testing collator for locale "+testSetting); -diff -ru icu.orig/source/test/intltest/dadrfmt.cpp icu/source/test/intltest/dadrfmt.cpp ---- icu.orig/source/test/intltest/dadrfmt.cpp 2009-07-28 16:01:10.000000000 +0100 -+++ icu/source/test/intltest/dadrfmt.cpp 2009-07-28 16:50:36.000000000 +0100 -@@ -149,7 +149,7 @@ - DateFormat *format = NULL; - - // Process: 'locale' -- locale.extract(0, locale.length(), calLoc, (const char*)0); // default codepage. Invariant codepage doesn't have '@'! -+ locale.extract(0, locale.length(), calLoc, sizeof(calLoc)-1, (const char*)0); // default codepage. Invariant codepage doesn't have '@'! - Locale loc(calLoc); - if(spec.startsWith(kPATTERN)) { - pattern = UnicodeString(spec,kPATTERN.length()); -@@ -323,7 +323,7 @@ - logln("---"); - } - logln(testSetting + "---"); -- testSetting.extract(0, testSetting.length(), testType, ""); -+ testSetting.extract(0, testSetting.length(), testType, sizeof(testType)-1, ""); - } else { - errln("Unable to extract 'Type'. Skipping.."); - continue; -diff -ru icu.orig/source/test/intltest/loctest.cpp icu/source/test/intltest/loctest.cpp ---- icu.orig/source/test/intltest/loctest.cpp 2009-07-28 16:01:10.000000000 +0100 -+++ icu/source/test/intltest/loctest.cpp 2009-07-28 16:51:30.000000000 +0100 -@@ -616,7 +616,7 @@ - { - char *ch; - ch = new char[l.length() + 1]; -- ch[l.extract(0, 0x7fffffff, ch, "")] = 0; -+ ch[l.extract(0, 0x7fffffff, ch, l.length(), "")] = 0; - setFromPOSIXID(ch); - delete [] ch; - } diff --git a/icu.spec b/icu.spec index b01dd70..16c8221 100644 --- a/icu.spec +++ b/icu.spec @@ -1,11 +1,11 @@ Name: icu -Version: 4.2.1 -Release: 8%{?dist} +Version: 4.4 +Release: 1%{?dist} Summary: International Components for Unicode Group: Development/Tools License: MIT URL: http://www.icu-project.org/ -Source0: http://download.icu-project.org/files/icu4c/4.2.1/icu4c-4_2_1-src.tgz +Source0: http://download.icu-project.org/files/icu4c/4.4/icu4c-4_4-src.tgz Source1: icu-config BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: doxygen, autoconf @@ -14,9 +14,7 @@ Requires: lib%{name} = %{version}-%{release} Patch1: icu-3.4-multiarchdevel.patch Patch2: icu.icu6284.strictalias.patch Patch3: icu.6995.kannada.patch -Patch4: icu.icu7039.badextract.patch -Patch5: icu.6969.pkgdata.patch -Patch6: icu.XXXX.buildfix.patch +Patch4: icu.XXXX.buildfix.patch %description Tools and utilities for developing with icu. @@ -59,9 +57,7 @@ BuildArch: noarch %patch1 -p1 -b .multiarchdevel %patch2 -p1 -b .icu6284.strictalias.patch %patch3 -p1 -b .icu6995.kannada.patch -%patch4 -p1 -b .icu7039.badextract.patch -%patch5 -p0 -b .icu.6969.pkgdata.patch -%patch6 -p1 -b .icu.XXXX.buildfix.patch +%patch4 -p1 -b .icuXXXX.buildfix.patch %build cd source @@ -122,6 +118,7 @@ rm -rf $RPM_BUILD_ROOT %files -n lib%{name}-devel %defattr(-,root,root,-) %{_bindir}/%{name}-config +%{_bindir}/icuinfo %{_mandir}/man1/%{name}-config.1* %{_includedir}/layout %{_includedir}/unicode @@ -140,6 +137,12 @@ rm -rf $RPM_BUILD_ROOT %doc source/__docs/%{name}/html/* %changelog +* Fri Mar 19 2010 Caolan McNamara - 4.4-1 +- latest version +- drop integrated icu.6969.pkgdata.patch +- drop integrated icu.icu7039.badextract.patch +- drop integrated icu.XXXX.buildfix.patch + * Wed Dec 02 2009 Caolan McNamara - 4.2.1-8 - Resolves: rhbz#543386 update icu-config diff --git a/sources b/sources index 9dbeb81..375a36d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -e3738abd0d3ce1870dc1fd1f22bba5b1 icu4c-4_2_1-src.tgz 325a88422c900e69a7efce1b86a49ac4 icu-config +36b77e68e73f0ee9f7bb862629e33342 icu4c-4_4-src.tgz