Hello community,

here is the log from the commit of package firebird for openSUSE:Factory 
checked in at 2018-07-10 16:13:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/firebird (Old)
 and      /work/SRC/openSUSE:Factory/.firebird.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "firebird"

Tue Jul 10 16:13:48 2018 rev:49 rq:621129 version:3.0.3.32900

Changes:
--------
--- /work/SRC/openSUSE:Factory/firebird/firebird.changes        2018-03-31 
15:35:40.680319850 +0200
+++ /work/SRC/openSUSE:Factory/.firebird.new/firebird.changes   2018-07-10 
16:13:55.917676059 +0200
@@ -1,0 +2,11 @@
+Wed Jul  4 11:44:02 UTC 2018 - [email protected]
+
+- replace unicode-handle-the-ICU-version-hack-from-SuSE.patch
+  with more general upstream solution:
+  * An-attempt-to-fix-CORE-5764-need-feedback-on-snapsho.patch
+  * Fixed-a-code-somewhy-accepted-by-gcc6.patch
+- unicode-handle-new-SUSE-ICU-version-hack.patch:
+  search also for "suse%d.%d" soname pattern to fix build after
+  upcoming ICU update (bsc#1095425)
+
+-------------------------------------------------------------------

Old:
----
  unicode-handle-the-ICU-version-hack-from-SuSE.patch

New:
----
  An-attempt-to-fix-CORE-5764-need-feedback-on-snapsho.patch
  Fixed-a-code-somewhy-accepted-by-gcc6.patch
  unicode-handle-new-SUSE-ICU-version-hack.patch

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

Other differences:
------------------
++++++ firebird.spec ++++++
--- /var/tmp/diff_new_pack.1BydfF/_old  2018-07-10 16:14:00.061669609 +0200
+++ /var/tmp/diff_new_pack.1BydfF/_new  2018-07-10 16:14:00.065669603 +0200
@@ -46,13 +46,15 @@
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %endif
 
-Patch2:         fbguard-allow-creating-a-guard-pidfile.patch
-Patch3:         use-killproc-in-stop-branch-of-SuSE-init-script.patch
-Patch4:         disable-xinetd-service-by-default.patch
-Patch5:         add-pkgconfig-files.patch
-Patch6:         unicode-handle-the-ICU-version-hack-from-SuSE.patch
-Patch8:         Provide-sized-global-delete-operators-when-compiled-.patch
-Patch9:         Make-it-build-with-icu60.patch
+Patch1:         fbguard-allow-creating-a-guard-pidfile.patch
+Patch2:         use-killproc-in-stop-branch-of-SuSE-init-script.patch
+Patch3:         disable-xinetd-service-by-default.patch
+Patch4:         add-pkgconfig-files.patch
+Patch5:         Provide-sized-global-delete-operators-when-compiled-.patch
+Patch6:         Make-it-build-with-icu60.patch
+Patch7:         An-attempt-to-fix-CORE-5764-need-feedback-on-snapsho.patch
+Patch8:         Fixed-a-code-somewhy-accepted-by-gcc6.patch
+Patch9:         unicode-handle-new-SUSE-ICU-version-hack.patch
 # work around problems with old g++
 Patch91:        work-around-g-problem-in-SLE11.patch
 Patch92:        use-C-98-on-SLE11.patch
@@ -76,11 +78,13 @@
     exit 1
 fi
 # --
+%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
 %patch8 -p1
 %patch9 -p1
 # --

++++++ An-attempt-to-fix-CORE-5764-need-feedback-on-snapsho.patch ++++++
From: AlexPeshkoff <[email protected]>
Date: Wed, 21 Mar 2018 20:05:29 +0300
Subject: An attempt to fix CORE-5764, need feedback on snapshot build
Patch-mainline: T4_0_0_Alpha2
Git-commit: 63f4e450eb6eedc8430b800bae5e0c92cfb7b068
References: CORE-5764

---
 src/common/unicode_util.cpp | 72 +++++++++++++++++++++------------------------
 1 file changed, 33 insertions(+), 39 deletions(-)

--- a/src/common/unicode_util.cpp
+++ b/src/common/unicode_util.cpp
@@ -50,9 +50,6 @@
 #      include <unicode/utf_old.h>
 #endif
 
-// The next major ICU version after 4.8 is 49.
-#define ICU_NEW_VERSION_MEANING        49
-
 
 using namespace Firebird;
 
@@ -122,7 +119,7 @@ public:
 
 namespace Jrd {
 
-static void formatFilename(PathName& filename, const char* templateName,
+static ModuleLoader::Module* formatAndLoad(const char* templateName,
        int majorVersion, int minorVersion);
 
 
@@ -230,10 +227,7 @@ private:
        ImplementConversionICU(int aMajorVersion, int aMinorVersion)
                : BaseICU(aMajorVersion, aMinorVersion)
        {
-               PathName filename;
-               formatFilename(filename, ucTemplate, aMajorVersion, 
aMinorVersion);
-
-               module = ModuleLoader::fixAndLoadModule(filename);
+               module = formatAndLoad(ucTemplate, aMajorVersion, 
aMinorVersion);
                if (!module)
                        return;
 
@@ -343,16 +337,27 @@ static const char* const COLL_30_VERSION = "41.128.4.4";  
// ICU 3.0 collator ver
 static GlobalPtr<UnicodeUtil::ICUModules> icuModules;
 
 
-static void formatFilename(PathName& filename, const char* templateName,
+static ModuleLoader::Module* formatAndLoad(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);
+       // ICU has several schemas for placing version into file name
+       const char* patterns[] =
+       {
+               "%d", "%d_%d", "%d%d", NULL
+       };
+
+       PathName s, filename;
+       for (const char** p = patterns; *p; ++p)
+       {
+               s.printf(*p, majorVersion, minorVersion);
+               filename.printf(templateName, s.c_str());
+
+               ModuleLoader::Module* module = 
ModuleLoader::fixAndLoadModule(filename);
+               if (module)
+                       return module;
+       }
 
-       filename.printf(templateName, s.c_str());
+       return NULL;
 }
 
 
@@ -975,17 +980,14 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const string& 
icuVersion, const string& c
                        continue;
 
                string configVersion;
-
-               if (majorVersion >= ICU_NEW_VERSION_MEANING)
+               configVersion.printf("%d.%d", majorVersion, minorVersion);
+               if (version != configVersion)
                {
                        minorVersion = 0;
                        configVersion.printf("%d", majorVersion);
+                       if (version != configVersion)
+                               continue;
                }
-               else
-                       configVersion.printf("%d.%d", majorVersion, 
minorVersion);
-
-               if (version != configVersion)
-                       continue;
 
                ReadLockGuard readGuard(icuModules->lock, 
"UnicodeUtil::loadICU");
 
@@ -993,27 +995,20 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const string& 
icuVersion, const string& c
                if (icuModules->modules.get(version, icu))
                        return icu;
 
-               PathName filename;
-               formatFilename(filename, ucTemplate, majorVersion, 
minorVersion);
-
                icu = FB_NEW_POOL(*getDefaultMemoryPool()) ICU(majorVersion, 
minorVersion);
 
-               icu->ucModule = ModuleLoader::fixAndLoadModule(filename);
-
+               icu->ucModule = formatAndLoad(ucTemplate, majorVersion, 
minorVersion);
                if (!icu->ucModule)
                {
-                       gds__log("failed to load module %s", filename.c_str());
+                       gds__log("failed to load UC icu module version %s", 
configVersion);
                        delete icu;
                        continue;
                }
 
-               formatFilename(filename, inTemplate, majorVersion, 
minorVersion);
-
-               icu->inModule = ModuleLoader::fixAndLoadModule(filename);
-
+               icu->inModule = formatAndLoad(inTemplate, majorVersion, 
minorVersion);
                if (!icu->inModule)
                {
-                       gds__log("failed to load module %s", filename.c_str());
+                       gds__log("failed to load IN icu module version %s", 
configVersion);
                        delete icu;
                        continue;
                }
@@ -1138,26 +1133,25 @@ UnicodeUtil::ConversionICU& 
UnicodeUtil::getConversionICU()
        LocalStatus ls;
        CheckStatusWrapper lastError(&ls);
        string version;
-       const int majorArray[] = {5, 4, 3, 6, 0};
 
-       for (const int* major = majorArray; *major; ++major)
+       for (int major = 4; major <= 79; ++major)
        {
                for (int minor = 20; minor--; ) // from 19 down to 0
                {
-                       if ((*major == favMaj) && (minor == favMin))
+                       if ((major == favMaj) && (minor == favMin))
                        {
                                continue;
                        }
 
                        try
                        {
-                               if ((convIcu = 
ImplementConversionICU::create(*major, minor)))
+                               if ((convIcu = 
ImplementConversionICU::create(major, minor)))
                                        return *convIcu;
                        }
                        catch (const Exception& ex)
                        {
                                ex.stuffException(&lastError);
-                               version.printf("Error loading ICU library 
version %d.%d", *major, minor);
+                               version.printf("Error loading ICU library 
version %d.%d", major, minor);
                        }
                }
        }
@@ -1180,7 +1174,7 @@ string UnicodeUtil::getDefaultIcuVersion()
        string rc;
        UnicodeUtil::ConversionICU& icu(UnicodeUtil::getConversionICU());
 
-       if (icu.vMajor >= ICU_NEW_VERSION_MEANING)
+       if (icu.vMajor >= 10 && icu.vMinor == 0)
                rc.printf("%d", icu.vMajor);
        else
                rc.printf("%d.%d", icu.vMajor, icu.vMinor);
++++++ Fixed-a-code-somewhy-accepted-by-gcc6.patch ++++++
From: AlexPeshkoff <[email protected]>
Date: Thu, 22 Mar 2018 12:29:38 +0300
Subject: Fixed a code somewhy accepted by gcc6
Patch-mainline: T4_0_0_Alpha2
Git-commit: 885f2e4457362800ca62551122c0060ce25e152f
References: CORE-5764

---
 src/common/unicode_util.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/src/common/unicode_util.cpp
+++ b/src/common/unicode_util.cpp
@@ -1000,7 +1000,7 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const string& 
icuVersion, const string& c
                icu->ucModule = formatAndLoad(ucTemplate, majorVersion, 
minorVersion);
                if (!icu->ucModule)
                {
-                       gds__log("failed to load UC icu module version %s", 
configVersion);
+                       gds__log("failed to load UC icu module version %s", 
configVersion.c_str());
                        delete icu;
                        continue;
                }
@@ -1008,7 +1008,7 @@ UnicodeUtil::ICU* UnicodeUtil::loadICU(const string& 
icuVersion, const string& c
                icu->inModule = formatAndLoad(inTemplate, majorVersion, 
minorVersion);
                if (!icu->inModule)
                {
-                       gds__log("failed to load IN icu module version %s", 
configVersion);
+                       gds__log("failed to load IN icu module version %s", 
configVersion.c_str());
                        delete icu;
                        continue;
                }
++++++ unicode-handle-new-SUSE-ICU-version-hack.patch ++++++
From: Michal Kubecek <[email protected]>
Date: Wed, 4 Jul 2018 13:36:57 +0200
Subject: unicode: handle new SUSE ICU version hack
Patch-mainline: Never, SUSE specific
References: bsc#1095425

Right after upstream adopted changes allowing compatibility with the way
openSUSE names ICU libraries, openSUSE came with another hack: to
distinguish ICU libraries built with U_CHARSET_IS_UTF8=0 from those built
with upstream default (1), openSUSE packages added "suse" to soname as
the change affects library ABI.

Add "suse%d.%d" to soname patterns tested when searching for ICU libraries.
---
 src/common/unicode_util.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/src/common/unicode_util.cpp
+++ b/src/common/unicode_util.cpp
@@ -343,7 +343,7 @@ static ModuleLoader::Module* formatAndLoad(const char* 
templateName,
        // ICU has several schemas for placing version into file name
        const char* patterns[] =
        {
-               "%d", "%d_%d", "%d%d", NULL
+               "suse%d.%d", "%d", "%d_%d", "%d%d", NULL
        };
 
        PathName s, filename;

Reply via email to