RPM/Rust
< RPM
Версия от 09:46, 14 января 2022; Vt (обсуждение | вклад) (Vt переименовал страницу RPM/rust в RPM/Rust: Upcase)
Как быстро сделать Rust пакет
Мы пошли по пути "вендоринга", то есть сборки зависимостей одновременно с исходным пакетом (в отличии от помещения их в отдельные пакеты и использования BuildRequires). Как завендорить растовые зависимости (в дире с пакетом):
$ cargo vendor $ find vendor -name '*.a' -delete $ git add -A vendor $ git commit -m "cargo vendor"
- cargo vendor - поместит все зависимости в диру vendor/, желательно, чтоб она была пустая.
- find - удалит бинарные библиотеки из виндовых зависимостей (winapi*).
В спеке:
BuildRequires: /proc BuildRequires: rust-cargo
- /proc необходим для работы cargo.
В секции %prep после %setup:
mkdir -p .cargo cat >> .cargo/config <<EOF [source.crates-io] replace-with = "vendored-sources" [source.vendored-sources] directory = "vendor" [term] verbose = true [install] root = "%buildroot%_prefix" [build] rustflags = ["-Cdebuginfo=1"] EOF
- эта конструкция подключит вендореные исходники, настроит опции сборки и инсталляции.
В %build:
cargo build %_smp_mflags --offline --release
В %install (если пакет не библиотека, а бинарник):
cargo install %_smp_mflags --offline --no-track --path .
В %check, если нужен:
cargo test %_smp_mflags --release --no-fail-fast