From c163d5d854d9e7e555209db4b3b0661195e4a482 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Wed, 1 Mar 2023 18:53:36 +0100 Subject: [PATCH] Introduce debian-bullseye-titan-master This Dockerfile allows building a given repo and branch of titan.core.git which can then be used by any ttcn-*-test/ environment by simply changing its Dockerfile "FROM" line from $REGISTRY/$USER/debian-bullseye-titan to $REGISTRY/$USER/debian-bullseye-titan-mater. This is useful to debug or develop titan.core or test whether a given testsuite works fine with a newer version of titan.core. Change-Id: I19ee98a319ccad167d06c4f183fe80ecac909483 --- .../ttcn3-docker-prepare.sh | 0 .../ttcn3-docker-run.sh | 0 debian-bullseye-titan-master/Dockerfile | 112 ++++++++++++++++++ debian-bullseye-titan-master/Makefile | 1 + debian-bullseye-titan/Dockerfile | 4 +- 5 files changed, 115 insertions(+), 2 deletions(-) rename {debian-bullseye-titan => common}/ttcn3-docker-prepare.sh (100%) rename {debian-bullseye-titan => common}/ttcn3-docker-run.sh (100%) create mode 100644 debian-bullseye-titan-master/Dockerfile create mode 120000 debian-bullseye-titan-master/Makefile diff --git a/debian-bullseye-titan/ttcn3-docker-prepare.sh b/common/ttcn3-docker-prepare.sh similarity index 100% rename from debian-bullseye-titan/ttcn3-docker-prepare.sh rename to common/ttcn3-docker-prepare.sh diff --git a/debian-bullseye-titan/ttcn3-docker-run.sh b/common/ttcn3-docker-run.sh similarity index 100% rename from debian-bullseye-titan/ttcn3-docker-run.sh rename to common/ttcn3-docker-run.sh diff --git a/debian-bullseye-titan-master/Dockerfile b/debian-bullseye-titan-master/Dockerfile new file mode 100644 index 00000000..1acfb73c --- /dev/null +++ b/debian-bullseye-titan-master/Dockerfile @@ -0,0 +1,112 @@ +ARG REGISTRY=docker.io +ARG UPSTREAM_DISTRO=debian:bullseye +FROM ${REGISTRY}/${UPSTREAM_DISTRO} +# Arguments used after FROM must be specified again +ARG OSMOCOM_REPO_TESTSUITE_MIRROR="https://downloads.osmocom.org" +ARG OSMOCOM_REPO="$OSMOCOM_REPO_TESTSUITE_MIRROR/packages/osmocom:/latest/Debian_11/" + +RUN apt-get update && apt-get install -y \ + ca-certificates \ + gnupg + +COPY .common/Release.key /usr/share/keyrings/osmocom-latest.asc +RUN echo "deb [signed-by=/usr/share/keyrings/osmocom-latest.asc] $OSMOCOM_REPO ./" \ + > /etc/apt/sources.list.d/osmocom-latest.list + +RUN apt-get update && \ + apt-get upgrade -y && \ + DEBIAN_FRONTEND='noninteractive' apt-get install -y --no-install-recommends --no-install-suggests \ + build-essential \ + git \ + inetutils-ping \ + netcat-openbsd \ + procps \ + python3-pip \ + python3-setuptools \ + tcpdump \ + vim \ + wireshark-common \ + && \ + apt-get clean + +#Install titan.core dependencies listed in debian/control: +RUN apt-get update && \ + apt-get upgrade -y && \ + DEBIAN_FRONTEND='noninteractive' apt-get install -y --no-install-recommends --no-install-suggests \ + bison \ + debhelper \ + default-jdk \ + expect \ + flex \ + libedit-dev \ + libncurses5-dev \ + libssl-dev \ + libxml2-dev \ + expect \ + libedit-dev \ + libpcap-dev \ + libpcre3-dev \ + libsctp-dev \ + libssl-dev \ + libxml2-dev \ + make \ + perl \ + python3 \ + gcc \ + && \ + apt-get clean + +# Remember to adapt the URL fetching /root/titan.core-ver.json if TITAN_REPO_URL is changed! +ARG TITAN_REPO_URL=https://gitlab.eclipse.org/eclipse/titan/titan.core.git +ARG TITAN_BRANCH=master +ARG TITAN_REPO_DIR=titan.core +# clone titan.core.git +RUN git clone $TITAN_REPO_URL + +ADD https://gitlab.eclipse.org/api/v4/projects/eclipse%2Ftitan%2Ftitan.core/repository/commits/$TITAN_BRANCH /root/titan.core-ver.json + +# update the source code (if needed) +RUN cd $TITAN_REPO_DIR && \ + git fetch && git checkout -f -B $TITAN_BRANCH origin/$TITAN_BRANCH + +# build + install titan.core onto /titan.core/Install +RUN cd $TITAN_REPO_DIR && \ + make -j$(nproc) prefix=/usr install + +# Install files in proper places: +RUN cd /$TITAN_REPO_DIR/Install && \ + cp -r bin/* /usr/bin/ && \ + mkdir -p /usr/share/titan/etc/ && cp -r etc/* /usr/share/titan/etc/ && \ + mkdir -p /usr/share/titan/help/ && cp -r help/* /usr/share/titan/help/ && \ + mkdir -p /usr/include/titan/ && cp -r include/* /usr/include/titan/ && \ + mkdir -p /usr/lib/titan/ && cp -r lib/* /usr/lib/titan/ + +# This is required for obtaining talloc reports from the SUT +RUN pip3 install git+https://gitea.osmocom.org/cellular-infrastructure/osmo-python-tests + +# binary-only transcoding library for RANAP/RUA/HNBAP to work around TITAN only implementing BER +RUN apt-get update && \ + apt-get -y install wget +RUN DPKG_ARCH="$(dpkg --print-architecture)" && export $DPKG_ARCH && \ + wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode0_0.5_${DPKG_ARCH}.deb && \ + wget https://ftp.osmocom.org/binaries/libfftranscode/libfftranscode-dev_0.5_${DPKG_ARCH}.deb && \ + dpkg -i ./libfftranscode0_0.5_${DPKG_ARCH}.deb ./libfftranscode-dev_0.5_${DPKG_ARCH}.deb && \ + apt install --fix-broken && \ + rm libfftranscode*.deb + +RUN git config --global user.email docker@dock.er && \ + git config --global user.name "Dock Er" + +# clone osmo-ttcn3-hacks and deps, invalidate cache if deps change (OS#5017) +RUN git clone https://gerrit.osmocom.org/osmo-ttcn3-hacks && \ + make -j$(nproc) -C /osmo-ttcn3-hacks deps +ADD https://gerrit.osmocom.org/plugins/gitiles/osmo-ttcn3-hacks/+/refs/heads/master/deps/Makefile?format=TEXT /tmp/deps-Makefile +RUN if ! diff -q /tmp/deps-Makefile /osmo-ttcn3-hacks/deps/Makefile; then \ + cd /osmo-ttcn3-hacks && \ + git pull && \ + make -j$(nproc) deps; \ + fi + +ADD .common/ttcn3-docker-prepare.sh /usr/local/bin/ttcn3-docker-prepare +ADD .common/ttcn3-docker-run.sh /usr/local/bin/ttcn3-docker-run +ADD .common/pipework /usr/local/bin/pipework diff --git a/debian-bullseye-titan-master/Makefile b/debian-bullseye-titan-master/Makefile new file mode 120000 index 00000000..ddd2d16c --- /dev/null +++ b/debian-bullseye-titan-master/Makefile @@ -0,0 +1 @@ +../debian-bullseye-titan/Makefile \ No newline at end of file diff --git a/debian-bullseye-titan/Dockerfile b/debian-bullseye-titan/Dockerfile index c9f53926..7bf180fc 100644 --- a/debian-bullseye-titan/Dockerfile +++ b/debian-bullseye-titan/Dockerfile @@ -64,6 +64,6 @@ RUN if ! diff -q /tmp/deps-Makefile /osmo-ttcn3-hacks/deps/Makefile; then \ make -j8 deps; \ fi -ADD ttcn3-docker-prepare.sh /usr/local/bin/ttcn3-docker-prepare -ADD ttcn3-docker-run.sh /usr/local/bin/ttcn3-docker-run +ADD .common/ttcn3-docker-prepare.sh /usr/local/bin/ttcn3-docker-prepare +ADD .common/ttcn3-docker-run.sh /usr/local/bin/ttcn3-docker-run ADD .common/pipework /usr/local/bin/pipework