Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support linux_gcc_arm64 arch in 6.7.0 #765

Closed
wants to merge 3 commits into from

Conversation

rectalogic
Copy link
Contributor

Initial support, probably missing some cases.
Fixes #750

Some interactive testing:

$ aqt list-qt linux desktop
5.9.0 5.9.1 5.9.2 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9
5.10.0 5.10.1
5.11.0 5.11.1 5.11.2 5.11.3
5.12.0 5.12.1 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.12.10 5.12.11 5.12.12
5.13.0 5.13.1 5.13.2
5.14.0 5.14.1 5.14.2
5.15.0 5.15.1 5.15.2
6.0.0 6.0.1 6.0.2 6.0.3 6.0.4
6.1.0 6.1.1 6.1.2 6.1.3
6.2.0 6.2.1 6.2.2 6.2.3 6.2.4
6.3.0 6.3.1 6.3.2
6.4.0 6.4.1 6.4.2 6.4.3
6.5.0 6.5.1 6.5.2 6.5.3
6.6.0 6.6.1 6.6.2
6.7.0 6.7.0

$ aqt list-qt linux desktop --arch 6.7.0
linux_gcc_64 linux_gcc_arm64

$ aqt list-qt linux desktop --arch 6.6.0
gcc_64 wasm_singlethread wasm_multithread

$ aqt install-qt linux desktop 6.7.0 linux_gcc_arm64 --outputdir /tmp/Qt
[...]
INFO    : Finished installation of qtsvg-Linux-Debian_11_6-GCC-Linux-Debian_11_6-AARCH64.7z in 1.31891796
INFO    : Finished installation of qttools-Linux-Debian_11_6-GCC-Linux-Debian_11_6-AARCH64.7z in 1.71985637
INFO    : Downloading qttranslations...
[...]


$ aqt install-qt linux desktop 6.7.0 linux_gcc_64 --outputdir /tmp/Qt
[...]
INFO    : Finished installation of qtsvg-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 2.46250538
INFO    : Downloading qttranslations...
[...]

$ aqt install-qt linux desktop 6.6.0 gcc_64 --outputdir /tmp/Qt
[...]
INFO    : Finished installation of qtsvg-Linux-RHEL_8_6-GCC-Linux-RHEL_8_6-X86_64.7z in 2.44938992
INFO    : Downloading qttranslations...
[...]

$ aqt install-qt linux desktop 6.6.0 --outputdir /tmp/Qt
[...]
INFO    : Finished installation of qtsvg-Linux-RHEL_8_6-GCC-Linux-RHEL_8_6-X86_64.7z in 3.00820996
INFO    : Downloading qttranslations...
[...]

$ aqt install-qt linux desktop 6.7.0 --outputdir /tmp/Qt
[...]
INFO    : Finished installation of qtsvg-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z in 2.25437083
INFO    : Downloading qttranslations...
[...]

@miurahr miurahr added the enhancement New feature or request label Mar 3, 2024
@miurahr miurahr self-requested a review March 3, 2024 08:17
@ddalcino
Copy link
Contributor

ddalcino commented Mar 4, 2024

Looks like you have some duplicate results in list-qt output:

$ aqt list-qt linux desktop
...
6.7.0 6.7.0

Can you show us your output for aqt list-tool linux desktop and aqt list-tool linux android? There are at least two tests failing in CI, and it looks like they are failing because list-tool is printing the same list of tools twice. It's possible this is a bug in the way these tests are monkeypatching the program, but it would help a lot if we could see the interactive output for these two commands.

@rectalogic
Copy link
Contributor Author

Looks like you have some duplicate results in list-qt output:

Hmm, this is because it looks for versions in both https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/ and https://download.qt.io/online/qtsdkrepository/linux_arm64/desktop/ (and 6.7.0 is in both of those)

Can you show us your output for aqt list-tool linux desktop and aqt list-tool linux android? There are at least two tests failing in CI, and it looks like they are failing because list-tool is printing the same list of tools twice. It's possible this is a bug in the way these tests are monkeypatching the program, but it would help a lot if we could see the interactive output for these two commands.

list-tool is looking for tools in both https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/ and https://download.qt.io/online/qtsdkrepository/linux_arm64/desktop/ as well. In the tests the monkeypatch makes it return the full duplicate list on each request.

