This was dropped in
bdc2be1e01
but it's needed for EPEL 10, so adding it back.
Resolves: RHEL-60808
Signed-off-by: Davide Cavalca <dcavalca@centosproject.org>
(cherry picked from commit 175d35473cf8885da93bc888f7f4a54a369c84cd)
The upgrade path was broken because the Rust version compares less than
the rust2rpm-based package version that was in RHEL 8 and 9. With a new
name and appropriate Obsoletes and Provides, it should upgrade cleanly.
Ref: https://issues.redhat.com/browse/RHEL-30636
We also need to use the corresponding compiler-rt version and
use the llvm-profdata from the correct path.
The compat build is now enabled by defining llvm_compat_version.
This bring RHEL rust-toolset in sync with the latest Fedora
rust-packaging, most importantly:
* Fedora's new style (-v vendor) vendoring is implemented. The old RHEL
style (-V #) vendoring is still supported, at least until we can convert
everything in ELN.
* Automatic generation of bundled provides using %cargo_vendor_manifest.
However, instead of depending on cargo2rpm, a very stripped-down version
of just its parse-vendor-manifest command is provided as a private
script, along with a fileattr to call it.
Other changes incorporated in this commit:
* -Cstrip=none added to %build_rustflags.
* --profile rpm is used instead of --release.
* Errors in spawned commands are now caught.
* Comments and whitespace are synced for easier comparison with Fedora.
* --target all is dropped from license and vendor macros, to avoid false
alarms from windows crates.
rust-srpm-macros is a dependency of redhat-rpm-config so that Rust-based
SRPMs can rely on these particular macros. In RHEL 9 and earlier,
rust-srpm-macros was a separate source package which was included in
RHEL. Since then, it became a subpackage of rust-packaging in Fedora.
In order to not pull in any part of rust-packaging into RHEL 10, thereby
allowing it to be maintained separately in EPEL, those macros are
provided here instead.
/usr/bin/rustfmt is linking to an internal rust library and this
results in load errors if rustfmt and rust are at different evrs:
$ rustfmt
rustfmt: error while loading shared libraries: librustc_driver-69c69b1255476b63.so: cannot open shared object file: No such file or directory
$ rpm -q rust rustfmt
rust-1.72.0-1.fc38.x86_64
rustfmt-1.72.1-1.fc38.x86_64
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>