OMSimulator icon indicating copy to clipboard operation
OMSimulator copied to clipboard

Outdated dependency

Open danlo76 opened this issue 1 year ago • 12 comments

Description

I installed OMSimulator in a virtual environment using pip. Trying to execute OMSimulator I recieve the following error:

OSError: libicuuc.so.66: cannot open shared object file: No such file or directory

After some googling I applied this workaround which solves the issue.

However, it would be nice if this dependency was updated to a more recent version or ideally included.

Steps to reproduce the behavior

  1. Create and activate virtual environment
  2. Install OMSimulator using pip
python3 -m venv .venv
. ./.venv/bin/activate
  1. Create a simple python script (in current location)
# test.py
from OMSimulator import OMSimulator
oms = OMSimulator()
version = oms.getVersion()
print(version)
  1. Execute script
python3 test.py

Expected behavior

error message:

OSError: libicuuc.so.66: cannot open shared object file: No such file or directory

Version and OS

  • Version: OMSimulator v2.1.1.post257-g1eb92ef-linux-notlm
  • OS: Ubuntu 22.04.5 LTS

danlo76 avatar Oct 01 '24 13:10 danlo76

@arun3688 Do you have time to comment on this issue?

robha67 avatar Oct 15 '24 12:10 robha67

@robha67 @danlo76 i am not a linux user, but in general libicuuc.so.66 should be default installed in Ubuntu Operating System, I think these are system libraries and not part of OMSimulator

arun3688 avatar Oct 15 '24 13:10 arun3688

@arun3688 But if I understand @danlo76 correctly, the issue only occurs when installing OMSimulator using pip.

robha67 avatar Oct 15 '24 14:10 robha67

@arun3688 @robha67 I believe the libicuuc.so.66 was the default version installed in Ubuntu 20.04, but we are currently using Ubuntu 22.04 where libicuuc.so.70 is default.

danlo76 avatar Oct 15 '24 14:10 danlo76

@danlo76 so it is a os problem? if so, can we close this issue?

robha67 avatar Oct 15 '24 14:10 robha67

@robha67 at the risk of not understanding, I would still argue that this is an OMSimulator issue. As stated in the description there is a workaround but it seems problematic if a specific version of the library is required which is installed only on specific OS versions. @arun3688 this is not my field of expertise. Feel free to close the issue if you feel I am wrong.

danlo76 avatar Oct 15 '24 15:10 danlo76

@danlo76 If I understand you correctly, there is currently an OMSimulator dependency to an old version of the libicuuc.so. @arun3688 could this be updated?

robha67 avatar Oct 15 '24 15:10 robha67

@robha67 correct. At least for the version stated if installed using pip.

danlo76 avatar Oct 16 '24 06:10 danlo76

@robha67 @danlo76 I can reproduce the problem in WSL and I found that it is not related with version libicuuc.so.66, but the how the prebuilt binaries in linux are linked with libOMSimulator.so, because in windows i can see it is build and linked with libicuuc74.dll and it works see below, may be the linux server which we are building the artifacts has only libicuuc.so.66 and OMSimulator is linked with that version and when you download from pip it complains about the error, As you said it happens only with pip package, but if you build the OMSimulator as stand alone package, it will be linked with the latest available libicuuc version and it will work

# ldd build/bin/libOMSimulator.dll
        ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7ffb1ab70000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7ffb19370000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7ffb17ee0000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7ffb18ad0000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7ffb18610000)
        libgcc_s_seh-1.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libgcc_s_seh-1.dll (0x7ffafc8c0000)
        libwinpthread-1.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libwinpthread-1.dll (0x1e83bec0000)
        libicuuc74.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libicuuc74.dll (0x7ffaad670000)
        libwinpthread-1.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libwinpthread-1.dll (0x7ffb02ea0000)
        libstdc++-6.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libstdc++-6.dll (0x7ffaac9c0000)
        ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7ffb188b0000)
        sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7ffb1a7c0000)
        libicudt74.dll => /c/OPENMODELICAGIT/OpenModelica/build/bin/libicudt74.dll (0x7ffa89890000)
        bcrypt.dll => /c/WINDOWS/System32/bcrypt.dll (0x7ffb17eb0000)
        RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7ffb18d60000)
        CRYPTBASE.DLL => /c/WINDOWS/System32/CRYPTBASE.DLL (0x7ffb17710000)
        bcryptPrimitives.dll => /c/WINDOWS/System32/bcryptPrimitives.dll (0x7ffb18590000)

arun3688 avatar Oct 16 '24 11:10 arun3688

@arun3688 Ok, then does the linux build server need to be updated? Who should we ping this issue to?

robha67 avatar Oct 16 '24 14:10 robha67

@robha67 i will ask adrian about this

arun3688 avatar Oct 16 '24 20:10 arun3688

@arun3688 Thank you!

robha67 avatar Oct 16 '24 20:10 robha67

@arun3688 Do you have any update on this issue?

lochel avatar Nov 13 '24 07:11 lochel

@lochel not yet, i guess we need to update the server

arun3688 avatar Nov 13 '24 08:11 arun3688

Where do we link the library? Is it introduced as a dependency by one of the 3rd party libs? Maybe linking it statically would solve the problem?

lochel avatar Nov 15 '24 05:11 lochel

@robha67 @danlo76 We have now updated the server and now OMSimulator should link with the latest icu libraries, and we made a new pip release https://pypi.org/project/OMSimulator/2.1.3/, please test the new pip package and the issue should be solved

arun3688 avatar Nov 22 '24 10:11 arun3688

@arun3688 Thank you! We will test this shortly.

danlo76 avatar Nov 22 '24 11:11 danlo76

@arun3688 Sorry for the delay in response. I can confirm that this issue is solved for this particular version of libicuuc.

danlo76 avatar Jan 28 '25 08:01 danlo76