Feature #5323
open
Add docker image containing titan.core master
Added by pespin over 2 years ago.
Updated over 2 years ago.
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
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]
- Subject changed from Add docker image containing core.titan master to Add docker image containing titan.core master
- Related to Feature #6187: Update titan.core to 9.0.0 in osmocom repositories added
Also available in: Atom
PDF