osmith has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/docker-playground/+/41198?usp=email )


Change subject: debian-trixie-build: new container
......................................................................

debian-trixie-build: new container

Create a copy of debian-bookworm-build for trixie.

Change-Id: I880b5d9c57642af98c116fcb4137a54c58f5f7b4
---
A debian-trixie-build/Dockerfile
A debian-trixie-build/Makefile
M jenkins-common.sh
3 files changed, 240 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/docker-playground 
refs/changes/98/41198/1

diff --git a/debian-trixie-build/Dockerfile b/debian-trixie-build/Dockerfile
new file mode 100644
index 0000000..7f82fe5
--- /dev/null
+++ b/debian-trixie-build/Dockerfile
@@ -0,0 +1,234 @@
+# Image for building all Osmocom projects in master/gerrit/ttcn3 jenkins jobs
+ARG    REGISTRY=docker.io
+ARG    UPSTREAM_DISTRO=debian:trixie
+FROM   ${REGISTRY}/${UPSTREAM_DISTRO}
+
+# Arguments used after FROM must be specified again
+ARG    OSMOCOM_REPO_MIRROR="https://downloads.osmocom.org";
+ARG    OSMOCOM_REPO_PATH="packages/osmocom:"
+ARG    
OSMOCOM_REPO="$OSMOCOM_REPO_MIRROR/${OSMOCOM_REPO_PATH}/nightly/Debian_13/"
+ARG    UID
+ARG    LLVM_VERSION="14.0.0"
+
+# Copy from common dir
+COPY   .common/respawn.sh /usr/local/bin/respawn.sh
+COPY   .common/Release.key /etc/apt/trusted.gpg.d/obs.osmocom.org.asc
+
+# Configure build user, disable installing man pages
+# * /usr/local: osmo-python-tests's contrib/jenkins.sh writes there
+# * man pages: without them we avoid waiting for "generating manpages"
+RUN    set -x && \
+       useradd --uid=${UID} -d /build -m build && \
+       chown -R build:build /usr/local && \
+       \
+       echo "path-exclude=/usr/share/man/*" \
+               > /etc/dpkg/dpkg.cfg.d/exclude-man-pages && \
+       rm -rf /usr/share/man/
+
+# Install LLVM-embedded-toolchain-for-Arm
+# This binary is built against libtinfo5, which isn't in trixie so use the
+# bookworm version for it.
+RUN    if [ "$(arch)" != "x86_64" ]; then \
+               echo "ERROR: use debian-trixie-build-arm instead"; \
+               exit 1; \
+       fi && \
+       set -x && \
+       apt-get update && \
+       apt-get install -y --no-install-recommends \
+               ca-certificates \
+               wget \
+               && \
+       apt-get clean && \
+       wget -q 
http://ftp.de.debian.org/debian/pool/main/n/ncurses/libtinfo5_6.4-4_amd64.deb 
&& \
+       dpkg -i "libtinfo5_6.4-4_amd64.deb" && \
+       rm "libtinfo5_6.4-4_amd64.deb" && \
+       wget -q 
https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-${LLVM_VERSION}/LLVMEmbeddedToolchainForArm-${LLVM_VERSION}-linux.tar.gz
 && \
