Files
Thomas Roussarie 59b8d7669b docker: build: Upgrade Ambiorix to version 7.1.0
Prepare for "nbapi: ambiorix: connect to all the bus".

The purpose of this upgrade is to incorporate the necessary
functionality provided by libamxrt, permitting the auto
connect to all bus.

Introduce problem of dependencies, so add and reorganize
install command.

libamxrt
| libamxo-->libamxs-->libamxb-->libamxd-->libamxp-->libamxc
| libamxj-->libamxc

Changes:
- Change order of installation, to match dependencies

PPW-449

Signed-off-by: Thomas Roussarie <thomas.roussarie@softathome.com>
2025-04-18 12:28:05 +02:00

135 lines
4.2 KiB
Docker

###############################################################
# SPDX-License-Identifier: BSD-2-Clause-Patent
# SPDX-FileCopyrightText: 2019-2020 the prplMesh contributors (see AUTHORS.md)
# This code is subject to the terms of the BSD+Patent license.
# See LICENSE file for more details.
###############################################################
FROM ubuntu:bionic-20210930
ARG PACKAGES_FOR_BUILD="\
binutils \
cmake \
gcc \
git \
gpg \
libjson-c-dev \
libncurses-dev \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
libssl-dev \
ninja-build \
pkg-config \
python3.7 \
python3-yaml \
wget \
"
ARG PACKAGES_FOR_AMBIORIX="\
bison \
curl \
flex \
libevent-dev \
libyajl-dev \
libxslt1-dev \
lua5.1 \
liblua5.1-0-dev \
build-essential \
libxml2-dev \
libcap-ng-dev \
"
ARG PACKAGES_FOR_TEST="\
clang-format \
iperf3 \
gcovr \
python3-pytest \
"
ARG PACKAGES_FOR_RUN="\
bridge-utils \
ebtables \
iproute2 \
net-tools \
psmisc \
uuid-runtime \
"
ARG PACKAGES_FOR_DEBUG="\
gdb \
iputils-ping \
netcat \
valgrind \
vim \
"
ARG PACKAGES="\
$PACKAGES_FOR_BUILD \
$PACKAGES_FOR_AMBIORIX \
$PACKAGES_FOR_TEST \
$PACKAGES_FOR_RUN \
$PACKAGES_FOR_DEBUG\
"
RUN apt-get update && apt-get install -y $PACKAGES && \
# We need liburiparser-dev > v. 9.0 which isn't avalaible in default
# 18.04 Ubuntu repos. So add Ubuntu 19.10 repo which has v. 0.9.3-2
echo "deb http://old-releases.ubuntu.com/ubuntu eoan main universe" | tee -a /etc/apt/sources.list && \
# We need a new version of cmake, that can be found in the kitware PPA
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - > /usr/share/keyrings/kitware-archive-keyring.gpg && \
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' >> /etc/apt/sources.list.d/kitware.list && \
apt-get update && \
apt-get install -y \
liburiparser-dev cmake=3.25.2-0kitware1ubuntu18.04.1 && \
rm -rf /var/lib/apt/lists/* && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
RUN curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo && \
chmod +x /usr/bin/repo
WORKDIR ambiorix
# Fetch, checkout on fixed commit which works and install libubox
RUN \
git clone git://git.openwrt.org/project/libubox.git && \
cd libubox && git checkout 9e52171d70def760a6949676800d0b73f85ee22d && \
cmake -H"$(pwd)"/. -B"$(pwd)"/build/. -DCMAKE_INSTALL_PREFIX=/usr && \
make install -C build
# Fetch, checkout on fixed commit which works, patch and install Ubus daemon
ADD ubus/0001-ubusd-convert-tx_queue-to-linked-list.patch .
RUN \
git clone git://git.openwrt.org/project/ubus.git && \
cd ubus && git checkout 13a4438b4ebdf85d301999e0a615640ac4c9b0a8 && \
patch -p1 -i ../0001-ubusd-convert-tx_queue-to-linked-list.patch && \
cmake -H"$(pwd)"/. -B"$(pwd)"/build/. -DCMAKE_INSTALL_PREFIX=/usr && \
make install -C build
# Fetch and intall Bus Agnostic API libs, applications.
# As they have some internal dependencies - we should build & install
# them in specific order.
RUN \
repo init -u https://gitlab.com/prpl-foundation/components/ambiorix/ambiorix.git \
-b refs/tags/v7.1.0 < /dev/null && \
repo sync && \
make install -C libraries/libamxc && \
make install -C libraries/libamxp && \
make install -C libraries/libamxd && \
make install -C libraries/libamxb && \
make install -C libraries/libamxs && \
make install -C libraries/libamxo && \
make install -C libraries/libamxj && \
make install -C libraries/libamxrt && \
make install -C applications/amxb-inspect && \
make install -C applications/amxo-cg && \
make install -C applications/amxo-xml-to && \
make -C bus_adaptors/amxb_ubus && \
make install -C bus_adaptors/amxb_ubus
RUN \
git clone --branch v0.11.12 https://gitlab.com/prpl-foundation/components/core/modules/mod-dmext.git && \
cd mod-dmext && make && make install
ADD start-prplmesh.sh /root/