15
0
forked from pool/python-JPype1

- Update to 1.5.2

* Roll back agent change due to misbehaving JVM installs.
  * Correct issues with non-ascii path for jdbc connections and forName.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-JPype1?expand=0&rev=21
This commit is contained in:
2025-02-10 14:27:11 +00:00
committed by Git OBS Bridge
commit f44fa40f16
9 changed files with 438 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

3
JPype1-1.5.0.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:425a6e1966afdd5848b60c2688bcaeb7e40ba504a686f1114589668e0631e878
size 819110

63
JPype1-java8compat.patch Normal file
View File

@@ -0,0 +1,63 @@
Only in JPype1-1.4.1: JPype1-java8compat.patch
--- JPype1-1.4.1/native/build.xml 2020-07-17 00:34:07.000000000 +0200
+++ JPype1-1.4.1/native/build.xml 2023-06-12 11:24:36.344297754 +0200
@@ -1,7 +1,7 @@
<project default="all" name="JPype - Native">
<!-- JAVA_VERSION must match the oldest supported Java version -->
- <property name="JAVA_VERSION" value="1.8" />
+ <property name="JAVA_VERSION" value="8" />
<!-- src can't be "java" as it breaks nose tests -->
<property name="src" location="java"/>
@@ -16,6 +16,7 @@
<javac destdir="${build}/classes"
source="${JAVA_VERSION}"
target="${JAVA_VERSION}"
+ release="${JAVA_VERSION}"
excludes="**/JPypeClassLoader.java"
>
<src path="${src}"/>
@@ -23,6 +24,7 @@
<javac destdir="${build}/lib"
source="${JAVA_VERSION}"
target="${JAVA_VERSION}"
+ release="${JAVA_VERSION}"
includes="**/JPypeClassLoader.java"
>
<src path="${src}"/>
--- JPype1-1.4.1/test/build.xml 2020-07-17 00:34:07.000000000 +0200
+++ JPype1-1.4.1/test/build.xml 2023-06-12 12:47:52.223097870 +0200
@@ -20,8 +20,6 @@
<target name="compile-9" if="build-9">
<javac destdir="${build}"
- source="${version}"
- target="${version}"
>
<compilerarg value="--add-exports"/>
<compilerarg value="java.base/jdk.internal.reflect=ALL-UNNAMED"/>
@@ -34,8 +32,9 @@
<target name="compile-8" if="build-8">
<javac destdir="${build}"
- source="${version}"
- target="${version}"
+ source="8"
+ target="8"
+ release="8"
>
<src>
<pathelement location="${src}/java8"/>
@@ -47,8 +46,9 @@
<target name="compile-main">
<mkdir dir="${build}"/>
<javac destdir="${build}"
- source="${version}"
- target="${version}"
+ source="8"
+ target="8"
+ release="8"
debug="true"
debuglevel="lines,vars,source"
>

84
JPype1-numpy2compat.patch Normal file
View File

