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

Add support to linux arm64 #248

Open
patrickelectric opened this issue Jul 6, 2024 · 10 comments · May be fixed by #273
Open

Add support to linux arm64 #248

patrickelectric opened this issue Jul 6, 2024 · 10 comments · May be fixed by #273
Labels
bug Something isn't working

Comments

@patrickelectric
Copy link

Is this possible ?

@pzhlkj6612
Copy link
Contributor

Hi! Did you try that? This action and its backend will install Qt for you. Maybe you don't know how to specify parameters?

@patrickelectric
Copy link
Author

Hi! Did you try that? This action and its backend will install Qt for you. Maybe you don't know how to specify parameters?

You can check the action here, it already works for Linux, windows and Mac, it's failing for linux-arm.
https://github.com/bluerobotics/ping-viewer/actions/runs/9822633870/job/27119577771

@patrickelectric
Copy link
Author

It's installing GCC x64 for arm.

@pzhlkj6612
Copy link
Contributor

it already works for Linux, windows and Mac, it's failing for linux-arm.
https://github.com/bluerobotics/ping-viewer/actions/runs/9822633870/job/27119577771

It's installing GCC x64 for arm.

OK.

The workflow config of build (ubuntu-22-arm, pingviewer-Release-Arm.AppImage):

  run: jurplel/install-qt-action@v4
  with:
    version: 5.15.2
    target: desktop
    modules: qtcharts
    setup-python: false
    install-deps: true
    cache: false
    cache-key-prefix: install-qt-action
    add-tools-to-path: true
    set-env: true
    no-qt-binaries: false
    tools-only: false
    aqtversion: ==3.1.*
    py7zrversion: ==0.20.*
    source: false
    documentation: false
    examples: false

It failed because:

  • The Linux arm64 support of Qt has been added since version 6.7.0 1. To install arm64 build kit, you also need to specify the linux_arm64 host instead the default value 2. However,
  • This action does not support that host 2, so the workflow will fail.

The good news is that you may be able to install Qt arm64 with aqtinstall directly. Please try these commands 34:

set -e
sudo apt-get install build-essential libgl1-mesa-dev libgstreamer-gl1.0-0 libpulse-dev libxcb-glx0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 libxcb1 libxkbcommon-dev libxkbcommon-x11-0 libxcb-xkb-dev -y
python3 -m pip install setuptools wheel py7zr==0.20.*
python3 -m pip install aqtinstall==3.1.*
python3 -m aqt version
python3 -m aqt install-qt linux_arm64 desktop 6.7.2 --autodesktop --outputdir /home/runner/work/ping-viewer/Qt --modules qtcharts

If everything goes well, I think you will see linux_gcc_arm64 during the Qt installation.


This action is not actively maintained, thus new features of its backend (i.e., aqtinstall) will not be quickly adapted. If above commands don't help you, you can search and raise issues in aqtinstall's repository.

Footnotes

  1. Search "arm64" and compare the result between https://doc.qt.io/qt-6.6/supported-platforms.html and https://doc.qt.io/qt-6.7/supported-platforms.html

  2. Host check: https://github.com/jurplel/install-qt-action/blob/f03f05556819ceb3781ee2f455ec44c339d683c0/action/src/main.ts#L116-L140 2

  3. Copied from https://github.com/jurplel/install-qt-action/blob/f03f05556819ceb3781ee2f455ec44c339d683c0/action/src/main.ts#L289-L331

  4. Copied from https://github.com/jurplel/install-qt-action/blob/f03f05556819ceb3781ee2f455ec44c339d683c0/action/src/main.ts#L347-L381

@jurplel
Copy link
Owner

jurplel commented Jul 13, 2024

This action is not actively maintained, thus new features of its backend

I wouldn't quite go that far—it does sometimes take me quite a while to find time to look into issues/PRs.

I would also definitely accept a PR providing support for this.

@Ryex
Copy link

Ryex commented Oct 10, 2024

This also affects host windows_arm64

