[firebird] clog

Philippe Makowski makowski at fedoraproject.org
Fri Nov 9 18:51:31 UTC 2012


commit b1b77a81456e95640e94cf0cc6cab7fe60409e80
Author: Philippe Makowski <pmakowski at espelida.com>
Date:   Fri Nov 9 19:50:54 2012 +0100

    clog

 .gitignore                         |    1 +
 firebird-2.5.1-svn-CORE-3610.patch |   32 --------
 firebird-2.5.2-svn-CORE-3946.patch |  151 ++++++++++++++++++++++++++++++++++++
 firebird.spec                      |   17 ++--
 sources                            |    2 +-
 5 files changed, 162 insertions(+), 41 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index d63e901..2088d95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ Firebird-2.1.3.18185-0.RC2.tar.bz2
 /Firebird-2.5.0.26074-0.tar.bz2
 /Firebird-2.5.1.26349-0.tar.bz2
 /Firebird-2.5.1.26351-0.tar.bz2
+/Firebird-2.5.2.26539-0.tar.bz2
diff --git a/firebird-2.5.2-svn-CORE-3946.patch b/firebird-2.5.2-svn-CORE-3946.patch
new file mode 100644
index 0000000..5fb9f30
--- /dev/null
+++ b/firebird-2.5.2-svn-CORE-3946.patch
@@ -0,0 +1,151 @@
+--- src/jrd/unicode_util.cpp	2012/10/12 09:56:14	57235
++++ src/jrd/unicode_util.cpp	2012/10/12 21:20:30	57236
+@@ -42,6 +42,9 @@
+ #include "unicode/ucnv.h"
+ #include "unicode/ucol.h"
+ 
++// The next major ICU version after 4.8 is 49.
++#define ICU_NEW_VERSION_MEANING	49
++
+ 
+ using namespace Firebird;
+ 
+@@ -49,8 +52,16 @@
+ namespace Jrd {
+ 
+ 
++#if U_ICU_VERSION_MAJOR_NUM >= ICU_NEW_VERSION_MEANING
++const char* const UnicodeUtil::DEFAULT_ICU_VERSION = STRINGIZE(U_ICU_VERSION_MAJOR_NUM);
++#else
+ const char* const UnicodeUtil::DEFAULT_ICU_VERSION =
+ 	STRINGIZE(U_ICU_VERSION_MAJOR_NUM)"."STRINGIZE(U_ICU_VERSION_MINOR_NUM);
++#endif
++
++
++static void formatFilename(PathName& filename, const char* templateName,
++	int majorVersion, int minorVersion);
+ 
+ 
+ // encapsulate ICU collations libraries
+@@ -79,6 +90,11 @@
+ 	{
+ 		string symbol;
+ 
++		symbol.printf("%s_%d", name, majorVersion);
++		module->findSymbol(symbol, ptr);
++		if (ptr)
++			return;
++
+ 		symbol.printf("%s_%d_%d", name, majorVersion, minorVersion);
+ 		module->findSymbol(symbol, ptr);
+ 		if (ptr)
+@@ -157,14 +173,25 @@
+ 	RWLock lock;
+ };
+ 
+-namespace {
+-	GlobalPtr<UnicodeUtil::ICUModules> icuModules;
+-}
++static GlobalPtr<UnicodeUtil::ICUModules> icuModules;
+ 
+ 
+ static const char* const COLL_30_VERSION = "41.128.4.4";	// ICU 3.0 collator version
+ 
+ 
++static void formatFilename(PathName& filename, const char* templateName,
++	int majorVersion, int minorVersion)
++{
++	string s;
++	if (majorVersion >= ICU_NEW_VERSION_MEANING)
++		s.printf("%d", majorVersion);
++	else
++		s.printf("%d%d", majorVersion, minorVersion);
++
++	filename.printf(templateName, s.c_str());
++}
++
++
+ static void getVersions(const string& configInfo, ObjectsArray<string>& versions)
+ {
+ 	charset cs;
+@@ -758,17 +785,17 @@
+ 	const Firebird::string& configInfo)
+ {
+ #if defined(WIN_NT)
+-	const char* const inTemplate = "icuin%d%d.dll";
+-	const char* const ucTemplate = "icuuc%d%d.dll";
++	const char* const inTemplate = "icuin%s.dll";
++	const char* const ucTemplate = "icuuc%s.dll";
+ #elif defined(DARWIN)
+ 	const char* const inTemplate = "/Library/Frameworks/Firebird.framework/Versions/A/Libraries/libicui18n.dylib";
+ 	const char* const ucTemplate = "/Library/Frameworks/Firebird.framework/versions/A/Libraries/libicuuc.dylib";
+ #elif defined(HPUX)
+-	const char* const inTemplate = "libicui18n.sl.%d%d";
+-	const char* const ucTemplate = "libicuuc.sl.%d%d";
++	const char* const inTemplate = "libicui18n.sl.%s";
++	const char* const ucTemplate = "libicuuc.sl.%s";
+ #else
+-	const char* const inTemplate = "libicui18n.so.%d%d";
+-	const char* const ucTemplate = "libicuuc.so.%d%d";
++	const char* const inTemplate = "libicui18n.so.%s";
++	const char* const ucTemplate = "libicuuc.so.%s";
+ #endif
+ 
+ 	ObjectsArray<string> versions;
+@@ -776,24 +803,28 @@
+ 
+ 	string version = icuVersion.isEmpty() ? versions[0] : icuVersion;
+ 	if (version == "default")
+-	{
+-		version.printf("%d.%d", U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM);
+-	}
++		version = DEFAULT_ICU_VERSION;
+ 
+ 	for (ObjectsArray<string>::const_iterator i(versions.begin()); i != versions.end(); ++i)
+ 	{
+ 		int majorVersion, minorVersion;
++		int n = sscanf((*i == "default" ? version : *i).c_str(), "%d.%d",
++			&majorVersion, &minorVersion);
+ 
+-		if (*i == "default")
+-		{
+-			majorVersion = U_ICU_VERSION_MAJOR_NUM;
+-			minorVersion = U_ICU_VERSION_MINOR_NUM;
+-		}
+-		else if (sscanf(i->c_str(), "%d.%d", &majorVersion, &minorVersion) != 2)
++		if (n == 1)
++			minorVersion = 0;
++		else if (n != 2)
+ 			continue;
+ 
+ 		string configVersion;
+-		configVersion.printf("%d.%d", majorVersion, minorVersion);
++
++		if (majorVersion >= ICU_NEW_VERSION_MEANING)
++		{
++			minorVersion = 0;
++			configVersion.printf("%d", majorVersion);
++		}
++		else
++			configVersion.printf("%d.%d", majorVersion, minorVersion);
+ 
+ 		if (version != configVersion)
+ 			continue;
+@@ -805,7 +836,7 @@
+ 			return icu;
+ 
+ 		PathName filename;
+-		filename.printf(ucTemplate, majorVersion, minorVersion);
++		formatFilename(filename, ucTemplate, majorVersion, minorVersion);
+ 
+ 		icu = FB_NEW(*getDefaultMemoryPool()) ICU(majorVersion, minorVersion);
+ 
+@@ -822,7 +853,7 @@
+ 			continue;
+ 		}
+ 
+-		filename.printf(inTemplate, majorVersion, minorVersion);
++		formatFilename(filename, inTemplate, majorVersion, minorVersion);
+ 
+ 		icu->inModule = ModuleLoader::loadModule(filename);
+ 		if (!icu->inModule)
diff --git a/firebird.spec b/firebird.spec
index 46baee3..8dd3aa5 100644
--- a/firebird.spec
+++ b/firebird.spec
@@ -1,12 +1,12 @@
-%global pkgname Firebird-2.5.1.26351-0
+%global pkgname Firebird-2.5.2.26539-0
 %global fbroot %{_libdir}/%{name}
-%global major 2.5.1
+%global major 2.5.2
 
 
 Summary: SQL relational database management system
 Name:  firebird
-Version: 2.5.1.26351.0
-Release: 4%{?dist}
+Version: 2.5.2.26539.0
+Release: 1%{?dist}
 
 Group:  Applications/Databases
 License: Interbase
@@ -22,11 +22,8 @@ Source5: firebird-classic.socket
 Source6: firebird-superclassic.service
 Source7: firebird-superserver.service
 
-# sync the utilities list with other arches (will be sent upstream)
-#Patch0: firebird-2.5.0.26074-s390x.patch
-
 # from upstream
-Patch0: firebird-2.5.1-svn-CORE-3610.patch
+Patch0: firebird-2.5.2-svn-CORE-3946
 
 BuildRequires: autoconf
 BuildRequires: automake
@@ -517,6 +514,10 @@ fi
 
 
 %changelog
+* Fri Nov 09 2012 Philippe Makowski <makowski at fedoraproject.org>  2.5.2.26539.0-1
+- new upstream (bug fix release)
+- added patch from upstream to fix Firebird CORE-3946
+
 * Sat Aug 25 2012 Philippe Makowski <makowski at fedoraproject.org> 2.5.1.26351.0-4
 - Modernize systemd scriptlets (bug #850109)
 
diff --git a/sources b/sources
index ac32939..2e2b41a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-1772fba4f09c8fc84d989282405f90fd  Firebird-2.5.1.26351-0.tar.bz2
+adf2d2f9d48a53dc6c490ba1e44631fd  Firebird-2.5.2.26539-0.tar.bz2


More information about the scm-commits mailing list