This is an automated email from the ASF dual-hosted git repository.
vatamane pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-ci.git
The following commit(s) were added to refs/heads/main by this push:
new 1d05861 Add Debian Trixie
1d05861 is described below
commit 1d058619b8687585e8f15649a45a63848a229c9a
Author: Ronny Berndt <[email protected]>
AuthorDate: Tue Sep 2 11:10:47 2025 +0200
Add Debian Trixie
---
bin/apt-dependencies.sh | 16 +++++++----
build.sh | 2 +-
dockerfiles/debian-trixie | 68 ++++++++++++++++++++++++++++++++++++++++++++++
pull-all-couchdbdev-docker | 17 ++++++------
4 files changed, 89 insertions(+), 14 deletions(-)
diff --git a/bin/apt-dependencies.sh b/bin/apt-dependencies.sh
index d08538a..40dfc6e 100755
--- a/bin/apt-dependencies.sh
+++ b/bin/apt-dependencies.sh
@@ -42,7 +42,7 @@ apt-get update && apt-get install -y lsb-release
SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. ${SCRIPTPATH}/detect-arch.sh >/dev/null
. ${SCRIPTPATH}/detect-os.sh >/dev/null
-debians='(bullseye|bookworm)'
+debians='(bullseye|bookworm|trixie)'
ubuntus='(jammy|noble)'
echo "Detected Ubuntu/Debian version: ${VERSION_CODENAME} arch: ${ARCH}"
@@ -114,11 +114,13 @@ EOF
fi
# rest of python dependencies
-if [ "${VERSION_CODENAME}" == "bookworm" -o "${VERSION_CODENAME}" == "noble"
]; then
- # On Debian bookworm and Ubuntu noble, need the --break-system-package to
into to default system location
- apt-get -y --no-install-recommends install sphinx-rtd-theme-common
python3-nose python3-requests python3-hypothesis
+# Since Debian bookworm and Ubuntu noble, to install python packages as system
packages, add the "python3-"prefix
+if [ "${VERSION_CODENAME}" == "bookworm" ] || [ "${VERSION_CODENAME}" ==
"noble" ]; then
+ apt-get -y --no-install-recommends install python3-nose python3-requests
python3-hypothesis
+elif [ "${VERSION_CODENAME}" == "trixie" ]; then
+ apt-get -y --no-install-recommends install python3-nose2 python3-requests
python3-hypothesis
else
- pip3 --default-timeout=10000 install --upgrade sphinx_rtd_theme nose
requests hypothesis==3.79.0
+ pip3 --default-timeout=10000 install --upgrade nose requests
hypothesis==3.79.0
fi
# relaxed lintian rules for CouchDB
@@ -144,6 +146,7 @@ if [ "$1" != "nojs" ]; then
[ "${VERSION_CODENAME}" != "jammy" ] && \
[ "${VERSION_CODENAME}" != "bullseye" ] && \
[ "${VERSION_CODENAME}" != "bookworm" ] && \
+ [ "${VERSION_CODENAME}" != "trixie" ] && \
[ "${ARCH}" != "s390x" ]; then
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | tee
/usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
source /etc/os-release
@@ -165,6 +168,9 @@ if [ "$1" != "nojs" ]; then
if [ "${VERSION_CODENAME}" == "bookworm" ]; then
apt-get install --no-install-recommends -y libmozjs-78-dev
fi
+ if [ "${VERSION_CODENAME}" == "trixie" ]; then
+ apt-get install --no-install-recommends -y libmozjs-128-dev
+ fi
else
# install js build-time dependencies only
# we can't add the CouchDB repo here because the plat may not exist yet
diff --git a/build.sh b/build.sh
index 8ceb729..1ee74f8 100755
--- a/build.sh
+++ b/build.sh
@@ -46,7 +46,7 @@ SCRIPTPATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
# When updating the images, consider updating pull-all-couchdbdev-docker
# script as well
#
-DEBIANS="debian-bullseye debian-bookworm"
+DEBIANS="debian-bullseye debian-bookworm debian-trixie"
UBUNTUS="ubuntu-jammy ubuntu-noble"
CENTOSES="almalinux-8 almalinux-9"
diff --git a/dockerfiles/debian-trixie b/dockerfiles/debian-trixie
new file mode 100644
index 0000000..a8288e8
--- /dev/null
+++ b/dockerfiles/debian-trixie
@@ -0,0 +1,68 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+
+# NOTE: These are intended to be built using the arguments as
+# described in ../build.sh. See that script for more details.
+
+ARG repository=debian
+
+FROM $repository:trixie
+
+# Install Java
+ENV JAVA_HOME=/opt/java/openjdk
+COPY --from=eclipse-temurin:21 $JAVA_HOME $JAVA_HOME
+ENV PATH="${JAVA_HOME}/bin:${PATH}"
+
+# These are needed for the Clouseau integration
+ENV CLOUSEAU_JAVA_HOME=/opt/java/openjdk8
+COPY --from=ibm-semeru-runtimes:open-8-jre /opt/java/openjdk
$CLOUSEAU_JAVA_HOME
+ENV PATH=/usr/local/lib/erlang/bin:"${PATH}"
+
+# Choose whether to install SpiderMonkey 1.8.5, default yes
+ARG js=js
+# Choose whether to install Erlang, default yes
+ARG erlang=erlang
+# Select version of Node, Erlang and Elixir
+ARG erlangversion=26.2.5.11
+ARG elixirversion=v1.18.4
+ARG nodeversion=20
+
+# Create Jenkins user and group
+RUN groupadd --gid 910 jenkins; \
+ useradd --uid 910 --gid jenkins --create-home jenkins
+
+# Copy couchdb-ci repo into root's home directory
+ADD --chown=root:root bin /root/couchdb-ci/bin/
+ADD --chown=root:root files /root/couchdb-ci/files/
+
+# Jenkins builds in /usr/src/couchdb.
+RUN mkdir -p /usr/src/couchdb; \
+ chown -R jenkins:jenkins /usr/src/couchdb
+
+# Install all dependencies, and optionally SM 1.8.5
+# This allows us to use the same Dockerfile for building SM
+RUN ERLANGVERSION=$erlangversion \
+ ELIXIRVERSION=$elixirversion \
+ NODEVERSION=$nodeversion \
+ /root/couchdb-ci/bin/install-dependencies.sh $js $erlang
+
+# Allow Jenkins to sudo
+RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/jenkins
+
+USER jenkins
+
+# overwrite this with 'CMD []' in a dependent Dockerfile
+CMD ["/bin/bash"]
diff --git a/pull-all-couchdbdev-docker b/pull-all-couchdbdev-docker
index e9b05d0..b61d15e 100644
--- a/pull-all-couchdbdev-docker
+++ b/pull-all-couchdbdev-docker
@@ -4,14 +4,15 @@ DOCKER_ORG="apache"
# These are the images that are currently being used, so don't `docker rmi`
them on cleanup.
KEEP_IMAGES=(
-couchdbci-debian:bookworm-erlang:27.3.4.1
-couchdbci-debian:bookworm-erlang:28.0.1
-couchdbci-debian:bookworm-erlang-26.2.5.13
-couchdbci-debian:bullseye-erlang:26.2.5.13
-couchdbci-ubuntu:noble-erlang-26.2.5.13
-couchdbci-ubuntu:jammy-erlang-26.2.5.13
-couchdbci-centos:9-erlang-26.2.5.13
-couchdbci-centos:8-erlang-26.2.5.13
+couchdbci-debian:trixie-erlang:28.0.2
+couchdbci-debian:trixie-erlang:27.3.4.2
+couchdbci-debian:trixie-erlang-26.2.5.14
+couchdbci-debian:bookworm-erlang-26.2.5.14
+couchdbci-debian:bullseye-erlang:26.2.5.14
+couchdbci-ubuntu:noble-erlang-26.2.5.14
+couchdbci-ubuntu:jammy-erlang-26.2.5.14
+couchdbci-centos:9-erlang-26.2.5.14
+couchdbci-centos:8-erlang-26.2.5.14
)
for image in ${KEEP_IMAGES[*]}