Firebird 4 on SLES 15 SP 3 - Could not find acceptable ICU library

482 views
Skip to first unread message

Miroslav Vacek

unread,
Aug 3, 2021, 11:19:05 AM8/3/21
to firebird-support

Hello everyone,

Today I tried to install Firebird-4.0.0.2496 on freshly created box running SLES 15 SP 3 and I encountered some problem I need help with.

My installation attempt failed with following exception.
./install.sh
Firebird 4.0.0.2496-0.amd64 Installation Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library
Install completed

I checked what libicu version I have and this is the result.
ls /usr/lib64 | grep -i libicu
libicudata.so.suse65.1
libicui18n.so.suse65.1
libicuio.so.suse65.1
libicutest.so.suse65.1
libicutu.so.suse65.1
libicuuc.so.suse65.1

Seeing this I tried to create symlinks to make shared library names recognizable to Firebird installer.
ln -s /usr/lib64/libicudata.so.suse65.1 /usr/lib64/libicudata.so.65_1
ln -s /usr/lib64/libicui18n.so.suse65.1 /usr/lib64/libicui18n.so.65_1
ln -s /usr/lib64/libicuio.so.suse65.1 /usr/lib64/libicuio.so.65_1
ln -s /usr/lib64/libicutest.so.suse65.1 /usr/lib64/libicutest.so.65_1
ln -s /usr/lib64/libicutu.so.suse65.1 /usr/lib64/libicutu.so.65_1
ln -s /usr/lib64/libicuuc.so.suse65.1 /usr/lib64/libicuuc.so.65_1


With symlinks in place I re-tried installation only to fail again with exactly the same exception.

Only workaround I found so far was to completely remove libicu-devel package from my SLES 15 SP 3 and build latest libicu version (69.1) from GitHub. This however is a little bit impractical.

Now my questions would be as follows.
  1. Does Firebird 4 need libicu version higher than 65.1 present in vanilla SLES 15 SP 3 installation?
  2. Should Firebird 4 installer work with symlinks to libicuXXX.so.65_1?
  3. Previously I had a problem with Firebird 3.0.4 on SLES 12 SP 3 (CORE5764) which resulted in libicu detection changes in next Firebird release. Is it possible that similar problem wormed its way to Firebird 4?
Any input would be appreciated.

Thanks,
Miroslav

Vlad Khorsun

unread,
Aug 3, 2021, 12:19:22 PM8/3/21
to firebird-support
 Try symlinks with pattern "libicu*.so.65". I.e. without suffix "_1"

Regards,
Vlad

Miroslav Vacek

unread,
Aug 4, 2021, 4:55:22 AM8/4/21
to firebird-support
Hi Vlad,

Thanks for the tip.

I removed my symlinks and created new ones without "_1" suffix as you suggested. This is how things look like now on my box.
ls /usr/lib64 | grep -i libicu
libicudata.so.65
libicudata.so.suse65.1
libicui18n.so.65
libicui18n.so.suse65.1
libicuio.so.65
libicuio.so.suse65.1
libicutest.so.65
libicutest.so.suse65.1
libicutu.so.65
libicutu.so.suse65.1
libicuuc.so.65
libicuuc.so.suse65.1


I tried to install Firebird 4 again with the new symlinks in place and ended up with new exception.
./install.sh
Firebird 4.0.0.2496-0.amd64 Installation
Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library
Missing entrypoint ucnv_open in ICU library
Error loading ICU library version 65.0

Install completed

I tried to check the entrypoints within libicuuc.and they all seem to have _1 suffix.
nm -D libicuuc.so.suse65.1 | grep ucnv_open
0000000000080fb0 T ucnv_openAllNames_65_1
000000000007a860 T ucnv_openCCSID_65_1
000000000007a7b0 T ucnv_openPackage_65_1
00000000000801e0 T ucnv_openStandardNames_65_1
000000000007a7c0 T ucnv_openU_65_1
000000000007a780 T ucnv_open_65_1

I also tried to have both kinds of symlinks in place. One set without "_1" suffix and the other with it.
This however results in exactly the same error as described above.

Any other ideas?

Regards,
Miroslav

Dne úterý 3. srpna 2021 v 18:19:22 UTC+2 uživatel vlad.k...@gmail.com napsal:

Vlad Khorsun

