8c1ae0e762
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.
63 lines
2.0 KiB
Plaintext
63 lines
2.0 KiB
Plaintext
# rust_arches: list of architectures where building Rust is supported
|
|
#
|
|
# Since RPM itself now depends on Rust code (via its GPG backend, rpm-sequoia),
|
|
# this list will probably always be a superset of all architectures that are
|
|
# supported by Fedora, which is why it is no longer required to set
|
|
# "ExclusiveArch: rust_arches" for Rust packages in Fedora.
|
|
%rust_arches x86_64 %{ix86} armv7hl aarch64 ppc64 ppc64le riscv64 s390x
|
|
|
|
# version_no_tilde: lua macro for reconstructing the original crate version
|
|
# from the RPM version (i.e. replace any "~" characters with "-")
|
|
%version_no_tilde() %{lua:
|
|
local sep = rpm.expand('%1')
|
|
local ver = rpm.expand('%2')
|
|
\
|
|
if sep == '%1' then
|
|
sep = '-'
|
|
end
|
|
\
|
|
if ver == '%2' then
|
|
ver = rpm.expand('%version')
|
|
end
|
|
ver = ver:gsub('~', sep)
|
|
\
|
|
print(ver)
|
|
}
|
|
|
|
# __crates_url: default API endpoint for downloading .crate files from crates.io
|
|
%__crates_url https://crates.io/api/v1/crates/
|
|
|
|
# crates_source: lua macro for constructing the Source URL for a crate
|
|
%crates_source() %{lua:
|
|
local crate = rpm.expand('%1')
|
|
local version = rpm.expand('%2')
|
|
local url = rpm.expand('%__crates_url')
|
|
\
|
|
-- first argument missing: fall back to %crate
|
|
if crate == '%1' then
|
|
crate = rpm.expand('%crate')
|
|
end
|
|
-- %crate macro not defined: fall back to %name
|
|
if crate == '%crate' then
|
|
crate = rpm.expand('%name')
|
|
end
|
|
\
|
|
-- second argument missing: fall back to %crate_version
|
|
if version == '%2' then
|
|
version = rpm.expand('%crate_version')
|
|
end
|
|
-- %crate_version macro not defined: fall back to %version
|
|
if version == '%crate_version' then
|
|
version = rpm.expand('%version')
|
|
end
|
|
-- replace '~' with '-' for backwards compatibility
|
|
-- can be removed in the future
|
|
version = version:gsub('~', '-')
|
|
\
|
|
print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
|
|
}
|
|
|
|
# __cargo_skip_build: unused macro, set to 0 for backwards compatibility
|
|
%__cargo_skip_build 0
|
|
|