Hello community,

here is the log from the commit of package firebird for openSUSE:Factory 
checked in at 2012-11-12 16:04:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/firebird (Old)
 and      /work/SRC/openSUSE:Factory/.firebird.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "firebird", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/firebird/firebird-classic.changes        
2012-07-30 09:13:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.firebird.new/firebird-classic.changes   
2012-11-12 16:04:50.000000000 +0100
@@ -1,0 +2,41 @@
+Sun Nov 11 15:16:01 UTC 2012 - mkube...@suse.cz
+
+- update to upstream version 2.5.2.26539 (2.5.2 final)
+  * Optimizer level solution for CORE-2790/CORE-3449
+  * CORE-2666: Make it possible to use API to do remote
+    backups/restores
+  * backup state lock should be released at latch timeout, else
+    lock state accounting becomes inconsistent
+  * CORE-3873: Server crashes while switching to the shadow if the
+    disk I/O fault happens while flushing the cache
+  * CORE-3860: Trace API: Faulty database filter crashes server
+  * CORE-3875: GBak does not check correctly parameters and backups
+    random database with -B ":"
+  * CORE-3879: Make fb_lock_print a bit more handy
+  * CORE-3656: Support for sweep information in Trace API
+  * CORE-2668: Write note into log when automatic sweep is started
+  * Enabled per-table runtime stats for sweeper (necessary for
+    CORE-3656)
+  * CORE-3884: Server crashes on preparing empty query when trace
+    is enabled
+  * CORE-3238: Makes GEN_UUID return a compliant RFC-4122 binary
+    UUID
+  * CORE-3887: CHAR_TO_UUID and UUID_TO_CHAR works different in
+    big/little endian architectures - problem similar to CORE-2898
+  * CORE-3895: High memory usage when PSQL code SELECT's from
+    stored procedure which modified some data
+  * Fixed the server crash in Stack::assign()
+  * CORE-3902: Derived fields may not be optimized via an index
+  * Fixed the broken (working as no-op) sweep in SuperServer
+  * Use better name from trunk for CORE-3911
+  * Restored the ODS level compatibility with v2.5.1 index keys,
+    while using the "old good" index key format in new indices. It
+    allows to claim that CORE-3675 and CORE-3853 are fixed (after
+    migration via backup/restore) but still operate almost
+    correctly with keys created in v2.5.1.
+  * CORE-3912: segfault in superclassic
+  * Better diagnostic (CORE-3786)
+- firebird-2.5.2-icu49.patch:
+  fix broken unicode collations (bnc#789171, CORE-3946)
+
+-------------------------------------------------------------------
firebird.changes: same change

Old:
----
  Firebird-2.5.2.26494-0.tar.bz2

New:
----
  Firebird-2.5.2.26539-0.tar.bz2
  firebird-2.5.2-icu49.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ firebird-classic.spec ++++++
--- /var/tmp/diff_new_pack.b4uSWJ/_old  2012-11-12 16:04:52.000000000 +0100
+++ /var/tmp/diff_new_pack.b4uSWJ/_new  2012-11-12 16:04:52.000000000 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define upversion 2.5.2.26494
+%define upversion 2.5.2.26539
 %define pkgversion Firebird-%{upversion}-0
 %define bname firebird
 
@@ -53,6 +53,7 @@
 Patch7:         %{bname}-2.5.2-pkgconfig.patch
 Patch8:         %{bname}-2.5.2-runlevel.patch
 Patch9:         ppc64-libdir.patch
+Patch10:        %{bname}-2.5.2-icu49.patch
 Patch11:        %{bname}-2.5.2-isqlalign.patch
 Patch12:        %{bname}-2.5.2-isqllocale.patch
 Patch13:        %{bname}-2.5.2-isqlwidth.patch
@@ -80,6 +81,7 @@
 %patch7
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1

++++++ firebird.spec ++++++
--- /var/tmp/diff_new_pack.b4uSWJ/_old  2012-11-12 16:04:52.000000000 +0100
+++ /var/tmp/diff_new_pack.b4uSWJ/_new  2012-11-12 16:04:52.000000000 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define upversion 2.5.2.26494
+%define upversion 2.5.2.26539
 %define pkgversion Firebird-%{upversion}-0
 
 %if 0%{?suse_version} < 1130
@@ -52,6 +52,7 @@
 Patch7:         %{name}-2.5.2-pkgconfig.patch
 Patch8:         %{name}-2.5.2-runlevel.patch
 Patch9:         ppc64-libdir.patch
+Patch10:        %{name}-2.5.2-icu49.patch
 Patch11:        %{name}-2.5.2-isqlalign.patch
 Patch12:        %{name}-2.5.2-isqllocale.patch
 Patch13:        %{name}-2.5.2-isqlwidth.patch
@@ -74,6 +75,7 @@
 %patch7
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch13 -p1

++++++ Firebird-2.5.2.26494-0.tar.bz2 -> Firebird-2.5.2.26539-0.tar.bz2 ++++++
/work/SRC/openSUSE:Factory/firebird/Firebird-2.5.2.26494-0.tar.bz2 
/work/SRC/openSUSE:Factory/.firebird.new/Firebird-2.5.2.26539-0.tar.bz2 differ: 
char 11, line 1

++++++ firebird-2.5.2-icu49.patch ++++++
commit 91ad9c27591ec11bfed97b7a9b22ab9e99779dad
Author: asfernandes <asfernandes@de594faa-8d1b-4a0c-9a6a-a7de5f8bf859>
Date:   Fri Oct 12 21:20:30 2012 +0000

    Backport fix for CORE-3946 - UNICODE collations does not work with ICU 49.
    
    git-svn-id: 
https://firebird.svn.sourceforge.net/svnroot/firebird/firebird/branches/B2_5_Release@57236
 de594faa-8d1b-4a0c-9a6a-a7de5f8bf859

diff --git a/src/jrd/unicode_util.cpp b/src/jrd/unicode_util.cpp
index ba675c3..ca561f9 100644
--- a/src/jrd/unicode_util.cpp
+++ b/src/jrd/unicode_util.cpp
@@ -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 @@ using namespace Firebird;
 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 @@ public:
        {
                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 @@ public:
        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 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const 
Firebird::string& icuVersion,
        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 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const 
Firebird::string& icuVersion,
 
        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 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const 
Firebird::string& icuVersion,
                        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 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const 
Firebird::string& icuVersion,
                        continue;
                }
 
-               filename.printf(inTemplate, majorVersion, minorVersion);
+               formatFilename(filename, inTemplate, majorVersion, 
minorVersion);
 
                icu->inModule = ModuleLoader::loadModule(filename);
                if (!icu->inModule)
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to