unread,
Aug 5, 2021, 9:15:51 AM8/5/21
to firebird-support
I've reproduced the issue and works on a patch.

Regards,
Vlad

Miroslav Vacek

unread,
Aug 5, 2021, 10:53:04 AM8/5/21
to firebird-support
Much obliged, Vlad!

Dne čtvrtek 5. srpna 2021 v 15:15:51 UTC+2 uživatel vlad.k...@gmail.com napsal:

Vlad Khorsun

unread,
Aug 8, 2021, 4:29:06 AM8/8/21
to firebird-support
Miroslav,

try snapshot build, please. No custom symlinks required now.

Regards,
Vlad

Miroslav Vacek

unread,
Aug 9, 2021, 5:39:34 AM8/9/21
to firebird-support
Hi Vlad,

I tested with snapshot build (from  2021-08-09 01:34:07) and I can report mixed results.

Running without any custom symlinks (e.g. with SLES 15 SP 3 defaults) my Firebird 4 installation still fails.
# ICU listing
ls /usr/lib64/ | grep icu
libicudata.so.suse65.1
libicui18n.so.suse65.1
libicuio.so.suse65.1
libicutest.so.suse65.1
libicutu.so.suse65.1
libicuuc.so.suse65.1

# Firebird 4 snapshot install
./install.sh
Firebird 4.0.1.2565-0.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
unable to open database
Could not find acceptable ICU library
Install completed


However with custom symlinks following libicuXXX.so.65_1 pattern my Firebird 4 installation now succeeds.
# ICU libraries listing
ls /usr/lib64/ | grep icu
libicudata.so.65_1
libicudata.so.suse65.1
libicui18n.so.65_1
libicui18n.so.suse65.1
libicuio.so.65_1
libicuio.so.suse65.1
libicutest.so.65_1
libicutest.so.suse65.1
libicutu.so.65_1
libicutu.so.suse65.1
libicuuc.so.65_1
libicuuc.so.suse65.1

# Firebird 4 snapshot install
./install.sh
Firebird 4.0.1.2565-0.amd64 Installation

Press Enter to start installation or ^C to abort
Extracting install data
Updated /etc/services
Please enter new password for SYSDBA user: masterkey
Install completed

All things considered I think I can live with making some custom symlinks. It definitely beats building custom ICU from sources.

Regards,
Miroslav

Vlad Khorsun

unread,
Aug 9, 2021, 5:50:31 AM8/9/21
to firebird-support
On Monday, 9 August 2021 at 12:39:34 UTC+3 Miroslav Vacek wrote:
Hi Vlad,

I tested with snapshot build (from  2021-08-09 01:34:07) and I can report mixed results.

Running without any custom symlinks (e.g. with SLES 15 SP 3 defaults) my Firebird 4 installation still fails.
# ICU listing
ls /usr/lib64/ | grep icu
libicudata.so.suse65.1
libicui18n.so.suse65.1
libicuio.so.suse65.1
libicutest.so.suse65.1
libicutu.so.suse65.1
libicuuc.so.suse65.1
 

  Is there no libicuXXX.so symlinks by default ? I.e. without suffix with version number.

Regards,
Vlad

Miroslav Vacek

unread,
Aug 9, 2021, 6:18:14 AM8/9/21
to firebird-support
Dne pondělí 9. srpna 2021 v 11:50:31 UTC+2 uživatel vlad.k...@gmail.com napsal:

  Is there no libicuXXX.so symlinks by default ? I.e. without suffix with version number.

Regards,
Vlad


Yes, you are correct.
On vanilla SLES 15 SP 3 installation there are no preexisting symlinks for libicu whatsoever.
Only thing there is are those strangely named shared libraries libicuXXX.so.suse65.1 and nothing more.

Regards,
Miroslav

Vlad Khorsun

unread,
Aug 9, 2021, 6:56:51 AM8/9/21
to firebird-support
On Monday, 9 August 2021 at 13:18:14 UTC+3 Miroslav Vacek wrote:
Yes, you are correct.
On vanilla SLES 15 SP 3 installation there are no preexisting symlinks for libicu whatsoever.
Only thing there is are those strangely named shared libraries libicuXXX.so.suse65.1 and nothing more.

  Very strange.  I check with OpenSUSE 15.3 and it have common symlinks for ICU:

