]> git.ipfire.org Git - thirdparty/bind9.git/log
thirdparty/bind9.git
7 months ago[9.18] fix: test: Disable keyfromlabel collision avoidance in tests
Nicki Křížek [Fri, 10 Oct 2025 11:07:31 +0000 (13:07 +0200)] 
[9.18] fix: test: Disable keyfromlabel collision avoidance in tests

With the collision avoidance on, some of the tests would occasionally
fail. None of the tests using keyfromlabel are revoking the keys so it
should be safe to disable it.

Closes #5554

Backport of MR !11066

Merge branch 'backport-5554-disable-keyfromlabel-collision-avoidance-in-tests-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11075

7 months agoDisable keyfromlabel collision avoidance in tests
Nicki Křížek [Wed, 8 Oct 2025 09:35:24 +0000 (11:35 +0200)] 
Disable keyfromlabel collision avoidance in tests

With the collision avoidance on, some of the tests would occasionally
fail. None of the tests using keyfromlabel are revoking the keys so it
should be safe to disable it.

(cherry picked from commit 2ecbe46e0d2de75a357d5d2da06638ecf806e617)

7 months ago[9.18] fix: ci: Remove reuse annotations for unused m4 libtool files
Nicki Křížek [Mon, 6 Oct 2025 16:13:11 +0000 (18:13 +0200)] 
[9.18] fix: ci: Remove reuse annotations for unused m4 libtool files

The files in question are no longer included in the git tree and
distributed with the code. Remove the reuse annotations as they caused
issues with reuse 6.0.0, as multiline annotation for
SPDX-FileCopyrightText breaks the parsing.

Backport of MR !11056

Merge branch 'backport-nicki/reuse-remove-m4-annotations-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11058

7 months agoRemove reuse annotations for unused m4 libtool files
Nicki Křížek [Mon, 6 Oct 2025 15:45:07 +0000 (17:45 +0200)] 
Remove reuse annotations for unused m4 libtool files

The files in question are no longer included in the git tree and
distributed with the code. Remove the reuse annotations as they caused
issues with reuse 6.0.0, as multiline annotation for
SPDX-FileCopyrightText breaks the parsing.

(cherry picked from commit e77f349240d1f71953cfe26cf0a1417e5c085493)

8 months agochg: doc: Set up version for BIND 9.18.41
Michał Kępień [Thu, 2 Oct 2025 15:53:36 +0000 (17:53 +0200)] 
chg: doc: Set up version for BIND 9.18.41

Merge branch 'michal/set-up-version-for-bind-9.18.41' into 'bind-9.18'

See merge request isc-projects/bind9!11051

8 months agoUpdate BIND version to 9.18.41-dev
Michał Kępień [Thu, 2 Oct 2025 15:52:02 +0000 (17:52 +0200)] 
Update BIND version to 9.18.41-dev

8 months ago[9.18] new: ci: Prepare release announcement MR
Michał Kępień [Wed, 1 Oct 2025 18:55:37 +0000 (20:55 +0200)] 
[9.18] new: ci: Prepare release announcement MR

In the 'release' stage, create an MR automatically with the
corresponding release announcement. The input for this is taken from
metadata.json in bind9-qa.

Backport of MR !11039

Merge branch 'backport-andoni/release-announcement-preparation-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11041

8 months agoCreate release announcement MR
Andoni Duarte Pintado [Mon, 29 Sep 2025 15:21:13 +0000 (17:21 +0200)] 
Create release announcement MR

In the 'release' stage, create an MR automatically with the
corresponding release announcement. The input for this is taken from
metadata.json in bind9-qa.

(cherry picked from commit 0f75741341c1d2a8f63a143366c1330b20d3993b)

8 months ago[9.18] new: ci: Merge tag back to its base branch in tag pipeline
Andoni Duarte [Mon, 29 Sep 2025 12:55:49 +0000 (12:55 +0000)] 
[9.18] new: ci: Merge tag back to its base branch in tag pipeline

Add a CI job to merge tags back to the respective base branch in tag pipelines.

Backport of MR !11001

Merge branch 'backport-andoni/add-merge-tag-to-tag-pipeline-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11025

8 months agoMerge tag back to its base branch in tag pipeline
Andoni Duarte Pintado [Tue, 23 Sep 2025 09:20:46 +0000 (11:20 +0200)] 
Merge tag back to its base branch in tag pipeline

Merging a tag to its base branch will now be a manual job in its tag
pipeline.

(cherry picked from commit 22bc6a70639be16e5d2ee8b1adcce87b157d220d)

8 months ago[9.18] fix: nil: Reformat strings broken by successive clang-format runs
Michał Kępień [Mon, 29 Sep 2025 11:17:13 +0000 (13:17 +0200)] 
[9.18] fix: nil: Reformat strings broken by successive clang-format runs

Backport of MR !11002

Merge branch 'backport-marka-re-format-strings-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11007

8 months agore-split STATIC_ASSERT message
Mark Andrews [Tue, 2 Sep 2025 05:49:43 +0000 (15:49 +1000)] 
re-split STATIC_ASSERT message

(cherry picked from commit ccc41c70445d41eed9341f255a2c9fcfadbeee00)

8 months agore-split log message text
Mark Andrews [Tue, 2 Sep 2025 05:48:35 +0000 (15:48 +1000)] 
re-split log message text

(cherry picked from commit a64c35052363f659ef589a87a49cca4281d99379)

8 months ago[9.18] new: test: Add nsX fixtures to pytest
Nicki Křížek [Thu, 25 Sep 2025 15:18:11 +0000 (17:18 +0200)] 
[9.18] new: test: Add nsX fixtures to pytest

The nsX are utility fixtures which can be used instead of the servers
fixture, which requires longer syntax(i.e. servers["nsX"]).

---

This MR is basically backporting pytest utility fixtures which were introduced to newer branches in !10717. This is a minimal change which only aims to facilitate easier test backports to ~"v9.18" in the future, without changing any of the existing tests.

