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 – Shell – 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:
-
--releasediz ao cargo para fazer uma compilação lançamento -
--lockeddiz ao cargo para fazer uso do arquivoCargo.locke 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.