Runtime, integridade e licenças
O runtime é o executável Pascal/ACBr que realiza as operações nativas. A biblioteca Python inicia esse processo diretamente, sem Node.js, npm ou FFI. O binário não vem no wheel Python: a instalação é explícita e seu diretório deve ficar sob controle da aplicação ou do administrador responsável. A ajuda de campos e tipos funciona sem ele.
Instalar e conferir
python -m acbr runtime install --directory .runtime
python -m acbr doctor --directory .runtime/runtimeO primeiro comando imprime o caminho exato em runtime_directory. Passe esse caminho a Emissor; na instalação acima, é .runtime/runtime, não .runtime.
O instalador da versão Python 0.1.0a5 seleciona o arquivo original Windows ou Linux x64 0.2.1, verifica tamanho e SHA-256 fixados, extrai para área temporária e confere o inventário. Ele baixa o artefato nativo diretamente, sem executar npm ou instalar Node.js. O nome do arquivo conserva sua origem no projeto ACBr Node; isso identifica a proveniência da distribuição, não uma dependência de execução do cliente Python.
Use um destino novo. Se já existe uma instalação inválida ou incompleta, preserve evidências e instale uma cópia íntegra em outro diretório. Não altere manifesto, hashes ou bibliotecas para fazer uma verificação passar.
Arquivo obtido previamente
Para instalar sem fazer download durante o comando:
python -m acbr runtime install --directory .runtime-offline --archive CAMINHO/ARQUIVO-0.2.1.tgz
python -m acbr doctor --directory .runtime-offline/runtimeO .tgz deve corresponder à plataforma e ao pin do cliente. A opção --archive mantém as mesmas verificações de tamanho, hash e inventário. Distribua o arquivo por um canal controlado, com sua proveniência registrada.
Pins da versão publicada 0.1.0a5
| Campo | Valor |
|---|---|
| Distribuição do runtime | 0.2.1 |
| Revisão ACBr | 48590 |
| Commit upstream do manifesto | 7330817e4628b5fb7b49d4c638cdc23da0228ce8 |
| Hash do contrato | e5a497cefe8e0e350a30da5cc04e88b35c38a98535893d52f878890260d1346d |
SHA-256 Linux .tgz | 029e23b5fc05e0886a9e988300ef46811db0705f687109d114d34e87500d1b5f |
SHA-256 Windows .tgz | 3a4f3ab038c8e9a705ac5a74f8d9c237c96aea1922b54fb2c5f844a8af445cc3 |
Os tamanhos fixados são 51.682.585 bytes no Linux e 33.777.463 bytes no Windows. A fonte de verdade é runtime-release.json da tag v0.1.0a5.
A distribuição 0.2.1 mantém os executáveis e o contrato da 0.2.0, completando os textos de licença e atualizando seus inventários. Os números antigos encontrados em relatórios históricos de TLS identificam os artefatos auditados naquelas execuções; para instalar o pacote a5, use os pins acima.
O que doctor comprova
doctor verifica plataforma, manifesto autenticado, contrato, proveniência dos fontes, inventário e hashes de todos os arquivos. Rejeita links/junções, arquivos inesperados e componentes obrigatórios ausentes. Não executa o motor, não consulta a SEFAZ e não comprova homologação fiscal, confiança no contribuinte ou funcionamento de todos os serviços remotos.
O cliente repete a verificação de integridade antes de cada operação nativa. Esse custo ocorre antes da comunicação com o processo e deve entrar no orçamento total de tempo da aplicação. Hashes detectam alterações, mas não tornam seguro um diretório modificável por terceiros.
Arquivos e ambiente
Preserve manifest.json, schemas/, licenses/, sources/, bibliotecas, ACBrNFeServicos.ini, openssl.cnf e os módulos OpenSSL. O cliente monta o ambiente do processo e aponta as dependências da própria instalação. Não copie bibliotecas isoladas entre versões nem use arquivos de uma plataforma na outra.
Falhas RUNTIME_INCOMPLETO, RUNTIME_ALTERADO, CONTRATO_DIVERGENTE ou PLATAFORMA_NAO_SUPORTADA devem ser resolvidas na instalação, antes de tentar operar. Consulte erros.
Fontes e redistribuição
Cliente e contrato são LGPL-2.1-or-later. O runtime mantém fontes correspondentes em runtime/sources e avisos/licenças em runtime/licenses. ACBr, Free Pascal, Lazarus, OpenSSL, libxml2 e outros componentes conservam suas próprias condições e exceções. Não remova esses diretórios ao empacotar ou distribuir a aplicação. Consulte fontes e licenças e os avisos efetivamente distribuídos.