jurplel / install-qt-action

Install Qt on your Github Actions workflows with just one simple action
MIT License
464 stars 82 forks source link

libicui18n.so.56, libicuuc.so.56, libicudata.so.56 not found when using archives: 'qtbase' #191

Closed EddyTheCo closed 1 year ago

EddyTheCo commented 1 year ago

I am using the action like

- name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: '6.5.0'
          archives: 'qtbase'

to build and test a library on

 os: [ubuntu-latest,macos-latest,windows-latest]

the workflow works well for Windows and Macos but not for Ubuntu. When running the qt install step, it finish install but in the logs it says

/home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/bin/qmake: error while loading shared libraries: libicui18n.so.56: cannot open shared object file: No such file or directory

the library that depends on qt compiles without problem but when linking the test executable it returns

 cmake --build .
  shell: /usr/bin/bash -e {0}
  env:
    pythonLocation: /opt/hostedtoolcache/Python/3.11.3/x64
    PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.3/x64/lib/pkgconfig:/home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/pkgconfig
    Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.3/x64
    Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.3/x64
    Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.3/x64
    LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.3/x64/lib:/home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib
    Qt6_DIR: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64
    QT_PLUGIN_PATH: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/plugins
    QML2_IMPORT_PATH: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/qml
[1/8] Automatic MOC and UIC for target qb1t6
[2/8] Building CXX object CMakeFiles/qb1t6.dir/qb1t6_autogen/mocs_compilation.cpp.o
[3/8] Building CXX object CMakeFiles/qb1t6.dir/qb1t6.cpp.o
[4/8] Linking CXX shared library libqb1t6.so
[5/8] Automatic MOC and UIC for target tip5
[6/8] Building CXX object tests/CMakeFiles/tip5.dir/tip5_autogen/mocs_compilation.cpp.o
[7/8] Building CXX object tests/CMakeFiles/tip5.dir/tip5.cpp.o
[8/8] Linking CXX executable tests/tip5
FAILED: tests/tip5 
: && /usr/bin/c++ -O3 -DNDEBUG  tests/CMakeFiles/tip5.dir/tip5_autogen/mocs_compilation.cpp.o tests/CMakeFiles/tip5.dir/tip5.cpp.o -o tests/tip5  -Wl,-rpath,/home/runner/work/_temp/build:/home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib  libqb1t6.so  /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0 && :
/usr/bin/ld: warning: libicui18n.so.56, needed by /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicuuc.so.56, needed by /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicudata.so.56, needed by /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucol_open_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `UCNV_FROM_U_CALLBACK_SUBSTITUTE_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `u_strToLower_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_getStandardName_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_getToUCallBack_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_cbFromUWriteUChars_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_toUCountPending_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_clone_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `UCNV_TO_U_CALLBACK_SUBSTITUTE_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_getName_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_fromUCountPending_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `uenum_next_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_open_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_setToUCallBack_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucol_setAttribute_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `u_strToUpper_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_setFromUCallBack_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_getTimeZoneDisplayName_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_openCountryTimeZones_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_fromUnicode_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_open_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_openTimeZones_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_inDaylightTime_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `uenum_close_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_close_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_cbToUWriteUChars_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_openTimeZoneIDEnumeration_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_reset_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_getDSTSavings_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_getDefaultTimeZone_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_toUnicode_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_getFromUCallBack_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_setMillis_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucol_strcoll_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_close_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucol_close_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucol_getSortKey_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucnv_getMaxCharSize_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_getTimeZoneTransitionDate_56'
/usr/bin/ld: /home/runner/work/Qb1t6/Qt/6.5.0/gcc_64/lib/libQt6Core.so.6.5.0: undefined reference to `ucal_get_56'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
Error: Process completed with exit code 1.

I tried installing dependencies like

sudo apt-get install ninja-build cmake build-essential libgl1-mesa-dev libicu-dev

but returns

libicu-dev is already the newest version (70.1-2).

and the linking fails with the same errors.

This do not happen if using this step

- name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: '6.5.0'
jurplel commented 1 year ago

does it work with uses: jurplel/install-qt-action@master?

EddyTheCo commented 1 year ago

when using

- name: Install Qt
        uses: jurplel/install-qt-action@master
        with:
          version: '6.5.0'
          archives: 'qtbase'

The step returns

Run jurplel/install-qt-action@master
Run actions/setup-python@v4
Installed versions
  Successfully set up CPython (3.11.3)
Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/Qb1t6/Qb1t6/action'. Did you forget to run actions/checkout before running your local action?
jurplel commented 1 year ago

Oh right, I forgot I needed to build it. I can make a v4 branch

Why was the issue closed? Is the problem resolved?

KOConchobhair commented 1 year ago

I just hit the same exact issue runs-on: ubuntu-20.04

      - name: Install Qt
        uses: jurplel/install-qt-action@v3.2.1
        with:
          version: '5.14.2'
          arch: 'gcc_64'
          archives: 'qtbase'
          install-deps: 'false'

Did you find a solution @EddyTheCo ?

EddyTheCo commented 1 year ago

This do not happen if using this step

- name: Install Qt
        uses: jurplel/install-qt-action@v3
        with:
          version: '6.5.0'

just remove

archives: 'qtbase'

from your step.

KOConchobhair commented 1 year ago

Okay, thank you. Looks like another option based on https://github.com/miurahr/aqtinstall/issues/532 via https://github.com/jurplel/install-qt-action/issues/174 is to use:

archives: 'qtbase icu'

EDIT: that resolved the issue for me!