miurahr / aqtinstall

aqt: Another (unofficial) Qt CLI Installer on multi-platforms
https://aqtinstall.readthedocs.io/en/latest/
MIT License
913 stars 84 forks source link

Support linux_gcc_arm64 arch in 6.7.0 via new linux_arm64 host #766

Closed rectalogic closed 5 months ago

rectalogic commented 7 months ago

Alternative implementation to #765 Fixes #750

ddalcino commented 7 months ago

This is probably a better solution than #765. I'm sure it will be easier to maintain.

However, a few things will need to be addressed:

rectalogic commented 7 months ago
* Update tests: Currently, none of our tests are doing anything to test that the `linux_arm64` host works on any of the `aqt list-*` or `install-*` commands. It would be bad to merge this without adding such tests.

Added some tests (and some fixes for bugs the tests uncovered).

* I'd really like to test this with the Azure pipelines, to make sure it didn't break anything. However, the pipelines appear to be broken right now and since [chore: update CI execution trigger/schedule #735](https://github.com/miurahr/aqtinstall/pull/735) I'm not sure how to trigger them to run.

I added Azure pipeline support, using a docker image running emulated arm64. But this is all untested since I don't know how to trigger it either...

ddalcino commented 7 months ago

I forgot to mention, our documentation will need to be updated as well. So far, all the docs mention that the 'host' argument is only allowed to be Mac, Windows, or Linux; this won't be true anymore.

It's probably worthwhile to explain somewhere why Linux is now split between two different hosts: linux and linux_arm64, and why that isn't the case for Mac and Windows. As I understand it, after a certain version of Qt 6 (6.2 maybe?), all the Mac Qt binaries became 'universal' binaries that include both x64 and arm64. I could be wrong about that; it's been a while since I looked.

I'm not sure if there are any remaining places in the docs, or CLI help text messages, that refer to 'host' and 'operating system' interchangeably, but if there are, that should probably be cleaned up. Do linux and linux_arm64 count as different operating systems? IMHO, 'host' expresses the tuple [OS, processor architecture], and that's distinct from our 'architecture' parameter, which expresses the tuple [compiler, processor architecture]. It's a bit messy, and deserves a clear explanation of what all these terms mean.

rectalogic commented 6 months ago

6.7 is released https://www.qt.io/blog/qt-6.7-released

Should we merge this and do a new aqtinstall release?

rectalogic commented 6 months ago

@miurahr can you merge this? Currently even amd64 linux 6.7.0 is not installable with aqt 3.1.12 even if you use the new arch name (linux_gcc_64 instead of gcc_64):

> aqt install-qt linux desktop 6.7.0 -O /tmp/qt
INFO    : aqtinstall(aqt) v3.1.12 on Python 3.11.8 [CPython Clang 15.0.0 (clang-1500.1.0.2.5)]
ERROR   : The packages ['qt_base'] were not found while parsing XML of package information!
==============================Suggested follow-up:==============================
* Please use 'aqt list-qt linux desktop --arch 6.7.0' to show architectures available.

> aqt install-qt linux desktop 6.7.0 linux_gcc_64 -O /tmp/qt
INFO    : aqtinstall(aqt) v3.1.12 on Python 3.11.8 [CPython Clang 15.0.0 (clang-1500.1.0.2.5)]
INFO    : Downloading qtsvg...
INFO    : Downloading qttools...
INFO    : Downloading qtdeclarative...
INFO    : Downloading qtbase...
INFO    : Redirected: qt.mirror.constant.com
INFO    : Redirected: qt.mirror.constant.com
INFO    : Redirected: qt.mirror.constant.com
INFO    : Redirected: qt.mirror.constant.com
INFO    : Finished installation of qtsvg-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 1.18460154
INFO    : Downloading qttranslations...
INFO    : Redirected: qt.mirror.constant.com
INFO    : Finished installation of qttranslations-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 1.32922746
INFO    : Downloading qtwayland...
INFO    : Redirected: qt.mirror.constant.com
INFO    : Finished installation of qtwayland-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 1.12197392
INFO    : Downloading icu...
INFO    : Finished installation of qtbase-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 4.41483796
INFO    : Redirected: qt.mirror.constant.com
INFO    : Finished installation of qttools-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 5.18647496
INFO    : Finished installation of icu-linux-Rhel8.6-x86_64.7z in 2.62416004
INFO    : Finished installation of qtdeclarative-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 11.03515671
ERROR   : Updater caused an IO error: [Errno 2] No such file or directory: '/tmp/qt/6.7.0/linux_gcc_64/mkspecs/qconfig.pri'