Fedora Account System
Red Hat Associate
Red Hat Customer
Description of problem: Package python-meshio fails to build from source in Fedora Rawhide. Version-Release number of selected component (if applicable): 5.3.5-9.fc44 Steps to Reproduce: koji build --scratch f45 python-meshio-5.3.5-9.fc44.src.rpm Additional info: This package is tracked by Koschei. See: https://koschei.fedoraproject.org/package/python-meshio Reproducible: Always Actual Results: __________ test_read_from_file[01_raw_binary_int64.vtu-tetra-162-64] ___________ filename = PosixPath('/builddir/build/BUILD/python-meshio-5.3.5-build/meshio-5.3.5/tests/meshes/vtu/01_raw_binary_int64.vtu') ref_cells = 'tetra', ref_num_cells = 162, ref_num_pnt = 64 @pytest.mark.parametrize( "filename, ref_cells, ref_num_cells, ref_num_pnt", [ ("00_raw_binary.vtu", "tetra", 162, 64), ("01_raw_binary_int64.vtu", "tetra", 162, 64), ("02_raw_compressed.vtu", "tetra", 162, 64), ], ) def test_read_from_file(filename, ref_cells, ref_num_cells, ref_num_pnt): this_dir = pathlib.Path(__file__).resolve().parent filename = this_dir / "meshes" / "vtu" / filename > mesh = meshio.read(filename) ^^^^^^^^^^^^^^^^^^^^^ tests/test_vtu.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/_helpers.py:71: in read return _read_file(Path(filename), file_format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/_helpers.py:103: in _read_file return reader_map[file_format](str(path)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:577: in read reader = VtuReader(filename) ^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:389: in __init__ piece_cells[data_array.attrib["Name"]] = self.read_data( ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:558: in read_data data = reader(self.appended_data[offset:], dtype) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:448: in read_uncompressed_binary byte_string = base64.b64decode(data) ^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ s = b'QBQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAA...oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=' altchars = None, validate = False def b64decode(s, altchars=None, validate=False): """Decode the Base64 encoded bytes-like object or ASCII string s. Optional altchars must be a bytes-like object or ASCII string of length 2 which specifies the alternative alphabet used instead of the '+' and '/' characters. The result is returned as a bytes object. A binascii.Error is raised if s is incorrectly padded. If validate is False (the default), characters that are neither in the normal base-64 alphabet nor the alternative alphabet are discarded prior to the padding check. If validate is True, these non-alphabet characters in the input result in a binascii.Error. For more information about the strict base64 check, see: https://docs.python.org/3.11/library/binascii.html#binascii.a2b_base64 """ s = _bytes_from_decode_data(s) if altchars is not None: altchars = _bytes_from_decode_data(altchars) assert len(altchars) == 2, repr(altchars) s = s.translate(bytes.maketrans(altchars, b'+/')) > return binascii.a2b_base64(s, strict_mode=validate) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E binascii.Error: Invalid base64-encoded string: number of data characters (8889) cannot be 1 more than a multiple of 4 /usr/lib64/python3.14/base64.py:85: Error ___________ test_read_from_file[02_raw_compressed.vtu-tetra-162-64] ____________ filename = PosixPath('/builddir/build/BUILD/python-meshio-5.3.5-build/meshio-5.3.5/tests/meshes/vtu/02_raw_compressed.vtu') ref_cells = 'tetra', ref_num_cells = 162, ref_num_pnt = 64 @pytest.mark.parametrize( "filename, ref_cells, ref_num_cells, ref_num_pnt", [ ("00_raw_binary.vtu", "tetra", 162, 64), ("01_raw_binary_int64.vtu", "tetra", 162, 64), ("02_raw_compressed.vtu", "tetra", 162, 64), ], ) def test_read_from_file(filename, ref_cells, ref_num_cells, ref_num_pnt): this_dir = pathlib.Path(__file__).resolve().parent filename = this_dir / "meshes" / "vtu" / filename > mesh = meshio.read(filename) ^^^^^^^^^^^^^^^^^^^^^ tests/test_vtu.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/_helpers.py:71: in read return _read_file(Path(filename), file_format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/_helpers.py:103: in _read_file return reader_map[file_format](str(path)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:577: in read reader = VtuReader(filename) ^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:389: in __init__ piece_cells[data_array.attrib["Name"]] = self.read_data( ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:558: in read_data data = reader(self.appended_data[offset:], dtype) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ../BUILDROOT/usr/lib/python3.14/site-packages/meshio/vtu/_vtu.py:448: in read_uncompressed_binary byte_string = base64.b64decode(data) ^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ s = b'QBQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAA...oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo=' altchars = None, validate = False def b64decode(s, altchars=None, validate=False): """Decode the Base64 encoded bytes-like object or ASCII string s. Optional altchars must be a bytes-like object or ASCII string of length 2 which specifies the alternative alphabet used instead of the '+' and '/' characters. The result is returned as a bytes object. A binascii.Error is raised if s is incorrectly padded. If validate is False (the default), characters that are neither in the normal base-64 alphabet nor the alternative alphabet are discarded prior to the padding check. If validate is True, these non-alphabet characters in the input result in a binascii.Error. For more information about the strict base64 check, see: https://docs.python.org/3.11/library/binascii.html#binascii.a2b_base64 """ s = _bytes_from_decode_data(s) if altchars is not None: altchars = _bytes_from_decode_data(altchars) assert len(altchars) == 2, repr(altchars) s = s.translate(bytes.maketrans(altchars, b'+/')) > return binascii.a2b_base64(s, strict_mode=validate) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E binascii.Error: Invalid base64-encoded string: number of data characters (8889) cannot be 1 more than a multiple of 4 /usr/lib64/python3.14/base64.py:85: Error
I filed https://github.com/nschloe/meshio/issues/1558 asking upstream to comment on the maintenance status of meshio, and I filed https://github.com/mikedh/trimesh/issues/2533 to raise awareness with trimesh, the sole reverse dependency in Fedora. I think that these test failures look too significant to ignore, and we should consider retiring the package for Fedora 45 ahead of Python 3.15 integration and patching the dependency out of python-trimesh’s “recommend” extra. We could wait a little while for a response on https://github.com/nschloe/meshio/issues/1558, but I think even an expression of intent to resume development would not remove the problem in the short/medium term, just give us hope that the package may be unretired again in the future.
Correction: python-trimesh only uses meshio as a test dependency via the “test_more” extra. I’m removing this dependency now, making python-meshio a leaf package in F45/Rawhide.
*** Bug 2485903 has been marked as a duplicate of this bug. ***
Hello, Please note that this comment was generated automatically by https://forge.fedoraproject.org/releng/tooling/src/branch/main/release-process/bug-filing/follow-policy/follow_policy.py If you feel that this output has mistakes, please open an issue at https://forge.fedoraproject.org/releng/tickets/issues This package fails to install and maintainers are advised to take one of the following actions: - Fix this bug and close this bugzilla once the update makes it to the repository. (The same script that posted this comment will eventually close this bugzilla when the fixed package reaches the repository, so you don't have to worry about it.) or - Move this bug to ASSIGNED if you plan on fixing this, but simply haven't done so yet. or - Orphan the package if you no longer plan to maintain it. If you do not take one of these actions, the process at https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/#_package_removal_for_long_standing_ftbfs_and_fti_bugs will continue. This package may be orphaned in 7+ weeks. This is the first reminder (step 3) from the policy. Don't hesitate to ask for help on https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/ if you are unsure how to fix this bug.