Mini Shell
%rust_arches x86_64 %{ix86} armv7hl aarch64 ppc64 ppc64le riscv64 s390x
%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 https://crates.io/api/v1/crates/
%crates_source() %{lua:
local crate = rpm.expand('%1')
local version = rpm.expand('%2')
local url = rpm.expand('%__crates_url')
\
if crate == '%1' then
crate = rpm.expand('%real_crate')
end
if crate == '%real_crate' then
crate = rpm.expand('%crate')
end
if crate == '%crate' then
crate = rpm.expand('%name')
end
\
if version == '%2' then
version = rpm.expand('%version')
end
version = version:gsub('~', '-')
\
print(url .. crate .. '/' .. version .. '/download#/' .. crate .. '-' .. version .. '.crate')
}
# If crate not in _build_crates and _module_build is set, we should skip the build
%__cargo_skip_build %{lua:
local crate = rpm.expand('%{crate}')
local build_crate = false
for w in rpm.expand('%{?_build_crates}'):gmatch('%S+') do
if w == crate then
build_crate = true
break
end
end
if (rpm.expand('%{defined _module_build}') ~= '0' and not build_crate) then
print(1)
else
print(0)
end}
Zerion Mini Shell 1.0