Protobuf-27.3

Introdução ao Protobuf

O pacote Protobuf contém utilitários e bibliotecas para usar dados no formato de intercâmbio de dados do Google.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.2.

Informação do Pacote

Dependências de Protobuf

Exigidas

Abseil-cpp-20240722.0 e CMake-3.30.2

Opcionais

gtest (para testes)

Instalação do Protobuf

Instale Protobuf executando os seguintes comandos:

mkdir build &&
cd    build &&

cmake -D CMAKE_INSTALL_PREFIX=/usr      \
      -D CMAKE_BUILD_TYPE=Release       \
      -D CMAKE_SKIP_INSTALL_RPATH=ON    \
      -D protobuf_BUILD_TESTS=OFF       \
      -D protobuf_ABSL_PROVIDER=package \
      -D protobuf_BUILD_LIBUPB=OFF      \
      -D protobuf_BUILD_SHARED_LIBS=ON  \
      -D utf8_range_ENABLE_INSTALL=OFF  \
      -G Ninja ..                       &&
ninja

Esse pacote vem com uma suíte de teste, mas ela exige gtest, que não é parte do BLFS.

Agora, como o(a) usuário(a) root:

sed 's/utf8_range//' -i *.pc &&
ninja install

Explicações do Comando

-D CMAKE_SKIP_INSTALL_RPATH=ON: Essa chave faz com que cmake remova caminhos de pesquisa de biblioteca rigidamente codificados (rpath) ao instalar um arquivo binário executável ou uma biblioteca compartilhada. Esse pacote não precisa do rpath depois de instalado no local padrão, e o rpath ocasionalmente pode causar efeitos indesejados ou até mesmo problemas de segurança.

sed 's/utf8_range//' -i *.pc: Esse comando remove uma referência restante ao libutf8_range dos arquivos pkg-config instalados por esse pacote.

-D protobuf_BUILD_TESTS=OFF: Esse parâmetro impede os testes de serem construídos porque gtest não faz parte do BLFS.

-D protobuf_ABSL_PROVIDER=package: Esse parâmetro permite que o sistema de construção use a cópia instalada do sistema de Abseil-cpp-20240722.0.

-D protobuf_BUILD_SHARED_LIBS=ON: Esse parâmetro habilita construir versões compartilhadas das bibliotecas fornecidas por esse pacote em vez das versões estáticas.

-D utf8_range_ENABLE_INSTALL=OFF: Esse parâmetro desabilita instalar a biblioteca estática utf8_range. As funções fornecidas por essa biblioteca e usadas pelo protobuf já estão incorporadas na libprotobuf.so, de forma que instalar uma cópia completa da biblioteca estática é apenas desperdiçar o espaço em disco.

Conteúdo

Aplicativos Instalados: protoc-26.1.0 e protoc (um link simbólico para protoc-26.1.0)
Bibliotecas Instaladas: libprotobuf.so, libprotobuf-lite.so e libprotoc.so
Diretórios Instalados: /usr/include/google, /usr/include/java, /usr/include/upb_generator e /usr/lib/cmake/protobuf

Descrições Curtas

protoc

analisa arquivos de buffer de protocolo e gera saída para diversas linguagens de programação e formatos

libprotobuf.so

contém funções para utilizar dados no formato de intercâmbio de dados do Google

libprotobuf-lite.so

contém uma versão mais simples das funções para utilizar dados no formato de intercâmbio de dados do Google

libprotoc.so

contém funções usadas pelo protoc em tempo de execução para saída de dados para diversas linguagens de programação e formatos