Protobuf-27.3

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.

Contenu

Programmes installés: protoc-26.1.0 et protoc (un lien symbolique vers protoc-26.1.0)
Bibliothèques installées: libprotobuf.so, libprotobuf-lite.so et libprotoc.so
Répertoires installés: /usr/include/google, /usr/include/java, /usr/include/upb_generator et /usr/lib/cmake/protobuf

Descriptions courtes

protoc

analyse syntaxiquement les fichiers protocol buffer et génère une sortie pour plusieurs langages de programmations et plusieurs formats

libprotobuf.so

contient les fonctions pour utiliser des données dans le format d'échange de données de Google

libprotobuf-lite.so

contient une version simplifiée des fonctions pour utiliser des données dans le format d'échange de données de Google

libprotoc.so

contient des fonctions utilisées par protoc à l'exécution pour afficher les données pour plusieurs langages de programmations et plusieurs formats