Description of problem: I’m working on updating python-trimesh with the following improvements: - Use pyproject-rpm-macros (“new guidelines”) so the many BuildRequires are more manageable - Update -easy and -all subpackages to follow the pattern in the PythonExtras Change (https://fedoraproject.org/wiki/Changes/PythonExtras#Extras_metapackages) - Restore the python3dist(xxhash) to the [easy] and [all] extras, now that I have packaged it - Build HTML documentation and add a -doc subpackage Additionally, I’m trying to work out the various architecture-dependent issues in the package in a methodical way. The package is fundamentally noarch, as it is only pure-Python code. However, it looks like it will nonetheless need to be be switched to an arched package: - Arch-dependent test failures (related to issues around endianness or native word length) are relatively common. An arched package means builds are done on all architectures every time, so these problems are discovered early. When there are failures that cannot be worked around immediately, it also allows the use of %%ifarch to skip tests conditionally. This *does not* preclude making all of the binary subpackages noarch, as long as the contents match on all architectures. - Some dependencies have ExcludeArch restrictions. Normally we would write ExclusiveArch: <arch1> <arch2> … noarch per https://docs.fedoraproject.org/en-US/packaging-guidelines/ #_arch_specific_runtime_and_build_time_dependencies but in this package nearly all dependencies are *soft*, so rather than disabling affected architectures, we instead need to patch out the offending dependencies and work around their absence. The result is different builds for different architectures, i.e., an arched package. This *does* preclude making all of the binary subpackages noarch, since building on different architectures produces a different result. (Even the upcoming -doc subpackage can be different on different architectures, since there are issues converting certain notebooks to HTML on certain architectures.) The purpose of this bug is to precisely document test failures on 32-bit architectures, and to discuss what to do about them. Version-Release number of selected component (if applicable): 3.9.20 (release: work in progress in a fork) How reproducible: Edit the spec file to ensure all tests are executed and the package is built on all architectures. Skip CacheTest::test_hash, which is likely to fail on architectures other than x86_64 due only to unexpected performance characteristics. Do a scratch build. Actual results: =========================== short test summary info ============================ FAILED tests/test_binvox.py::BinvoxTest::test_load_save_invariance - TypeErro... FAILED tests/test_bounds.py::BoundsTest::test_bounding_egg - TypeError: Canno... FAILED tests/test_encoding.py::EncodingTest::test_composite - TypeError: Cann... FAILED tests/test_encoding.py::EncodingTest::test_dense - TypeError: Cannot c... FAILED tests/test_encoding.py::EncodingTest::test_flat - TypeError: Cannot ca... FAILED tests/test_encoding.py::EncodingTest::test_flipped - TypeError: Cannot... FAILED tests/test_encoding.py::EncodingTest::test_reshape - TypeError: Cannot... FAILED tests/test_encoding.py::EncodingTest::test_transpose - TypeError: Cann... FAILED tests/test_primitives.py::PrimitiveTest::test_cyl_buffer - TypeError: ... FAILED tests/test_proximity.py::NearestTest::test_coplanar_signed_distance - ... FAILED tests/test_ray.py::RayTests::test_contain_single - TypeError: Cannot c... FAILED tests/test_ray.py::RayTests::test_contains - TypeError: Cannot cast ar... FAILED tests/test_ray.py::RayTests::test_on_edge - TypeError: Cannot cast arr... FAILED tests/test_ray.py::RayTests::test_on_vertex - TypeError: Cannot cast a... FAILED tests/test_runlength.py::RleTest::test_brle_encode_decode - TypeError:... FAILED tests/test_runlength.py::RleTest::test_brle_length - TypeError: Cannot... FAILED tests/test_runlength.py::RleTest::test_brle_logical_not - TypeError: C... FAILED tests/test_runlength.py::RleTest::test_brle_to_dense - TypeError: Cann... FAILED tests/test_runlength.py::RleTest::test_brle_to_rle - TypeError: Cannot... FAILED tests/test_runlength.py::RleTest::test_rle_encode_decode - TypeError: ... FAILED tests/test_util.py::ContainsTest::test_inside - TypeError: Cannot cast... FAILED tests/test_voxel.py::VoxelGridTest::test_local - TypeError: Cannot cas... ========== 22 failed, 422 passed, 7872 warnings in 292.79s (0:04:52) =========== Detailed logs to be attached. Expected results: All tests pass. Additional info: I see two ways to proceed: 1. Skip all of these tests on 32-bit platforms, understanding that some parts of the API really will be broken on these architectures despite the package not containing compiled extensions. 2. Exclude 32-bit architectures. (Block https://bugzilla.redhat.com/show_bug.cgi?id=F-ExcludeArch-x86 and https://bugzilla.redhat.com/show_bug.cgi?id=F-ExcludeArch-ARM from this bug, and link this bug from the spec file.) This keeps users on those architectures from being surprised by brokenness, but also keeps them from successfully using the APIs that are not broken. Fixing all the bugs would be great, but is probably not a realistic short-term goal. Most of these failures were already reported upstream in https://github.com/mikedh/trimesh/issues/690.
Created attachment 1825041 [details] Excerpt from build.log with test failure details
I have posted the updated logs upstream at https://github.com/mikedh/trimesh/issues/690#issuecomment-924241480.
See also https://bugzilla.redhat.com/show_bug.cgi?id=2006515, the corresponding issue for big-endian issues.
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle. Changing version to 36.
https://fedoraproject.org/wiki/Changes/RetireARMv7 https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval I will add “ExcludeArch: %{ix86}” on F37+.
FEDORA-2022-735ccf1859 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-735ccf1859
FEDORA-2022-735ccf1859 has been pushed to the Fedora 37 stable repository. If problem still persists, please make note of it in this bug report.
(In reply to Ben Beasley from comment #5) > https://fedoraproject.org/wiki/Changes/RetireARMv7 > https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval > > I will add “ExcludeArch: %{ix86}” on F37+. Actually, I guess that’s a bit premature, since this isn’t a leaf package. I’ll revert that change, but still leave this closed as WONTFIX.