aqt list-qt
usage: aqt list-qt [-h] [--extension {,arm64_v8a,src_doc_examples,armv7,x86_64,wasm,x86}]
                   [--spec SPECIFICATION]
                   [--modules (VERSION | latest) ARCHITECTURE | --long-modules (VERSION | latest) ARCHITECTURE | --extensions (VERSION | latest) | --arch (VERSION | latest) | --latest-version | --archives ARCHIVES [ARCHIVES ...]]
                   {linux,linux_arm64,mac,windows,windows_arm64} [{desktop,winrt,android,ios}]

aqt supports hosts {linux,linux_arm64,mac,windows,windows_arm64} this action limits the hosts to windows,mac,linux

@jurplel
Copy link
Owner

jurplel commented Oct 12, 2024

I will look into supporting more values for hosts later this week.

@jurplel jurplel added bug Something isn't working and removed enhancement New feature or request labels Oct 12, 2024
@pzhlkj6612 pzhlkj6612 moved this to Todo in Mozi's Qt stuff Oct 14, 2024
@crueter
Copy link

crueter commented Jan 16, 2025

I will look into supporting more values for hosts later this week.

Are you able to get this up soon? Alongside the WASM PR these are both necessities for cross-platform builds.

@MehdiChinoune
Copy link
Contributor

@jdpurcell
Copy link

jdpurcell commented Jan 17, 2025

This would add support for both Linux/Windows ARM64 hosts in theory. I tested with Linux and it seems to work. I couldn't test with Windows as the runner image isn't public yet.

If anyone wants to play around with it, just change jurplel to jdpurcell in the uses, i.e.:

uses: jdpurcell/install-qt-action@v4

pcolby added a commit to pcolby/dokit that referenced this issue Jan 18, 2025
pcolby added a commit to pcolby/dokit that referenced this issue Jan 18, 2025
Squashed commit of the following:

commit a3916a5
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 14:38:50 2025 +1100

    Reinstate all macOS and Windows builds

commit bd0c6be
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 14:24:42 2025 +1100

    Use x86-64 as the arch matrix value

    For consistency with other workflow jobs.

commit 987f22e
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 14:04:59 2025 +1100

    Avoid workflow expressions in `uses`

    GitHub Actions does not support that.

commit 30c2794
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 14:00:51 2025 +1100

    Use jdpurcell's patch on linux-arm runners for now

    At least until jurplel/install-qt-action#248
    is resolved.

commit b7e5bf1
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 13:51:26 2025 +1100

    Auto-detect linuxdeploy-aarch64.AppImage too

commit ec94af3
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 13:12:29 2025 +1100

    Set the correct host type (default the arch)

commit de316e8
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 13:01:00 2025 +1100

    Tell coveralls the correct arch

commit e1176d0
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 12:09:22 2025 +1100

    Exclude Qt versions not supported by Qt's online installer

    Thus, not supported by aqtinstall, and thus not supported by
    install-qt-action.

commit ef98409
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 12:02:58 2025 +1100

    Install Qt for the right arch

commit eb63847
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 11:57:30 2025 +1100

    Include the right arch in the Linux build IDs

commit 34427ce
Merge: 20ce8fe 18872c5
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 11:35:51 2025 +1100

    Merge branch 'main' into linux-arm64

commit 20ce8fe
Author: Paul Colby <[email protected]>
Date:   Thu Jan 16 18:01:56 2025 +1100

    Hold the correct EFI package

commit 5370b0e
Author: Paul Colby <[email protected]>
Date:   Thu Jan 16 18:00:00 2025 +1100

    Try out GitHub's new Linux arm64 runners

    Now in public preview:
    https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/
pcolby added a commit to pcolby/smithy-qt that referenced this issue Jan 18, 2025
Note, using jdpurcell's patch on linux-arm runners for now; just
until jurplel/install-qt-action#248 is
resolved.

Squashed commit of the following:

commit b1ae920
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 15:10:32 2025 +1100

    Exclude Qt 6.0 and 6.1 arm64 on Linux

commit 8fa94b5
Author: Paul Colby <[email protected]>
Date:   Sat Jan 18 14:40:32 2025 +1100

    Support GitHub's Linux arm64 preview hosts
@jdpurcell jdpurcell linked a pull request Jan 18, 2025 that will close this issue
adazem009 added a commit to scratchcpp/scratchcpp-player that referenced this issue Jan 23, 2025
adazem009 added a commit to scratchcpp/scratchcpp-player that referenced this issue Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants