jurplel / install-qt-action

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

apt tries to install stuff and gets aqt.exceptions.NoPackageFound #138

Closed guysoft closed 2 years ago

guysoft commented 2 years ago

Hey, I am trying to build ci/cd for rpi-imager. However I can't seem to get install-qt action to work. Error below.

My yaml is here: https://github.com/guysoft/pi-imager/blob/windows-ci/.github/workflows/build-windows.yml

Related: https://github.com/guysoft/pi-imager/issues/2#issuecomment-1029889634

 python -m aqt install 5.15.2 windows desktop win32_msvc2015 -O D:\a\pi-imager/Qt
aqtinstall(aqt) v1.2.5 on Python 3.10.1 [CPython MSC v.1929 64 bit (AMD64)]
Specified packages are not found while parsing XML of package information!
Traceback (most recent call last):
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\__main__.py", line 27, in <module>
    sys.exit(main())
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\__init__.py", line 31, in main
    return cli.run()
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\installer.py", line 675, in run
    result = args.func(args)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\installer.py", line 250, in run_install
    qt_archives = QtArchives(
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\archives.py", line 172, in __init__
    self._get_archives()
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\archives.py", line 212, in _get_archives
    self._parse_update_xml(archive_url, target_packages)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\archives.py", line 266, in _parse_update_xml
    raise NoPackageFound
aqt.exceptions.NoPackageFound
Error: The process 'python' failed with exit code 1
pzhlkj6612 commented 2 years ago

Hi.

Specified packages are not found while parsing XML of package information!

In your workflow YAML:

    - name: Install Qt
      uses: jurplel/install-qt-action@v2
      with:
        version: '5.15.2'
        host: 'windows'
        target: 'desktop'
        arch: 'win32_msvc2015'
        install-deps: 'true'
        setup-python: 'true'
        cached: 'false'

arch § README.md says:

You can find a full list of architectures by checking the Updates.xml for your version/platform. For Qt 5.12.9 on windows: https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5129/Updates.xml

In https://download.qt.io/online/qtsdkrepository/windows_x86/desktop/qt5_5152/ , only "MSVC2015 win64" is available. Here are all architectures for Qt 5.15.2:

This means, you have to choose another architecture (or say "kit" in Qt's world) or another Qt version.

If you really want to use "MSVC2015 win32", you are only able to install Qt v5.9.*, v5.10.* and v5.11.* .
It's time to step into the world of x64. :)

guysoft commented 2 years ago

Okr, changing to arch: 'win32_mingw81' solved that. However, now I am missing OpenSSL.

I tried adding it in tools, but now I get:

python -m aqt tool windows tools_openssl_x86 undefined undefined -O D:\a\pi-imager/Qt
Specified target combination is not valid: windows tools_openssl_x86 undefined
Traceback (most recent call last):
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\__main__.py", line 27, in <module>
    sys.exit(main())
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\__init__.py", line 31, in main
    return cli.run()
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\installer.py", line 675, in run
    result = args.func(args)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\installer.py", line 431, in run_tool
    tool_archives = ToolArchives(
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\archives.py", line 363, in __init__
    super(ToolArchives, self).__init__(
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\aqt\archives.py", line 141, in __init__
    self.version = Version(version)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\semantic_version\base.py", line 105, in __init__
    major, minor, patch, prerelease, build = self.parse(version_string, partial)
  File "C:\hostedtoolcache\windows\Python\3.10.1\x64\lib\site-packages\semantic_version\base.py", line 311, in parse
    raise ValueError('Invalid version string: %r' % version_string)
ValueError: Invalid version string: 'undefined'
(node:1608) UnhandledPromiseRejectionWarning: Error: The process 'python' failed with exit code 1
    at ExecState._setResult (D:\a\_actions\jurplel\install-qt-action\v2\node_modules\@actions\exec\lib\toolrunner.js:548:25)
    at ExecState.CheckComplete (D:\a\_actions\jurplel\install-qt-action\v2\node_modules\@actions\exec\lib\toolrunner.js:531:18)
    at ChildProcess.<anonymous> (D:\a\_actions\jurplel\install-qt-action\v2\node_modules\@actions\exec\lib\toolrunner.js:431:27)
    at ChildProcess.emit (events.js:210:5)
    at maybeClose (internal/child_process.js:1021:16)
    at Socket.<anonymous> (internal/child_process.js:430:11)
    at Socket.emit (events.js:210:5)
    at Pipe.<anonymous> (net.js:659:12)
(node:1608) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:1608) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

I am trying build https://github.com/raspberrypi/rpi-imager/ which ships atm as 32bit. Would defiantly build a 64bit image once I see that the initial build works. qt.qt5.5152.win32_mingw81 is the closest in their build description. They write "choose a Qt 5.x with Mingw32 32-bit toolchain and CMake".

pzhlkj6612 commented 2 years ago
> python -m aqt tool windows tools_openssl_x86 undefined undefined -O D:\a\pi-imager/Qt
Specified target combination is not valid: windows tools_openssl_x86 undefined
...
ValueError: Invalid version string: 'undefined'
...

I think you may need to use jurplel/install-qt-action@v3 . The backend "aqtinstall" of install-qt-action@v2 doesn't seem to work correctly.


In pi-imager/build-windows.yml at qml · guysoft/pi-imager, you wrote:

    - name: Copy OpenSSL Dlls
      shell: cmd
      run: |
          echo "Adding inlcude lines and lib lines on our own"
          copy  C:\msys2\msys64\mingw32\bin\libssl-1_1.dll D:\a\pi-imager\pi-imager\qt\Qt\5.15.2\mingw81_32\bin
          copy  C:\msys2\msys64\mingw32\bin\libcrypto-1_1.dll D:\a\pi-imager\pi-imager\qt\Qt\5.15.2\mingw81_32\bin

OK, it is also a way to grab OpenSSL dlls.

guysoft commented 2 years ago

I figured how to get ut working in the end. The way around it is in the yaml I posted above. So I can close this issue if you like.