On Thu, 11 Aug 2022, Dan Čermák wrote:
Larry Len Rainey firstname.lastname@example.org writes:
Can anyone prove or disprove that the kernel has to be V3 for things like ImageMagic to run if it is complied V3?
No, the kernel does not have to be compiled with x86_64 v3.
I could see a ImageMagic-V3 as an option for those with hardware that can take advantage of it and just plain ImageMagic for those that cannot.
Yes, that's what I'd like to see as well, but currently rpm does not support this natively (it could be worked around via different multiple repositories though, but I'd like a proper solution to be honest).
The first and foremost rpm feature missing is a standard way to specify a minimum required set of HW capabilities a package requires. Currently the rpm meta includes the architecture, so one "obvious" way would be to simply add additional architectures. But then rpm itself doesn't do any magic and will happily install even arm architecture packages to your x86_64 system IIRC.
There are already packages existing in our x86_64 repository that will not run correctly on original x86_64 hardware but SIGILL. Unfortunately there's currently no way to annotate those appropriately and prevent them from installing on systems not capable enough.
The suggestion of multiple repositories is just one possible technical implementation of such annotation, using system provides and package requires would be another (then with the technical issue of having multiple same named but different filenamed packages in the same repository?).
IMHO the multiple repository solution is the most pragmatic but even that requires some integration into the install/update workflow so that repositories get added with appropriate priority.
On the OBS side a x86_64-v3 repo could simply build as project link (linkedbuild) against the x86_64 (-v1) repo, enabling only the subset of packages that are interesting plus enhancing the project config with the appropriate default optflags adjustment.
Similarly a -v1 repo could be built for the subset of interesting packages people with v1 hardware use in case the default is switched to v2 or v3. I guess the initial set of packages for v1 will be much larger than the initial set for v3.