Merge branch 'nicki/pytest-nsX-fixtures-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11015

8 months agoAdd nsX fixtures to pytest
Nicki Křížek [Thu, 25 Sep 2025 14:24:57 +0000 (16:24 +0200)] 
Add nsX fixtures to pytest

The nsX are utility fixtures which can be used instead of the servers
fixture, which requires longer syntax(i.e. servers["nsX"]).

8 months ago[9.18] chg: ci: Temporarily disable shotgun jobs
Nicki Křížek [Wed, 24 Sep 2025 13:09:24 +0000 (15:09 +0200)] 
[9.18] chg: ci: Temporarily disable shotgun jobs

There's currently an issue with the shotgun workflow that's being
investigated. Until it's resolved, there's no point in creating the
shotgun jobs as they'll just fail.

Backport of MR !11005

Merge branch 'backport-nicki/ci-temporarily-disable-shotgun-jobs-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!11009

8 months agoTemporarily disable shotgun jobs
Nicki Křížek [Wed, 24 Sep 2025 11:37:03 +0000 (13:37 +0200)] 
Temporarily disable shotgun jobs

There's currently an issue with the shotgun workflow that's being
investigated. Until it's resolved, there's no point in creating the
shotgun jobs as they'll just fail.

(cherry picked from commit 2669463b43f8d3187a552554ec13e600f7ee8dfb)

8 months ago[9.18] chg: ci: Only run relevant CI jobs based on the changes
Nicki Křížek [Thu, 18 Sep 2025 14:46:28 +0000 (16:46 +0200)] 
[9.18] chg: ci: Only run relevant CI jobs based on the changes

Trigger selected CI jobs on MR automatically only if there are related
code changes. Otherwise, offer an option to run the jobs manually in
MRs. For other sources, like schedules, tags etc., execute the jobs as
usual.

Backport of MR !10987

Merge branch 'backport-nicki/ci-restrict-rules-changes-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10993

8 months agoRun shfmt on util/check-make-install.sh.in
Nicki Křížek [Thu, 18 Sep 2025 11:55:00 +0000 (13:55 +0200)] 
Run shfmt on util/check-make-install.sh.in

(cherry picked from commit 96974330d5369bd92d6887549f5ca939f38337ee)

8 months agoOnly run relevant CI jobs based on the changes
Nicki Křížek [Wed, 17 Sep 2025 13:51:39 +0000 (15:51 +0200)] 
Only run relevant CI jobs based on the changes

Trigger selected CI jobs on MR automatically only if there are related
code changes. Otherwise, offer an option to run the jobs manually in
MRs. For other sources, like schedules, tags etc., execute the jobs as
usual.

(cherry picked from commit 02c58d9baa17b23a8d76de418de04085fed28a70)

8 months agoAdd .sh extension to shell scripts
Nicki Křížek [Thu, 18 Sep 2025 09:51:46 +0000 (11:51 +0200)] 
Add .sh extension to shell scripts

Use .sh(.in) file extension consistently for shell scripts
to allow more reliable detection of shell scripts based on their file
extension.

(cherry picked from commit 2d690499dd5092450d2d6f73d06a7937cd865c07)

8 months ago[9.18] fix: test: Increase wait_for_log timeout in kasp shell test
Nicki Křížek [Tue, 16 Sep 2025 14:42:48 +0000 (16:42 +0200)] 
[9.18] fix: test: Increase wait_for_log timeout in kasp shell test

When running with TSAN in CI, the test ocassionally fails on:

exceeded time limit waiting for literal 'keymgr: purgekeys.kasp done' in ns4/named.run

The line is actually present in the logs, but it take slightly longer
than 3 seconds to appear. Increase the wait_for_log timeout of the kasp test to 10
seconds to avoid such issues.

---

Example of failure: https://gitlab.isc.org/isc-projects/bind9/-/jobs/6176192

Merge branch 'nicki/kasp-shell-test-increase-log-timeout' into 'bind-9.18'

See merge request isc-projects/bind9!10976

8 months agoIncrease wait_for_log timeout in kasp shell test
Nicki Křížek [Tue, 16 Sep 2025 08:11:03 +0000 (10:11 +0200)] 
Increase wait_for_log timeout in kasp shell test

When running with TSAN in CI, the test ocassionally fails on:

'exceeded time limit waiting for literal 'keymgr: purgekeys.kasp done'
in ns4/named.run'

The line is actually present in the logs, but it take slightly longer
than 3 seconds to appear. Increase the wait_for_log timeout of the kasp
test to 10 seconds to avoid such issues.

8 months ago[9.18] chg: doc: ARM tweaks
Petr Špaček [Thu, 11 Sep 2025 11:56:32 +0000 (11:56 +0000)] 
[9.18] chg: doc: ARM tweaks

Backport of MR !10960

Merge branch 'backport-pspacek/reorder-arm-toc-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10964

8 months agoPrevent Sphinx from messing up syntax with "smartquotes" feature
Petr Špaček [Thu, 11 Sep 2025 09:06:21 +0000 (11:06 +0200)] 
Prevent Sphinx from messing up syntax with "smartquotes" feature

Sphinx's smartquotes feature was rewriting -- to en-dash, "" to proper
English quotes etc. This was messing up syntax at unpredictable places.
Disable this feature instead of attempting to escape all the places in
the manual.

(cherry picked from commit 66e58d33158c982b1ce67455d78809a927a0d155)

8 months agoReorder appendices in ARM
Petr Špaček [Thu, 11 Sep 2025 08:51:02 +0000 (10:51 +0200)] 
Reorder appendices in ARM

The new order hopefully reflects likelihood of someone reading from start
to the end:

DNSSEC Guide
Manual Pages
General DNS Reference Information
Release Notes
Changelog
A Brief History of the DNS and BIND

(cherry picked from commit ed0db245bef8eb977655f794f2263ccb954ddf74)