+       tar -xf LLVMEmbeddedToolchainForArm-${LLVM_VERSION}-linux.tar.gz && \
+       rm LLVMEmbeddedToolchainForArm-${LLVM_VERSION}-linux.tar.gz && \
+       mv LLVMEmbeddedToolchainForArm-${LLVM_VERSION} /opt/llvm-arm && \
+       /opt/llvm-arm/bin/clang --version && \
+       /opt/llvm-arm/bin/clang --print-targets
+
+# Install packages from Debian repositories (alphabetic order)
+RUN    set -x && \
+       apt-get update && \
+       apt-get install -y --no-install-recommends \
+               asciidoc \
+               asciidoc-dblatex \
+               autoconf \
+               autoconf-archive \
+               autogen \
+               automake \
+               bc \
+               bison \
+               build-essential \
+               bzip2 \
+               ca-certificates \
+               ccache \
+               clang-format \
+               cmake \
+               coccinelle \
+               cppcheck \
+               curl \
+               dahdi-source \
+               dblatex \
+               dbus \
+               debhelper \
+               devscripts \
+               dh-autoreconf \
+               docbook5-xml \
+               doxygen \
+               equivs \
+               flex \
+               g++ \
+               gawk \
+               gcc \
+               gcc-arm-none-eabi \
+               gdb \
+               ghostscript \
+               git \
+               gnupg \
+               graphviz \
+               htop \
+               iproute2 \
+               latexmk \
+               lcov \
+               libaio-dev \
+               libasound2-dev \
+               libbladerf-dev \
+               libboost-all-dev \
+               libc-ares-dev \
+               libcdk5-dev \
+               libcsv-dev \
+               libdbd-sqlite3 \
+               libdbi-dev \
+               libelf-dev \
+               libffi-dev \
+               libfftw3-dev \
+               libgmp-dev \
+               libgnutls28-dev \
+               libgps-dev \
+               libgsm1-dev \
+               libidn-dev \
+               libjansson-dev \
+               liblimesuite-dev \
+               liblua5.3-dev \
+               libmnl-dev \
+               libmongoc-dev \
+               libncurses5-dev \
+               libnewlib-arm-none-eabi \
+               libnftables-dev \
+               libnftnl-dev \
+               libnghttp2-dev \
+               libnl-3-dev \
+               libnl-route-3-dev \
+               liboping-dev \
+               libortp-dev \
+               libpcap-dev \
+               libpcsclite-dev \
+               libreadline-dev \
+               librsvg2-bin \
+               libsctp-dev \
+               libsigsegv-dev \
+               libsnmp-dev \
+               libsofia-sip-ua-glib-dev \
+               libsqlite3-dev \
+               libssl-dev \
+               libtalloc-dev \
+               libtinfo5 \
+               libtool \
+               libuhd-dev \
+               libulfius-dev \
+               liburing-dev \
+               libusb-1.0-0-dev \
+               libusb-dev \
+               libxml2-utils \
+               libyaml-dev \
+               libzmq3-dev \
+               locales \
+               lua-socket \
+               make \
+               meson \
+               mscgen \
+               ofono \
+               openssh-client \
+               patchelf \
+               picolibc-arm-none-eabi \
+               pkg-config \
+               pylint \
+               python3 \
+               python3-gi \
+               python3-mako \
+               python3-nwdiag \
+               python3-pip \
+               python3-pyflakes \
+               python3-pytest \
+               python3-setuptools \
+               python3-usb \
+               python3-yaml \
+               rsync \
+               source-highlight \
+               sqlite3 \
+               stow \
+               sudo \
+               swig \
+               systemd \
+               tcpdump \
+               telnet \
+               tex-gyre \
+               texinfo \
+               unzip \
+               virtualenv \
+               xsltproc \
+               xxd \
+               && \
+       apt-get clean
+
+# Install pip dependencies (alphabetic order)
+# break-system-packages: inside docker it's fine to install pkgs system-wide
+# lcov-to-cobertura-xml: use this commit as the latest version fails:
+#                        
https://github.com/eriwen/lcov-to-cobertura-xml/issues/63
+ADD    
https://gitea.osmocom.org/sim-card/pysim/raw/branch/master/requirements.txt 
/tmp/pysim_requirements.txt
+RUN    set -x && \
+       cat /tmp/pysim_requirements.txt && \
+       pip3 install --break-system-packages \
+               
'git+https://github.com/eriwen/lcov-to-cobertura-xml.git@028da3798355d0260c6c6491b39347d84ca7a02d'
 \
+               
'git+https://github.com/osmocom/sphinx-argparse@inside-classes#egg=sphinx-argparse'
 \
