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.0.
Transferência (HTTP): https://github.com/lu-zero/cargo-c/archive/v0.10.20/cargo-c-0.10.20.tar.gz
Soma de verificação MD5 da transferência: 10c67f70802e70588c59260441812886
Tamanho da transferência: 40 KB
Espaço em disco estimado exigido: 891 MB (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.20) 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.20/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.20. Nós usamos
curl aqui porque o
pacote cURL-8.18.0 deveria ter sido instalado como uma
dependência exigida do rustc-1.93.1.
A soma de verificação MD5 do arquivo deveria ser 021854be3ef40003288171a6c5c65181.
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) usuário(a) 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.