osmith submitted this change.
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(-)
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 change 41198. To unsubscribe, or for help writing mail filters, visit settings.