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
commit aa92ab6e2b828bf2c776187f74e11a19ff2b1bb5 Author: Nick Vatamaniuc <[email protected]> AuthorDate: Wed Nov 26 00:34:19 2025 -0500 Bump all erlang patch versions Also clean up dependencies. We don't need to installib libcurl devel and help2man any longer. This change will need a corresponding change in couchdb-pkg repo. --- README.md | 4 +-- bin/apt-dependencies.sh | 81 ++++++++++++++++----------------------------- bin/install-dependencies.sh | 2 +- bin/pkg-dependencies.sh | 2 +- dockerfiles/almalinux-10 | 10 +++--- dockerfiles/almalinux-8 | 4 +-- dockerfiles/almalinux-9 | 4 +-- dockerfiles/debian-bookworm | 4 +-- dockerfiles/debian-bullseye | 4 +-- dockerfiles/debian-trixie | 4 +-- dockerfiles/ubuntu-jammy | 4 +-- dockerfiles/ubuntu-noble | 4 +-- freebsd-jenkins-setup.md | 2 +- pull-all-couchdbdev-docker | 21 ++++++------ 14 files changed, 63 insertions(+), 87 deletions(-) diff --git a/README.md b/README.md index e3a5d37..c2faba0 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ On the other hand, some OSes won't run older Erlangs because of library changes, Just specify on the command line any of the `ERLANGVERSION`, `NODEVERSION`, or `ELIXIRVERSION` environment variables: ``` -NODEVERSION=20 ELIXIRVERSION=v1.18.4 ERLANGVERSION=26.2.5.13 ./build.sh platform debian-bookworm +NODEVERSION=20 ELIXIRVERSION=v1.18.4 ERLANGVERSION=26.2.5.17 ./build.sh platform debian-bookworm ``` ## Building images for other architectures @@ -186,7 +186,7 @@ After building the image as above: docker run -it couchdbdev/<tag> ``` -where `<tag>` is of the format `<distro>-<version>-<type>`, such as `debian-bookworm-erlang-26.2.5.11`. +where `<tag>` is of the format `<distro>-<version>-<type>`, such as `debian-bookworm-erlang-26.2.5.17`. ## Running the CouchDB build in a published container diff --git a/bin/apt-dependencies.sh b/bin/apt-dependencies.sh index 40dfc6e..a44b9c8 100755 --- a/bin/apt-dependencies.sh +++ b/bin/apt-dependencies.sh @@ -65,40 +65,34 @@ apt-get --no-install-recommends -y dist-upgrade apt-get install --no-install-recommends -y apt-transport-https curl git pkg-config \ python3 libpython3-dev python3-setuptools python3-pip python3-venv \ sudo wget zip unzip \ - build-essential ca-certificates libcurl4-openssl-dev \ - libicu-dev libnspr4-dev \ - help2man curl debhelper devscripts dh-exec dh-python equivs \ - dialog equivs lintian libwww-perl quilt \ + build-essential ca-certificates \ + libicu-dev \ + debhelper devscripts dh-exec dh-python equivs \ + dialog lintian libwww-perl quilt \ reprepro fakeroot rsync \ vim-tiny screen procps dirmngr ssh-client createrepo-c time -# Node.js (ubuntu noble has version 18, otherwise build a package) - -if [ "${VERSION_CODENAME}" == "noble" ] && [ "${NODEVERSION}" == "18" ]; then - echo "--- Ubuntu Noble (24.04) has NodeJS 18 so we just install it from there" - apt-get install --no-install-recommends -y nodejs npm -else - wget https://deb.nodesource.com/setup_${NODEVERSION}.x - if /bin/bash setup_${NODEVERSION}.x; then - apt-get install --no-install-recommends -y nodejs - fi - rm setup_${NODEVERSION}.x - - # maybe install node from scratch if pkg install failed... - if [ -z "$(which node)" ]; then - apt-get purge -y nodejs || true - # extracting the right version to dl is a pain :( - if [ "${ARCH}" == "x86_64" ]; then - NODEARCH=x64 - else - NODEARCH=${ARCH} - fi - node_filename="$(curl -s https://nodejs.org/dist/latest-v${NODEVERSION}.x/SHASUMS256.txt | grep linux-${NODEARCH}.tar.gz | cut -d ' ' -f 3)" - wget https://nodejs.org/dist/latest-v${NODEVERSION}.x/${node_filename} - tar --directory=/usr --strip-components=1 -xzf ${node_filename} - rm ${node_filename} - # fake a package install - cat << EOF > nodejs-control +wget https://deb.nodesource.com/setup_${NODEVERSION}.x +if /bin/bash setup_${NODEVERSION}.x; then + apt-get install --no-install-recommends -y nodejs +fi +rm setup_${NODEVERSION}.x + +# maybe install node from scratch if pkg install failed... +if [ -z "$(which node)" ]; then + apt-get purge -y nodejs || true + # extracting the right version to dl is a pain :( + if [ "${ARCH}" == "x86_64" ]; then + NODEARCH=x64 + else + NODEARCH=${ARCH} + fi + node_filename="$(curl -s https://nodejs.org/dist/latest-v${NODEVERSION}.x/SHASUMS256.txt | grep linux-${NODEARCH}.tar.gz | cut -d ' ' -f 3)" + wget https://nodejs.org/dist/latest-v${NODEVERSION}.x/${node_filename} + tar --directory=/usr --strip-components=1 -xzf ${node_filename} + rm ${node_filename} + # fake a package install + cat << EOF > nodejs-control Section: misc Priority: optional Standards-Version: 3.9.2 @@ -107,10 +101,9 @@ Provides: nodejs Version: ${NODEVERSION}.99.99 Description: Fake nodejs package to appease package builder EOF - equivs-build nodejs-control - apt-get install --no-install-recommends -y ./nodejs*.deb - rm nodejs-control nodejs*deb - fi + equivs-build nodejs-control + apt-get install --no-install-recommends -y ./nodejs*.deb + rm nodejs-control nodejs*deb fi # rest of python dependencies @@ -141,20 +134,6 @@ fi # js packages, as long as we're not told to skip them if [ "$1" != "nojs" ]; then - # older releases don't have libmozjs60+, and we provide 1.8.5 - if [ "${VERSION_CODENAME}" != "noble" ] && \ - [ "${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 - echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" \ - | tee /etc/apt/sources.list.d/couchdb.list >/dev/null - apt-get update - apt-get install --no-install-recommends -y couch-libmozjs185-dev - fi # newer releases have newer libmozjs if [ "${VERSION_CODENAME}" == "noble" ]; then apt-get install --no-install-recommends -y libmozjs-102-dev libmozjs-115-dev @@ -171,10 +150,6 @@ if [ "$1" != "nojs" ]; then 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 - apt-get install --no-install-recommends -y libffi-dev pkg-kde-tools autotools-dev fi # Erlang is installed by apt-erlang.sh diff --git a/bin/install-dependencies.sh b/bin/install-dependencies.sh index 25a6d87..569a7f0 100755 --- a/bin/install-dependencies.sh +++ b/bin/install-dependencies.sh @@ -30,7 +30,7 @@ set -e # Defaults updated 2023-03-20 NODEVERSION=${NODEVERSION:-20} -ERLANGVERSION=${ERLANGVERSION:-26.2.5.16} +ERLANGVERSION=${ERLANGVERSION:-26.2.5.17} ELIXIRVERSION=${ELIXIRVERSION:-v1.18.4} diff --git a/bin/pkg-dependencies.sh b/bin/pkg-dependencies.sh index 8878a96..b9dffff 100755 --- a/bin/pkg-dependencies.sh +++ b/bin/pkg-dependencies.sh @@ -33,7 +33,7 @@ fi # Upgrade all packages pkg upgrade -y -pkg install -y gmake help2man openssl icu curl git bash unzip \ +pkg install -y gmake openssl icu curl git bash unzip \ autoconf automake libtool node12 npm-node12 lang/python3 \ py37-sphinx py37-pip diff --git a/dockerfiles/almalinux-10 b/dockerfiles/almalinux-10 index 90988a2..cc1e995 100644 --- a/dockerfiles/almalinux-10 +++ b/dockerfiles/almalinux-10 @@ -22,8 +22,10 @@ FROM almalinux:10 # Java 21 installed via RPM: java-21-openjdk-devel # 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 +# This is the same as for Nouveau for the moment, but perhaps it is better to +# keep it separate as there is no guarantee that they will be bumped at the +# same pace. +ENV CLOUSEAU_JAVA_HOME="${JAVA_HOME}" ENV PATH=/usr/local/lib/erlang/bin:"${PATH}" # Choose whether to install SpiderMonkey 1.8.5, default yes @@ -31,9 +33,9 @@ ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang # Select version of Node, Erlang and Elixir to install -ARG erlangversion=26.2.5.11 +ARG erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/almalinux-8 b/dockerfiles/almalinux-8 index 8632ff6..365fd94 100644 --- a/dockerfiles/almalinux-8 +++ b/dockerfiles/almalinux-8 @@ -33,9 +33,9 @@ ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang # Select version of Node, Erlang and Elixir to install -ARG erlangversion=26.2.5.11 +ARG erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/almalinux-9 b/dockerfiles/almalinux-9 index 73f31e4..567691e 100644 --- a/dockerfiles/almalinux-9 +++ b/dockerfiles/almalinux-9 @@ -33,9 +33,9 @@ ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang # Select version of Node, Erlang and Elixir to install -ARG erlangversion=26.2.5.11 +ARG erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/debian-bookworm b/dockerfiles/debian-bookworm index 6a13ae6..14ba5c1 100644 --- a/dockerfiles/debian-bookworm +++ b/dockerfiles/debian-bookworm @@ -38,9 +38,9 @@ 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 erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/debian-bullseye b/dockerfiles/debian-bullseye index 32499a9..f9ebf69 100644 --- a/dockerfiles/debian-bullseye +++ b/dockerfiles/debian-bullseye @@ -38,9 +38,9 @@ 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 erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/debian-trixie b/dockerfiles/debian-trixie index 536643c..0ad7cf8 100644 --- a/dockerfiles/debian-trixie +++ b/dockerfiles/debian-trixie @@ -38,9 +38,9 @@ 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 erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/ubuntu-jammy b/dockerfiles/ubuntu-jammy index 450fc0e..3686081 100644 --- a/dockerfiles/ubuntu-jammy +++ b/dockerfiles/ubuntu-jammy @@ -36,9 +36,9 @@ ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang # Select version of Node, Erlang and Elixir to install -ARG erlangversion=26.2.5.11 +ARG erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/dockerfiles/ubuntu-noble b/dockerfiles/ubuntu-noble index 244bc9b..73d4194 100644 --- a/dockerfiles/ubuntu-noble +++ b/dockerfiles/ubuntu-noble @@ -36,9 +36,9 @@ ARG js=js # Choose whether to install Erlang, default yes ARG erlang=erlang # Select version of Node, Erlang and Elixir to install -ARG erlangversion=26.2.5.11 +ARG erlangversion=26.2.5.17 ARG elixirversion=v1.18.4 -ARG nodeversion=20 +ARG nodeversion=22 # Create Jenkins user and group RUN groupadd --gid 910 jenkins; \ diff --git a/freebsd-jenkins-setup.md b/freebsd-jenkins-setup.md index 163f3b7..10d4e30 100644 --- a/freebsd-jenkins-setup.md +++ b/freebsd-jenkins-setup.md @@ -151,7 +151,7 @@ couchdb-ci/bin/install-dependencies.sh js erlang couchdb-ci/bin/install-elixir.sh # or, if you don't trust our CI scripts -pkg install -y -r Synth unzip autoconf automake git gmake icu libtool py37-hypothesis py37-nose py37-pip vim-console curl wget elixir erlang python3 spidermonkey185 help2man py37-progressbar openssl111 bash screen py37-sphinx py37-sphinx_rtd_theme node10 npm-node10 py37-requests +pkg install -y -r Synth unzip autoconf automake git gmake icu libtool py37-hypothesis py37-nose py37-pip vim-console curl wget elixir erlang python3 spidermonkey185 py37-progressbar openssl111 bash screen py37-sphinx py37-sphinx_rtd_theme node10 npm-node10 py37-requests ``` now, fix 2 broken things diff --git a/pull-all-couchdbdev-docker b/pull-all-couchdbdev-docker index 3cf770f..d2bc2a9 100644 --- a/pull-all-couchdbdev-docker +++ b/pull-all-couchdbdev-docker @@ -4,17 +4,16 @@ 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:28.1.1 -couchdbci-debian:bookworm-erlang:27.3.4.5 -couchdbci-debian:bookworm-erlang-26.2.5.16 -couchdbci-debian:bookworm-erlang-26.2.5.16 -couchdbci-debian:bullseye-erlang:26.2.5.16 -couchdbci-debian:trixie-erlang:26.2.5.16 -couchdbci-ubuntu:noble-erlang-26.2.5.16 -couchdbci-ubuntu:jammy-erlang-26.2.5.16 -couchdbci-centos:10-erlang-26.2.5.16 -couchdbci-centos:9-erlang-26.2.5.16 -couchdbci-centos:8-erlang-26.2.5.16 +couchdbci-debian:bookworm-erlang:28.3.2 +couchdbci-debian:bookworm-erlang:27.3.4.8 +couchdbci-debian:bookworm-erlang-26.2.5.17 +couchdbci-debian:bullseye-erlang:26.2.5.17 +couchdbci-debian:trixie-erlang:26.2.5.17 +couchdbci-ubuntu:noble-erlang-26.2.5.17 +couchdbci-ubuntu:jammy-erlang-26.2.5.17 +couchdbci-centos:10-erlang-26.2.5.17 +couchdbci-centos:9-erlang-26.2.5.17 +couchdbci-centos:8-erlang-26.2.5.17 ) for image in ${KEEP_IMAGES[*]}