8 months ago[9.18] fix: usr: Missing DNSSEC information when CD bit is set in query
Mark Andrews [Thu, 11 Sep 2025 08:48:24 +0000 (18:48 +1000)] 
[9.18] fix: usr: Missing DNSSEC information when CD bit is set in query

The RRSIGs for glue records were not being cached correctly for CD=1 queries.  This has been fixed.

Closes #5502

Backport of MR !10938

Merge branch 'backport-5502-fix-missing-rrsig-with-cd-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10957

8 months agotest that rrsigs are returned for glue with +cd
Mark Andrews [Wed, 10 Sep 2025 07:29:31 +0000 (17:29 +1000)] 
test that rrsigs are returned for glue with +cd

(cherry picked from commit b7e73edd124df4585bc2b00e2e78f4cac75ed660)

8 months agoRemove dns_rdataset_equals as unneeded
Mark Andrews [Thu, 4 Sep 2025 00:02:43 +0000 (10:02 +1000)] 
Remove dns_rdataset_equals as unneeded

(cherry picked from commit 7d765a35141882b87ffb2b41ddc3500bac8595f0)

8 months agoFix missing RRSIGs for "glue" lookups with CD=1
Mark Andrews [Wed, 10 Sep 2025 06:18:41 +0000 (16:18 +1000)] 
Fix missing RRSIGs for "glue" lookups with CD=1

The code to test whether to store the RRSIGs on DNS_R_UNCHANGED
with CD=1 was failing because the comparison methods of the two
rdatatset instances were not compatible.  Move the testing into
dns_db_addrdataset(), and request it by setting the DNS_ADD_EQUALOK
option.  If the option is set and the old and new rrsets compare
as equal, dns_db_addrdataset() returns ISC_R_SUCCESS instead of
DNS_R_UNCHANGED.

(cherry picked from commit b954a1df43e6e6e5ff60f1da1240ece644b7e190)

8 months ago[9.18] fix: nil: Replace .reuse/dep5 with REUSE.toml
Ondřej Surý [Mon, 8 Sep 2025 10:13:19 +0000 (12:13 +0200)] 
[9.18] fix: nil: Replace .reuse/dep5 with REUSE.toml

Update to REUSE Specification 3.2+ that uses REUSE.toml instead of DEP5
based specification.

Backport of MR !10945

Merge branch 'backport-ondrej/cover-reuse-dep5-to-toml-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10950

8 months agoReplace .reuse/dep5 with REUSE.toml
Ondřej Surý [Sat, 6 Sep 2025 13:58:22 +0000 (15:58 +0200)] 
Replace .reuse/dep5 with REUSE.toml

Update to REUSE Specification 3.2+ that uses REUSE.toml instead of DEP5
based specification.

(cherry picked from commit 5d03261448c50f44c24035ee33f1d981d29e914a)

9 months ago[9.18] chg: doc: Clarify rrset-order random distribution
Petr Špaček [Wed, 3 Sep 2025 12:47:37 +0000 (12:47 +0000)] 
[9.18] chg: doc: Clarify rrset-order random distribution

The randomized order of the records in the rrset is not uniform across
all permutations.  Clarify this in the documentation.

Closes #5485

Backport of MR !10909

Merge branch 'backport-ondrej/clarify-rrset-order-random-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10936

9 months agoClarify rrset-order random distribution
Ondřej Surý [Thu, 28 Aug 2025 09:40:37 +0000 (11:40 +0200)] 
Clarify rrset-order random distribution

The randomized order of the records in the rrset is not uniform across
all permutations.  Clarify this in the documentation.

(cherry picked from commit 369c8dc388caad0d4fa7e9da15a3a0cd62cd3b39)

9 months ago[9.18] new: usr: Support for parsing HHIT and BRID records has been added
Mark Andrews [Wed, 3 Sep 2025 02:21:29 +0000 (12:21 +1000)] 
[9.18] new: usr: Support for parsing HHIT and BRID records has been added

Closes #5444

Backport of MR !10795

Merge branch 'backport-5444-add-hhit-and-brid-records-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10933

9 months agoAdd tests for BRID and HHIT
Mark Andrews [Wed, 30 Jul 2025 05:22:05 +0000 (15:22 +1000)] 
Add tests for BRID and HHIT

(cherry picked from commit 92621e63909795af815b1ff4447ff6f79fbbf0bc)

9 months agoAdd support for parsing and displaying BRID rdata type
Mark Andrews [Wed, 30 Jul 2025 03:12:13 +0000 (13:12 +1000)] 
Add support for parsing and displaying BRID rdata type

(cherry picked from commit 6b29da55fceda75a6c159f21a372964d4a39b293)

9 months agoAdd support for parsing and displaying HHIT rdata type
Mark Andrews [Wed, 30 Jul 2025 03:11:40 +0000 (13:11 +1000)] 
Add support for parsing and displaying HHIT rdata type

(cherry picked from commit 37041c3ec3d36f179feb688c2574b9780c55077b)

9 months ago[9.18] fix: usr: RPZ canonical warning displays zone entry incorrectly
Mark Andrews [Wed, 3 Sep 2025 00:21:09 +0000 (10:21 +1000)] 
[9.18] fix: usr: RPZ canonical warning displays zone entry incorrectly

When an IPv6 rpz prefix entry is entered incorrectly the log
message was just displaying the prefix rather than the full
entry.  This has been corrected.

Closes #5491

Backport of MR !10890

Merge branch 'backport-5491-rpz-canonical-warning-displays-zone-entry-incorrectly-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10931

9 months agoAdd non canonical form entry to trigger log message
Mark Andrews [Mon, 25 Aug 2025 01:19:37 +0000 (11:19 +1000)] 
Add non canonical form entry to trigger log message

(cherry picked from commit 76db9e276f5180c41dd8492a08b1396377903973)

9 months agoRPZ canonical warning displays zone entry incorrectly
Mark Andrews [Mon, 25 Aug 2025 00:32:36 +0000 (10:32 +1000)] 
RPZ canonical warning displays zone entry incorrectly

Do not insert a NUL into ip_str too early as the full value
is needed later.  Only insert the NUL immediately before
displaying just the prefix string.

(cherry picked from commit 283da99f02d8b58c56efee988f39db3dc18426f1)

9 months agorem: usr: Deprecate the "tkey-domain" statement
Michał Kępień [Mon, 1 Sep 2025 20:29:29 +0000 (22:29 +0200)] 
rem: usr: Deprecate the "tkey-domain" statement

Mark the :any:`tkey-domain` statement as deprecated since it is only
used by code implementing TKEY Mode 2 (Diffie-Hellman), which was
removed from newer BIND 9 branches.

See #4204

Merge branch '4204-deprecate-tkey-domain' into 'bind-9.18'

See merge request isc-projects/bind9!10783

9 months agoDeprecate the "tkey-domain" statement
Michał Kępień [Mon, 1 Sep 2025 20:04:28 +0000 (22:04 +0200)] 
Deprecate the "tkey-domain" statement

Mark the "tkey-domain" statement as deprecated since it is only used by
code implementing TKEY Mode 2 (Diffie-Hellman), which was removed from
newer BIND 9 branches.

9 months ago[9.18] rem: usr: Deprecate the "tkey-gssapi-credential" statement
Michał Kępień [Mon, 1 Sep 2025 20:01:07 +0000 (22:01 +0200)] 
[9.18] rem: usr: Deprecate the "tkey-gssapi-credential" statement

The :any:`tkey-gssapi-keytab` statement allows GSS-TSIG to be set up in
a simpler and more reliable way than using the
:any:`tkey-gssapi-credential` statement and setting environment
variables (e.g. ``KRB5_KTNAME``). Therefore, the
:any:`tkey-gssapi-credential` statement has been deprecated;
:any:`tkey-gssapi-keytab` should be used instead.

For configurations currently using a combination of both
:any:`tkey-gssapi-keytab` *and* :any:`tkey-gssapi-credential`, the
latter should be dropped and the keytab pointed to by
:any:`tkey-gssapi-keytab` should now only contain the credential
previously specified by :any:`tkey-gssapi-credential`.

See #4204

Backport of MR !10782

Merge branch 'backport-4204-deprecate-tkey-gssapi-credential-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10925

9 months agoDeprecate the "tkey-gssapi-credential" statement
Michał Kępień [Mon, 1 Sep 2025 19:23:30 +0000 (21:23 +0200)] 
Deprecate the "tkey-gssapi-credential" statement

The "tkey-gssapi-keytab" statement enables GSS-TSIG to be set up in a
simpler and more reliable way than using the "tkey-gssapi-credential"
statement and setting environment variables (e.g. KRB5_KTNAME).

Mark the "tkey-gssapi-credential" statement as deprecated to eventually
only have one method for setting up GSS-TSIG in named.  Do not mention
"tkey-gssapi-credential" in the section of the ARM on dynamic updates.

(cherry picked from commit 6de435c5285b7b87321064752aab3e3178d9448f)

9 months ago[9.18] new: ci: Add Debian "trixie"
Michal Nowak [Mon, 1 Sep 2025 17:40:26 +0000 (19:40 +0200)] 
[9.18] new: ci: Add Debian "trixie"

Backport of MR !10827

Merge branch 'backport-mnowak/add-debian-trixie-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10922

9 months agoMake "trixie" the base image
Michal Nowak [Tue, 5 Aug 2025 16:23:10 +0000 (18:23 +0200)] 
Make "trixie" the base image

(cherry picked from commit bb26409f343418989f7ae27eac19b61d17c969cf)

9 months agoAdd Debian "trixie"
Michal Nowak [Tue, 5 Aug 2025 16:16:15 +0000 (18:16 +0200)] 
Add Debian "trixie"

(cherry picked from commit 263810e7792b66a33999b7f97602c0c1fa9b35b7)

9 months ago[9.18] fix: dev: Add and use __attribute__((nonnull)) in dnssec-signzone.c
Ondřej Surý [Thu, 28 Aug 2025 15:02:56 +0000 (17:02 +0200)] 
[9.18] fix: dev: Add and use __attribute__((nonnull)) in dnssec-signzone.c

Clang 20 was spuriously warning about the possibility of passing a NULL file pointer
to `fprintf()`, which uses the 'nonnull' attribute. To silence the warning, the functions
calling `fprintf()` have been marked with the same attribute to assure that NULL can't be
passed to them in the first place.

Close #5487

Backport of MR !10888

Merge branch 'backport-5487-mark-passed-file-pointer-as-nonnull-in-dnssec-signzone-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10914

9 months agoAdd and use __attribute__((nonnull)) in dnssec-signzone.c
Ondřej Surý [Thu, 21 Aug 2025 21:51:38 +0000 (23:51 +0200)] 
Add and use __attribute__((nonnull)) in dnssec-signzone.c

Clang 20 is complaining about passing NULL to an argument with 'nonnull'
attribute.  Mark these two functions with the same attribute to assure
that these two function also don't accept NULL as an argument.

(cherry picked from commit 9e350c177403ead4c8a6630a08f36f304b04484c)

9 months ago[9.18] chg: doc: Clarify forward, stub, and static-stub zone usage
Petr Špaček [Wed, 27 Aug 2025 14:44:34 +0000 (14:44 +0000)] 
[9.18] chg: doc: Clarify forward, stub, and static-stub zone usage

Backport of MR !10417

Merge branch 'backport-pspacek/doc-forward-stub-zones-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10903

9 months agoClarify forward, stub, and static-stub zone usage
Petr Špaček [Tue, 22 Apr 2025 09:37:09 +0000 (11:37 +0200)] 
Clarify forward, stub, and static-stub zone usage

Clarify that forwarding points to a resolver and stub to auths.
Add cross-links. Rewrite stub zone type description.

(cherry picked from commit e84b98a9fcd4568ea354a5deef7565c5e6825218)

