Name: python-hdf5plugin Version: 6.0.0 Release: 3%{?dist} Summary: HDF5 Plugins for Windows, MacOS, and Linux License: MIT URL: https://github.com/silx-kit/hdf5plugin Source0: %pypi_source hdf5plugin BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-wheel BuildRequires: python3-pip BuildRequires: python3-cpuinfo BuildRequires: hdf5-devel BuildRequires: gcc %description The hdf5plugin package provides HDF5 compression filters (plugins) for h5py and PyTables. %package -n python3-hdf5plugin Summary: %{summary} Requires: python3-h5py %description -n python3-hdf5plugin The hdf5plugin package provides HDF5 compression filters (plugins) for h5py and PyTables. %prep %autosetup -n hdf5plugin-%{version} %build # HDF5PLUGIN_NATIVE=False: upstream compiles the bundled filter plugins for the # BUILD MACHINE's CPU, and ships the result to every user of the arch. # # setup.py:155 sets native_compile_args = ("-mcpu=native",) for ARM_8 (and # "-march=native" for X86_64 at :153). use_native defaults to has_native(), # which is simply "does the compiler accept the flag" -- always true -- so the # option is ON unless this variable says otherwise. # # Measured, not inferred. python3-hdf5plugin-6.0.0-2.fc44.aarch64 SIGILLs on # `import hdf5plugin`, on a Cortex-A76 (ARMv8.2, no PAC in /proc/cpuinfo # Features). Under gdb: # # Program received signal SIGILL, Illegal instruction. # 0x...3d4 in init_filter () from .../hdf5plugin/plugins/libh5bshuf.so # => 0x...3d4 : retaa # # retaa is ARMv8.3 Pointer Authentication. Critically it is NOT in the NOP hint # space -- paciasp/autiasp are, and execute harmlessly on older cores, which is # why Fedora's -mbranch-protection=standard is safe everywhere. retaa/braa/blraa # are real encodings and trap as undefined on any pre-8.3 CPU. # # objdump across the shipped objects, with libc as the control: # # object PAC-only (retaa/braa) hint-space (paciasp/autiasp) # libc.so.6 0 7588 # libh5bshuf.so 737 824 # libh5blosc.so 891 936 # libh5blosc2.so 1641 1709 # libh5sz.so 1513 2010 # libh5zstd.so 596 593 # libh5zfp.so 407 466 # libh5bzip2.so 94 124 # libh5lz4.so 94 147 # # All eight bundled plugins; zero in libhdf5, libz or h5py's own modules. libc # is the shape a correct baseline build has: PAC hints, no PAC-only encodings. # # This is invisible to every gate we have. The package builds green, its # metadata is consistent, and it passes a depsolve -- it only dies when # something imports it, on hardware older than the builder. ci/import-probe.sh # is what caught it. # # x86_64 has the SAME mechanism (-march=native at setup.py:153) and would ship # whatever ISA the builder happened to have. I have NOT measured an x86_64 # failure, so this disables only the host-keyed flag and deliberately leaves # HDF5PLUGIN_SSE2/SSSE3/AVX2 alone -- those are separate knobs I have not # tested, and blosc does some runtime dispatch. export HDF5PLUGIN_NATIVE=False %pyproject_wheel %install %pyproject_install %files -n python3-hdf5plugin %license LICENSE %doc README.rst %{python3_sitearch}/hdf5plugin %{python3_sitearch}/hdf5plugin-%{version}.dist-info %changelog * Tue Sep 29 2026 Morgan Hough - 6.0.0-3 - Build with HDF5PLUGIN_NATIVE=False. 6.0.0-2 on aarch64 installs cleanly and then SIGILLs on `import hdf5plugin`: upstream compiles the bundled filter plugins with -mcpu=native, so the COPR builder's ISA is baked into what every aarch64 user gets. The faulting instruction is `retaa` in libh5bshuf.so's init_filter -- ARMv8.3 Pointer Authentication, which unlike paciasp/autiasp is NOT in the NOP hint space and traps on any pre-8.3 core. That includes Cortex-A76, so Raspberry Pi 5 and most non-server ARM hardware. All eight bundled plugins carry PAC-only encodings; libc, libhdf5, libz and h5py carry none. See the %%build comment for the measurements. - Found by ci/import-probe.sh, which is the only gate that could have: the package builds green, its metadata is consistent and it passes a depsolve. * Wed Jun 10 2026 Morgan Hough - 6.0.0-2 - Rebuild for rawhide's Python 3.15 transition (the -1 build required python(abi)=3.14, blocking rawhide consumers such as python-babelviscofdtd). Release bump so the py3.15 build cleanly supersedes the stale -1 in copr_base. * Sun Feb 01 2026 Morgan Hough - 6.0.0-1 - Initial package