O pacote cargo-c cria um sub comando cargo para construir e instalar bibliotecas dinâmicas e estáticas compatíveis com C-ABI.
Esse pacote é conhecido por construir e funcionar adequadamente usando-se uma plataforma LFS 13.1.
Transferência (HTTP): https://github.com/lu-zero/cargo-c/archive/v0.10.24/cargo-c-0.10.24.tar.gz
Soma de verificação MD5 da transferência: b6247bf8f5eac962f001ee8a37f1c25f
Tamanho da transferência: 38 KB
Espaço em disco estimado exigido: 1,4 GB (com testes)
Tempo de construção estimado: 0,7 UPC (adicionar 5,2 UPC para testes)
Uma conexão com a Internet é necessária para se construir esse pacote. A loja de certificados do sistema possivelmente precise estar configurada com make-ca-1.16.1 antes de se construir esse pacote.
Primeiro, baixe um arquivo para garantir que cargo use as versões de dependência especificadas pelos(as) desenvolvedores(as) do fluxo de desenvolvimento quando essa versão cargo-c (0.10.24) foi lançada. Sem isso, as versões mais recentes das dependências seriam usadas e elas poderiam causar quebras:
curl -fLO https://github.com/lu-zero/cargo-c/releases/download/v0.10.24/Cargo.lock
Normalmente, nós colocaríamos essa transferência em uma seção
“Transferências
Adicionais”. Mas, nesse caso, não podemos dizer o
nome e a versão do pacote a partir do nome do arquivo
Cargo.lock, de forma que é melhor
não colocar o arquivo ambiguamente nomeado fora do diretório
cargo-c-0.10.24. Nós usamos
curl aqui porque o
pacote cURL-8.21.0 deveria ter sido instalado como uma
dependência exigida do rustc-1.97.1.
A soma de verificação md5 do arquivo deveria ser fd58412b6d608a57a7d9a7bf384dca03.
Instale cargo-c executando os seguintes comandos:
export LIBSSH2_SYS_USE_PKG_CONFIG=1 && export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 && cargo build --release
Para testar os resultados, emita: cargo test --release.
Agora, como o(a) usante root:
install -vm755 target/release/cargo-{capi,cbuild,cinstall,ctest} /usr/bin/
Finalmente, desconfigure as variáveis exportadas de ambiente:
unset LIB{SSH2,SQLITE3}_SYS_USE_PKG_CONFIG
export LIBSSH2_SYS_USE_PKG_CONFIG=1: Permite que cargo se lincar à libssh2 do sistema. Omita esse comando se você não tiver instalado libssh2-1.11.1.
export LIBSQLITE3_SYS_USE_PKG_CONFIG=1: Permite que cargo se linque ao sqlite do sistema.