[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