Skip to content

Conversation

@pfeerick
Copy link
Member

@pfeerick pfeerick commented Jul 9, 2024

Bump to Ubuntu 24.04 LTS (Noble Numbat) 22.04 (Jammy Jellyfish)

Testing the waters... waiting until 24.04.1 before going any further with this.

 E: Unable to locate package python3-clang-10

@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch from ae85f5c to f15de3a Compare December 31, 2024 03:31
@elecpower
Copy link
Collaborator

Version not supported for Qt 5.15

@pfeerick
Copy link
Member Author

Thanks, but no need to worry about that yet I don't think... this is only a placeholder for when 22.04 is no longer an option (or we move onto a version QT that is supported) ;)

@pfeerick pfeerick marked this pull request as draft January 1, 2025 01:49
@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch from f15de3a to 13f6d4a Compare February 7, 2025 00:52
@elecpower
Copy link
Collaborator

Once 2.11 is out the door I will start working on Qt 6.x

@elecpower elecpower changed the title chore: bump ubuntu version chore: bump ubuntu, Qt and supporting versions Feb 11, 2025
@elecpower elecpower changed the title chore: bump ubuntu, Qt and supporting versions chore: bump Ubuntu, Qt and supporting versions Feb 11, 2025

RUN python3 -m pip install -U pip setuptools \
&& python3 -m pip install \
# Python 3.11 introduced the managed environment breakage aka PEP 668.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't disagree with this at all (I suggested exactly this myself in the MSYS build scripts), but I have since come across uv thanks to Raphael, and it makes package management and venv effortless... . Worth considering at a future time, if not now.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your solution is implemented in multiple files. If not too challenging I vote for changing now,

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay so I've had a play with uv and replaced you magic with this hack

RUN wget -qO- https://astral.sh/uv/install.sh | sh && \
    . $HOME/.local/bin/env && \
    uv venv && \
    uv pip install -U pip setuptools && \
    uv pip install \
    asciitree \
    jinja2 \
    pillow \
    aqtinstall \
    lz4 \
    pyelftools

RUN . $HOME/.local/bin/env && \
    uv run aqt install-qt --outputdir ${QT_INSTALL_DIR} ${QT_HOST} ${QT_TARGET} ${QT_VERS_STR} ${QT_ARCH} ${QT_MODULES}

It works but does not save any coding in fact means every python script run needs to be amended. However I stand to be duly corrected on matters such as these.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using uv, we might want to make things differently:

  • install uv into the dev/builder image into /usr/bin
  • run aqt install as a "tool" (see uvx)
  • move the Python dependencies definitions to a pyproject.toml file in EdgeTx repo
  • pull dependencies when preparing build environment with uv sync --frozen
  • activate venv with source .venv/bin/activate
  • run everything else as usual

We might want to integrate the last 3 steps proper with CMake, so it is done automatically for the user.

@elecpower
Copy link
Collaborator

CMake 4.0 breaks things

cmake_policy(SET CMP0023 OLD) has been removed. From Discord I see @gagarinlg has also found and implemented a fix for radio firmware though I cannot see the fix.

miniz has an invalid cmake_minimum_required version. I have bugged with maintainer richgel999/miniz#337

@elecpower
Copy link
Collaborator

The change to Qt 6.5 multimedia is frustrating the begeebers out of me. So I'm taking the "throw the sink at it" methodology. When I have sound I'll work backwards to narrow the final list of extras.

@pfeerick
Copy link
Member Author

pfeerick commented Apr 1, 2025

I cannot see the fix.

He just commented out the policy line in cmake/GenericDefinitions.cmake 🤭

@gagarinlg
Copy link
Member

Yes, quick fix for me without any testing except, the radio I was working on still compiles

@pfeerick
Copy link
Member Author

pfeerick commented Apr 2, 2025

Looks like CMake 4.x is a happy wrecking ball... it breaks the builds for miniz, yaml-cpp AND maxlibqt, plus edgetx 🤪

For miniz, I have a PR pending: richgel999/miniz#339
For yaml-cpp, this PR is already waiting: jbeder/yaml-cpp#1351
For maxlibqt, since we have our own fork, I can bump it via https://github.com/EdgeTX/maxLibQt/tree/pfeerick/bump-cmake-min

These, plus Malte's quick fix at least get the MSYS2 build container up and running again, which is the only one using CMake 4.0 at present.

i.e. This branch has successfully built on my fork... pfeerick/edgetx#18

@elecpower
Copy link
Collaborator

AppImages appear to not be backward compatible (could just be me) e.g. noble will not run on jammy lots of errors like this on launching:

/tmp/.mount_EdgeTXfeiGJn/AppRun.wrapped: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_EdgeTXfeiGJn/usr/bin/../lib/libglib-2.0.so.0)

jammy AppImage will run on jammy and noble

If this is the case then the question is, what is the oldest version we want to support keeping in mind the different Linux flavours?

@pfeerick
Copy link
Member Author

Well, since jammy (22.04) is a LTS as well, so we could increment to that rather than jump to noble (24.04). We're currently using focal (20.04) for dev and jammy for cloudbuild, so at minimum need to correct that discrepancy 🤪 Ubuntu 22.04 (jammy) is a supported platform for QT6.5, so that isn't a problem...

It doesn't surprise me that an AppImage built on Noble would/could have problems when running on Jammy, given mention to build on the oldest platform intended to support...

@pfeerick
Copy link
Member Author

pfeerick commented Apr 29, 2025

Want me to change it to jammy while rebasing (and we can start again from there)?

Oh, wait, you're trying to confuse me... 6.5, 6.8.2, 6.9.0? 🤣 Ok, 6.9 still lists Ubuntu 22.04 (jammy) as supported platform...

@elecpower
Copy link
Collaborator

My aim in life is to confuse as many as possible ;-)

@elecpower
Copy link
Collaborator

Jammy

@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch 5 times, most recently from 13cc77b to 91f7297 Compare April 29, 2025 11:20
@pfeerick
Copy link
Member Author

pfeerick commented Apr 29, 2025

A few rebase goofs later (combination of should not be working on this just before bed + github builds way faster than locally 🤭 ), and it should be right now. We can skip the --break-system-packages flag for python since jammy doesn't have that issue. i.e. allowing this to merge, and then I'll start working in the successor / uv. So if I didn't break anything, this is ready to play with again. QT version is still 6.8.2 btw ;) I'm hoping unpinning pillow won't bite us, as tests-radio target is only run using the dev image, and that has been a pain before. Only one way to check! 🤭

@pfeerick pfeerick changed the title chore: bump Ubuntu, Qt and supporting versions chore: bump Qt and dependencies Jul 18, 2025
@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch from a9efbef to c584dc2 Compare July 20, 2025 10:26
@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch from c584dc2 to 2164cc4 Compare July 23, 2025 09:55
@raphaelcoeffic
Copy link
Member

@pfeerick do we still need anything from this PR? AFAIK, everything has been already merged bit by bit and works well with Qt6 on main.

@pfeerick pfeerick force-pushed the pfeerick/ubuntu-2404 branch from 2164cc4 to afcef84 Compare July 23, 2025 21:55
@pfeerick
Copy link
Member Author

No, it looks like everything Neil wanted was here. Would have been better to have simply rebased and merged this PR though rather than rush through a potentially incomplete one since this had been used and tested or the last six months. 🤷

@pfeerick pfeerick closed this Jul 23, 2025
@pfeerick pfeerick deleted the pfeerick/ubuntu-2404 branch October 25, 2025 09:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants