From: marius a. p. <ma...@gm...> - 2017-10-30 15:04:33
Attachments:
firebird3.0_3.0.2.32703.ds4-11ubuntu1.debdiff
|
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. ... Adam -- System Information: Debian Release: buster/sid APT prefers bionic APT policy: (500, 'bionic') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.13.0-16-lowlatency (SMP w/4 CPU cores; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_CA:en (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) _______________________________________________ pkg-firebird-general mailing list pkg...@li... http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-firebird-general |
From: Michal K. <mi...@mk...> - 2017-10-31 08:25:53
|
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 |
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 > > |
From: Michal K. <mi...@mk...> - 2017-11-01 10:41:04
|
On Wed, Nov 01, 2017 at 12:17:41PM +0200, marius adrian popa wrote: > 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 Yes, FB 3.0 is already built with -std=c++11 so that it doesn't have problem with new ICU. > 2.5 is already removed in debian testing / next ubuntu versions That's why I think this isn't much problem for distribution packages; only latest versions of distribution have ICU >= 59.1 and those are likely to have switched to FB3 already. It's a problem for people who build Firebird 2.5 for new distributions themselves, though. The workaround defining UCHAR_TYPE is probably the best way to go at the moment. I just wanted to point out that more problems with ICU can be expected in the future. Michal Kubecek |