spesmilo / spesmilo/electrum

android: the perils of upgrading Qt and rebasing p4a

Open
#10,331 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

build/packaging 📦 dependencies 🧩 OS-android🤖 Qt ✨
Dominant language
Python
Stars
8.6k
Forks
3.5k
Avg merge
2d 8h
Merged PRs (30d)
61

Description

We should rebase our fork of python-for-android.
We are stuck on old versions of python (3.10, now 3.11) and openssl (1.1, already EOL).
Relatedly, we should also update Qt (from 6.4).
And the android NDK (from r23).

But everything is interwoven and tangled together.

Currently our p4a fork is based on the v2023.05.21 tag of upstream. Atm that's 2.5 years old. Though most of what we would want from p4a upstream has not been released yet - they haven't tagged a new release since v2024.01.21. I think that's not a serious problem -- we could just pick a recent commit.

Issues:


I think what we should try to do is:

  • step 1. upgrade Qt to 6.5

    • adapt our qml gui to the styling changes
    • upgrade the android NDK to r25
      • r25 is supported by both Qt 6.5 and our current p4a fork
      • there should be an unofficial google canary build of r25 that supports 16 kb page sizes, similar to our current hack for r23
  • step 2. rebase our p4a fork on current upstream develop

    • upgrade the android NDK to r27
      • r27 is supported by both Qt 6.5 and p4a upstream
    • due to the rebase, inherit upgrade of python to 3.14 and openssl to 3.3

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with contrib/android/p4a_recipes/python3/init.py and contrib/android/p4a_recipes/openssl/init.py, then compare the fork at commit 003451604321deb1f10d879b63450ec76db4a758 with upstream p4a develop. Check the Qt/QML boundary and the Android build configuration while working through the proposed Qt 6.5 and NDK changes. Done means the fork is rebased, the Android build succeeds, and the required QML and dependency updates work together.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, python
Domain
build-system, mobile-dev
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.