Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-tables for openSUSE:Factory checked in at 2023-02-27 12:55:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-tables (Old) and /work/SRC/openSUSE:Factory/.python-tables.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-tables" Mon Feb 27 12:55:02 2023 rev:19 rq:1067858 version:3.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-tables/python-tables.changes 2022-03-30 20:35:53.065314000 +0200 +++ /work/SRC/openSUSE:Factory/.python-tables.new.31432/python-tables.changes 2023-02-27 12:55:05.179318649 +0100 @@ -1,0 +2,47 @@ +Sat Feb 25 18:35:30 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Promote tables-debundled-blosc2.patch to + tables-pr1000-debundled-blosc2.patch + * Do not require python-blosc2 for anything + * gh#PyTables/PyTables#1000 +- Remove pre-compiled libblosc2.so gh#PyTables/PyTables#1001 +- Split out test into multibuilds: Even the "light" test suite + takes more than 1 hour for all 4 python flavors executed + sequentially + +------------------------------------------------------------------- +Fri Feb 17 21:15:02 UTC 2023 - Ben Greiner <c...@bnavigator.de> + +- Use python-blosc2 and c-blosc2 +- Drop environement vars which would have only been used with + embedded c-blosc +- Disable building docs (sphinx update broke it) +- Add tables-debundled-blosc2.patch gh#PyTables/PyTables#1000 + +------------------------------------------------------------------- +Wed Feb 8 18:39:24 UTC 2023 - Arun Persaud <a...@gmx.de> + +- specfile: + * update copyright year + * require python >= 3.8 + +- update to version 3.8.0: + * Improvements + + Support for Python 3.11 has been added (PR #962). + + Support for Python 3.6 and Python 3.7 has been dropped (PR + #966). + + Added a new (registered) HDF5 filter for Blosc2 compressor (PR + #969). + + Added optimized paths for Blosc2 reading and writing in + tables. This bypasses the HDF5 filter pipeline by building the Blosc2 CFrames + and sending them to the HDF5 direct chunking machinery (PR #969). + + Internal C-Blosc sources updated to 1.21.2. + + Thanks to Oscar Guiñon, Francesc Alted for implementing Blosc2 + the support and NumFOCUS for providing a grant for that. + * Other changes + + Starting form this release, C source files generated by Cython + are no longer included in the source distribution package. + + Pre-built HTML documentation is no longer included in the source + package. + +------------------------------------------------------------------- Old: ---- tables-3.7.0.tar.gz New: ---- _multibuild tables-3.8.0.tar.gz tables-pr1000-debundled-blosc2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-tables.spec ++++++ --- /var/tmp/diff_new_pack.LPuuXK/_old 2023-02-27 12:55:06.599327359 +0100 +++ /var/tmp/diff_new_pack.LPuuXK/_new 2023-02-27 12:55:06.603327383 +0100 @@ -1,7 +1,7 @@ # -# spec file for package python-tables +# spec file # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,35 +16,79 @@ # -%{?!python_module:%define python_module() python3-%{**}} -%define skip_python2 1 -Name: python-tables -Version: 3.7.0 +%define psuffix %{nil} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test-py38" +%define psuffix -test-py38 +%define skip_python39 1 +%define skip_python310 1 +%define skip_python311 1 +%bcond_without test +%endif +%if "%{flavor}" == "test-py39" +%define psuffix -test-py39 +%define skip_python38 1 +%define skip_python310 1 +%define skip_python311 1 +%bcond_without test +%endif +%if "%{flavor}" == "test-py310" +%define psuffix -test-py310 +%define skip_python38 1 +%define skip_python39 1 +%define skip_python311 1 +%bcond_without test +%endif +%if "%{flavor}" == "test-py311" +%define psuffix -test-py311 +%define skip_python38 1 +%define skip_python39 1 +%define skip_python310 1 +%bcond_without test +%endif +%if "%{flavor}" == "" +%bcond_with test +%endif + +Name: python-tables%{psuffix} +Version: 3.8.0 Release: 0 Summary: Hierarchical datasets for Python License: BSD-3-Clause URL: https://github.com/PyTables/PyTables Source0: https://files.pythonhosted.org/packages/source/t/tables/tables-%{version}.tar.gz -BuildRequires: %{python_module Cython} +# PATCH-FIX-UPSTREAM tables-pr1000-debundled-blosc2.patch gh#PyTables/PyTables#1000 +Patch0: tables-pr1000-debundled-blosc2.patch +BuildRequires: %{python_module base >= 3.8} +BuildRequires: python-rpm-macros +%if ! %{with test} +BuildRequires: %{python_module Cython >= 0.29.21} BuildRequires: %{python_module devel} BuildRequires: %{python_module numexpr >= 2.6.2} BuildRequires: %{python_module numpy-devel >= 1.19} BuildRequires: %{python_module packaging} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module py-cpuinfo} BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} BuildRequires: blosc-devel >= 1.21.1 +BuildRequires: blosc2-devel BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: hdf5-devel BuildRequires: libbz2-devel BuildRequires: lzo-devel -BuildRequires: python-rpm-macros -BuildRequires: python3-Sphinx >= 1.1 -BuildRequires: python3-jupyter_ipython -BuildRequires: python3-numpydoc -BuildRequires: python3-sphinx_rtd_theme +%else +# with test +BuildRequires: %{python_module tables = %{version}} +# usage of pkg_resources in tests +BuildRequires: %{python_module setuptools} +%endif +Requires: python-Cython >= 0.29.21 Requires: python-numexpr >= 2.6.2 Requires: python-numpy >= 1.19 Requires: python-packaging +Requires: python-py-cpuinfo # boo#1196682 %requires_eq hdf5 Requires(post): update-alternatives @@ -62,56 +106,37 @@ makes of it a fast, yet extremely easy to use tool for interactively save and retrieve large amounts of data. -%package -n %{name}-doc -Summary: Documentation for %{name} -Provides: %{python_module tables-doc = %{version}} - -%description -n %{name}-doc -Documentation and help files for %{name} - %prep %autosetup -p1 -n tables-%{version} # make sure we use the system blosc rm -r c-blosc +# https://github.com/PyTables/PyTables/issues/1001 +rm tables/libblosc2.so +%if !%{with test} %build export CFLAGS="%{optflags} -fno-strict-aliasing" -# Never use SSE2 and AVX2 because obs buildbots might support it -# but the target does not -export DISABLE_SSE2=1 -export DISABLE_AVX2=1 -%python_build +export PYTABLES_NO_EMBEDDED_LIBS=1 +%pyproject_wheel +%endif %install -%python_install +%if !%{with test} +%pyproject_install %python_clone -a %{buildroot}%{_bindir}/pttree %python_clone -a %{buildroot}%{_bindir}/ptrepack %python_clone -a %{buildroot}%{_bindir}/ptdump %python_clone -a %{buildroot}%{_bindir}/pt2to3 -%{python_expand # -rm %{buildroot}%{$python_sitearch}/tables/*.c -rm %{buildroot}%{$python_sitearch}/tables/tests/*.c -%fdupes %{buildroot}%{$python_sitearch} -} - -pushd doc -export PYTHONPATH=%{buildroot}%{python3_sitearch} -make html -rm build/html/.buildinfo -popd -# manual copy to buildroot so we can deduplicate -mkdir -p %{buildroot}%{_docdir}/%{name}-doc/ -cp -r doc/build/html %{buildroot}%{_docdir}/%{name}-doc/ -cp -r examples %{buildroot}%{_docdir}/%{name}-doc/ -%fdupes %{buildroot}%{_docdir}/%{name}-doc/ +%python_expand %fdupes %{buildroot}%{$python_sitearch} +%endif +%if %{with test} %check pushd LICENSES export VERBOSE=TRUE -%{python_expand export PYTHONPATH=%{buildroot}%{$python_sitearch} -$python -B -m tables.tests.test_all -} +%python_exec -B -m tables.tests.test_all popd +%endif %post %python_install_alternative pttree @@ -125,6 +150,7 @@ %python_uninstall_alternative ptdump %python_uninstall_alternative pt2to3 +%if !%{with test} %files %{python_files} %doc README.rst ANNOUNCE.txt THANKS %license LICENSE.txt @@ -134,11 +160,7 @@ %python_alternative %{_bindir}/ptrepack %python_alternative %{_bindir}/pttree %{python_sitearch}/tables/ -%{python_sitearch}/tables-%{version}*-info - -%files -n %{name}-doc -%license LICENSE.txt -%license LICENSES/* -%doc %{_docdir}/%{name}-doc/ +%{python_sitearch}/tables-%{version}.dist-info +%endif %changelog ++++++ _multibuild ++++++ <multibuild> <package>test-py38</package> <package>test-py39</package> <package>test-py310</package> <package>test-py311</package> </multibuild> ++++++ tables-3.7.0.tar.gz -> tables-3.8.0.tar.gz ++++++ /work/SRC/openSUSE:Factory/python-tables/tables-3.7.0.tar.gz /work/SRC/openSUSE:Factory/.python-tables.new.31432/tables-3.8.0.tar.gz differ: char 5, line 1 ++++++ tables-pr1000-debundled-blosc2.patch ++++++ Index: tables-3.8.0/requirements.txt =================================================================== --- tables-3.8.0.orig/requirements.txt +++ tables-3.8.0/requirements.txt @@ -4,8 +4,5 @@ cython>=0.29.21 numpy>=1.19.0 numexpr>=2.6.2 -# blosc2 wheel is actually only needed when compiling on conda envs. -# Otherwise, lib comes bundled in PyTables wheels (but it doesn't hurt either). -blosc2~=2.0.0 packaging py-cpuinfo Index: tables-3.8.0/setup.py =================================================================== --- tables-3.8.0.orig/setup.py +++ tables-3.8.0/setup.py @@ -109,7 +109,27 @@ def get_blosc2_version(headername): def get_blosc2_directories(): - """Get Blosc2 directories for the C library by using wheel metadata""" + """Get Blosc2 directories for the C library""" + # If the system provides the library and headers, + # get them from environment variables or find by pkg-config + try: + include_path = Path(os.environ.get( + "BLOSC2_INCDIR", + subprocess.check_output( + [PKG_CONFIG, '--variable=includedir', 'blosc2'], + text=True).strip())) + library_path = Path(os.environ.get( + "BLOSC2_LIBDIR", + subprocess.check_output( + [PKG_CONFIG, '--variable=libdir', 'blosc2'], + text=True).strip())) + except CalledProcessError: + pass + else: + return include_path, library_path + + # Otherwise get them from the PyPI published wheels for blosc2 + # They package the library and headers directly try: import blosc2 except ModuleNotFoundError: Index: tables-3.8.0/tables/__init__.py =================================================================== --- tables-3.8.0.orig/tables/__init__.py +++ tables-3.8.0/tables/__init__.py @@ -8,20 +8,23 @@ to efficiently cope with extremely large """ import os from ctypes import cdll +from ctypes.util import find_library import platform # Load the blosc2 library, and if not found in standard locations, # try this directory (it should be automatically copied in setup.py). -current_dir = os.path.dirname(__file__) -platform_system = platform.system() -blosc2_lib = "libblosc2" -if platform_system == "Linux": - blosc2_lib += ".so" -elif platform_system == "Darwin": - blosc2_lib += ".dylib" -else: - blosc2_lib += ".dll" +blosc2_lib = find_library("blosc2") +if blosc2_lib is None: + current_dir = os.path.dirname(__file__) + platform_system = platform.system() + blosc2_lib = "libblosc2" + if platform_system == "Linux": + blosc2_lib += ".so" + elif platform_system == "Darwin": + blosc2_lib += ".dylib" + else: + blosc2_lib += ".dll" try: cdll.LoadLibrary(blosc2_lib) except OSError: Index: tables-3.8.0/tables/req_versions.py =================================================================== --- tables-3.8.0.orig/tables/req_versions.py +++ tables-3.8.0/tables/req_versions.py @@ -3,12 +3,13 @@ from packaging.version import Version # ********************************************************************** -# Keep these in sync with setup.cfg and user's guide +# Keep these in sync with requirements.txt and user's guide # ********************************************************************** # Minimum recommended versions for mandatory packages -min_numpy_version = Version('1.9.3') +min_numpy_version = Version('1.19.0') min_numexpr_version = Version('2.6.2') +# These are library versions, not the python modules min_hdf5_version = Version('1.10.5') min_blosc_version = Version('1.11.1') min_blosc2_version = Version('2.5.0')