Skip to content

Commit

Permalink
android build: p4a to build pyqt5 using "hostpython" instead of sys py
Browse files Browse the repository at this point in the history
The current system python in the docker baseimage is py3.9, while the
targetpython and hostpython built by p4a are py3.8, and this was causing
linker issues in the pyqt5 build.
It is also cleaner IMHO to have p4a handle what is needed for a recipe
instead of assuming it is available in the system. (and I think this is
how other existing recipes work)

fixes #8016
  • Loading branch information
SomberNight committed Oct 14, 2022
1 parent 47c480b commit 1789778
Show file tree
Hide file tree
Showing 9 changed files with 70 additions and 13 deletions.
5 changes: 3 additions & 2 deletions contrib/android/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -176,10 +176,11 @@ RUN cd /opt \
&& git remote add sombernight https://github.com/SomberNight/python-for-android \
&& git remote add accumulator https://github.com/accumulator/python-for-android \
&& git fetch --all \
# commit: from branch sombernight/qt5-wip
&& git checkout "c6e39ae1fb4eb8d547eb70b26b89beda7e6ff4b6^{commit}" \
# commit: from branch sombernight/electrum_20210421d
&& git checkout "4535a333f9928e894caedefc4f746f9c6a0dc50f^{commit}" \
&& python3 -m pip install --no-build-isolation --no-dependencies --user -e .

# build env vars
ENV USE_SDK_WRAPPER=1
ENV GRADLE_OPTS="-Xmx1536M -Dorg.gradle.jvmargs='-Xmx1536M'"
#ENV P4A_FULL_DEBUG=1
13 changes: 13 additions & 0 deletions contrib/android/p4a_recipes/packaging/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pythonforandroid.recipes.packaging import PackagingRecipe


assert PackagingRecipe._version == "21.3"
assert PackagingRecipe.depends == ["setuptools", "pyparsing", "python3"]
assert PackagingRecipe.python_depends == []


class PackagingRecipePinned(PackagingRecipe):
sha512sum = "2e3aa276a4229ac7dc0654d586799473ced9761a83aa4159660d37ae1a2a8f30e987248dd0e260e2834106b589f259a57ce9936eef0dcc3c430a99ac6b663e05"


recipe = PackagingRecipePinned()
13 changes: 13 additions & 0 deletions contrib/android/p4a_recipes/pyparsing/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pythonforandroid.recipes.pyparsing import PyparsingRecipe


assert PyparsingRecipe._version == "3.0.7"
assert PyparsingRecipe.depends == ["setuptools", "python3"]
assert PyparsingRecipe.python_depends == []


class PyparsingRecipePinned(PyparsingRecipe):
sha512sum = "1e692f4cdaa6b6e8ca2729d0a3e2ba16d978f1957c538b6de3a4220ec7d996bdbe87c41c43abab851fffa3b0498a05841373e435602917b8c095042e273badb5"


recipe = PyparsingRecipePinned()
2 changes: 1 addition & 1 deletion contrib/android/p4a_recipes/pyqt5/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@


assert PyQt5Recipe._version == "5.15.6"
assert PyQt5Recipe.depends == ['qt5', 'pyjnius', 'setuptools', 'pyqt5sip']
assert PyQt5Recipe.depends == ['qt5', 'pyjnius', 'setuptools', 'pyqt5sip', 'hostpython3', 'pyqt_builder']
assert PyQt5Recipe.python_depends == []


Expand Down
13 changes: 13 additions & 0 deletions contrib/android/p4a_recipes/pyqt_builder/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pythonforandroid.recipes.pyqt_builder import PyQtBuilderRecipe


assert PyQtBuilderRecipe._version == "1.12.2"
assert PyQtBuilderRecipe.depends == ["sip", "packaging", "python3"]
assert PyQtBuilderRecipe.python_depends == []


class PyQtBuilderRecipePinned(PyQtBuilderRecipe):
sha512sum = "022f2cd40c100543c4b442fc5b27bbf2ec853d94b531f8f6dc1d7f92b07bcc20e8f0a4eb64feb96d094ba0d5f01fddcc8aed23ddf67a61417e07983a73918230"


recipe = PyQtBuilderRecipePinned()
13 changes: 13 additions & 0 deletions contrib/android/p4a_recipes/sip/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pythonforandroid.recipes.sip import SipRecipe


assert SipRecipe._version == "6.5.1"
assert SipRecipe.depends == ["setuptools", "packaging", "toml", "python3"]
assert SipRecipe.python_depends == []


class SipRecipePinned(SipRecipe):
sha512sum = "2d6f225e653873462d97dfdc85bd308a26b66996e1bb98e2c3aa60a3b260db745021f1d3182db8e943fd216ee27a2f65731b96d287e94f8f2e7972c5df971c69"


recipe = SipRecipePinned()
13 changes: 13 additions & 0 deletions contrib/android/p4a_recipes/toml/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from pythonforandroid.recipes.toml import TomlRecipe


assert TomlRecipe._version == "0.10.2"
assert TomlRecipe.depends == ["setuptools", "python3"]
assert TomlRecipe.python_depends == []


class TomlRecipePinned(TomlRecipe):
sha512sum = "ede2c8fed610a3827dba828f6e7ab7a8dbd5745e8ef7c0cd955219afdc83b9caea714deee09e853627f05ad1c525dc60426a6e9e16f58758aa028cb4d3db4b39"


recipe = TomlRecipePinned()
9 changes: 0 additions & 9 deletions contrib/deterministic-build/requirements-build-android.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,6 @@ ptyprocess==0.7.0 \
pyparsing==3.0.7 \
--hash=sha256:18ee9022775d270c55187733956460083db60b37d0d0fb357445f3094eed3eea \
--hash=sha256:a6c06a88f252e6c322f65faf8f418b16213b51bdfaece0524c1c1bc30c63c484
PyQt-builder==1.12.2 \
--hash=sha256:48f754394d235307201ec2b5355934858741201af09433ff543ca40ae57b7865 \
--hash=sha256:f62bb688d70e0afd88c413a8d994bda824e6cebd12b612902d1945c5a67edcd7
pytoml==0.1.21 \
--hash=sha256:57a21e6347049f73bfb62011ff34cd72774c031b9828cb628a752225136dfc33 \
--hash=sha256:8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7
Expand All @@ -127,12 +124,6 @@ setuptools==61.3.1 \
sh==1.14.2 \
--hash=sha256:4921ac9c1a77ec8084bdfaf152fe14138e2b3557cc740002c1a97076321fce8a \
--hash=sha256:9d7bd0334d494b2a4609fe521b2107438cdb21c0e469ffeeb191489883d6fe0d
sip==6.5.1 \
--hash=sha256:01a637b44c5918505801c3d56e1e010b8e86a4edee71c0bd8541c54387b57ae2 \
--hash=sha256:13b09357615c2d8bcb23bf21c1637941ac8ff5f28b346c1ccad7efafa57673e9 \
--hash=sha256:204f0240db8999a749d638a987b351861843e69239b811ec3d1881412c3706a6 \
--hash=sha256:57e5ac40744c0f10a6c53dd45d2ef2c90e52f34a0210d8309e6563a07f914d0d \
--hash=sha256:de1cb4004d75a3a236f82a69cd7a3e51ff76b414df412fea22bf433b28876e3f
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
Expand Down
2 changes: 1 addition & 1 deletion contrib/requirements/requirements-build-android.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ pep517<0.7.0
toml

# needed for the Qt/QML Android GUI:
PyQt-builder
# TODO double-check this
typing-extensions

0 comments on commit 1789778

Please sign in to comment.