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;
