Rust package guidelines (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Rust package guidelines. Data da última tradução: 2020-06-23. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Diretrizes de pacotes do Arch

32-bitCLRCMakeCrossDKMSEclipseElectronFonteFree PascalGNOMEGoHaskellJavaKDEKernelLispMesonMinGWNode.jsNonfreeOCamlPerlPHPPythonRRubyRustShellVCSWebWine

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.

Nota: O nome do pacote deve estar todo em minúsculo.

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 arquivo Cargo.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.