Introduction à Protobuf
Le paquet Protobuf contient des
utilitaires et des bibliothèques pour utiliser des données au
format d'échange de données de Google.
Ce paquet est connu pour pouvoir être construit et fonctionner
correctement avec une plateform 12.2.
Informations sur le paquet
Dépendances de Protobuf
Requises
Abseil-cpp-20240722.0 et CMake-3.30.2
Facultatives
gtest
(pour les tests)
Installation de Protobuf
Installez Protobuf en exécutant
les commandes suivantes :
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
Ce paquet a bien une suite de tests, mais elle nécessite gtest qui
ne fait pas partie de BLFS.
Maintenant, en tant qu'utilisateur root
:
sed 's/utf8_range//' -i *.pc &&
ninja install
Explication des commandes
-D
CMAKE_SKIP_INSTALL_RPATH=ON
: ce paramètre fait
supprimer les chemins de recherche des bibliothèques (rpath) codés
en dur par cmake lors
de l'installation d'un fichier exécutable binaire ou d'une
bibliothèque partagée. Ce paquet n'a pas besoin des rpath une fois
installé à l'emplacement standard et les rpath peuvent parfois
avoir des effets indésirables, voire introduire des problèmes de
sécurité.
sed 's/utf8_range//' -i
*.pc : cette commande supprime une référence
restante à libutf8_range dans les fichiers pkg-config installés par
ce paquet.
-D
protobuf_BUILD_TESTS=OFF
: ce paramètre évite que
les tests ne soient construits car gtest ne fait pas partie
de BLFS.
-D
protobuf_ABSL_PROVIDER=package
: ce paramètre
permet au système de construction d'utiliser la copie installée sur
le système de Abseil-cpp-20240722.0.
-D
protobuf_BUILD_SHARED_LIBS=ON
: ce paramètre
active la construction des versions partagées des bibliothèques
fournies par ce paquet au lieu des versions statiques.
-D
utf8_range_ENABLE_INSTALL=OFF
: ce paramètre
désactive l'installation de la bibliothèque statique utf8_range.
Les fonctions fournies par cette bibliothèque et utilisées par
protobuf sont déjà incluses dans libprotobuf.so
, donc installer une copie complète
de la bibliothèque statique n'est qu'un gâchis d'espace disque.