+               'git+https://github.com/podshumok/python-smpplib.git' \
+               'ruff' \
+               'sphinx' \
+               'sphinxcontrib-napoleon' \
+               -r /tmp/pysim_requirements.txt
+
+# Install osmo-python-tests
+ADD    
https://gerrit.osmocom.org/plugins/gitiles/python/osmo-python-tests/+/master?format=TEXT
 /tmp/osmo-python-tests-commit
+RUN    set -x && \
+       git clone --depth=1 https://gerrit.osmocom.org/python/osmo-python-tests 
osmo-python-tests && \
+       cd osmo-python-tests && \
+       python3 setup.py clean build install && \
+       cd .. && \
+       rm -rf osmo-python-tests
+
+# Install osmo-ci.git/scripts to /usr/local/bin
+ADD    https://gerrit.osmocom.org/plugins/gitiles/osmo-ci/+/master?format=TEXT 
/tmp/osmo-ci-commit
+RUN    set -x && \
+       git clone --depth=1 https://gerrit.osmocom.org/osmo-ci osmo-ci && \
+       su build -c "cd osmo-ci/scripts && cp -v *.sh *.py /usr/local/bin" && \
+       rm -rf osmo-ci
+
+# Install osmo-gsm-manuals to /opt/osmo-gsm-manuals
+ADD    
https://gerrit.osmocom.org/plugins/gitiles/osmo-gsm-manuals/+/master?format=TEXT
 /tmp/osmo-gsm-manuals-commit
+RUN    git -C /opt clone --depth=1 https://gerrit.osmocom.org/osmo-gsm-manuals
+
+# Install packages from Osmocom OBS nightly repository
+# * osmo-trx: sdcc (OS#6748)
+ADD    $OSMOCOM_REPO/Release /tmp/Release
+RUN    set -x && \
+       echo "deb [signed-by=/etc/apt/trusted.gpg.d/obs.osmocom.org.asc] 
$OSMOCOM_REPO ./" \
+               > /etc/apt/sources.list.d/osmocom-nightly.list && \
+       apt-get update && \
+       apt-get install -y --no-install-recommends \
+               
-t'o=obs://osmocom/osmocom:nightly/Debian_13,n=Debian_13,l=osmocom:nightly,c=' \
+               sdcc \
+               && \
+       apt-get clean
diff --git a/debian-trixie-build/Makefile b/debian-trixie-build/Makefile
new file mode 100644
index 0000000..bbbc0f3
--- /dev/null
+++ b/debian-trixie-build/Makefile
@@ -0,0 +1,3 @@
+UPSTREAM_DISTRO=debian:trixie
+DISTRO=debian-trixie
+include ../make/Makefile
diff --git a/jenkins-common.sh b/jenkins-common.sh
index 31ad497..57d2190 100644
--- a/jenkins-common.sh
+++ b/jenkins-common.sh
@@ -46,6 +46,7 @@
        debian-buster-*) echo "debian-buster" ;;
        debian-bullseye-*) echo "debian-bullseye" ;;
        debian-bookworm-*) echo "debian-bookworm" ;;
+       debian-trixie-*) echo "debian-trixie" ;;
        *) echo "debian-$DEBIAN_DEFAULT" ;;
        esac
 }
@@ -61,10 +62,12 @@
        debian10-*) echo "debian/eol:buster" ;;
        debian11-*) echo "debian:bullseye" ;;
        debian12-*) echo "debian:bookworm" ;;
+       debian13-*) echo "debian:trixie" ;;
        debian-stretch-*) echo "debian/eol:stretch" ;;
        debian-buster-*) echo "debian/eol:buster" ;;
        debian-bullseye-*) echo "debian:bullseye" ;;
        debian-bookworm-*) echo "debian:bookworm" ;;
+       debian-trixie-*) echo "debian:trixie" ;;
        *) echo "debian:$DEBIAN_DEFAULT" ;;
        esac
 }

--
To view, visit https://gerrit.osmocom.org/c/docker-playground/+/41198?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: docker-playground
Gerrit-Branch: master
Gerrit-Change-Id: I880b5d9c57642af98c116fcb4137a54c58f5f7b4
Gerrit-Change-Number: 41198
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <[email protected]>

Reply via email to