9 months ago[9.18] fix: usr: Prevent spurious SERVFAILs for certain 0-TTL resource records
Ondřej Surý [Tue, 26 Aug 2025 20:47:05 +0000 (22:47 +0200)] 
[9.18] fix: usr: Prevent spurious SERVFAILs for certain 0-TTL resource records

Under certain circumstances, BIND 9 can return SERVFAIL when updating
existing entries in the cache with new NS, A, AAAA, or DS records with 0-TTL.

Closes #5294

Backport of MR !10897

Merge branch 'backport-5294-preserve-ZEROTTL-on-cache-update-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10899

9 months agoDon't preserve cache entries if new TTL is smaller than existing
Ondřej Surý [Tue, 26 Aug 2025 16:18:12 +0000 (18:18 +0200)] 
Don't preserve cache entries if new TTL is smaller than existing

Under certain circumstances, cache entries with equivalent rdataset
might not get replaced.  Previously such entry would get preserved
regardless of the new TTL and expire time on the existing header would
get updated when the expire time was less than the expire time on the
existing header.  Change the logic to preserve the existing header only
if the new expire time is larger than the existing one and replace the
existing cache entry when the new expire time is less than the existing
one.

Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>
(cherry picked from commit 9f7ba584cf46ffbb17c0793d19a334533914aba8)

9 months agoPreserve ZEROTTL attribute when replacing NS RRset
Ondřej Surý [Tue, 26 Aug 2025 15:52:45 +0000 (17:52 +0200)] 
Preserve ZEROTTL attribute when replacing NS RRset

Previously, BIND 9 would drop the ZEROTTL attribute when updating
previously cached NS entry with ZEROTTL attribute set.

Co-authored-by: Jinmei Tatuya <jtatuya@infoblox.com>
(cherry picked from commit 982ca161c26c2e6cd90b19888331bb015dcbae1f)

9 months agoMerge tag 'v9.18.39' into bind-9.18
Andoni Duarte Pintado [Wed, 20 Aug 2025 16:07:53 +0000 (18:07 +0200)] 
Merge tag 'v9.18.39' into bind-9.18

9 months ago[9.18] chg: dev: Update clang-format style with options added in newer versions backport-3769-migrate-zsk-ksk-plit-9.18
Ondřej Surý [Tue, 19 Aug 2025 06:48:06 +0000 (08:48 +0200)] 
[9.18] chg: dev: Update clang-format style with options added in newer versions

Add and apply InsertBraces statement to add missing curly braces around one-line statements and use ControlStatementsExceptControlMacros for SpaceBeforeParens to remove space between foreach macro and the brace, e.g. `FOREACH (x) {` becomes `FOREACH(x) {`.

Backport of MR !10863

Merge branch 'backport-ondrej/update-clang-format-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10865

9 months agoIgnore clang-format reformatting commits
Ondřej Surý [Tue, 19 Aug 2025 05:56:37 +0000 (07:56 +0200)] 
Ignore clang-format reformatting commits

(cherry picked from commit 255f484f4998822fe876fc512b79c502c4beb2d3)

9 months agoUse ControlStatementsExceptControlMacros for SpaceBeforeParens
Ondřej Surý [Tue, 19 Aug 2025 05:14:45 +0000 (07:14 +0200)] 
Use ControlStatementsExceptControlMacros for SpaceBeforeParens

> Put a space before opening parentheses only after control statement
> keywords (for/if/while...) except this option doesn’t apply to ForEach
> and If macros. This is useful in projects where ForEach/If macros are
> treated as function calls instead of control statements.

(cherry picked from commit 42496f3f4a8802c0ba8033a1bcabc8bebf5b0087)

9 months agoAdd and apply InsertBraces statement
Ondřej Surý [Tue, 19 Aug 2025 05:11:16 +0000 (07:11 +0200)] 
Add and apply InsertBraces statement

> Insert braces after control statements (if, else, for, do, and while)
> in C++ unless the control statements are inside macro definitions or
> the braces would enclose preprocessor directives.

(cherry picked from commit d051e1e8f8eea1400191e0fd20641394b7d438be)

9 months ago[9.18] fix: ci: Update DNS Shotgun parameters for an updated dataset
Nicki Křížek [Thu, 14 Aug 2025 21:30:28 +0000 (23:30 +0200)] 
[9.18] fix: ci: Update DNS Shotgun parameters for an updated dataset

We've switched to an updated dataset for shotgun jobs. The change in
underlying traffic caused the more sensitive doh-get (and partially dot)
jobs to overload the resolver, making the jobs unstable and unreliable,
due to an increased number of timeouts.

Readjust the load parameters slightly to avoid exceeding ~2 % of
timeouts in the cold cache scenario to stabilize the job results.

Backport of MR !10841

Merge branch 'backport-nicki/ci-shotgun-load-new-dataset-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10857

9 months agoUpdate DNS Shotgun parameters for an updated dataset
Nicki Křížek [Mon, 11 Aug 2025 13:04:50 +0000 (15:04 +0200)] 
Update DNS Shotgun parameters for an updated dataset

We've switched to an updated dataset for shotgun jobs. The change in
underlying traffic caused the more sensitive doh-get (and partially dot)
jobs to overload the resolver, making the jobs unstable and unreliable,
due to an increased number of timeouts.

Readjust the load parameters slightly to avoid exceeding ~2 % of
timeouts in the cold cache scenario to stabilize the job results.

(cherry picked from commit 338389b3eb410d347dc337fa27371cf808888854)

9 months ago[9.18] fix: ci: Set more lenient respdiff limits
Michal Nowak [Thu, 14 Aug 2025 14:14:33 +0000 (16:14 +0200)] 
[9.18] fix: ci: Set more lenient respdiff limits

After !9950, respdiff's maximal disagreement percentage needs to be
adjusted as target disagreements between the tested version of the
"main" branch and the reference one jumped for the respdiff,
respdiff:asan, and respdiff:tsan jobs from on average 0.07% to 0.16% and
from 0.12% to 0.17% for the respdiff-third-party job.

