Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-pyjnius for openSUSE:Factory checked in at 2022-10-06 07:41:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pyjnius (Old) and /work/SRC/openSUSE:Factory/.python-pyjnius.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pyjnius" Thu Oct 6 07:41:40 2022 rev:4 rq:1008083 version:1.4.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pyjnius/python-pyjnius.changes 2022-02-26 17:02:52.243543410 +0100 +++ /work/SRC/openSUSE:Factory/.python-pyjnius.new.2275/python-pyjnius.changes 2022-10-06 07:41:50.944639883 +0200 @@ -1,0 +2,17 @@ +Wed Oct 5 00:17:04 UTC 2022 - Yogalakshmi Arunachalam <yarunacha...@suse.com> + +- Update to v1.4.2 + CI + #628 Updated java-setup to v3, include all the LTS versions from adoptium during CI tests. + Packaging + #620 When cross-compiling for Android, we should not use the include dirs exposed by the JDK + #629 Cython now requires a minimum version. Introduces setup.cfg. Cleans up the CI workflow + #625 Use cibuildwheel for releases + Docs + #616 Update api.rst, remove extra equals signs + Implemented enhancements: + #622 Add suffix to support IBM jre on Windows + #626 Move get_cpu guessing into _possible_lib_location + #627 PyPy: Fixes a segfault + add tests + +------------------------------------------------------------------- Old: ---- pyjnius-1.4.1.tar.gz New: ---- pyjnius-1.4.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pyjnius.spec ++++++ --- /var/tmp/diff_new_pack.tmvLry/_old 2022-10-06 07:41:51.492641103 +0200 +++ /var/tmp/diff_new_pack.tmvLry/_new 2022-10-06 07:41:51.500641120 +0200 @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-pyjnius -Version: 1.4.1 +Version: 1.4.2 Release: 0 Summary: Access Java classes from Python License: MIT ++++++ pyjnius-1.4.1.tar.gz -> pyjnius-1.4.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/.ci/osx_ci.sh new/pyjnius-1.4.2/.ci/osx_ci.sh --- old/pyjnius-1.4.1/.ci/osx_ci.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/pyjnius-1.4.2/.ci/osx_ci.sh 2022-07-03 13:50:03.000000000 +0200 @@ -0,0 +1,13 @@ +#!/bin/bash +set -e -x + +arm64_set_path_and_python_version(){ + python_version="$1" + if [[ $(/usr/bin/arch) = arm64 ]]; then + export PATH=/opt/homebrew/bin:$PATH + eval "$(pyenv init --path)" + pyenv install $python_version -s + pyenv global $python_version + export PATH=$(pyenv prefix)/bin:$PATH + fi +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/.github/actions/scripts/manylinux_entrypoint.sh new/pyjnius-1.4.2/.github/actions/scripts/manylinux_entrypoint.sh --- old/pyjnius-1.4.1/.github/actions/scripts/manylinux_entrypoint.sh 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/.github/actions/scripts/manylinux_entrypoint.sh 1970-01-01 01:00:00.000000000 +0100 @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -yum install -y java-1.7.0-openjdk-devel - -for target in $(ls /opt/python/); do - python=/opt/python/$target/bin/python - $python -m pip install -U setuptools cython - $python setup.py bdist_wheel - git clean -dfx jnius/ -done - -for whl in dist/*.whl; do - auditwheel repair $whl -done - -rm dist/*-linux_*.whl -mv wheelhouse/*.whl dist/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/.github/workflows/create.yml new/pyjnius-1.4.2/.github/workflows/create.yml --- old/pyjnius-1.4.1/.github/workflows/create.yml 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/.github/workflows/create.yml 2022-07-03 13:50:03.000000000 +0200 @@ -1,100 +1,206 @@ -on: create +on: + push: + pull_request: + create: + name: Continuous Delivery jobs: - PrepareRelease: - name: prepare-release - if: startsWith(github.ref, 'refs/tags/') + build_wheels: + name: cibuildwheel on ${{ matrix.os }} ${{ matrix.architecture }} + if: (github.event_name == 'create' && github.event.ref_type == 'tag') || contains(github.event.head_commit.message, '[build wheel]') || contains(github.event.pull_request.title, '[build wheel]') + env: + CIBW_BEFORE_ALL_LINUX: 'yum install -y java-11-openjdk-devel' + CIBW_ARCHS_MACOS: "x86_64 universal2" + CIBW_REPAIR_WHEEL_COMMAND_MACOS: '' strategy: matrix: - python: - - '3.6' - - '3.7' - - '3.8' - - '3.9' - - '3.10' - java: - - '12' - os: - - 'windows-latest' - - 'macOs-latest' - architecture: - - 'x64' - - 'x86' - - # exclude problematic combinations - exclude: - - os: ubuntu-latest - architecture: 'x86' - - os: macOs-latest - architecture: 'x86' - + os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] + architecture: ['x64'] + include: + - os: windows-latest + architecture: 'x86' + cibw_skip: '*_amd64' + - os: windows-latest + architecture: 'x64' + cibw_skip: '*-win32' + - os: ubuntu-latest + architecture: 'x64' + cibw_skip: '*-manylinux_i686' runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@master - - name: Setup python - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python }} - architecture: ${{ matrix.architecture }} + - name: Checkout pyjnius + uses: actions/checkout@v3 - - name: Setup java - uses: actions/setup-java@v1 - with: - java-version: ${{ matrix.java }} - architecture: ${{ matrix.architecture }} + - name: Setup Python + uses: actions/setup-python@v3 - - name: build sdist - if: matrix.os == 'windows-latest' && matrix.python == '3.8' && matrix.architecture == 'x64' - run: | - pip install -U setuptools - python setup.py sdist - - - name: build-wheel-windows - if: matrix.os == 'windows-latest' - run: | - "%VS140COMNTOOLS%../../VC/vcvarsall.bat" - echo "$INCLUDE" - set INCLUDE "C:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt" - pip install --timeout=120 -U setuptools wheel cython - python setup.py bdist_wheel - - - name: build wheel - if: matrix.os != 'windows-latest' - run: | - pip install -U --timeout=120 -U setuptools wheel cython - python setup.py bdist_wheel + - name: Install cibuildwheel + run: python -m pip install cibuildwheel==2.6.0 - - name: upload wheel - uses: actions/upload-artifact@master - with: - name: dist - path: dist - - PrepareManylinux: - name: prepare-manylinux - if: startsWith(github.ref, 'refs/tags/') + - name: Setup java + # There's no need to setup java on ubuntu-latest, as build is done into a manylinux + # containerized environment. (CIBW_BEFORE_ALL_LINUX) takes care of it. + if: ${{ matrix.os != 'ubuntu-latest' }} + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + architecture: ${{ matrix.architecture }} + + - name: Build wheels + env: + CIBW_SKIP: '*musllinux* ${{ matrix.cibw_skip }}' + run: python -m cibuildwheel --output-dir dist + + - name: upload wheels + uses: actions/upload-artifact@v2 + with: + name: dist + path: dist + + build_sdist: + name: Build sdist + if: (github.event_name == 'create' && github.event.ref_type == 'tag') || contains(github.event.head_commit.message, '[build sdist]') || contains(github.event.pull_request.title, '[build sdist]') runs-on: 'ubuntu-latest' steps: - - uses: actions/checkout@master + - name: Checkout pyjnius + uses: actions/checkout@v3 - - uses: docker://quay.io/pypa/manylinux2010_x86_64 - with: - entrypoint: .github/actions/scripts/manylinux_entrypoint.sh + - name: Setup Python + uses: actions/setup-python@v3 - - name: upload wheel - uses: actions/upload-artifact@master - with: - name: dist - path: dist + - name: Build sdist + run: | + pip install -U setuptools + python setup.py sdist + + - name: upload sdist + uses: actions/upload-artifact@v2 + with: + name: dist + path: dist + + test_wheels: + name: Test wheel on ${{ matrix.os }} (${{ matrix.architecture }}) Python ${{ matrix.python }} + if: (github.event_name == 'create' && github.event.ref_type == 'tag') || contains(github.event.head_commit.message, '[build wheel]') || contains(github.event.pull_request.title, '[build wheel]') + needs: + - build_wheels + continue-on-error: true + strategy: + matrix: + os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] + python: ['3.7', '3.8', '3.9', '3.10', 'pypy-3.7', 'pypy-3.8', 'pypy-3.9'] + include: + # We may would like to introduce tests also on windows-latest on x86 (win32 wheels)? + - os: windows-latest + architecture: 'x64' + - os: macos-latest + architecture: 'x64' + - os: ubuntu-latest + architecture: 'x64' + - os: apple-silicon-m1 + architecture: 'aarch64' + python: '3.8.13' + - os: apple-silicon-m1 + architecture: 'aarch64' + python: '3.9.11' + - os: apple-silicon-m1 + architecture: 'aarch64' + python: '3.10.3' + runs-on: ${{ matrix.os }} + steps: + - name: Checkout pyjnius + uses: actions/checkout@v3 + + - uses: actions/download-artifact@v2 + with: + name: dist + path: dist + + - name: Setup Python + # Needs to be skipped on our self-hosted runners tagged as 'apple-silicon-m1' + if: ${{ matrix.os != 'apple-silicon-m1' }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python }} + + - name: Setup java + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + architecture: ${{ matrix.architecture }} + + - name: Setup ant on macOS + if: (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1') + run: | + source .ci/osx_ci.sh + arm64_set_path_and_python_version ${{ matrix.python }} + brew install ant + + - name: Build test-classes via ant (macOS x64, macOS Apple Silicon) + if: (matrix.os == 'macos-latest') || (matrix.os == 'apple-silicon-m1') + run: | + source .ci/osx_ci.sh + arm64_set_path_and_python_version ${{ matrix.python }} + ant all + + - name: Build test-classes via ant (Linux, Windows) + if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'windows-latest') + run: ant all + + - name: Install pyjnius wheel + test prerequisites (Windows, Linux, macOS x64) + if: matrix.os != 'apple-silicon-m1' + run: python -m pip install --find-links=dist pyjnius[dev,ci] + + - name: Install pyjnius wheel + test prerequisites (Apple Silicon M1) + if: matrix.os == 'apple-silicon-m1' + run: | + source .ci/osx_ci.sh + arm64_set_path_and_python_version ${{ matrix.python }} + python -m pip install --find-links=dist pyjnius[dev,ci] + + - name: Test wheel (Linux, macOS x64) + if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') + run: | + cd tests + CLASSPATH=../build/test-classes:../build/classes python -m pytest -v + + - name: Test wheel (macOS Apple Silicon) + if: matrix.os == 'apple-silicon-m1' + run: | + source .ci/osx_ci.sh + arm64_set_path_and_python_version ${{ matrix.python }} + cd tests + CLASSPATH=../build/test-classes:../build/classes python -m pytest -v + + - name: Test wheel ( Windows + Python == 3.7.x ) + # On Python < 3.8.x, we can't use `os.add_dll_directory`, so the jre should be in PATH. + if: (matrix.os == 'windows-latest') && contains(matrix.python, '3.7') + run: | + cd tests + $env:PATH +=";$env:JAVA_HOME\jre\bin\server\;$env:JAVA_HOME\jre\bin\client\;$env:JAVA_HOME\bin\server\" + $env:CLASSPATH ="../build/test-classes;../build/classes" + python -m pytest -v + + - name: Test wheel (Windows + Python != 3.7.x ) + if: (matrix.os == 'windows-latest') && !contains(matrix.python, '3.7') + run: | + cd tests + $env:CLASSPATH ="../build/test-classes;../build/classes" + python -m pytest -v + - Release: + release: + if: (github.event_name == 'create' && github.event.ref_type == 'tag') name: release needs: - - PrepareRelease - - PrepareManylinux + - build_wheels + - build_sdist + - test_wheels runs-on: 'ubuntu-latest' steps: - - uses: actions/download-artifact@master + - uses: actions/download-artifact@v2 with: name: dist path: dist diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/.github/workflows/push-x86.yml new/pyjnius-1.4.2/.github/workflows/push-x86.yml --- old/pyjnius-1.4.1/.github/workflows/push-x86.yml 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/.github/workflows/push-x86.yml 2022-07-03 13:50:03.000000000 +0200 @@ -50,7 +50,6 @@ - name: install run: | linux32 sh -ec ' - pip install --timeout=120 -U setuptools cython pip install --timeout=120 .[dev,ci] ' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/.github/workflows/push.yml new/pyjnius-1.4.2/.github/workflows/push.yml --- old/pyjnius-1.4.1/.github/workflows/push.yml 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/.github/workflows/push.yml 2022-07-03 13:50:03.000000000 +0200 @@ -3,6 +3,7 @@ jobs: Tests: name: base + continue-on-error: true strategy: matrix: python: @@ -11,16 +12,17 @@ - '3.8' - '3.9' - '3.10' + - 'pypy-3.7' + - 'pypy-3.8' + - 'pypy-3.9' java: - '8' - # - '9' # commented out just for faster CI - # - '10' - # - '11' # commented out just for faster CI - - '12' + - '11' + - '17' os: - 'ubuntu-latest' - 'windows-latest' - - 'macOs-latest' + - 'macos-latest' architecture: - 'x64' - 'x86' @@ -29,8 +31,17 @@ exclude: - os: ubuntu-latest architecture: 'x86' - - os: macOs-latest + - os: macos-latest architecture: 'x86' + - os: windows-latest + architecture: 'x86' + python: 'pypy-3.7' + - os: windows-latest + architecture: 'x86' + python: 'pypy-3.8' + - os: windows-latest + architecture: 'x86' + python: 'pypy-3.9' runs-on: ${{ matrix.os }} steps: @@ -43,56 +54,36 @@ architecture: ${{ matrix.architecture }} - name: Setup java - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} + distribution: 'temurin' architecture: ${{ matrix.architecture }} - - name: install-windows - if: matrix.os == 'windows-latest' - run: | - "%VS140COMNTOOLS%../../VC/vcvarsall.bat" - echo "$INCLUDE" - set INCLUDE "C:/Program Files (x86)/Windows Kits/10/Include/10.0.10240.0/ucrt" - pip install --timeout=120 -U setuptools cython - pip install --timeout=120 -vv .[dev,ci] + - name: (macOS) Setup test dependencies + if: matrix.os == 'macos-latest' + run: brew install ant - - name: install - if: matrix.os == 'ubuntu-latest' - run: | - pip install --timeout=120 -U setuptools cython - pip install --timeout=120 .[dev,ci] + - name: Build test classes via ant + run: ant all - - name: install-osx - if: matrix.os == 'macOs-latest' + - name: Install pyjnius with [dev, ci] extras run: | - brew install ant - pip install --timeout=120 --user -U setuptools cython - pip install --timeout=120 --user .[dev,ci] - - - name: test-windows + pip install --timeout=120 .[dev,ci] + + - name: (Windows) Test pyjnius via pytest if: matrix.os == 'windows-latest' run: | $env:PATH +=";$env:JAVA_HOME\jre\bin\server\;$env:JAVA_HOME\jre\bin\client\;$env:JAVA_HOME\bin\server\" $env:CLASSPATH ="../build/test-classes;../build/classes" - - ant all cd tests pytest -v - - name: test - if: matrix.os == 'ubuntu-latest' - run: | - ant all - cd tests - CLASSPATH=../build/test-classes:../build/classes pytest -v - - - name: test - if: matrix.os == 'macOs-latest' + - name: (Linux, macOS) Test pyjnius via pytest + if: (matrix.os == 'ubuntu-latest') || (matrix.os == 'macos-latest') run: | - ant all cd tests - CLASSPATH=../build/test-classes:../build/classes python -m pytest -v + CLASSPATH=../build/test-classes:../build/classes python -m pytest -v # - name: coveralls # run: python -m coveralls diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/CHANGELOG.md new/pyjnius-1.4.2/CHANGELOG.md --- old/pyjnius-1.4.1/CHANGELOG.md 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/CHANGELOG.md 2022-07-03 13:50:03.000000000 +0200 @@ -1,6 +1,25 @@ # Change Log -## [1.4.1](https://github.com/kivy/pyjnius/tree/1.4.0) (2021-10-30) +## [1.4.2](https://github.com/kivy/pyjnius/tree/1.4.2) (2022-07-02) +[Full Changelog](https://github.com/kivy/pyjnius/compare/1.4.1...1.4.2) + +**CI** +- [\#628](https://github.com/kivy/pyjnius/pull/628) Updated java-setup to v3, include all the LTS versions from adoptium during CI tests. + +**Packaging** +- [\#620](https://github.com/kivy/pyjnius/pull/620) When cross-compiling for Android, we should not use the include dirs exposed by the JDK +- [\#629](https://github.com/kivy/pyjnius/pull/629) Cython now requires a minimum version. Introduces setup.cfg. Cleans up the CI workflow +- [\#625](https://github.com/kivy/pyjnius/pull/625) Use cibuildwheel for releases + +**Docs** +- [\#616](https://github.com/kivy/pyjnius/pull/616) Update api.rst, remove extra equals signs + +**Implemented enhancements:** +- [\#622](https://github.com/kivy/pyjnius/pull/622) Add suffix to support IBM jre on Windows +- [\#626](https://github.com/kivy/pyjnius/pull/626) Move get_cpu guessing into _possible_lib_location +- [\#627](https://github.com/kivy/pyjnius/pull/627) PyPy: Fixes a segfault + add tests + +## [1.4.1](https://github.com/kivy/pyjnius/tree/1.4.1) (2021-10-30) [Full Changelog](https://github.com/kivy/pyjnius/compare/1.4.0...1.4.1) **CI** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/docs/source/api.rst new/pyjnius-1.4.2/docs/source/api.rst --- old/pyjnius-1.4.1/docs/source/api.rst 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/docs/source/api.rst 2022-07-03 13:50:03.000000000 +0200 @@ -56,9 +56,9 @@ look like:: class String(JavaClass): - __javaclass__ == 'java/lang/String' + __javaclass__ = 'java/lang/String' __metaclass__ = MetaJavaClass - __javaconstructor__ == ( + __javaconstructor__ = ( '()V', '(Ljava/lang/String;)V', '([C)V', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/jnius/__init__.py new/pyjnius-1.4.2/jnius/__init__.py --- old/pyjnius-1.4.1/jnius/__init__.py 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/jnius/__init__.py 2022-07-03 13:50:03.000000000 +0200 @@ -7,7 +7,7 @@ All the documentation is available at: http://pyjnius.readthedocs.org ''' -__version__ = '1.4.1' +__version__ = '1.4.2' from .env import get_java_setup @@ -21,8 +21,10 @@ for suffix in ( ('bin', 'client'), ('bin', 'server'), + ('bin', 'default'), ('jre', 'bin', 'client'), ('jre', 'bin', 'server'), + ('jre', 'bin', 'default'), ): path = os.path.join(jdk_home, *suffix) if not os.path.isdir(path): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/jnius/env.py new/pyjnius-1.4.2/jnius/env.py --- old/pyjnius-1.4.1/jnius/env.py 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/jnius/env.py 2022-07-03 13:50:03.000000000 +0200 @@ -165,13 +165,9 @@ ) return libjvm_override_path - cpu = get_cpu() platform = self.platform - log.debug( - "looking for libjvm to initiate pyjnius, cpu is %s, platform is %s", - cpu, platform - ) - lib_locations = self._possible_lib_locations(cpu) + log.debug("looking for libjvm to initiate pyjnius, platform is %s", platform) + lib_locations = self._possible_lib_locations() for location in lib_locations: full_lib_location = join(self.home, location) if exists(full_lib_location): @@ -193,7 +189,7 @@ % [join(self.home, loc) for loc in lib_locations] ) - def _possible_lib_locations(self, cpu): + def _possible_lib_locations(self): ''' Returns a list of relative possible locations for the Java library. Used by the default implementation of get_jnius_lib_location() @@ -223,11 +219,16 @@ else: return join(self.home, 'include', 'linux') - def _possible_lib_locations(self, cpu): + def _possible_lib_locations(self): root = self.home if root.endswith('jre'): root = root[:-3] + cpu = get_cpu() + log.debug( + f"Platform {self.platform} may need cpu in path to find libjvm, which is: {cpu}" + ) + return [ 'lib/server/libjvm.so', 'jre/lib/{}/default/libjvm.so'.format(cpu), @@ -239,7 +240,7 @@ def _get_platform_include_dir(self): return join(self.home, 'include', 'darwin') - def _possible_lib_locations(self, cpu): + def _possible_lib_locations(self): if '1.6' in self.home: return ['../Libraries/libjvm.dylib'] # TODO what should this be resolved to? @@ -270,6 +271,12 @@ def get_libraries(self): return ['SDL2', 'log'] + def get_include_dirs(self): + # When cross-compiling for Android, we should not use the include dirs + # exposed by the JDK. Instead, we should use the one exposed by the + # Android NDK (which are already handled via python-for-android). + return [] + def get_library_dirs(self): return [] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/jnius/jnius_conversion.pxi new/pyjnius-1.4.2/jnius/jnius_conversion.pxi --- old/pyjnius-1.4.1/jnius/jnius_conversion.pxi 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/jnius/jnius_conversion.pxi 2022-07-03 13:50:03.000000000 +0200 @@ -1,5 +1,4 @@ from cpython.version cimport PY_MAJOR_VERSION -from cpython cimport PyUnicode_DecodeUTF16 activeLambdaJavaProxies = set() @@ -257,10 +256,7 @@ j_strlen = j_env[0].GetStringLength(j_env, j_string); buffsize = j_strlen * sizeof(jchar) - # py_uni = (<char *>j_chars)[:buffsize].decode('utf-16') - # Calling directly into c-api for utf-16 decoding due to Cython code gen - # bug for utf-16: https://github.com/cython/cython/issues/1696 - py_uni = PyUnicode_DecodeUTF16(<char *>j_chars, buffsize, NULL, NULL) + py_uni = (<char *>j_chars)[:buffsize].decode('utf-16') finally: j_env[0].ReleaseStringChars(j_env, j_string, j_chars) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/jnius/jnius_jvm_desktop.pxi new/pyjnius-1.4.2/jnius/jnius_jvm_desktop.pxi --- old/pyjnius-1.4.1/jnius/jnius_jvm_desktop.pxi 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/jnius/jnius_jvm_desktop.pxi 2022-07-03 13:50:03.000000000 +0200 @@ -53,8 +53,10 @@ for suffix in ( ('bin', 'client'), ('bin', 'server'), + ('bin', 'default'), ('jre', 'bin', 'client'), ('jre', 'bin', 'server'), + ('jre', 'bin', 'default'), ): path = join(jdk_home, *suffix) if not os.path.isdir(path): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/pyproject.toml new/pyjnius-1.4.2/pyproject.toml --- old/pyjnius-1.4.1/pyproject.toml 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/pyproject.toml 2022-07-03 13:50:03.000000000 +0200 @@ -1,2 +1,6 @@ [build-system] -requires = ["setuptools", "wheel", "Cython"] +requires = [ + "setuptools>=58.0.0", + "wheel", + "Cython>=0.29.30" +] \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/setup.cfg new/pyjnius-1.4.2/setup.cfg --- old/pyjnius-1.4.1/setup.cfg 1970-01-01 01:00:00.000000000 +0100 +++ new/pyjnius-1.4.2/setup.cfg 2022-07-03 13:50:03.000000000 +0200 @@ -0,0 +1,12 @@ +[options] +install_requires = + six>=1.7.0 + +[options.extras_require] +dev = + pytest + pytest-cov + pycodestyle +ci = + coveralls + pytest-rerunfailures \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/setup.py new/pyjnius-1.4.2/setup.py --- old/pyjnius-1.4.1/setup.py 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/setup.py 2022-07-03 13:50:03.000000000 +0200 @@ -11,10 +11,8 @@ import subprocess from os import environ -from os.path import dirname, join, exists -import re +from os.path import dirname, join import sys -from platform import machine from setup_sdist import SETUP_KWARGS # XXX hack to be able to import jnius.env withough having build @@ -56,8 +54,6 @@ ] EXTRA_LINK_ARGS = [] -INSTALL_REQUIRES = ['six>=1.7.0'] -SETUP_REQUIRES = [] # detect Python for android PLATFORM = sys.platform @@ -65,10 +61,8 @@ if NDKPLATFORM is not None and getenv('LIBLINK'): PLATFORM = 'android' -# detect cython -if PLATFORM != 'android': - SETUP_REQUIRES.append('cython') -else: +# detect platform +if PLATFORM == 'android': FILES = [fn[:-3] + 'c' for fn in FILES if fn.endswith('pyx')] JAVA=get_java_setup(PLATFORM) @@ -118,12 +112,6 @@ # create the extension setup( cmdclass={'build_ext': build_ext}, - install_requires=INSTALL_REQUIRES, - setup_requires=SETUP_REQUIRES, ext_modules=ext_modules, - extras_require={ - 'dev': ['pytest', 'wheel', 'pytest-cov', 'pycodestyle'], - 'ci': ['coveralls', 'pytest-rerunfailures', 'setuptools>=34.4.0'], - }, **SETUP_KWARGS ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pyjnius-1.4.1/tests/test_jvm_options.py new/pyjnius-1.4.2/tests/test_jvm_options.py --- old/pyjnius-1.4.1/tests/test_jvm_options.py 2021-10-30 14:18:57.000000000 +0200 +++ new/pyjnius-1.4.2/tests/test_jvm_options.py 2022-07-03 13:50:03.000000000 +0200 @@ -15,7 +15,7 @@ ) def test_jvm_options(self): options = ['-Dtest.var{}=value'.format(i) for i in range(40)] - process = subprocess.Popen(['python', '-c', textwrap.dedent( + process = subprocess.Popen([sys.executable, '-c', textwrap.dedent( '''\ import jnius_config import json