I was considering reviewing https://bugzilla.redhat.com/show_bug.cgi?id=1881482 (intel-ipp-crypto-mb - Intel(R) IPP Cryptography multi-buffer library).
This library exists specifically to provide high-performance cryptographic primitives for systems with AVX-512 SIMD extensions. It does not have generic fallback code; the intent, I think, is that programs desiring fallback would just use OpenSSL or similar. As such, it is not only ExclusiveArch: x86_64 (OK with justification and tracker bugs), but the tests cannot be executed on most x86_64 systems, and it cannot be used on most x86_64 systems. However, it would be perfectly fine, practically speaking, for it to be linked by an application that used runtime CPU detection and fell back to OpenSSL when the necessary extensions were not available.
I have not seen a policy for whether software which, due to fundamental design, requires extensions to the base architecture can be packaged in Fedora. It seems this will be more and more common as people design dedicated software around wider and more flexible SIMD instructions. An opinion on this issue would be much appreciated.
Unfortunately I don't think Fedora as a whole has made a decision about this recently. In the past the answer has generally been a hard no: things need to "just work" in all cases. But (as far as I recall) that was always in the context of an application, not of a library that applications must use.
In any case, making distro-direction decisions like this isn't within the purview of this committee. I would suggest asking FESCo.
Thanks. Closing this ticket and escalating to FESCo as recommended.
https://pagure.io/fesco/issue/2569
Metadata Update from @music: - Issue close_status updated to: nothingtodo - Issue status updated to: Closed (was: Open)
FESCo approved:
Libraries packaged in Fedora may require ISA extensions, however any packaged application must not crash on any officially supported architecture, either by providing a generic fallback implementation OR by cleanly exiting when the requisite hardware support is unavailable.
I believe the best place to document this is the packaging guidelines.
Metadata Update from @churchyard: - Issue status updated to: Open (was: Closed)
Metadata Update from @churchyard: - Issue tagged with: draftneeded