Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICU 63 XP W2k8 & Vista problem [CORE6039] #6289

Closed
firebird-automations opened this issue Mar 31, 2019 · 14 comments
Closed

ICU 63 XP W2k8 & Vista problem [CORE6039] #6289

firebird-automations opened this issue Mar 31, 2019 · 14 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Hafedh TRIMECHE (hafedh.trimeche)

ICU 63 doesn't support Vista & W2k8 & XP (The minimum supported version is Windows 7: http://site.icu-project.org/download/63) so, the new version 4.0 Beta 1 generated exception:
ZeosLib >> Exception class : EZIBSQLException ; SQL Error: COLLATION UNICODE for CHARACTER SET UTF8 is not installed

Would new versions 4.0 and later support XP, Win 2008 and Vista?

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

security: Developers [ 10012 ] =>

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

32-bit of Firebird 4 should work on WinXP, at least it was built using corresponding SDK.
Not tested on WInXP. No guarantee.
You may use previous version of ICU which supports WinXP, if you need (it is 52 or 51, iirc).

@firebird-automations
Copy link
Collaborator Author

Modified by: @hvlad

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Won't Fix [ 2 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Hafedh TRIMECHE (hafedh.trimeche)

But how fbclient.dll would select 52 or 51 version whereas it was compiled to call the 63 version of the ICU?

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

ICU version is not hardcoded, Firebird load ICU libraries dynamically and should be able to use any suitable version which implements required entrypoints.
Just try it.

@firebird-automations
Copy link
Collaborator Author

Commented by: Hafedh TRIMECHE (hafedh.trimeche)

Would you please indicate how to force fbclient.dll to dynamically load (ICU 52) instead (ICU 63) dll?

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Replace supplied with Firebird icuXXX files by your own.
I thought it is obvious ;)

@firebird-automations
Copy link
Collaborator Author

Commented by: Hafedh TRIMECHE (hafedh.trimeche)

Sorry, but inspecting the fbclient.dll, it seams that the call to the ICUxx is parametrized:
ICU-VERSION=
icuin%s.dll
icuuc%s.dll

The ICUxx would be replaced only if ICU-VERSION is provided as Environment Variable.

Regards.

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Bad joke. Inspect source, not binary.

@firebird-automations
Copy link
Collaborator Author

Commented by: Hafedh TRIMECHE (hafedh.trimeche)

I would like to integrate the fbclient.dll without recompiling the source code !

@firebird-automations
Copy link
Collaborator Author

Commented by: @hvlad

Your conclusion about ICU-VERSION is wrong.
I have nothing to add, all said above.

@firebird-automations
Copy link
Collaborator Author

Commented by: @pavel-zotov

Hafedh,

I have checked current FB snapshot ( WI-T4.0.0.1479 ) on Win XP SP 3 (32 bit) and it *seems* that ICU libraries of 5.2 works correct.

Please take ICU 5.2 libraries and example from here:
https://drive.google.com/open?id=1Bo7jxlDknnrKk2YEnZJr0ced_x_cIWx1

Download FB snapshot, unpack it and remove all ICU*.dat and ICU*.dll files from there.
Then put on place of them icu52* files from link (see above).
Then run cmd.exe, change code page to 65001 and check some of your scenarios which use UTF text.

I ran this with my own sample and can state that (1) no errors in ISQL and (2) text is readable.
The only issue tha i can see is record in firebird.log:

CSPROG Thu Apr 4 14:31:37 2019
ICU error (0) retrieving the system time zone (Московское время (зима)). Falling back to displacement.

// Московское время (зима) -- localized name of my time zone.

Here is the screen of what i see:

https://drive.google.com/open?id=1e6Vi5OhqWw-CetngllhmMR464QNSeN9r

PS.
I did not examine all fbt-repo tests on Windows XP since januray-2019, when i decided to migrate tests on Win 8,1 64 bit. Perhaps some of these tests will not pass on recent FB with ICU 5.2 - this must be checked separately.

@firebird-automations
Copy link
Collaborator Author

Commented by: Hafedh TRIMECHE (hafedh.trimeche)

Thank you Pavel,

I just substituted the ICU DLLs with the 5.7.1 (latest version 32 bit listed: http://site.icu-project.org/download/57#TOC-ICU4C-Download) ones and worked fine.

-----------------------------------
intl_module = builtin {
icu_versions = 5.7
}
-----------------------------------

But when keeping 6.3 DLLs in the Firebird's binary folder, an exception is raised stating that ICU not installed which means that only 5.x DLLs would exclusively be kept.

Is there a way to make FB handle priority of DLL usage even the default ones are in binary path? Versions 5.xx > Vesions 6.xx > Versions Default

Best regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant