From: marius a. p. <ma...@gm...> - 2017-11-01 10:17:49
|
Thanks for the input here is also the libreoffice approach for new icu https://github.com/LibreOffice/core/commit/fabad007c60958f2ff87e8f636ff6a798ad1f963#diff-5cdae6d283d6fdef5700f98b098748cc I guess the new icu will work on new distros with firebird 3.0 2.5 is already removed in debian testing / next ubuntu versions On Tue, Oct 31, 2017 at 9:52 AM, Michal Kubecek <mi...@mk...> wrote: > On Mon, Oct 30, 2017 at 05:04:25PM +0200, marius adrian popa wrote: > > Firebird 3.0 icu59 ubuntu related patch > > > > ---------- Forwarded message ---------- > > From: Adam Conrad <adc...@de...> > > Date: Fri, Oct 27, 2017 at 10:03 PM > > Subject: [pkg-firebird-general] Bug#879972: firebird3.0: FTBFS with > icu59, > > simple workaround/patch attached > > To: Debian Bug Tracking System <su...@bu...> > > > > > > Package: firebird3.0 > > Version: 3.0.2.32703.ds4-11 > > Severity: important > > Tags: patch > > User: ubu...@li... > > Usertags: origin-ubuntu bionic ubuntu-patch > > > > > > > > In Ubuntu, the attached patch was applied to achieve the following: > > > > * Define UCHAR_TYPE=uint16_t to avoid C++11 and fix FTBFS with icu59. > > > > So, here's what's happening. In icu59, UChar is defined as char16_t if > > you're compiling a C++ project (ie: ifdef __cplusplus), but char16_t is > > a C++11 type. One could argue this is an ICU bug for forcing rdeps to > > conform to a newer C++ standard (and one could even win that argument, > > I imagine), but I figured working around it in firebird was the path of > > least resistance. > > > > My first attempt was to change the firebird build from std=gnu++98 to > > std=gnu++11. Don't do that. I mean, try if you want, but it does not > > end well. > > > > This patch just tells icu to use the same type for UChar that it used to > > and it seems to do the trick here. So, enjoy. > > This will probably work around the immediate build problem but as > I pointed out some time ago in > > http://firebird.1100200.n4.nabble.com/heads-up-ICU-59-1- > requires-C-11-td4645984.html > > the real problem is that starting with version 59.1, ICU officially > requires C++11 so that there may be other, more subtle, issues with it > and even if not, more can be expected to come with newer versions. > > On the other hand, making 2.5 code fully conform to C++11 might bring > other problems so addressing ICU compatibility problems one by one is > probably the only viable option (except just claiming that users of > distributions that new should use 3.0). > > Michal Kubecek > > |