When I run it, I only get a few duplicates (tools_maintenance, tools_ifw and tools_cmake) - because the linux_arm64 directory only has a couple of tools in it:

$ aqt list-tool linux desktop
tools_telemetry_preview
tools_telemetry_gui
tools_telemetry_eval_gui
tools_telemetry
tools_qtdesignstudio_preview
tools_qtdesignstudio_generation2_preview
tools_qtdesignstudio_generation2_lts
tools_qtdesignstudio_generation2
tools_qtdesignstudio
tools_qtcreator_preview
tools_qtcreator_gui
tools_qtcreator
tools_qt3dstudio_runtime_preview
tools_qt3dstudio_runtime_240
tools_qt3dstudio_runtime_230
tools_qt3dstudio_runtime_220
tools_qt3dstudio_preview
tools_qt3dstudio_openglruntime_preview
tools_qt3dstudio_openglruntime_280_5151
tools_qt3dstudio_openglruntime_280
tools_qt3dstudio_openglruntime_270_5150
tools_qt3dstudio_openglruntime_270
tools_qt3dstudio_openglruntime_260
tools_qt3dstudio_openglruntime_250
tools_qt3dstudio_openglruntime_240
tools_qt3dstudio
tools_opensslv3_src
tools_ninja
tools_maintenance_update_reminder
tools_maintenance_early_access
tools_maintenance
tools_ifw
tools_generic
tools_conan
tools_cmake
sdktool
tools_maintenance
tools_ifw
tools_cmake
sdktool

However android fails

$ aqt list-tool linux android
ERROR   : Failed to retrieve file at https://qt.mirror.constant.com/online/qtsdkrepository/linux_arm64/android/
Server response code: 404, reason: Not Found

Ugh, so this is because we don't account for target when deciding to look in both places. I just pushed a fix, now it returns:

$ aqt list-tool linux android
tools_qt3dstudio_runtime_preview
tools_qt3dstudio_runtime_240
tools_qt3dstudio_runtime_230
tools_qt3dstudio_runtime_220
tools_qt3dstudio_openglruntime_preview
tools_qt3dstudio_openglruntime_280_5151
tools_qt3dstudio_openglruntime_280
tools_qt3dstudio_openglruntime_270_5150
tools_qt3dstudio_openglruntime_270
tools_qt3dstudio_openglruntime_260
tools_qt3dstudio_openglruntime_250
tools_qt3dstudio_openglruntime_240

@ddalcino
Copy link
Contributor

ddalcino commented Mar 5, 2024

Interesting. I didn't realize that linux_arm64 had its own set of tools, separate from linux(x64). I just checked, and these are different binaries. We have no way to install these using aqt install-tool, and no way to tell list-tool that we want arm64 rather than x64 results.

@rectalogic
Copy link
Contributor Author

Interesting. I didn't realize that linux_arm64 had its own set of tools, separate from linux(x64). I just checked, and these are different binaries. We have no way to install these using aqt install-tool, and no way to tell list-tool that we want arm64 rather than x64 results.

I guess my original implementation that used a separate host would resolve this? aqt install-tool linux desktop ... and aqt install-tool linux_arm64 desktop ...

Maybe this was why Qt split at the top level instead of just a new arm64 arch under linux_x64? Because the tools don't have any arch in the url - e.g. Qt Creator for amd64 is https://download.qt.io/online/qtsdkrepository/linux_x64/desktop/tools_qtcreator/qt.tools.qtcreator/9.0.0-0-202211220359qtcreator.7z and eventually for arm64 it will be https://download.qt.io/online/qtsdkrepository/linux_arm6/desktop/tools_qtcreator/qt.tools.qtcreator/9.0.0-0-202211220359qtcreator.7z

@rectalogic
Copy link
Contributor Author

I opened #766 as an alternative implementation

@miurahr miurahr marked this pull request as draft March 20, 2024 07:23
@rectalogic
Copy link
Contributor Author

Closing in favor of #766

@rectalogic rectalogic closed this Apr 5, 2024
@rectalogic rectalogic deleted the arm64v2 branch April 11, 2024 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Issue with linux_arm64 builds
3 participants