From 282f87461be68b0f5bd3205c0a0fa10f75f0e305 Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Thu, 4 Dec 2025 10:13:48 +0100 Subject: [PATCH 1/3] Add FreeBSD 15.0 --- .gitlab-ci.yml | 35 +++++++++++++++++++++++++++++++++++ doc/arm/platforms.inc.rst | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5a6ac3dc69..ff933eb24a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -179,6 +179,15 @@ stages: - shell - stress-test +.freebsd-autoscaler-15-amd64-tags: &freebsd_autoscaler_15_amd64_tags + tags: + - amd64 + - autoscaler + - aws + - bsd-stress-test-3 + - shell + - stress-test + .freebsd-autoscaler-amd64: &freebsd_autoscaler_amd64 variables: CC: clang @@ -200,6 +209,12 @@ stages: <<: *freebsd_autoscaler_amd64 <<: *freebsd_autoscaler_14_amd64_tags +# Autoscaling GitLab Runner on AWS EC2 (FreeBSD 15) + +.freebsd-autoscaler-15-amd64: &freebsd_autoscaler_15_amd64 + <<: *freebsd_autoscaler_amd64 + <<: *freebsd_autoscaler_15_amd64_tags + ### Docker Image Templates # Alpine Linux @@ -1667,6 +1682,26 @@ unit:clang:freebsd14:amd64: artifacts: true retry: 1 # GL #4924 +# Jobs for Clang builds on FreeBSD 15 (amd64) + +clang:freebsd15:amd64: + <<: *build_job + <<: *freebsd_autoscaler_15_amd64 + +system:clang:freebsd15:amd64: + <<: *system_test_job + <<: *freebsd_autoscaler_15_amd64 + needs: + - job: clang:freebsd15:amd64 + artifacts: true + +unit:clang:freebsd15:amd64: + <<: *unit_test_job + <<: *freebsd_autoscaler_15_amd64 + needs: + - job: clang:freebsd15:amd64 + artifacts: true + # Job producing a release directory release: diff --git a/doc/arm/platforms.inc.rst b/doc/arm/platforms.inc.rst index e55ae867e2..f3b472b5a0 100644 --- a/doc/arm/platforms.inc.rst +++ b/doc/arm/platforms.inc.rst @@ -47,7 +47,7 @@ following systems: - Ubuntu LTS 22.04, 24.04 - Fedora 43 - Red Hat Enterprise Linux / CentOS / AlmaLinux 8, 9, 10 -- FreeBSD 13.4, 14.2 +- FreeBSD 13, 14, 15 - Alpine Linux 3.23 The amd64 CPU architecture is fully supported and regularly tested. From b4c0408d8167efb2ec21b9099a6117d557ed5825 Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Fri, 12 Dec 2025 14:51:32 +0100 Subject: [PATCH 2/3] Add ans10 blackhole server to xfer system test On FreeBSD 15.0, sending requests to non-existent address produces unexpected results. Add a blackhole server instead. --- bin/tests/system/xfer/ans10/ans.py | 25 +++++++++++++++++++++++++ bin/tests/system/xfer/ns6/named.conf.j2 | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 bin/tests/system/xfer/ans10/ans.py diff --git a/bin/tests/system/xfer/ans10/ans.py b/bin/tests/system/xfer/ans10/ans.py new file mode 100644 index 0000000000..6f5346ff86 --- /dev/null +++ b/bin/tests/system/xfer/ans10/ans.py @@ -0,0 +1,25 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# SPDX-License-Identifier: MPL-2.0 +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, you can obtain one at https://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +from isctest.asyncserver import ( + AsyncDnsServer, + IgnoreAllQueries, +) + + +def main() -> None: + server = AsyncDnsServer() + server.install_response_handler(IgnoreAllQueries()) + server.run() + + +if __name__ == "__main__": + main() diff --git a/bin/tests/system/xfer/ns6/named.conf.j2 b/bin/tests/system/xfer/ns6/named.conf.j2 index 9261f0dd4e..9fe63bd62e 100644 --- a/bin/tests/system/xfer/ns6/named.conf.j2 +++ b/bin/tests/system/xfer/ns6/named.conf.j2 @@ -87,7 +87,7 @@ zone "axfr-rndc-retransfer-force" { zone "xot-primary-try-next" { type secondary; - primaries { 10.53.0.99 port @EXTRAPORT1@ tls ephemeral; 10.53.0.1; }; + primaries { 10.53.0.10 port @EXTRAPORT1@ tls ephemeral; 10.53.0.1; }; file "xot-primary-try-next.bk"; }; From 636a617f66f419f1c274d4be0ade043411b40ec3 Mon Sep 17 00:00:00 2001 From: Michal Nowak Date: Thu, 18 Dec 2025 12:02:45 +0100 Subject: [PATCH 3/3] Inline FreeBSD jobs from anchors Although markup extraction to anchors makes FreeBSD jobs cleaner, it prevents job customization, say, enabling or disabling a build option. --- .gitlab-ci.yml | 94 +++++++++++++++++++++++++++----------------------- 1 file changed, 50 insertions(+), 44 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff933eb24a..ecff45f361 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -188,33 +188,6 @@ stages: - shell - stress-test -.freebsd-autoscaler-amd64: &freebsd_autoscaler_amd64 - variables: - CC: clang - CFLAGS: "${CFLAGS_COMMON}" - GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" - # Use MIT Kerberos5 for BIND 9 GSS-API support because of FreeBSD Heimdal - # incompatibility; see https://bugs.freebsd.org/275241. - EXTRA_CONFIGURE: "${WITH_LIBEDIT} -Doptimization=g --native-file ci/freebsd.ini" - -# Autoscaling GitLab Runner on AWS EC2 (FreeBSD 13) - -.freebsd-autoscaler-13-amd64: &freebsd_autoscaler_13_amd64 - <<: *freebsd_autoscaler_amd64 - <<: *freebsd_autoscaler_13_amd64_tags - -# Autoscaling GitLab Runner on AWS EC2 (FreeBSD 14) - -.freebsd-autoscaler-14-amd64: &freebsd_autoscaler_14_amd64 - <<: *freebsd_autoscaler_amd64 - <<: *freebsd_autoscaler_14_amd64_tags - -# Autoscaling GitLab Runner on AWS EC2 (FreeBSD 15) - -.freebsd-autoscaler-15-amd64: &freebsd_autoscaler_15_amd64 - <<: *freebsd_autoscaler_amd64 - <<: *freebsd_autoscaler_15_amd64_tags - ### Docker Image Templates # Alpine Linux @@ -1642,65 +1615,98 @@ unit:clang:trixie:amd64: # Jobs for Clang builds on FreeBSD 13 (amd64) clang:freebsd13:amd64: + variables: + CC: clang + CFLAGS: "${CFLAGS_COMMON}" + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" + # Use MIT Kerberos5 for BIND 9 GSS-API support because of FreeBSD Heimdal + # incompatibility; see https://bugs.freebsd.org/275241. + EXTRA_CONFIGURE: "${WITH_LIBEDIT} -Doptimization=g --native-file ci/freebsd.ini" <<: *build_job - <<: *freebsd_autoscaler_13_amd64 + <<: *freebsd_autoscaler_13_amd64_tags system:clang:freebsd13:amd64: - <<: *system_test_job - <<: *freebsd_autoscaler_13_amd64 - <<: *extra_system_tests_triggering_rules + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd13:amd64 artifacts: true + <<: *system_test_job + <<: *freebsd_autoscaler_13_amd64_tags + <<: *extra_system_tests_triggering_rules unit:clang:freebsd13:amd64: - <<: *unit_test_job - <<: *freebsd_autoscaler_13_amd64 - <<: *api_pipelines_schedules_tags_triggers_web_triggering_rules + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd13:amd64 artifacts: true + <<: *unit_test_job + <<: *freebsd_autoscaler_13_amd64_tags + <<: *api_pipelines_schedules_tags_triggers_web_triggering_rules # Jobs for Clang builds on FreeBSD 14 (amd64) clang:freebsd14:amd64: + variables: + CC: clang + CFLAGS: "${CFLAGS_COMMON}" + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" + # Use MIT Kerberos5 for BIND 9 GSS-API support because of FreeBSD Heimdal + # incompatibility; see https://bugs.freebsd.org/275241. + EXTRA_CONFIGURE: "${WITH_LIBEDIT} -Doptimization=g --native-file ci/freebsd.ini" <<: *build_job - <<: *freebsd_autoscaler_14_amd64 + <<: *freebsd_autoscaler_14_amd64_tags system:clang:freebsd14:amd64: - <<: *system_test_job - <<: *freebsd_autoscaler_14_amd64 + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd14:amd64 artifacts: true + <<: *system_test_job + <<: *freebsd_autoscaler_14_amd64_tags unit:clang:freebsd14:amd64: - <<: *unit_test_job - <<: *freebsd_autoscaler_14_amd64 + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd14:amd64 artifacts: true retry: 1 # GL #4924 + <<: *unit_test_job + <<: *freebsd_autoscaler_14_amd64_tags # Jobs for Clang builds on FreeBSD 15 (amd64) clang:freebsd15:amd64: + variables: + CC: clang + CFLAGS: "${CFLAGS_COMMON}" + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" + # Use MIT Kerberos5 for BIND 9 GSS-API support because of FreeBSD Heimdal + # incompatibility; see https://bugs.freebsd.org/275241. + EXTRA_CONFIGURE: "${WITH_LIBEDIT} -Doptimization=g --native-file ci/freebsd.ini" <<: *build_job - <<: *freebsd_autoscaler_15_amd64 + <<: *freebsd_autoscaler_15_amd64_tags system:clang:freebsd15:amd64: - <<: *system_test_job - <<: *freebsd_autoscaler_15_amd64 + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd15:amd64 artifacts: true + <<: *system_test_job + <<: *freebsd_autoscaler_15_amd64_tags unit:clang:freebsd15:amd64: - <<: *unit_test_job - <<: *freebsd_autoscaler_15_amd64 + variables: + GIT_CLONE_PATH: "${GIT_CLONE_PATH_INSTANCE_EXECUTOR}" needs: - job: clang:freebsd15:amd64 artifacts: true + <<: *unit_test_job + <<: *freebsd_autoscaler_15_amd64_tags # Job producing a release directory