In !9950, we concluded setting MAX_DISAGREEMENTS_PERCENTAGE to double
the average disagreement percentage works fine in the CI.

(cherry picked from commit 9acc0c8543b6173c35019982bd6677a421204bff)

Backport of MR !10293

Merge branch 'backport-mnowak/more-lenient-respdiff-limits-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10848

9 months agoSet more lenient respdiff limits
Michal Nowak [Wed, 19 Mar 2025 13:02:32 +0000 (14:02 +0100)] 
Set more lenient respdiff limits

After !9950, respdiff's maximal disagreement percentage needs to be
adjusted as target disagreements between the tested version of the
"main" branch and the reference one jumped for the respdiff,
respdiff:asan, and respdiff:tsan jobs from on average 0.07% to 0.16% and
from 0.12% to 0.17% for the respdiff-third-party job.

In !9950, we concluded setting MAX_DISAGREEMENTS_PERCENTAGE to double
the average disagreement percentage works fine in the CI.

(cherry picked from commit 9acc0c8543b6173c35019982bd6677a421204bff)

9 months ago[9.18] fix: dev: Use DNS_RDATACOMMON_INIT to hide branch differences
Mark Andrews [Thu, 14 Aug 2025 13:19:09 +0000 (23:19 +1000)] 
[9.18] fix: dev: Use DNS_RDATACOMMON_INIT to hide branch differences

Initialization of the common members of rdata type structures varies across branches. Standardize it by using the `DNS_RDATACOMMON_INIT` macro for all types, so that new types are more likely to use it, and hence backport more cleanly.

Closes #5467

Merge branch '5467-use-dns_rdatacommon_init-to-hide-branch-differences-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10833

9 months agoUse DNS_RDATACOMMON_INIT to hide branch differences
Mark Andrews [Wed, 6 Aug 2025 07:57:13 +0000 (17:57 +1000)] 
Use DNS_RDATACOMMON_INIT to hide branch differences

Initialization of the common members of rdata type structures varies
across branches. Standardize it by using the DNS_RDATACOMMON_INIT
macro for all types, so that new types are more likely to use it,
and hence backport more cleanly.

9 months agochg: doc: Set up version for BIND 9.18.40
Andoni Duarte [Thu, 14 Aug 2025 11:00:32 +0000 (11:00 +0000)] 
chg: doc: Set up version for BIND 9.18.40

Merge branch 'andoni/set-up-version-for-bind-9.18.40' into 'bind-9.18'

See merge request isc-projects/bind9!10852

9 months agoUpdate BIND version to 9.18.40-dev
Andoni Duarte Pintado [Thu, 14 Aug 2025 10:26:14 +0000 (12:26 +0200)] 
Update BIND version to 9.18.40-dev

9 months agoUpdate BIND version for release v9.18.39
Andoni Duarte Pintado [Wed, 13 Aug 2025 17:08:48 +0000 (19:08 +0200)] 
Update BIND version for release

9 months agonew: doc: Prepare documentation for BIND 9.18.39
Andoni Duarte [Wed, 13 Aug 2025 16:16:54 +0000 (16:16 +0000)] 
new: doc: Prepare documentation for BIND 9.18.39

Merge branch 'andoni/prepare-documentation-for-bind-9.18.39' into 'v9.18.39-release'

See merge request isc-private/bind9!826

9 months agoTweak and reword release notes
Andoni Duarte Pintado [Tue, 12 Aug 2025 17:21:04 +0000 (19:21 +0200)] 
Tweak and reword release notes

9 months agoPrepare release notes for BIND 9.18.39
Andoni Duarte Pintado [Tue, 12 Aug 2025 17:17:47 +0000 (19:17 +0200)] 
Prepare release notes for BIND 9.18.39

9 months agoGenerate changelog for BIND 9.18.39
Andoni Duarte Pintado [Tue, 12 Aug 2025 17:15:02 +0000 (19:15 +0200)] 
Generate changelog for BIND 9.18.39

9 months ago[9.18] fix: test: Fix the .hypothesis directory to bin/tests/system/.hypothesis
Štěpán Balážik [Wed, 6 Aug 2025 12:40:39 +0000 (12:40 +0000)] 
[9.18] fix: test: Fix the .hypothesis directory to bin/tests/system/.hypothesis

Previously the location of the .hypothesis directory would depend on the
current working directory when running pytest.

Set the HYPOTHESIS_STORAGE_DIRECTORY explicitly.

Closes #5424

Backport of MR !10825

Merge branch 'backport-5424-hypothesis-artifacts-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10829

9 months agoFix the .hypothesis directory to bin/tests/system/.hypothesis
Štěpán Balážik [Tue, 5 Aug 2025 14:51:14 +0000 (16:51 +0200)] 
Fix the .hypothesis directory to bin/tests/system/.hypothesis

Previously the location of the .hypothesis directory would depend on the
current working directory when running pytest.

Set the HYPOTHESIS_STORAGE_DIRECTORY explicitly.

(cherry picked from commit a4e74ab8cd51a514424aa01fa96344f0f9f918c2)

9 months ago[9.18] new: usr: Support for parsing the DSYNC record has been added
Mark Andrews [Wed, 6 Aug 2025 05:17:45 +0000 (15:17 +1000)] 
[9.18] new: usr: Support for parsing the DSYNC record has been added

Closes #5440

Backport of MR !10776

Merge branch 'backport-5440-add-dsync-record-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10821

9 months agoAdd tests for DSYNC
Mark Andrews [Sat, 26 Jul 2025 10:27:33 +0000 (12:27 +0200)] 
Add tests for DSYNC

(cherry picked from commit 53c8c5233ae9f7b04837e40e1517b1f0924658e3)

9 months agoAdd support for parsing and displaying DSYNC rdata type
Mark Andrews [Sat, 26 Jul 2025 04:21:34 +0000 (06:21 +0200)] 
Add support for parsing and displaying DSYNC rdata type