@@ -0,0 +1,84 @@
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_conversionInt.py JPype1-1.5.0.new/test/jpypetest/test_conversionInt.py
--- JPype1-1.5.0.orig/test/jpypetest/test_conversionInt.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_conversionInt.py 2024-09-11 17:03:59.996582210 -0400
@@ -76,7 +76,7 @@ class ConversionIntTestCase(common.JPype
def testIntFromNPFloat(self):
import numpy as np
with self.assertRaises(TypeError):
- self.Test.callInt(np.float_(2))
+ self.Test.callInt(np.float64(2))
@common.unittest.skipUnless(haveNumpy(), "numpy not available")
def testIntFromNPFloat32(self):
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_conversionLong.py JPype1-1.5.0.new/test/jpypetest/test_conversionLong.py
--- JPype1-1.5.0.orig/test/jpypetest/test_conversionLong.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_conversionLong.py 2024-09-11 17:03:59.996582210 -0400
@@ -76,7 +76,7 @@ class ConversionLongTestCase(common.JPyp
def testLongFromNPFloat(self):
import numpy as np
with self.assertRaises(TypeError):
- self.Test.callLong(np.float_(2))
+ self.Test.callLong(np.float64(2))
@common.unittest.skipUnless(haveNumpy(), "numpy not available")
def testLongFromNPFloat32(self):
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_conversionShort.py JPype1-1.5.0.new/test/jpypetest/test_conversionShort.py
--- JPype1-1.5.0.orig/test/jpypetest/test_conversionShort.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_conversionShort.py 2024-09-11 17:03:59.996582210 -0400
@@ -76,7 +76,7 @@ class ConversionShortTestCase(common.JPy
def testShortFromNPFloat(self):
import numpy as np
with self.assertRaises(TypeError):
- self.Test.callShort(np.float_(2))
+ self.Test.callShort(np.float64(2))
@common.unittest.skipUnless(haveNumpy(), "numpy not available")
def testShortFromNPFloat32(self):
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_jboolean.py JPype1-1.5.0.new/test/jpypetest/test_jboolean.py
--- JPype1-1.5.0.orig/test/jpypetest/test_jboolean.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_jboolean.py 2024-09-11 17:03:59.996582210 -0400
@@ -103,7 +103,7 @@ class JBooleanTestCase(common.JPypeTestC
def testBooleanFromNPFloat(self):
import numpy as np
with self.assertRaises(TypeError):
- self.Test.callBoolean(np.float_(2))
+ self.Test.callBoolean(np.float64(2))
@common.requireNumpy
def testBooleanFromNPFloat32(self):
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_jbyte.py JPype1-1.5.0.new/test/jpypetest/test_jbyte.py
--- JPype1-1.5.0.orig/test/jpypetest/test_jbyte.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_jbyte.py 2024-09-11 17:03:59.996582210 -0400
@@ -111,7 +111,7 @@ class JByteTestCase(common.JPypeTestCase
def testByteFromNPFloat(self):
import numpy as np
with self.assertRaises(TypeError):
- self.fixture.callByte(np.float_(2))
+ self.fixture.callByte(np.float64(2))
@common.requireNumpy
def testByteFromNPFloat32(self):
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_jdouble.py JPype1-1.5.0.new/test/jpypetest/test_jdouble.py
--- JPype1-1.5.0.orig/test/jpypetest/test_jdouble.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_jdouble.py 2024-09-11 17:03:59.996582210 -0400
@@ -375,7 +375,7 @@ class JDoubleTestCase(common.JPypeTestCa
@common.requireNumpy
def testArrayInitFromNPFloat(self):
- a = np.random.random(100).astype(np.float_)
+ a = np.random.random(100).astype(np.float64)
jarr = JArray(JDouble)(a)
self.assertElementsAlmostEqual(a, jarr)
diff -rup JPype1-1.5.0.orig/test/jpypetest/test_jfloat.py JPype1-1.5.0.new/test/jpypetest/test_jfloat.py
--- JPype1-1.5.0.orig/test/jpypetest/test_jfloat.py 2023-12-26 06:51:56.000000000 -0500
+++ JPype1-1.5.0.new/test/jpypetest/test_jfloat.py 2024-09-11 17:03:59.996582210 -0400
@@ -383,7 +383,7 @@ class JFloatTestCase(common.JPypeTestCas
@common.requireNumpy
def testArrayInitFromNPFloat(self):
- a = np.random.random(100).astype(np.float_)
+ a = np.random.random(100).astype(np.float64)
jarr = JArray(JFloat)(a)
self.assertElementsAlmostEqual(a, jarr)

3
jpype1-1.5.1.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cbb8ea952bf0a0c6011f21a31a97baed241c4aad0e2499db386edfd5cf2adece
size 856550

3
jpype1-1.5.2.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:74a42eccf21d30394c1832aec3985a14965fa5320da087b65029d172c0cec43b
size 1011421

152
python-JPype1.changes Normal file
View File

@@ -0,0 +1,152 @@
-------------------------------------------------------------------
Mon Feb 10 10:18:53 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 1.5.2
* Roll back agent change due to misbehaving JVM installs.
* Correct issues with non-ascii path for jdbc connections and forName.
-------------------------------------------------------------------
Sun Nov 24 23:13:17 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 1.5.1:
* Make use of pyproject.toml for static project metadata
* Fix error in 3.12 during exception handling
* Changes for numpy 2.0 to fix test matrix.
* fix compatibility of jpype with setuptools==72.0.0
* Update LICENSE
* prevent misuse of PyTuple_Pack
* Remove use of tp_new
* fix JUnpickler BufferOverflowException
* "Generic" JArray support
* Fix IllegalArgumentException with non-ascii paths
* Support extracting javadoc HTML files generated by Javadoc 17
* [ci] allow to download missing Python versions
* Access to default methods in @JImplements
* handle non ascii classpath with system classloader
* free threaded build
- Drop patch JPype1-numpy2compat.patch, included upstream.
-------------------------------------------------------------------
Wed Sep 11 21:14:09 UTC 2024 - Fergal Mc Carthy <fmccarthy@suse.com>
- Added patch JPype1-numpy2compat.patch to update the test code
to be numpy 2+ compatible.
- Add a BuildRequires for ca-certificates-mozilla to resolve
a certificates validation error during wheel creation for
Tumbleweed builds.
-------------------------------------------------------------------
Thu Aug 22 14:52:07 UTC 2024 - Aline Werner <aline.werner@suse.com>
- Switch to modern python on sle15.
-------------------------------------------------------------------
Tue Feb 27 01:50:13 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Switch to pyproject and autosetup macros.
-------------------------------------------------------------------
Sat Jan 6 17:12:01 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 1.5.0:
* Support for Python 3.12
* Switched __eq__ and __ne__ operator to use equals rather than
compareTo for comparable objects to avoid exception when
comparing object of different types.
* Fixed segmentation fault when comparing Java Comparable to
primitives.
* Java exceptions that occur in inequality comparisons now map
to Python TypeError.
* Fixed crash when calling subscript on JArray.
* Fixed direct byte buffers not reporting nbytes correctly when
cast to memoryview.
* Expand the defintion for Functional interface to include
classes without FunctionInterface annotation.
* Add additional matching level for derived types to resolve
ambiguities when a derived type is used in place of base
class when determining the method overload. This will
resolve some previous ambiguities between methods.
-------------------------------------------------------------------
Mon Jun 12 11:00:29 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- Do not hardcode java-15-openjdk, since this can be built with
any Java >= 9
- Added patch:
* JPype1-java8compat.patch
+ Build packages that are fully backward compatible to Java 8
-------------------------------------------------------------------
Tue Mar 7 00:25:49 UTC 2023 - John Vandenberg <jayvdb@gmail.com>
- Update to v1.4.1
* Fixed issue with startJVM changing locale settings
* Changes to support Python 3.11
* Fix truncation of strings on null when using convert strings
* Replaced distutil with packaging
-------------------------------------------------------------------
Thu Aug 18 13:28:45 UTC 2022 - John Vandenberg <jayvdb@gmail.com>
- ExcludeArch armv7 and i586 due to significant test failures
-------------------------------------------------------------------
Tue Aug 16 21:45:24 UTC 2022 - Yogalakshmi Arunachalam <yarunachalam@suse.com>
- Update to 1.4.0
Support for all different buffer type conversions.
* Improved buffer transfers to numpy as guaranteed to match Java types.
However, exact dtype for conversions is os/numpy version dependent.
* Support for byte order channels on buffer transfers.
* Byte size for buffers now fixed to Java definitions.
* When directly accessing Java arrays using memory view, Python requires a cast
from buffers. Required because Python does not support memory view alterations
on non-native sizes.
Fix crash when comparing JChar.
* Order handling for numerical operations with JChar fixed.
* Improved matching for Java functors based on parameter count.
* Dropped support for Python 3.5 and 3.6
* dbapi2 handles drivers that don't support autocommit.
* Fixed issue when Java classes with dunder methods such as __del__ caused
conflicts in Python type system. Java method which match dunder patterns are longer
translated to Python.
* Fix issue with numpy arrays with no dimensions resulting in crash.
* Support for user defined conversions for java.lang.Class and array types.
* Fixed issue with ssize_t on Windows for Python 3.10.
-------------------------------------------------------------------
Mon Feb 21 12:18:03 UTC 2022 - John Vandenberg <jayvdb@gmail.com>
- Update to v1.3.0
* Fixes for memory issues found when upgrading to Python 3.10 beta.
* Add additional diagnositics for importing of non-public class.
* Fixed issue with classes with unsatified dependencies leading to
a crash on windows.
* Fixed a bug with arrays created using the short cut.
- from v1.2.1
* Missing stub files added.
* Python 3.9 issues are resolved on Windows.
* JPype scans jar files and rebuilding missing directories to
allow imports from stripped and obfuscated jar files.
- from v1.2.0
* Added builds for Python 3.9.
* Fixed bug when importing from multi-release jars.
* addClassPath can add jar files after the JVM is started.
The default loader for JPype class is
``org.jpype.classloader.DynamicClassLoader``.
* Build support of z/OS added.
* Bug causing ambiguity between primitives and variadic arguments
in method resolution was corrected.
* Boolean was inadvertently left out of method resolution.
``boolean`` now properly matched with boxed types.
* Support for PyInstaller was added.
-------------------------------------------------------------------
Tue Apr 27 09:47:52 UTC 2021 - Markéta Machová <mmachova@suse.com>
- skip python36 because of numpy
-------------------------------------------------------------------
Sat Nov 14 05:05:32 AM UTC 2020 - John Vandenberg <jayvdb@gmail.com>
- Initial spec for v1.1.2

106
python-JPype1.spec Normal file
View File

@@ -0,0 +1,106 @@
#
# spec file for package python-JPype1
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%bcond_without test
# https://build.opensuse.org/package/show/Java:packages/h2database is not in Factory
%bcond_with test_jdbc
%{?sle15_python_module_pythons}
Name: python-JPype1
Version: 1.5.2
Release: 0
Summary: Python to Java bridge
License: Apache-2.0
URL: https://github.com/jpype-project/jpype
Source: https://files.pythonhosted.org/packages/source/j/jpype1/jpype1-%{version}.tar.gz
Patch0: JPype1-java8compat.patch
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: ant
BuildRequires: ca-certificates-mozilla
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: java-devel >= 9
BuildRequires: javapackages-tools
BuildRequires: python-rpm-macros
Requires: java-headless >= 1.8
Recommends: python-numpy
Suggests: python-typing_extensions
ExcludeArch: %{ix86} armv7
%if %{with test}
# SECTION test requirements
BuildRequires: %{python_module jedi}
BuildRequires: %{python_module numpy}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module typing_extensions}
%if %{with test_jdbc}
BuildRequires: h2database
BuildRequires: hsqldb
BuildRequires: sqlite-jdbc
%endif
# /SECTION
%endif
%python_subpackages
%description
A Python to Java bridge.
%prep
%autosetup -p1 -n jpype1-%{version}
# Avoid build dependency on PyInstaller
rm jpype/_pyinstaller/test_jpype_pyinstaller.py
%build
ant -f native/build.xml jar
export CFLAGS="%{optflags}"
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%if %{with test}
%check
ant -f test/build.xml compile
# JClassTestCase.testAsArray fails on i586
# https://github.com/jpype-project/jpype/issues/1029
skip_tests="(JClassTestCase and testAsArray)"
# v1.4.1: https://github.com/jpype-project/jpype/issues/1116
skip_tests+=" or (HtmlTestCase and testClass)"
%if %{without test_jbdc}
skip_tests+=" or test_sql_h2 or test_sql_hsqldb or test_sql_sqlite"
%endif
export CLASSPATH=${PWD}/test/classes:%{_libdir}/java/sqlite-jdbc.jar:%{_localstatedir}/lib/hsqldb/lib/hsqldb.jar:%{_datadir}/java/h2database/h2.jar:%{_datadir}/java/jts/jts-core.jar:%{_datadir}/java/osgi-service-jdbc/org.osgi.service.jdbc.jar
%pytest_arch -rs -k "not ($skip_tests)"
%endif
%files %{python_files}
%doc AUTHORS.rst README.rst
%license LICENSE
%{python_sitearch}/jpype
%{python_sitearch}/org.jpype.jar
%{python_sitearch}/_jpype*.so
%{python_sitearch}/jpype1-%{version}.dist-info
%changelog