Project

General

Profile

Actions

Feature #5323

open

Add docker image containing core.titan master

Added by pespin 11 days ago. Updated 11 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
11/22/2021
Due date:
% Done:

0%

Spec Reference:

Description

Right now, we have "debian-stretch-titan/Dockerfile" in docker-playground.git, which installs the eclipse-titan from "latest" OBS repositories (currently 8.0.0 despite 8.1.0 is already available):
https://build.opensuse.org/package/show/network:osmocom:latest/eclipse-titan

However, it is sometimes useful to be able to build titan.core from source (be it master or any other branch). This can be used for different reasons:
  • Checking if a certain bug is present/fixed in a newer version, useful to report bugs upstream.
  • Check if newer versions than the one we currently have in OBS run fine against our test suites before upgrading it.
  • Build a random branch to develop/fix certain titan.core features.

I already tried for a while but I wasn't able to get it to work since my debian packaging abilitites are not really good.
I share here what I have WIP for someone else to pick up the work.

diff --git a/debian-stretch-titan/Dockerfile b/debian-stretch-titan/Dockerfile
index 5b6b134..5e544cb 100644
--- a/debian-stretch-titan/Dockerfile
+++ b/debian-stretch-titan/Dockerfile
@@ -52,6 +52,34 @@ RUN  DPKG_ARCH="$(dpkg --print-architecture)" && export $DPKG_ARCH && \
 RUN    git config --global user.email docker@dock.er && \
        git config --global user.name "Dock Er" 

+
+# clone titan.core
+RUN apt-get update && \
+    apt-get upgrade -y && \
+    DEBIAN_FRONTEND=noninteractive \
+    apt-get install -y --no-install-recommends \
+        git-buildpackage \
+        debhelper \
+        devscripts \
+        vim \
+        sudo \
+        iputils-ping \
+       less \
+       bison default-jdk flex fakeroot \
+        net-tools && \
+    apt-get clean
+ADD    debian /debian
+RUN    git clone https://gitlab.eclipse.org/eclipse/titan/titan.core.git && \
+               cp -r /debian /titan.core/ && \
+               cd /titan.core && \
+               echo "PESPIN1" && \
+               git add --all && \
+               git commit -m "TMP" && \
+               mkdir -p /foobar && \
+               gbp buildpackage -tc -uc -us --git-debian-branch=master --git-upstream-tree=master --git-ignore-new --git-export=master "--git-export-dir=/foobar"; \
+               cat /tmp/eclipse-titan*
+ADD    https://gitlab.eclipse.org/api/v4/projects/176/repository/branches/master /tmp/deps-titancore
+
 # clone osmo-ttcn3-hacks and deps, invalidate cache if deps change (OS#5017)
 RUN    git clone git://git.osmocom.org/osmo-ttcn3-hacks.git && \
        make -C /osmo-ttcn3-hacks deps
Actions #1

Updated by fixeria 11 days ago

Hey Pau,

none of our test suites or dependencies requires Java, so I suggest to build TITAN without it. This way we avoid installing lots of useless packages like Xorg:

root@15c73b214bf8:/# apt install --no-install-suggests --no-install-recommends default-jre
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ca-certificates ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3
  libavahi-common-data libavahi-common3 libbrotli1 libbsd0 libcups2 libdbus-1-3 libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2
  libedit2 libelf1 libexpat1 libfontconfig1 libfreetype6 libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglib2.0-0 libglvnd0 libglx-mesa0 libglx0 libgraphite2-3
  libharfbuzz0b libjpeg62-turbo liblcms2-2 libllvm11 libmd0 libnspr4 libnss3 libpciaccess0 libpcsclite1 libpng16-16 libsensors-config libsensors5 libsqlite3-0
  libvulkan1 libx11-6 libx11-data libx11-xcb1 libxau6 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb1
  libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxrender1 libxshmfence1 libxtst6 libxxf86vm1 libz3-4 openjdk-11-jre openjdk-11-jre-headless openssl sensible-utils
  ucf x11-common
Suggested packages:
  libasound2-plugins alsa-utils cups-common liblcms2-utils pciutils pcscd lm-sensors libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
  fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
Recommended packages:
  alsa-ucm-conf alsa-topology-conf dbus libglib2.0-data shared-mime-info xdg-user-dirs mesa-vulkan-drivers | vulkan-icd libatk-wrapper-java-jni fonts-dejavu-extra
The following NEW packages will be installed:
  ca-certificates ca-certificates-java default-jre default-jre-headless fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3
  libavahi-common-data libavahi-common3 libbrotli1 libbsd0 libcups2 libdbus-1-3 libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2
  libedit2 libelf1 libexpat1 libfontconfig1 libfreetype6 libgif7 libgl1 libgl1-mesa-dri libglapi-mesa libglib2.0-0 libglvnd0 libglx-mesa0 libglx0 libgraphite2-3
  libharfbuzz0b libjpeg62-turbo liblcms2-2 libllvm11 libmd0 libnspr4 libnss3 libpciaccess0 libpcsclite1 libpng16-16 libsensors-config libsensors5 libsqlite3-0
  libvulkan1 libx11-6 libx11-data libx11-xcb1 libxau6 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shm0 libxcb-sync1 libxcb-xfixes0 libxcb1
  libxdamage1 libxdmcp6 libxext6 libxfixes3 libxi6 libxrender1 libxshmfence1 libxtst6 libxxf86vm1 libz3-4 openjdk-11-jre openjdk-11-jre-headless openssl sensible-utils
  ucf x11-common
0 upgraded, 78 newly installed, 0 to remove and 0 not upgraded.
Need to get 86.6 MB of archives.
After this operation, 351 MB of additional disk space will be used.
Do you want to continue? [Y/n]

This can be done by 's/JNI := yes/JNI := no/' in 'Makefile.cfg'. Alternatively, we can install default-jre-headless, but I haven't tested this.

root@15c73b214bf8:/# apt install --no-install-suggests --no-install-recommends default-jre-headless
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ca-certificates ca-certificates-java fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3 libavahi-common-data
  libavahi-common3 libbrotli1 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 libglib2.0-0 libgraphite2-3 libharfbuzz0b libjpeg62-turbo liblcms2-2 libnspr4
  libnss3 libpcsclite1 libpng16-16 libsqlite3-0 openjdk-11-jre-headless openssl sensible-utils ucf
Suggested packages:
  default-jre libasound2-plugins alsa-utils cups-common liblcms2-utils pcscd libnss-mdns fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho
  fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic
Recommended packages:
  alsa-ucm-conf alsa-topology-conf dbus libglib2.0-data shared-mime-info xdg-user-dirs
The following NEW packages will be installed:
  ca-certificates ca-certificates-java default-jre-headless fontconfig-config fonts-dejavu-core java-common libasound2 libasound2-data libavahi-client3
  libavahi-common-data libavahi-common3 libbrotli1 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libfreetype6 libglib2.0-0 libgraphite2-3 libharfbuzz0b libjpeg62-turbo
  liblcms2-2 libnspr4 libnss3 libpcsclite1 libpng16-16 libsqlite3-0 openjdk-11-jre-headless openssl sensible-utils ucf
0 upgraded, 31 newly installed, 0 to remove and 0 not upgraded.
Need to get 47.9 MB of archives.
After this operation, 197 MB of additional disk space will be used.
Do you want to continue? [Y/n]
Actions

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)