(cherry picked from commit c47615094e0b945cae14a81acc38baed21c6cee6)

9 months agoAdd support for parsing DSYNC scheme mnemonics
Mark Andrews [Sat, 26 Jul 2025 04:17:20 +0000 (06:17 +0200)] 
Add support for parsing DSYNC scheme mnemonics

Adds dns_dsyncscheme_fromtext, dns_dsyncscheme_totext and
dns_dsyncscheme_format.  Adds type dns_dsyncscheme_t.

(cherry picked from commit 6e1311c624d15e6c4d0184deea3bb670e8a5785d)

9 months ago[9.18] fix: test: Require explicit import of isctest.name in system tests
Petr Špaček [Tue, 5 Aug 2025 12:56:36 +0000 (12:56 +0000)] 
[9.18] fix: test: Require explicit import of isctest.name in system tests

Since the isctest.name module uses `pytest.importorskip()` to check for
dnspython version, it can't be imported automatically on `import
isctest`, because that is used in conftest.py, causing an error during
test setup.

Note that this behavior only manifested on AlmaLinux 8, so perhaps newer
pytest versions are able to handle this edge case more gracefully.

This doesn't affect 9.20+, as this issue was introduced as an erroneous
conflict resolution during a 9.18 backport.

Merge branch 'nicki/fix-isctest-name-import-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10822

9 months agoRequire explicit import of isctest.name in system tests
Nicki Křížek [Tue, 5 Aug 2025 09:10:24 +0000 (11:10 +0200)] 
Require explicit import of isctest.name in system tests

Since the isctest.name module uses `pytest.importorskip()` to check for
dnspython version, it can't be imported automatically on `import
isctest`, because that is used in conftest.py, causing an error during
test setup.

Note that this behavior only manifested on AlmaLinux 8, so perhaps newer
pytest versions are able to handle this edge case more gracefully.

This doesn't affect 9.20+, as this issue was introduced as an erroneous
conflict resolution during a 9.18 backport.

10 months agofix: usr: Rescan the interfaces again when reconfiguring the server
Ondřej Surý [Mon, 4 Aug 2025 09:24:44 +0000 (11:24 +0200)] 
fix: usr: Rescan the interfaces again when reconfiguring the server

On FreeBSD, the server would not listen on the configured 'localhost'
interfaces immediately, but only after the 'interface-interval' period
has passed.  After the fix for default interface-interval was merged in
!10281, this means the server would listen on the localhost after 60
minutes.

Rescan the interfaces immediately after configuring the
interface-interval value to start listening on the 'localhost' interface
immediately.

Merge branch 'ondrej/rescan-the-interface-on-time-0' into 'bind-9.18'

See merge request isc-projects/bind9!10758

10 months agoRescan the interfaces again when reconfiguring the server
Ondřej Surý [Tue, 22 Jul 2025 12:59:25 +0000 (14:59 +0200)] 
Rescan the interfaces again when reconfiguring the server

On FreeBSD, the server would not listen on the configured 'localhost'
interfaces immediately, but only after the 'interface-interval' period
has passed.  After the fix for default interface-interval was merged in
!10281, this means the server would listen on the localhost after 60
minutes.

Rescan the interfaces immediately after configuring the
interface-interval value to start listening on the 'localhost' interface
immediately.

10 months ago[9.18] fix: usr: Prevent spurious validation failures
Mark Andrews [Fri, 1 Aug 2025 14:29:52 +0000 (00:29 +1000)] 
[9.18] fix: usr: Prevent spurious validation failures

Under rare circumstances, validation could fail if multiple clients simultaneously iterated the same set of signatures.

References #3014

Backport of MR !5578

Merge branch 'backport-3014-validator-c-check_signer-fails-to-call-dns_rdataset_clone-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10816

10 months agovalidator.c:check_signer now clones val->event->sigrdataset
Mark Andrews [Wed, 17 Nov 2021 02:09:03 +0000 (13:09 +1100)] 
validator.c:check_signer now clones val->event->sigrdataset

Spurious validation failures were traced back to check_signer looping
over val->event->sigrdataset directly.  Cloning val->event->sigrdataset
prevents check_signer from interacting with callers that are also
looping over val->event->sigrdataset.

(cherry picked from commit 8aa130f253b11e61d87dadea576e2c1430ce8dcc)

10 months ago[9.18] chg: ci: Log packages, test AlmaLinux 9
Petr Špaček [Thu, 31 Jul 2025 12:22:24 +0000 (12:22 +0000)] 
[9.18] chg: ci: Log packages, test AlmaLinux 9

Backport of MR !10799

Merge branch 'backport-pspacek/ci-platforms-and-logging-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10807

10 months agoLog all installed system packages and Python libraries before build
Petr Špaček [Wed, 30 Jul 2025 12:12:51 +0000 (14:12 +0200)] 
Log all installed system packages and Python libraries before build

(cherry picked from commit e702e091432d192c56d8e62d03f7a8334cd24c1e)

10 months agoRun MR pipelines also on AlmaLinux 9
Petr Špaček [Wed, 30 Jul 2025 12:03:40 +0000 (14:03 +0200)] 
Run MR pipelines also on AlmaLinux 9

Turns out Python version there is older than elsewhere.

(cherry picked from commit 8c71989a456432a04c3c7cd6872cda721517705c)

10 months ago[9.18] fix: ci: Revert "Capture scripts for Coverity Scan analysis"
Michal Nowak [Thu, 31 Jul 2025 11:23:39 +0000 (13:23 +0200)] 
[9.18] fix: ci: Revert "Capture scripts for Coverity Scan analysis"

This reverts commit b4a2674d98902983e8096c99b747343482d30673.

The --fs-capture-search option is no more. The ability to analyse Python
scripts in Coverity turned out to be questionable anyways.

Closes #5456

Backport of MR !10808

Merge branch 'backport-5456-coverity-scan-drop-fs-capture-search-option-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10811

10 months agoRevert "Capture scripts for Coverity Scan analysis"
Michal Nowak [Thu, 31 Jul 2025 09:37:27 +0000 (11:37 +0200)] 
Revert "Capture scripts for Coverity Scan analysis"

This reverts commit e1a463e98d5aeddc55024b9a1c2d0943b6a39bee.

The --fs-capture-search option is no more. The ability to analyse Python
scripts in Coverity turned out to be questionable anyways.

(cherry picked from commit 310884c259fff325e9051ad123fe96600b848903)

10 months ago[9.18] Fix system test compatibility with old Python
Petr Špaček [Wed, 30 Jul 2025 14:39:27 +0000 (14:39 +0000)] 
[9.18] Fix system test compatibility with old Python

Backport of MR !10797

Merge branch 'backport-pspacek/test-compatibility-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10803

10 months agoFix compatibility with Python < 3.10
Petr Špaček [Wed, 30 Jul 2025 08:10:59 +0000 (10:10 +0200)] 
Fix compatibility with Python < 3.10

Dataclass kw_only argument was added only in Python 3.10 but EL9 image
has only 3.9.21.

(cherry picked from commit b0c7f8b598d8a37fa7560d0d1b6c87e429b2446a)

10 months agoFix minimal dnspython version test
Petr Špaček [Wed, 30 Jul 2025 07:49:27 +0000 (09:49 +0200)] 
Fix minimal dnspython version test

Wrong version number was uncovered by Ubuntu 22.04 Jammy which actually
has dnspython 2.1.0.

(cherry picked from commit 6ae224fc9c7ed96f1e06ad8f929b20ea6ce32f25)

10 months ago[9.18] new: test: add helper functions to isctest
Evan Hunt [Wed, 30 Jul 2025 00:03:00 +0000 (00:03 +0000)] 
[9.18] new: test: add helper functions to isctest

added some helper functions in isctest to reduce code repetition
in dnssec-related tests:

- isctest.check.adflag() - checks that a response contains AD=1
- isctest.check.noadflag() - checks that a response contains AD=0

- isctest.check.rdflag() - checks that a response contains RD=1
- isctest.check.nordflag() - checks that a response contains RD=0

- isctest.check.raflag() - checks that a response contains RA=1
- isctest.check.noraflag() - checks that a response contains RA=0

- isctest.check.rr_count_eq() - checks the number of RRsset in a section

- isctest.check.same_data() - checks that two message have the
                              same rcode and data
- isctest.check.same_answer() - checks that two message have the same
                                rcode and answer

- isctest.query.create() - a wrapper for dns.message.make_query() that
                           creates a query message similar to dig +dnssec

Backport of MR !10760

Merge branch 'backport-each-isctest-helpers-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!10794

10 months agoUse isctest.query.create across system tests
Evan Hunt [Tue, 29 Jul 2025 23:08:44 +0000 (16:08 -0700)] 
Use isctest.query.create across system tests

Rather than using the dnspython's facilities and defaults to create the
queries, use the isctest.query.create function in all the cases that
don't require special handling to have consistent defaults.

(cherry picked from commit 64143ea077c3ddb48f808af2d0b05e21209cd268)

10 months agoAdd RA flag checks to isctest.check
Evan Hunt [Tue, 29 Jul 2025 23:04:02 +0000 (16:04 -0700)] 
Add RA flag checks to isctest.check

(cherry picked from commit f2a4c5dcb0556e109f7e77807c98564450b4c22a)

10 months agoRefactor and move query helper to isctest.query.create
Evan Hunt [Tue, 29 Jul 2025 23:03:55 +0000 (16:03 -0700)] 
Refactor and move query helper to isctest.query.create

Make the query helper function more universal and reusable across our
system tests -- default to using EDNS and sending AD=1.

(cherry picked from commit 989e64b9b0e2a65b8b4b0f2bc75b1f2e2a327272)

10 months agoUnify RR counting in isctest.check helper
Nicki Křížek [Fri, 25 Jul 2025 09:09:30 +0000 (11:09 +0200)] 
Unify RR counting in isctest.check helper

Use a common function to count the number of RRs in any section of the
DNS message. For the ADDITIONAL section, stick with the dnspython
convention of not including OPT and TSIG.

(cherry picked from commit efd60348b9280383fe5d50042a94ea363390356d)

10 months agoRefactor isctest.check.section_equal comparison
Nicki Křížek [Thu, 10 Jul 2025 14:23:48 +0000 (16:23 +0200)] 
Refactor isctest.check.section_equal comparison

Use the same logic as dnspython uses in dns.message.Message.

(cherry picked from commit b24dd20e5a8efa2ba4c277e0c48fa08ebea96702)

10 months agoadd helper functions to isctest
Evan Hunt [Thu, 26 Jun 2025 22:19:45 +0000 (15:19 -0700)] 
add helper functions to isctest

added some helper functions in isctest to reduce code repetition
in dnssec-related tests:

- isctest.check.adflag() - checks that a response contains AD=1
- isctest.check.noadflag() - checks that a response contains AD=0

- isctest.check.rdflag() - checks that a response contains RD=1
- isctest.check.nordflag() - checks that a response contains RD=0

- isctest.check.answer_count_eq() - checks the answer count is correct
- isctest.check.additional_count_eq() - same for authority count
- isctest.check.authority_count_eq() - same for additional count

- isctest.check.same_data() - check that two message have the
                              same rcode and data
- isctest.check.same_answer() - check that two message have the same
                                rcode and answer

- isctest.dnssec.msg() - a wrapper for dns.message.make_query() that
                         creates a query message similar to dig +dnssec:
                         use_edns=True, want_dnssec=True,
                         and flags are set to (RD|AD) by default, but
                         options exist to disable AD or enable CD.
                         (to generate non-DNSSEC queries, use
                         message.make_query() directly.)

(cherry picked from commit b69097f139154ca0d2177f35632400200d220bdc)