Rust package guidelines (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.jsNonfreeOCamlPerlPHPPythonRRubyRustVCSWebWine

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.