build: protobuf is required so update building docs

- recommend using libyang 2.1.128 but accept 2.0.0 for now.
- update ubuntu building doc to add GRPC section
- update ubuntu reference docker builds to match grpc doc change

Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
Christian Hopps 2023-12-30 22:40:07 +00:00
parent 353ee7bb81
commit c00002d0d0
9 changed files with 42 additions and 49 deletions

View file

@ -1953,6 +1953,10 @@ AC_SUBST([SNMP_CFLAGS])
dnl --------------- dnl ---------------
dnl libyang dnl libyang
dnl --------------- dnl ---------------
PKG_CHECK_MODULES([LIBYANG], [libyang >= 2.1.128], , [
AC_MSG_WARN([Recommended libyang version is >= 2.1.128.])
])
PKG_CHECK_MODULES([LIBYANG], [libyang >= 2.0.0], , [ PKG_CHECK_MODULES([LIBYANG], [libyang >= 2.0.0], , [
AC_MSG_ERROR([libyang (>= 2.0.0) was not found on your system.]) AC_MSG_ERROR([libyang (>= 2.0.0) was not found on your system.])
]) ])

View file

@ -11,18 +11,12 @@ Installing Dependencies
git autoconf automake libtool make cmake pcre readline texinfo \ git autoconf automake libtool make cmake pcre readline texinfo \
pkg-config pam json-c bison flex python-pytest \ pkg-config pam json-c bison flex python-pytest \
c-ares python python2-ipaddress python-sphinx \ c-ares python python2-ipaddress python-sphinx \
net-snmp perl libcap libelf libunwind net-snmp perl libcap libelf libunwind protobuf-c
.. include:: building-libunwind-note.rst .. include:: building-libunwind-note.rst
.. include:: building-libyang.rst .. include:: building-libyang.rst
Protobuf
^^^^^^^^
.. code-block:: console
sudo pacman -S protobuf-c
ZeroMQ ZeroMQ
^^^^^^ ^^^^^^

View file

@ -14,16 +14,11 @@ Installing Dependencies
git autoconf automake libtool make libreadline-dev texinfo \ git autoconf automake libtool make libreadline-dev texinfo \
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \ pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \
libc-ares-dev python3-dev python3-sphinx install-info build-essential \ libc-ares-dev python3-dev python3-sphinx install-info build-essential \
protobuf-c-compiler libprotobuf-c-dev \
libsnmp-dev perl libcap-dev libelf-dev libsnmp-dev perl libcap-dev libelf-dev
.. include:: building-libyang.rst .. include:: building-libyang.rst
Protobuf
^^^^^^^^
.. code-block:: console
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
Building & Installing FRR Building & Installing FRR
------------------------- -------------------------

View file

@ -19,12 +19,6 @@ Installing Dependencies
.. include:: building-libyang.rst .. include:: building-libyang.rst
Protobuf
^^^^^^^^
.. code-block:: console
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
Building & Installing FRR Building & Installing FRR
------------------------- -------------------------

View file

@ -15,18 +15,13 @@ Installing Dependencies
pkg-config libpam0g-dev libjson-c-dev bison flex \ pkg-config libpam0g-dev libjson-c-dev bison flex \
libc-ares-dev python3-dev python3-sphinx \ libc-ares-dev python3-dev python3-sphinx \
install-info build-essential libsnmp-dev perl libcap-dev \ install-info build-essential libsnmp-dev perl libcap-dev \
protobuf-c-compiler libprotobuf-c-dev \
libelf-dev libunwind-dev libelf-dev libunwind-dev
.. include:: building-libunwind-note.rst .. include:: building-libunwind-note.rst
.. include:: building-libyang.rst .. include:: building-libyang.rst
Protobuf
^^^^^^^^
.. code-block:: console
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
ZeroMQ ZeroMQ
^^^^^^ ^^^^^^

View file

