Skip to content

Commit 83dc122

Browse files
authored
Merge pull request #2159 from AndreMiras/feature/fix_macos_venv_build
Fixes hostpython build with macOS venv
2 parents 50affc8 + 38ba1ad commit 83dc122

File tree

6 files changed

+35
-10
lines changed

6 files changed

+35
-10
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
# installs java 1.8, android's SDK/NDK and p4a
5353
- make -f ci/makefiles/osx.mk
5454
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
55-
script: make testapps-no-venv/armeabi-v7a
55+
script: make testapps/armeabi-v7a
5656
- <<: *testapps
5757
name: Rebuild updated recipes
5858
script: travis_wait 30 make docker/run/make/rebuild_updated_recipes

Makefile

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,6 @@ testapps/%: virtualenv
4747
python setup.py apk --sdk-dir $(ANDROID_SDK_HOME) --ndk-dir $(ANDROID_NDK_HOME) \
4848
--arch=$($@_APP_ARCH)
4949

50-
testapps-no-venv/%:
51-
pip3 install Cython==0.28.6
52-
pip3 install -e .
53-
$(eval $@_APP_ARCH := $(shell basename $*))
54-
cd testapps/on_device_unit_tests/ && \
55-
python3 setup.py apk --sdk-dir $(ANDROID_SDK_HOME) --ndk-dir $(ANDROID_NDK_HOME) \
56-
--arch=$($@_APP_ARCH)
57-
5850
clean:
5951
find . -type d -name "__pycache__" -exec rm -r {} +
6052
find . -type d -name "*.egg-info" -exec rm -r {} +

pythonforandroid/recipes/hostpython3/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from os.path import exists, join, isfile
55

66
from pythonforandroid.logger import shprint
7+
from pythonforandroid.patching import is_version_lt
78
from pythonforandroid.recipe import Recipe
89
from pythonforandroid.util import (
910
BuildInterruptingException,
@@ -35,6 +36,10 @@ class Hostpython3Recipe(Recipe):
3536
'''The default url to download our host python recipe. This url will
3637
change depending on the python version set in attribute :attr:`version`.'''
3738

39+
patches = (
40+
('patches/pyconfig_detection.patch', is_version_lt("3.8.3")),
41+
)
42+
3843
@property
3944
def _exe_name(self):
4045
'''
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff -Nru Python-3.8.2/Lib/site.py Python-3.8.2-new/Lib/site.py
2+
--- Python-3.8.2/Lib/site.py 2020-04-28 12:48:38.000000000 -0700
3+
+++ Python-3.8.2-new/Lib/site.py 2020-04-28 12:52:46.000000000 -0700
4+
@@ -487,7 +487,8 @@
5+
if key == 'include-system-site-packages':
6+
system_site = value.lower()
7+
elif key == 'home':
8+
- sys._home = value
9+
+ # this is breaking pyconfig.h path detection with venv
10+
+ print('Ignoring "sys._home = value" override')
11+
12+
sys.prefix = sys.exec_prefix = site_prefix
13+

pythonforandroid/recipes/python3/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from shutil import copy2
99

1010
from pythonforandroid.logger import info, warning, shprint
11-
from pythonforandroid.patching import version_starts_with
11+
from pythonforandroid.patching import version_starts_with, is_version_lt
1212
from pythonforandroid.recipe import Recipe, TargetPythonRecipe
1313
from pythonforandroid.util import (
1414
current_directory,
@@ -55,6 +55,8 @@ class Python3Recipe(TargetPythonRecipe):
5555
name = 'python3'
5656

5757
patches = [
58+
('patches/pyconfig_detection.patch', is_version_lt("3.8.3")),
59+
5860
# Python 3.7.1
5961
('patches/py3.7.1_fix-ctypes-util-find-library.patch', version_starts_with("3.7")),
6062
('patches/py3.7.1_fix-zlib-version.patch', version_starts_with("3.7")),
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff -Nru Python-3.8.2/Lib/site.py Python-3.8.2-new/Lib/site.py
2+
--- Python-3.8.2/Lib/site.py 2020-04-28 12:48:38.000000000 -0700
3+
+++ Python-3.8.2-new/Lib/site.py 2020-04-28 12:52:46.000000000 -0700
4+
@@ -487,7 +487,8 @@
5+
if key == 'include-system-site-packages':
6+
system_site = value.lower()
7+
elif key == 'home':
8+
- sys._home = value
9+
+ # this is breaking pyconfig.h path detection with venv
10+
+ print('Ignoring "sys._home = value" override')
11+
12+
sys.prefix = sys.exec_prefix = site_prefix
13+

0 commit comments

Comments
 (0)