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.