@ -15,22 +15,33 @@ Installing Dependencies
pkg-config libpam0g-dev libjson-c-dev bison flex \ pkg-config libpam0g-dev libjson-c-dev bison flex \
libc-ares-dev python3-dev python3-sphinx \ libc-ares-dev python3-dev python3-sphinx \
install-info build-essential libsnmp-dev perl \ install-info build-essential libsnmp-dev perl \
protobuf-c-compiler libprotobuf-c-dev \
libcap-dev libelf-dev libunwind-dev libcap-dev libelf-dev libunwind-dev
.. include:: building-libunwind-note.rst .. include:: building-libunwind-note.rst
Note that Ubuntu 20 no longer installs python 2.x, so it must be
installed explicitly. Ensure that your system has a symlink named
``/usr/bin/python`` pointing at ``/usr/bin/python3``.
.. include:: building-libyang.rst .. include:: building-libyang.rst
Protobuf GRPC
^^^^^^^^ ^^^^
If GRPC is enabled using ``--enable-grpc`` the following packages should be
installed.
.. code-block:: console .. code-block:: console
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev sudo apt-get install libgrpc++-dev protobuf-compiler-grpc \
Config Rollbacks
^^^^^^^^^^^^^^^^
If config rollbacks are enabled using ``--enable-config-rollbacks``
the sqlite3 developer package also should be installed.
.. code-block:: console
sudo apt install libsqlite3-dev
ZeroMQ ZeroMQ
^^^^^^ ^^^^^^

View file

@ -16,27 +16,19 @@ Installing Dependencies
libc-ares-dev python3-dev python3-sphinx \ libc-ares-dev python3-dev python3-sphinx \
install-info build-essential libsnmp-dev perl \ install-info build-essential libsnmp-dev perl \
libcap-dev libelf-dev libunwind-dev \ libcap-dev libelf-dev libunwind-dev \
protobuf-c-compiler libprotobuf-c-dev \
libyang2 libyang2-dev libyang2 libyang2-dev
.. include:: building-libunwind-note.rst .. include:: building-libunwind-note.rst
Note that Ubuntu >= 20 no longer installs python 2.x, so it must be GRPC
installed explicitly. Ensure that your system has a symlink named ^^^^
``/usr/bin/python`` pointing at ``/usr/bin/python3``. If GRPC is enabled using ``--enable-grpc`` the following packages should be
installed.
.. code-block:: shell
sudo ln -s /usr/bin/python3 /usr/bin/python
python --version
Protobuf
^^^^^^^^
This is optional
.. code-block:: console .. code-block:: console
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev sudo apt-get install libgrpc++-dev protobuf-compiler-grpc \
Config Rollbacks Config Rollbacks

View file

@ -14,7 +14,8 @@ DEB packages are available as CI artifacts `here
.. warning:: .. warning::
``libyang`` version 2.0.0 or newer is required to build FRR. ``libyang`` version 2.0.0 or newer is required to build FRR, version 2.1.128
or newer is recommended.
.. note:: .. note::
@ -39,7 +40,7 @@ DEB packages are available as CI artifacts `here
git clone https://github.com/CESNET/libyang.git git clone https://github.com/CESNET/libyang.git
cd libyang cd libyang
git checkout v2.0.0 git checkout v2.1.128
mkdir build; cd build mkdir build; cd build
cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr \ cmake -D CMAKE_INSTALL_PREFIX:PATH=/usr \
-D CMAKE_BUILD_TYPE:String="Release" .. -D CMAKE_BUILD_TYPE:String="Release" ..

View file

@ -41,6 +41,12 @@ RUN apt update && apt upgrade -y && \
cmake \ cmake \
libpcre2-dev \ libpcre2-dev \
&& \ && \
# GRPC extra build requirements
apt-get install -y \
libgrpc-dev \
libgrpc++-dev \
protobuf-compiler-grpc \
&& \
# Runtime/triage/testing requirements # Runtime/triage/testing requirements
apt-get install -y \ apt-get install -y \
curl \ curl \
@ -91,7 +97,7 @@ USER frr:frr
RUN cd && pwd && ls -al && \ RUN cd && pwd && ls -al && \
git clone https://github.com/CESNET/libyang.git && \ git clone https://github.com/CESNET/libyang.git && \
cd libyang && \ cd libyang && \
git checkout v2.1.80 && \ git checkout v2.1.128 && \
mkdir build; cd build && \ mkdir build; cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:String="Release" .. && \ -DCMAKE_BUILD_TYPE:String="Release" .. && \
@ -112,6 +118,7 @@ RUN cd ~/frr && \
--enable-user=frr \ --enable-user=frr \
--enable-group=frr \ --enable-group=frr \
--enable-config-rollbacks \ --enable-config-rollbacks \
--enable-grpc \
--enable-vty-group=frrvty \ --enable-vty-group=frrvty \
--enable-snmp=agentx \ --enable-snmp=agentx \
--enable-scripting \ --enable-scripting \