8000 Merge pull request #2225 from kivy/release-2020.06.02 · rnixx/python-for-android@1b3b0e3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 1b3b0e3

Browse files
authored
Merge pull request kivy#2225 from kivy/release-2020.06.02
Release 2020.06.02
2 parents 17dfa6a + 5a32f68 commit 1b3b0e3

File tree

114 files changed

+944
-9208
lines changed
  • renpy/android
  • service_library/build
  • service_only
  • webview
  • recipes
  • testapps/on_device_unit_tests
  • tests
  • Some content is hidden

    Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

    114 files changed

    +944
    -9208
    lines changed

    .github/ISSUE_TEMPLATE.md

    Lines changed: 18 additions & 15 deletions
    Original file line numberDiff line numberDiff line change
    @@ -1,23 +1,24 @@
    11
    <!--
    2-
    The issue tracker is a tool to address bugs.
    3-
    Please use the Disord community or Stack Overflow for support questions,
    2+
    The issue tracker is a tool to address bugs NOT a support platform.
    3+
    Please use the Discord community or Stack Overflow for support questions,
    44
    more information at https://github.com/kivy/python-for-android#support
    5-
    6-
    Before opening a new issue, make sure you do the following:
    7-
    * check that your issue isn't already filed: https://github.com/kivy/python-for-android/issues
    8-
    * prepare a short, runnable example that reproduces the issue
    9-
    * make sure to have `log_level = 2` in your `buildozer.spec`
    10-
    * reproduce the problem with the latest development version (`p4a.branch = master`)
    11-
    * double-check that the issue is indeed a bug and not a support request
    12-
    * please use backticks to format code or logs
    135
    -->
    146

    7+
    ### Checklist
    8+
    9+
    - [ ] the issue is indeed a bug and not a support request
    10+
    - [ ] issue doesn't already exist: https://github.com/kivy/python-for-android/issues
    11+
    - [ ] I have a short, runnable example that reproduces the issue
    12+
    - [ ] I reproduced the problem with the latest development version (`p4a.branch = develop`)
    13+
    - [ ] I used the grave accent (aka backticks) to format code or logs when appropriated
    14+
    1515
    ### Versions
    1616

    17-
    * Python:
    18-
    * OS:
    19-
    * Kivy:
    20-
    * Cython:
    17+
    - Python:
    18+
    - OS:
    19+
    - Kivy:
    20+
    - Cython:
    21+
    - OpenJDK:
    2122

    2223
    ### Description
    2324

    @@ -28,6 +29,7 @@ Before opening a new issue, make sure you do the following:
    2829
    Command:
    2930
    ```sh
    3031
    // REPLACE ME: buildozer command ran? e.g. buildozer android debug
    32+
    // Keep the triple grave accent (aka backquote/backtick) to have the code formatted
    3133
    ```
    3234

    3335
    Spec file:
    @@ -38,5 +40,6 @@ Spec file:
    3840
    ### Logs
    3941

    4042
    ```
    41-
    // REPLACE ME: Paste the build ouput containing the error
    43+
    // REPLACE ME: Paste the build output containing the error
    44+
    // Keep the triple grave accent (a.k.a. backquote/backtick) to have the code formatted
    4245
    ```

    .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

    Dockerfile

    Lines changed: 6 additions & 6 deletions
    Original file line numberDiff line numberDiff line change
    @@ -15,17 +15,19 @@
    1515
    # Use 'docker run' without '--rm' flag for keeping the container and use
    1616
    # 'docker commit <container hash> <new image>' to extend the original image
    1717

    18-
    FROM ubuntu:18.04
    18+
    FROM ubuntu:20.04
    1919

    2020
    # configure locale
    21-
    RUN apt update -qq > /dev/null && apt install -qq --yes --no-install-recommends \
    21+
    RUN apt -y update -qq > /dev/null \
    22+
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    2223
    locales && \
    2324
    locale-gen en_US.UTF-8
    2425
    ENV LANG="en_US.UTF-8" \
    2526
    LANGUAGE="en_US.UTF-8" \
    2627
    LC_ALL="en_US.UTF-8"
    2728

    28-
    RUN apt -y update -qq > /dev/null && apt -y install -qq --no-install-recommends \
    29+
    RUN apt -y update -qq > /dev/null \
    30+
    && DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    2931
    ca-certificates \
    3032
    curl \
    3133
    && apt -y autoremove \
    @@ -49,7 +51,7 @@ ENV WORK_DIR="${HOME_DIR}/app" \
    4951
    # install system dependencies
    5052
    RUN dpkg --add-architecture i386 \
    5153
    && ${RETRY} apt -y update -qq > /dev/null \
    52-
    && ${RETRY} apt -y install -qq --no-install-recommends \
    54+
    && ${RETRY} DEBIAN_FRONTEND=noninteractive apt install -qq --yes --no-install-recommends \
    5355
    autoconf \
    5456
    automake \
    5557
    autopoint \
    @@ -64,8 +66,6 @@ RUN dpkg --add-architecture i386 \
    6466
    libidn11:i386 \
    6567
    libltdl-dev \
    6668
    libncurses5:i386 \
    67-
    libpangox-1.0-0:i386 \
    68-
    libpangoxft-1.0-0:i386 \
    6969
    libssl-dev \
    7070
    libstdc++6:i386 \
    7171
    libtool \

    Makefile

    Lines changed: 2 additions & 10 deletions
    Original file line numberDiff line numberDiff line change
    @@ -20,7 +20,7 @@ all: virtualenv
    2020

    2121
    $(VIRTUAL_ENV):
    2222
    python3 -m venv $(VIRTUAL_ENV)
    23-
    $(PIP) install Cython==0.28.6
    23+
    $(PIP) install Cython==0.29.19
    2424
    $(PIP) install -e .
    2525

    2626
    virtualenv: $(VIRTUAL_ENV)
    @@ -38,7 +38,7 @@ testapps-with-numpy/%: virtualenv
    3838
    $(eval $@_APP_ARCH := $(shell basename $*))
    3939
    . $(ACTIVATE) && cd testapps/on_device_unit_tests/ && \
    4040
    python setup.py apk --sdk-dir $(ANDROID_SDK_HOME) --ndk-dir $(ANDROID_NDK_HOME) \
    41-
    --requirements libffi,sdl2,pyjnius,kivy,python3,openssl,requests,sqlite3,setuptools,numpy \
    41+
    --requirements libffi,sdl2,pyjnius,kivy,python3,openssl,requests,urllib3,chardet,idna,sqlite3,setuptools,numpy \
    4242
    --arch=$($@_APP_ARCH)
    4343

    4444
    testapps/%: virtualenv
    @@ -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 {} +

    README.md

    Lines changed: 0 additions & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -13,7 +13,6 @@ dependencies you want, and bundle it in an APK along with your own code.
    1313

    1414
    Features include:
    1515

    16-
    - Support for building with both Python 2 and Python 3.
    1716
    - Different app backends including Kivy, PySDL2, and a WebView with
    1817
    Python webserver.
    1918
    - Automatic support for most pure Python modules, and built in support

    ci/makefiles/osx.mk

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -11,7 +11,7 @@ install_java:
    1111
    /usr/libexec/java_home -V
    1212

    1313
    upgrade_cython:
    14-
    pip3 install --upgrade Cython==0.28.6
    14+
    pip3 install --upgrade Cython==0.29.19
    1515

    1616
    install_android_ndk_sdk:
    1717
    mkdir -p $(ANDROID_HOME)

    doc/source/contribute.rst

    Lines changed: 14 additions & 11 deletions
    Original file line numberDiff line numberDiff line change
    @@ -55,8 +55,8 @@ At this point, wait for reviewer approval and conclude any discussion that arise
    5555
    - Merge the release branch to the ``master`` branch.
    5656
    - Also merge the release branch to the ``develop`` branch.
    5757
    - Tag the release commit in ``master``, with tag ``vYYYY.MM.DD``. Include a short summary of the changes.
    58-
    - Create the release distributions: ``python3 setup.py sdist bdist_wheel``
    59-
    - Upload the release to pypi: ``python3 -m twine upload``.
    58+
    - Release distributions and PyPI upload should be `handled by the CI
    59+
    <https://github.com/kivy/python-for-android/blob/v2020.04.29/.travis.yml#L60-L70>`_.
    6060
    - Add to the Github release page (see e.g. `this example <https://github.com/kivy/python-for-android/releases/tag/v2019.06.06>`__):
    6161
    - The python-for-android README summary
    6262
    - A short list of major changes in this release, if any
    @@ -67,15 +67,18 @@ At this point, wait for reviewer approval and conclude any discussion that arise
    6767

    6868
    Release checklist
    6969
    ~~~~~~~~~~~~~~~~~
    70-
    71-
    - [ ] Check that the [build is passing](https://travis-ci.org/kivy/python-for-android)
    72-
    - [ ] Run the tests locally via `tox`: this performs some long-running tests that are skipped on Travis.
    73-
    - [ ] Build and run the [on_device_unit_tests](https://github.com/kivy/python-for-android/tree/master/testapps/on_device_unit_tests) app using buildozer. Check that they all pass.
    74-
    - [ ] Build and run the following [testapps](https://github.com/kivy/python-for-android/tree/master/testapps) for arch `armeabi-v7a` and `arm64-v8a`:
    75-
    - `python3 setup_testapp_python3_sqlite_openssl.py apk`
    76-
    - [ ] `armeabi-v7a`
    77-
    - [ ] `arm64-v8a`
    78-
    - [ ] Check that the version number is correct
    70+
    ::
    71+
    72+
    - [ ] Check that the builds are passing
    73+
    - [ ] [Travis build](https://travis-ci.org/kivy/python-for-android)
    74+
    - [ ] [GitHub Action](https://github.com/kivy/python-for-android/actions)
    75+
    - [ ] Run the tests locally via `tox`: this performs some long-running tests that are skipped on Travis.
    76+
    - [ ] Build and run the [on_device_unit_tests](https://github.com/kivy/python-for-android/tree/master/testapps/on_device_unit_tests) app using buildozer. Check that they all pass.
    77+
    - [ ] Build (or download from github actions) and run the following [testapps](https://github.com/kivy/python-for-android/tree/master/testapps/on_device_unit_tests) for arch `armeabi-v7a` and `arm64-v8a`:
    78+
    - [ ] on_device_unit_tests
    79+
    - [ ] `armeabi-v7a` (`cd testapps/on_device_unit_tests && PYTHONPATH=.:../../ python3 setup.py apk --ndk-dir=<your-ndk-dir> --sdk-dir=<your-sdk-dir> --arch=armeabi-v7a --debug`)
    80+
    - [ ] `arm64-v8a` (`cd testapps/on_device_unit_tests && PYTHONPATH=.:../../ python3 setup.py apk --ndk-dir=<your-ndk-dir> --sdk-dir=<your-sdk-dir> --arch=arm64-v8a --debug`)
    81+
    - [ ] Check that the version number is correct
    7982

    8083

    8 10000 184

    doc/source/quickstart.rst

    Lines changed: 11 additions & 3 deletions
    Original file line numberDiff line numberDiff line change
    @@ -62,14 +62,16 @@ Installing Dependencies
    6262
    p4a has several dependencies that must be installed:
    6363

    6464
    - ant
    65-
    - autoconf (for ffpyplayer_codecs recipe)
    65+
    - autoconf (for libffi and other recipes)
    66+
    - automake
    6667
    - ccache (optional)
    6768
    - cmake (required for some native code recipes like jpeg's recipe)
    6869
    - cython (can be installed via pip)
    6970
    - gcc
    7071
    - git
    7172
    - libncurses (including 32 bit)
    72-
    - libtool (for ffpyplayer_codecs recipe)
    73+
    - libtool (for libffi and recipes)
    74+
    - libssl-dev (for TLS/SSL support on hostpython3 and recipe)
    7375
    - openjdk-8
    7476
    - patch
    7577
    - python3
    @@ -83,14 +85,20 @@ install most of these with::
    8385

    8486
    sudo dpkg --add-architecture i386
    8587
    sudo apt-get update
    86-
    sudo apt-get install -y build-essential ccache git zlib1g-dev python3 python3-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache autoconf libtool
    88+
    sudo apt-get install -y build-essential ccache git zlib1g-dev python3 python3-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache autoconf libtool libssl-dev
    8789

    8890
    On Arch Linux you should be able to run the following to
    8991
    install most of the dependencies (note: this list may not be
    9092
    complete)::
    9193

    9294
    sudo pacman -S core/autoconf core/automake core/gcc core/make core/patch core/pkgconf extra/cmake extra/jdk8-openjdk extra/python-pip extra/unzip extra/zip
    9395

    96+
    On macOS::
    97+
    98+
    brew install autoconf automake libtool openssl pkg-config
    99+
    brew tap homebrew/cask-versions
    100+
    brew cask install homebrew/cask-versions/adoptopenjdk8
    101+
    94102
    Installing Android SDK
    95103
    ~~~~~~~~~~~~~~~~~~~~~~
    96104

    doc/source/troubleshooting.rst

    Lines changed: 28 additions & 6 deletions
    Original file line numberDiff line numberDiff line change
    @@ -163,6 +163,17 @@ On Ubuntu fix it my making sure only the :code:`openjdk-8-jdk` package is instal
    163163
    In the similar fashion for macOS you need to install the :code:`java8` package::
    164164

    165165
    brew cask install java8
    166+
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
    167+
    168+
    169+
    Error: Cask 'java8' is unavailable: No Cask with this name exists
    170+
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    171+
    172+
    In order to install Java 8 on macOS you may need extra steps::
    173+
    174+
    brew tap homebrew/cask-versions
    175+
    brew cask install homebrew/cask-versions/adoptopenjdk8
    176+
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
    166177

    167178

    168179
    JNI DETECTED ERROR IN APPLICATION: static jfieldID 0x0000000 not valid for class java.lang.Class<org.renpy.android.PythonActivity>
    @@ -173,12 +184,6 @@ This error appears in the logcat log if you try to access
    173184
    fix it, change your code to reference
    174185
    ``org.kivy.android.PythonActivity`` instead.
    175186

    176-
    websocket-client: if you see errors relating to 'SSL not available'
    177-
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    178-
    Ensure you have the package backports.ssl-match-hostname in the buildozer requirements, since Kivy targets python 2.7.x
    179-
    180-
    You may also need sslopt={"cert_reqs": ssl.CERT_NONE} as a parameter to ws.run_forever() if you get an error relating to host verification
    181-
    182187
    Requested API target 19 is not available, install it with the SDK android tool
    183188
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    184189

    @@ -197,3 +202,20 @@ ModuleNotFoundError: No module named '_ctypes'
    197202
    You do not have the libffi headers available to python-for-android, so you need to install them. On Ubuntu and derivatives these come from the `libffi-dev` package.
    198203

    199204
    After installing the headers, clean the build (`p4a clean builds`, or with buildozer delete the `.buildozer` directory within your app directory) and run python-for-android again.
    205+
    206+
    SSLError("Can't connect to HTTPS URL because the SSL module is not available.")
    207+
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    208+
    209+
    Your 10000 `hostpython3` was compiled without SSL support. You need to install the SSL development files before rebuilding the `hostpython3` recipe.
    210+
    Remember to always clean the build before rebuilding (`p4a clean builds`, or with buildozer `buildozer android clean`).
    211+
    212+
    On Ubuntu and derivatives::
    213+
    214+
    apt install libssl-dev
    215+
    p4a clean builds # or with: buildozer `buildozer android clean
    216+
    217+
    On macOS::
    218+
    219+
    brew install openssl
    220+
    sudo ln -sfn /usr/local/opt/openssl /usr/local/ssl
    221+
    p4a clean builds # or with: buildozer `buildozer android clean

    pythonforandroid/__init__.py

    Lines changed: 1 addition & 1 deletion
    Original file line numberDiff line numberDiff line change
    @@ -1 +1 @@
    1-
    __version__ = '2020.04.29'
    1+
    __version__ = '2020.06.02'

    pythonforandroid/archs.py

    Lines changed: 2 additions & 2 deletions
    Original file line numberDiff line numberDiff line change
    @@ -145,9 +145,9 @@ def get_env(self, with_flags_in_cc=True):
    145145
    + " ".join(
    146146
    [
    147147
    "-L'"
    148-
    + l.replace("'", "'\"'\"'")
    148+
    + link_path.replace("'", "'\"'\"'")
    149149
    + "'" # no shlex.quote in py2
    150-
    for l in self.extra_global_link_paths
    150+
    for link_path in self.extra_global_link_paths
    151151
    ]
    152152
    )
    153153
    + ' ' + ' '.join(self.common_ldflags).format(

    pythonforandroid/bootstrap.py

    Lines changed: 23 additions & 4 deletions
    Original file line numberDiff line numberDiff line change
    @@ -132,9 +132,6 @@ def get_build_dir(self):
    132132
    def get_dist_dir(self, name):
    133133
    return join(self.ctx.dist_dir, name)
    134134

    135-
    def get_common_dir(self):
    136-
    return os.path.abspath(join(self 10000 .bootstrap_dir, "..", 'common'))
    137-
    138135
    @property
    139136
    def name(self):
    140137
    modname = self.__class__.__module__
    @@ -152,6 +149,23 @@ def get_bootstrap_dirs(self):
    152149
    ]
    153150
    return bootstrap_dirs
    154151

    152+
    def _copy_in_final_files(self):
    153+
    if self.name == "sdl2":
    154+
    # Get the paths for copying SDL2's java source code:
    155+
    sdl2_recipe = Recipe.get_recipe("sdl2", self.ctx)
    156+
    sdl2_build_dir = sdl2_recipe.get_jni_dir()
    157+
    src_dir = join(sdl2_build_dir, "SDL", "android-project",
    158+
    "app", "src", "main", "java",
    159+
    "org", "libsdl", "app")
    160+
    target_dir = join(self.dist_dir, 'src', 'main', 'java', 'org',
    161+
    'libsdl', 'app')
    162+
    163+
    # Do actual copying:
    164+
    info('Copying in SDL2 .java files from: ' + str(src_dir))
    165+
    if not os.path.exists(target_dir):
    166+
    os.makedirs(target_dir)
    167+
    copy_files(src_dir, target_dir, override=True)
    168+
    155169
    def prepare_build_dir(self):
    156170
    """Ensure that a build dir exists for the recipe. This same single
    157171
    dir will be used for building all different archs."""
    @@ -168,7 +182,12 @@ def prepare_build_dir(self):
    168182
    def prepare_dist_dir(self):
    169183
    ensure_dir(self.dist_dir)
    170184

    171-
    def run_distribute(self):
    185+
    def assemble_distribution(self):
    186+
    ''' Copies all the files into the distribution (this function is
    187+
    overridden by the specific bootstrap classes to do this)
    188+
    and add in the distribution info.
    189+
    '''
    190+
    self._copy_in_final_files()
    172191
    self.distribution.save_info(self.dist_dir)
    173192

    174193
    @classmethod

    0 commit comments

    Comments
     (0)
    0