~/work> ls /usr/lib64/libicu* -1
/usr/lib64/libicudata.so
/usr/lib64/libicudata.so.suse65.1
/usr/lib64/libicui18n.so
/usr/lib64/libicui18n.so.suse65.1
/usr/lib64/libicuio.so
/usr/lib64/libicuio.so.suse65.1
/usr/lib64/libicutest.so
/usr/lib64/libicutest.so.suse65.1
/usr/lib64/libicutu.so
/usr/lib64/libicutu.so.suse65.1
/usr/lib64/libicuuc.so
/usr/lib64/libicuuc.so.suse65.1

Well, it seems for SLES one need to create symlinks without "suse". Two should be enough, for libicuuc and for libicui18n.

Regards,
Vlad

Tomasz Tyrakowski

unread,
Aug 9, 2021, 8:10:57 AM8/9/21
to firebird...@googlegroups.com
On 09.08.2021 at 12:56, Vlad Khorsun wrote:
> Very strange. I check with OpenSUSE 15.3 and it have common symlinks for
> ICU:
>
> ~/work> ls /usr/lib64/libicu* -1
> /usr/lib64/libicudata.so
> /usr/lib64/libicudata.so.suse65.1
> /usr/lib64/libicui18n.so
> /usr/lib64/libicui18n.so.suse65.1
> /usr/lib64/libicuio.so
> /usr/lib64/libicuio.so.suse65.1
> /usr/lib64/libicutest.so
> /usr/lib64/libicutest.so.suse65.1
> /usr/lib64/libicutu.so
> /usr/lib64/libicutu.so.suse65.1
> /usr/lib64/libicuuc.so
> /usr/lib64/libicuuc.so.suse65.1
>
> Well, it seems for SLES one need to create symlinks without "suse". Two
> should be enough, for libicuuc and for libicui18n.

Just a quick note: AFAIK in some Linux distros, the "versionless"
libxxx.so files / symlinks are created only if you instal libxxx-dev /
libxxx-devel package (naming depends on the distro).
Maybe you've got it installed while Miroslav has not.

cheers
Tomasz
________________________________


Ta wiadomość zawiera poufne informacje przeznaczone tylko dla adresata. Jeżeli nie jesteście Państwo jej adresatem, bądź otrzymaliście ją przez pomyłkę, prosimy o powiadomienie o tym nadawcy oraz trwałe jej usunięcie.

Vlad Khorsun

unread,
Aug 9, 2021, 8:17:22 AM8/9/21
to firebird-support
On Monday, 9 August 2021 at 15:10:57 UTC+3 Tomasz Tyrakowski wrote:
On 09.08.2021 at 12:56, Vlad Khorsun wrote:
> Very strange. I check with OpenSUSE 15.3 and it have common symlinks for
> ICU:
>
> ~/work> ls /usr/lib64/libicu* -1
> /usr/lib64/libicudata.so
> /usr/lib64/libicudata.so.suse65.1
> /usr/lib64/libicui18n.so
> /usr/lib64/libicui18n.so.suse65.1
> /usr/lib64/libicuio.so
> /usr/lib64/libicuio.so.suse65.1
> /usr/lib64/libicutest.so
> /usr/lib64/libicutest.so.suse65.1
> /usr/lib64/libicutu.so
> /usr/lib64/libicutu.so.suse65.1
> /usr/lib64/libicuuc.so
> /usr/lib64/libicuuc.so.suse65.1
>
> Well, it seems for SLES one need to create symlinks without "suse". Two
> should be enough, for libicuuc and for libicui18n.

Just a quick note: AFAIK in some Linux distros, the "versionless"
libxxx.so files / symlinks are created only if you instal libxxx-dev /
libxxx-devel package (naming depends on the distro).
Maybe you've got it installed while Miroslav has not.

  I definitely installed libicu-dev as I have to build Firebird ;)
Thanks, it could explain things.

Regards,
Vlad

Miroslav Vacek

unread,
Aug 9, 2021, 10:03:18 AM8/9/21
to firebird-support
It is exactly as Tomasz pointed out.
I do not have libicu-devel installed and therefore lack the "versionless" symlinks.

If I install  libicu-devel the "versionless" symlinks are created and Firebird installation from snapshot succeeds.

Regards,
Miroslav
Reply all
Reply to author
Forward
0 new messages