diff --git a/.github/coverage/cpp.develop.coverage_report.txt b/.github/coverage/cpp.develop.coverage_report.txt
index 9dae6e5c..b83a0898 100644
--- a/.github/coverage/cpp.develop.coverage_report.txt
+++ b/.github/coverage/cpp.develop.coverage_report.txt
@@ -57,12 +57,12 @@ src/VDMSConfig.cc 230 215 93% 110-111,139-14
src/VideoCommand.cc 469 125 26% 51,54-55,57-59,61,63,66-67,69-70,73,75-77,79-81,83,85-88,90-91,93-94,96,98-100,103,110,112,117,122-125,131,133,159-160,166-167,169,180,183,200,212,216-219,226-228,230-232,238,240-246,248-249,252-254,256-258,260-261,263,265-277,279-281,283-284,295,299,324,328,330,332,334,336,339-340,342,345,349,351,356-357,379-380,382-383,386-391,393,395,397-398,404,406,435,448-453,455-462,466-472,474,479-484,487,489-490,493-495,503,508,526-529,532-536,552,555,557-559,562-564,566-567,569-573,576-577,580-582,584,586-588,591-594,598-603,608-609,611-612,614-618,621-623,625,627-629,631-634,637-638,641,643,648,661,663-670,674,677,680,685-686,688-692,695-696,698,700,702,705,709,711,713-716,718-720,723,725,727,729-730,732-733,737,742,745-746,748-750,752,754,756-758,760-761,764-766,770-773,777-781,785-789,793,796,798,800,802,804-808,812-816,819-820,822-825,828-831,836-837,841-846,850-851,854-855
src/VideoLoop.cc 250 217 86% 33,81,98-101,103-109,180,188,197,201,207,211,217,220,290,312,315,320-321,324-325,327,334-335,354,370
utils/src/comm/ConnClient.cc 69 57 82% 49,55,59-60,98,103,108,114,120,127,130,149
-utils/src/comm/Connection.cc 82 62 75% 48-53,75,77-79,84,86,97,111,135,140,153,157,159,168
+utils/src/comm/Connection.cc 82 61 74% 48-53,75,77-79,84,86,97,111,135,140,153,157,159,168,172
utils/src/comm/ConnServer.cc 61 49 80% 60,64,68,75,84,91,103,108,128,135,140,145
utils/src/comm/Exception.cc 6 0 0% 35-40
utils/src/kubernetes/KubeHelper.cc 183 37 20% 23-30,32-35,37-49,51-54,56-65,68-79,81-90,96-99,101,103-105,107-110,112-118,120-125,127-143,146-154,156,158-161,163-165,167,177,183,198,204,206-218,231-238
utils/src/stats/SystemStats.cc 250 249 99% 455
utils/src/timers/TimerMap.cc 82 74 90% 126,151,153,155-158,162
------------------------------------------------------------------------------
-TOTAL 12491 8508 68%
+TOTAL 12491 8507 68%
------------------------------------------------------------------------------
diff --git a/.github/coverage/cpp.develop.coverage_value.txt b/.github/coverage/cpp.develop.coverage_value.txt
index 38ad8247..4e4d202b 100644
--- a/.github/coverage/cpp.develop.coverage_value.txt
+++ b/.github/coverage/cpp.develop.coverage_value.txt
@@ -1 +1 @@
-68.113
+68.105
diff --git a/.github/requirements.txt b/.github/requirements.txt
index f490edbc..0053f843 100644
--- a/.github/requirements.txt
+++ b/.github/requirements.txt
@@ -14,7 +14,7 @@ MarkupSafe==3.0.2
numpy==1.26.4
opencv-python-headless==4.11.0.86
pillow==11.1.0
-protobuf==4.25.8
+protobuf==5.29.5
pycparser==2.22
Pygments==2.19.1
pyzmq==26.4.0
diff --git a/.github/scripts/Dockerfile.checkin b/.github/scripts/Dockerfile.checkin
index dc41e9d5..eb06faf5 100644
--- a/.github/scripts/Dockerfile.checkin
+++ b/.github/scripts/Dockerfile.checkin
@@ -21,7 +21,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NOWARNINGS="yes"
ENV PYTHON_BASE="3.12"
ENV PYTHON_VERSION="${PYTHON_BASE}.3"
-ENV PROTOBUF_VERSION="25.8"
+ENV PROTOBUF_VERSION="29.5"
ENV NUMPY_MIN_VERSION="1.26.0"
ENV VIRTUAL_ENV=/opt/venv
@@ -77,6 +77,7 @@ ENV AUTOCONF_VERSION="2.71" \
AWS_SDK_VERSION="1.11.336" \
CMAKE_VERSION="v3.28.5" \
FAISS_VERSION="v1.9.0" \
+ GOOGLETEST_VERSION="4c9a3bb62bf3ba1f1010bf96f9c8ed767b363774" \
LIBEDIT_VERSION="20230828-3.1" \
OPENCV_VERSION="4.9.0" \
PEG_VERSION="0.1.19" \
@@ -89,27 +90,25 @@ RUN git clone --branch ${CMAKE_VERSION} https://github.com/Kitware/CMake.git /de
cd /dependencies/CMake && ./bootstrap && make ${BUILD_THREADS} && \
make install DESTDIR=/opt/dist && make install
+# GOOGLETEST
+# hadolint ignore=DL3003,SC2086
+RUN git clone https://github.com/google/googletest.git /dependencies/googletest && \
+ cd /dependencies/googletest && git checkout "${GOOGLETEST_VERSION}" && \
+ mkdir build && cd build/ && \
+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
+ -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
+ make ${BUILD_THREADS} && make install
+
# PROTOBUF & ITS DEPENDENCIES
# hadolint ignore=DL3003,SC2086
RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
- cd /dependencies/protobuf/third_party/googletest && mkdir build && cd build/ && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
- -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
- -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
- make ${BUILD_THREADS} && make install && \
- cd /dependencies/protobuf/third_party/abseil-cpp && mkdir build && cd build && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
- -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
- -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
- make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
cd /dependencies/protobuf && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
- -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
- -Dprotobuf_ABSL_PROVIDER=package \
- -Dprotobuf_BUILD_TESTS=ON \
- -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
- make ${BUILD_THREADS} && make install
+ cmake -Dprotobuf_FORCE_FETCH_DEPENDENCIES=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
+ -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
+ -Dprotobuf_BUILD_TESTS=ON . && \
+ make ${BUILD_THREADS} && make install
# OPENCV
# hadolint ignore=DL3003,SC2086
@@ -150,8 +149,8 @@ RUN curl -L -O https://github.com/TileDB-Inc/TileDB/archive/refs/tags/${TILEDB_V
# AUTOCONF VERSION FOR NEO4J
# hadolint ignore=DL3003,SC2086
-RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
- tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
+RUN curl -L -O http://ftpmirror.gnu.org/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz && \
+ tar -xzf autoconf-${AUTOCONF_VERSION}.tar.gz && cd autoconf-${AUTOCONF_VERSION} && \
./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
# LIB-OMNI FOR NEO4J QUERY HANDLER
@@ -253,7 +252,7 @@ RUN apt-get update -y && apt-get upgrade -y && \
apt-get --purge remove -y python3.11 && apt-get autoremove -y && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \
echo "/usr/local/lib" >> /etc/ld.so.conf.d/all-libs.conf && ldconfig && \
- python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==4.${PROTOBUF_VERSION}" \
+ python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==5.${PROTOBUF_VERSION}" \
"coverage>=7.3.1" "cryptography>=44.0.1"
# COVERAGE TESTING
diff --git a/.github/scripts/setup_vdms.sh b/.github/scripts/setup_vdms.sh
index a63e5a1d..215890c3 100755
--- a/.github/scripts/setup_vdms.sh
+++ b/.github/scripts/setup_vdms.sh
@@ -176,7 +176,7 @@ export PATH="$VIRTUAL_ENV/bin:$PATH"
if [ "${BUILD_COVERAGE}" = "ON" ]; then
apt-get install -y --no-install-suggests --no-install-recommends gdb
- python -m pip install --no-cache-dir "gcovr>=7.0"
+ python -m pip install --no-cache-dir "gcovr==8.4"
curl -L -o ${WORKSPACE}/minio https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x ${WORKSPACE}/minio
mkdir -p ${WORKSPACE}/minio_files/minio-bucket
@@ -194,11 +194,12 @@ AUTOCONF_VERSION="2.71"
AWS_SDK_VERSION="1.11.336"
CMAKE_VERSION="v3.28.5"
FAISS_VERSION="v1.9.0"
+GOOGLETEST_VERSION="4c9a3bb62bf3ba1f1010bf96f9c8ed767b363774"
LIBEDIT_VERSION="20230828-3.1"
NUMPY_MIN_VERSION="1.26.0"
OPENCV_VERSION="4.9.0"
PEG_VERSION="0.1.19"
-PROTOBUF_VERSION="25.8"
+PROTOBUF_VERSION="29.5"
TILEDB_VERSION="2.14.1"
VALIJSON_VERSION="v0.6"
@@ -213,9 +214,10 @@ make ${BUILD_THREADS}
make install
-# INSTALL PROTOBUF & ITS DEPENDENCIES
-git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git $VDMS_DEP_DIR/protobuf
-cd $VDMS_DEP_DIR/protobuf/third_party/googletest
+# GOOGLETEST
+git clone https://github.com/google/googletest.git $VDMS_DEP_DIR/googletest
+cd $VDMS_DEP_DIR/googletest
+git checkout "${GOOGLETEST_VERSION}"
mkdir build && cd build/
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
@@ -223,22 +225,14 @@ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
make ${BUILD_THREADS}
make install
-cd $VDMS_DEP_DIR/protobuf/third_party/abseil-cpp
-mkdir build && cd build
-cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_INSTALL_PREFIX=/usr/local -DABSL_BUILD_TESTING=ON \
- -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
- -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 ..
-make ${BUILD_THREADS}
-make install
-ldconfig /usr/local/lib
+# INSTALL PROTOBUF & ITS DEPENDENCIES
+git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git $VDMS_DEP_DIR/protobuf
cd $VDMS_DEP_DIR/protobuf
-cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
+cmake -Dprotobuf_FORCE_FETCH_DEPENDENCIES=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
- -Dprotobuf_ABSL_PROVIDER=package \
- -Dprotobuf_BUILD_TESTS=ON \
- -Dabsl_DIR=/usr/local/lib/cmake/absl .
+ -Dprotobuf_BUILD_TESTS=ON .
make ${BUILD_THREADS}
make install
@@ -255,7 +249,7 @@ make install
# INSTALL PYTHON PACKAGES
python -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "coverage>=7.3.1" \
- "protobuf==4.${PROTOBUF_VERSION}" "cryptography>=44.0.1"
+ "protobuf==5.${PROTOBUF_VERSION}" "cryptography>=44.0.1"
# INSTALL VALIJSON
diff --git a/client/python/setup.py b/client/python/setup.py
index c5c90072..2626ec69 100644
--- a/client/python/setup.py
+++ b/client/python/setup.py
@@ -5,11 +5,11 @@
setuptools.setup(
name="vdms",
- version="0.0.21",
+ version="0.0.22",
author="Chaunté W. Lacewell",
author_email="chaunte.w.lacewell@intel.com",
description="VDMS Client Module",
- install_requires=["protobuf==4.25.8"],
+ install_requires=["protobuf==5.29.5"],
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/IntelLabs/vdms",
diff --git a/client/python/vdms/queryMessage_pb2.py b/client/python/vdms/queryMessage_pb2.py
index 4bd962f5..71c643b4 100644
--- a/client/python/vdms/queryMessage_pb2.py
+++ b/client/python/vdms/queryMessage_pb2.py
@@ -1,11 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
+# NO CHECKED-IN PROTOBUF GENCODE
# source: queryMessage.proto
+# Protobuf Python Version: 5.29.5
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
+from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
+_runtime_version.ValidateProtobufRuntimeVersion(
+ _runtime_version.Domain.PUBLIC,
+ 5,
+ 29,
+ 5,
+ '',
+ 'queryMessage.proto'
+)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
@@ -18,8 +29,8 @@
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'queryMessage_pb2', _globals)
-if _descriptor._USE_C_DESCRIPTORS == False:
- DESCRIPTOR._options = None
+if not _descriptor._USE_C_DESCRIPTORS:
+ DESCRIPTOR._loaded_options = None
_globals['_QUERYMESSAGE']._serialized_start=38
_globals['_QUERYMESSAGE']._serialized_end=81
# @@protoc_insertion_point(module_scope)
diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile
index 34bcce00..dda527b1 100644
--- a/docker/base/Dockerfile
+++ b/docker/base/Dockerfile
@@ -21,7 +21,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NOWARNINGS="yes"
ENV PYTHON_BASE="3.12"
ENV PYTHON_VERSION="${PYTHON_BASE}.3"
-ENV PROTOBUF_VERSION="25.8"
+ENV PROTOBUF_VERSION="29.5"
ENV NUMPY_MIN_VERSION="1.26.0"
ENV VIRTUAL_ENV=/opt/venv
@@ -77,6 +77,7 @@ ENV AUTOCONF_VERSION="2.71" \
AWS_SDK_VERSION="1.11.336" \
CMAKE_VERSION="v3.28.5" \
FAISS_VERSION="v1.9.0" \
+ GOOGLETEST_VERSION="4c9a3bb62bf3ba1f1010bf96f9c8ed767b363774" \
LIBEDIT_VERSION="20230828-3.1" \
OPENCV_VERSION="4.9.0" \
PEG_VERSION="0.1.19" \
@@ -89,27 +90,25 @@ RUN git clone --branch ${CMAKE_VERSION} https://github.com/Kitware/CMake.git /de
cd /dependencies/CMake && ./bootstrap && make ${BUILD_THREADS} && \
make install DESTDIR=/opt/dist && make install
+# GOOGLETEST
+# hadolint ignore=DL3003,SC2086
+RUN git clone https://github.com/google/googletest.git /dependencies/googletest && \
+ cd /dependencies/googletest && git checkout "${GOOGLETEST_VERSION}" && \
+ mkdir build && cd build/ && \
+ cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
+ -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
+ make ${BUILD_THREADS} && make install
+
# PROTOBUF & ITS DEPENDENCIES
# hadolint ignore=DL3003,SC2086
RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
- cd /dependencies/protobuf/third_party/googletest && mkdir build && cd build/ && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
- -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
- -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
- make ${BUILD_THREADS} && make install && \
- cd /dependencies/protobuf/third_party/abseil-cpp && mkdir build && cd build && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
- -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
- -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
- make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
cd /dependencies/protobuf && \
- cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
- -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
- -Dprotobuf_ABSL_PROVIDER=package \
- -Dprotobuf_BUILD_TESTS=ON \
- -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
- make ${BUILD_THREADS} && make install
+ cmake -Dprotobuf_FORCE_FETCH_DEPENDENCIES=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
+ -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
+ -Dprotobuf_BUILD_TESTS=ON . && \
+ make ${BUILD_THREADS} && make install
# OPENCV
# hadolint ignore=DL3003,SC2086
@@ -150,8 +149,8 @@ RUN curl -L -O https://github.com/TileDB-Inc/TileDB/archive/refs/tags/${TILEDB_V
# AUTOCONF VERSION FOR NEO4J
# hadolint ignore=DL3003,SC2086
-RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
- tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
+RUN curl -L -O http://ftpmirror.gnu.org/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz && \
+ tar -xzf autoconf-${AUTOCONF_VERSION}.tar.gz && cd autoconf-${AUTOCONF_VERSION} && \
./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
# LIB-OMNI FOR NEO4J QUERY HANDLER
@@ -227,7 +226,7 @@ RUN apt-get update -y && apt-get upgrade -y && \
apt-get --purge remove -y python3.11 && apt-get autoremove -y && \
apt-get clean && rm -rf /var/lib/apt/lists/* && \
echo "/usr/local/lib" >> /etc/ld.so.conf.d/all-libs.conf && ldconfig && \
- python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==4.${PROTOBUF_VERSION}" \
+ python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==5.${PROTOBUF_VERSION}" \
"coverage>=7.3.1" "cryptography>=44.0.1"
# VDMS
diff --git a/docs/Install.md b/docs/Install.md
index 995d24c8..67567b68 100644
--- a/docs/Install.md
+++ b/docs/Install.md
@@ -105,38 +105,34 @@ sudo make install
```
-#### **Protobuf v25.8 (4.25.8)**
-Install Protobuf (C++ and Python) which requires GoogleTest and Abseil C++ as dependencies.
+#### **GoogleTest**
+Install GoogleTest version used in Protobuf v29.5:
```bash
-PROTOBUF_VERSION="25.8"
-python3 -m pip install --no-cache-dir "protobuf==4.${PROTOBUF_VERSION}"
-
-git clone -b v${PROTOBUF_VERSION} --recurse-submodules https://github.com/protocolbuffers/protobuf.git $VDMS_DEP_DIR/protobuf
-
-cd $VDMS_DEP_DIR/protobuf/third_party/googletest
-mkdir build && cd build
+GOOGLETEST_VERSION="4c9a3bb62bf3ba1f1010bf96f9c8ed767b363774"
+git clone https://github.com/google/googletest.git $VDMS_DEP_DIR/googletest && \
+cd $VDMS_DEP_DIR/googletest
+git checkout "${GOOGLETEST_VERSION}"
+mkdir build && cd build/
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 ..
make ${BUILD_THREADS}
sudo make install
+```
+
-cd $VDMS_DEP_DIR/protobuf/third_party/abseil-cpp
-mkdir build && cd build
-cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
- -DCMAKE_INSTALL_PREFIX=/usr/local -DABSL_BUILD_TESTING=ON \
- -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
- -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 ..
-make ${BUILD_THREADS}
-sudo make install
-sudo ldconfig /usr/local/lib
+#### **Protobuf v29.5 (5.29.5)**
+Install Protobuf (C++ and Python) with its dependencies.
+```bash
+PROTOBUF_VERSION="29.5"
+python3 -m pip install --no-cache-dir "protobuf==5.${PROTOBUF_VERSION}"
+git clone -b v${PROTOBUF_VERSION} --recurse-submodules https://github.com/protocolbuffers/protobuf.git $VDMS_DEP_DIR/protobuf
cd $VDMS_DEP_DIR/protobuf
-cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
+cmake -Dprotobuf_FORCE_FETCH_DEPENDENCIES=ON \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
- -Dprotobuf_ABSL_PROVIDER=package \
- -Dprotobuf_BUILD_TESTS=ON \
- -Dabsl_DIR=/usr/local/lib/cmake/absl .
+ -Dprotobuf_BUILD_TESTS=ON .
make ${BUILD_THREADS}
sudo make install
```
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 7fe767eb..f0663102 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -93,5 +93,6 @@ target_link_libraries(unit_tests
${OpenCV_LIBS}
${AWSSDK_LINK_LIBRARIES}
neo4j-client
+ -lgtest
)