Rust package guidelines (Português)
32-bit – CLR – CMake – Cross – DKMS – Eclipse – Electron – Fonte – Free Pascal – GNOME – Go – Haskell – Java – KDE – Kernel – Lisp – Meson – MinGW – Node.js – Nonfree – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – Web – Wine
Esse documento cobre padrões e diretrizes sobre escrita de PKGBUILDs para Rust.
Diretrizes gerais
Nomenclatura de pacote
Para binários do Rust, use apenas o nome do programa.
Compilação
Compilação de um pacote Rust.
build() { cargo build --release --locked }
sendo que:
-
--release
diz ao cargo para fazer uma compilação lançamento -
--locked
diz ao cargo para fazer uso do arquivoCargo.lock
e impedi-lo de atualizar dependências, o que é importante para reproducible builds.
Verificação
A maioria dos projetos Rust fornecem uma forma simples de executar o conjunto de testes (testsuite).
check() { cargo test --release --locked }
Pacote
O Rust compila binários em target/release
e pode simplesmente ser instalado em /usr/bin
.
package() { install -Dm 755 target/release/${pkgname} -t "${pkgdir}/usr/bin" }
Alguns pacotes podem instalar mais arquivos, como uma página man, caso em que pode ser melhor usar cargo
:
package() { cd "$pkgname-$pkgver" cargo install --no-track --locked --all-features --root "$pkgdir/usr/" --path . }
O argumento --no-track
sempre deve ser usado, porque cargo install
pode criar arquivos indesejados, como /usr/.crates.toml
ou /usr/.crates2.json
, a menos que seja especificado.
Pacotes exemplos
Clique Package Actions > Source Files na página do pacote para ver seu PKGBUILD exemplo.