Skip to content

Commit d453c71

Browse files
authored
Merge pull request #1483 from zonemaster/develop
Merge develop branch into master (zonemaster-engine)
2 parents 03ba7cd + 258b6d2 commit d453c71

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+7109
-5735
lines changed

Changes

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
11
Release history for Zonemaster component Zonemaster-Engine
22

3+
4+
v8.1.0 2025-12-17 (part of Zonemaster v2025.2 release)
5+
6+
[Deprecation]
7+
- Ignores and deprecates some profile properties. To be removed in
8+
release v2026.1 (#1472)
9+
10+
[Features]
11+
- Updates test case implementations for Zone11, DNSSEC07, DNSSEC01, DNSSEC05,
12+
and Address01 (#1477, #1476, #1474, #1473, #1453)
13+
- Implements new MethodV2 method to give more information
14+
in relevant messages (#1475)
15+
16+
[Fixes]
17+
- Fixes error in MethodsV2 (#1470)
18+
- Updates French translation (#1464, #1482)
19+
20+
321
v8.0.0 2025-06-26 (part of Zonemaster v2025.1 release)
422

523
[Breaking changes]

MANIFEST

Lines changed: 60 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,47 @@ Changes
22
CONTRIBUTING.md
33
docs/Implementing_Tests.pod
44
docs/Translation.pod
5-
inc/Module/Install.pm
65
inc/Module/Install/Base.pm
76
inc/Module/Install/Can.pm
87
inc/Module/Install/External.pm
98
inc/Module/Install/Fetch.pm
109
inc/Module/Install/Makefile.pm
1110
inc/Module/Install/Metadata.pm
11+
inc/Module/Install.pm
1212
inc/Module/Install/Share.pm
1313
inc/Module/Install/Win32.pm
1414
inc/Module/Install/WriteAll.pm
1515
KNOWN_ISSUES
16-
lib/Zonemaster/Engine.pm
1716
lib/Zonemaster/Engine/ASNLookup.pm
1817
lib/Zonemaster/Engine/Constants.pm
1918
lib/Zonemaster/Engine/DNSName.pm
2019
lib/Zonemaster/Engine/Exception.pm
21-
lib/Zonemaster/Engine/Logger.pm
2220
lib/Zonemaster/Engine/Logger/Entry.pm
23-
lib/Zonemaster/Engine/Nameserver.pm
24-
lib/Zonemaster/Engine/Nameserver/Cache.pm
21+
lib/Zonemaster/Engine/Logger.pm
2522
lib/Zonemaster/Engine/Nameserver/Cache/LocalCache.pm
23+
lib/Zonemaster/Engine/Nameserver/Cache.pm
2624
lib/Zonemaster/Engine/Nameserver/Cache/RedisCache.pm
27-
lib/Zonemaster/Engine/Normalization.pm
25+
lib/Zonemaster/Engine/Nameserver.pm
2826
lib/Zonemaster/Engine/Normalization/Error.pm
27+
lib/Zonemaster/Engine/Normalization.pm
2928
lib/Zonemaster/Engine/NSArray.pm
3029
lib/Zonemaster/Engine/Overview.pod
3130
lib/Zonemaster/Engine/Packet.pm
31+
lib/Zonemaster/Engine.pm
3232
lib/Zonemaster/Engine/Profile.pm
3333
lib/Zonemaster/Engine/Recursor.pm
34-
lib/Zonemaster/Engine/Test.pm
3534
lib/Zonemaster/Engine/Test/Address.pm
3635
lib/Zonemaster/Engine/Test/Basic.pm
3736
lib/Zonemaster/Engine/Test/Connectivity.pm
3837
lib/Zonemaster/Engine/Test/Consistency.pm
3938
lib/Zonemaster/Engine/Test/Delegation.pm
4039
lib/Zonemaster/Engine/Test/DNSSEC.pm
40+
lib/Zonemaster/Engine/TestMethods.pm
41+
lib/Zonemaster/Engine/TestMethodsV2.pm
4142
lib/Zonemaster/Engine/Test/Nameserver.pm
43+
lib/Zonemaster/Engine/Test.pm
4244
lib/Zonemaster/Engine/Test/Syntax.pm
4345
lib/Zonemaster/Engine/Test/Zone.pm
44-
lib/Zonemaster/Engine/TestMethods.pm
45-
lib/Zonemaster/Engine/TestMethodsV2.pm
4646
lib/Zonemaster/Engine/Translator.pm
4747
lib/Zonemaster/Engine/Util.pm
4848
lib/Zonemaster/Engine/Validation.pm
@@ -66,9 +66,9 @@ share/locale/sv/LC_MESSAGES/Zonemaster-Engine.mo
6666
share/Makefile
6767
share/modules.txt
6868
share/named.root
69+
share/profile_additional_properties.json
6970
share/profile.json
7071
share/profile.yaml
71-
share/profile_additional_properties.json
7272
t/00-load.t
7373
t/asn.data
7474
t/asn.t
@@ -86,26 +86,24 @@ t/old-bugs.t
8686
t/packet.t
8787
t/pod-coverage.t
8888
t/pod.t
89-
t/profiles.t
9089
t/profiles/policy.json
9190
t/profiles/profile.json
91+
t/profiles.t
9292
t/profiles/Test-address-all.json
93-
t/profiles/Test-all-levels.json
9493
t/profiles/Test-all.json
94+
t/profiles/Test-all-levels.json
9595
t/profiles/Test-basic-all.json
96-
t/profiles/Test-connectivity-all.json
9796
t/profiles/Test-connectivity01-only.json
9897
t/profiles/Test-connectivity02-only.json
9998
t/profiles/Test-connectivity03-only.json
10099
t/profiles/Test-connectivity04-only.json
101-
t/profiles/Test-consistency-all.json
100+
t/profiles/Test-connectivity-all.json
102101
t/profiles/Test-consistency01-only.json
103102
t/profiles/Test-consistency02-only.json
104103
t/profiles/Test-consistency03-only.json
105104
t/profiles/Test-consistency04-only.json
105+
t/profiles/Test-consistency-all.json
106106
t/profiles/Test-delegation-all.json
107-
t/profiles/Test-dnssec-all.json
108-
t/profiles/Test-dnssec-more-all.json
109107
t/profiles/Test-dnssec01-only.json
110108
t/profiles/Test-dnssec02-only.json
111109
t/profiles/Test-dnssec03-only.json
@@ -122,7 +120,8 @@ t/profiles/Test-dnssec14-only.json
122120
t/profiles/Test-dnssec15-only.json
123121
t/profiles/Test-dnssec17-only.json
124122
t/profiles/Test-dnssec18-only.json
125-
t/profiles/Test-nameserver-all.json
123+
t/profiles/Test-dnssec-all.json
124+
t/profiles/Test-dnssec-more-all.json
126125
t/profiles/Test-nameserver01-only.json
127126
t/profiles/Test-nameserver02-only.json
128127
t/profiles/Test-nameserver03-only.json
@@ -132,7 +131,7 @@ t/profiles/Test-nameserver06-only.json
132131
t/profiles/Test-nameserver07-only.json
133132
t/profiles/Test-nameserver08-only.json
134133
t/profiles/Test-nameserver09-only.json
135-
t/profiles/Test-syntax-all.json
134+
t/profiles/Test-nameserver-all.json
136135
t/profiles/Test-syntax01-only.json
137136
t/profiles/Test-syntax02-only.json
138137
t/profiles/Test-syntax03-only.json
@@ -141,75 +140,61 @@ t/profiles/Test-syntax05-only.json
141140
t/profiles/Test-syntax06-only.json
142141
t/profiles/Test-syntax07-only.json
143142
t/profiles/Test-syntax08-only.json
143+
t/profiles/Test-syntax-all.json
144144
t/profiles/Test-zone-all.json
145-
t/recursor.data
146-
t/recursor.t
147145
t/recursor-A.data
148146
t/recursor-A.t
149-
t/Test-address.data
150-
t/Test-address.t
147+
t/recursor.data
148+
t/recursor.t
149+
t/Test-address01.data
150+
t/Test-address01.t
151151
t/Test-address03.data
152152
t/Test-address03.t
153-
t/Test-basic.data
154-
t/Test-basic.t
153+
t/Test-address.data
154+
t/Test-address.t
155155
t/Test-basic01.data
156156
t/Test-basic01.t
157157
t/Test-basic02.data
158158
t/Test-basic02.t
159-
t/Test-connectivity.data
160-
t/Test-connectivity.t
159+
t/Test-basic.data
160+
t/Test-basic.t
161161
t/Test-connectivity03.data
162162
t/Test-connectivity03.t
163163
t/Test-connectivity04.data
164164
t/Test-connectivity04.t
165-
t/Test-connectivity04-A.data
166-
t/Test-connectivity04-A.t
167-
t/Test-consistency.data
168-
t/Test-consistency.t
165+
t/Test-connectivity.data
166+
t/Test-connectivity.t
169167
t/Test-consistency05.data
170168
t/Test-consistency05.t
171169
t/Test-consistency06.data
172170
t/Test-consistency06.t
173-
t/Test-delegation.data
174-
t/Test-delegation.t
171+
t/Test-consistency.data
172+
t/Test-consistency.t
173+
t/Test.data
175174
t/Test-delegation01.data
176175
t/Test-delegation01.t
177176
t/Test-delegation02.data
178177
t/Test-delegation02.t
179178
t/Test-delegation03.data
180179
t/Test-delegation03.t
181-
t/Test-dnssec-more.data
182-
t/Test-dnssec-more.t
183-
t/Test-dnssec.data
184-
t/Test-dnssec.t
180+
t/Test-delegation.data
181+
t/Test-delegation.t
182+
t/Test-dnssec01.data
183+
t/Test-dnssec01.t
185184
t/Test-dnssec03.data
186185
t/Test-dnssec03.t
187-
t/Test-dnssec05-A.data
188-
t/Test-dnssec05-A.t
189-
t/Test-dnssec05-B.data
190-
t/Test-dnssec05-B.t
191-
t/Test-dnssec05-C.data
192-
t/Test-dnssec05-C.t
193-
t/Test-dnssec05-D.data
194-
t/Test-dnssec05-D.t
195-
t/Test-dnssec05-E.data
196-
t/Test-dnssec05-E.t
197-
t/Test-dnssec05-F.data
198-
t/Test-dnssec05-F.t
199-
t/Test-dnssec05-G.data
200-
t/Test-dnssec05-G.t
201-
t/Test-dnssec05-H.data
202-
t/Test-dnssec05-H.t
203-
t/Test-dnssec05-I.data
204-
t/Test-dnssec05-I.t
205-
t/Test-dnssec05-J.data
206-
t/Test-dnssec05-J.t
186+
t/Test-dnssec05.data
187+
t/Test-dnssec05.t
188+
t/Test-dnssec07.data
189+
t/Test-dnssec07.t
207190
t/Test-dnssec10.data
208191
t/Test-dnssec10.t
209192
t/Test-dnssec16.data
210193
t/Test-dnssec16.t
211-
t/Test-nameserver.data
212-
t/Test-nameserver.t
194+
t/Test-dnssec.data
195+
t/Test-dnssec-more.data
196+
t/Test-dnssec-more.t
197+
t/Test-dnssec.t
213198
t/Test-nameserver01-A.data
214199
t/Test-nameserver01-A.t
215200
t/Test-nameserver01-B.data
@@ -220,8 +205,8 @@ t/Test-nameserver01-D.data
220205
t/Test-nameserver01-D.t
221206
t/Test-nameserver15.data
222207
t/Test-nameserver15.t
223-
t/Test-syntax.data
224-
t/Test-syntax.t
208+
t/Test-nameserver.data
209+
t/Test-nameserver.t
225210
t/Test-syntax06-A.data
226211
t/Test-syntax06-A.t
227212
t/Test-syntax06-B.data
@@ -244,8 +229,12 @@ t/Test-syntax06-K.data
244229
t/Test-syntax06-K.t
245230
t/Test-syntax06-L.data
246231
t/Test-syntax06-L.t
247-
t/Test-zone.data
248-
t/Test-zone.t
232+
t/Test-syntax.data
233+
t/Test-syntax.t
234+
t/Test.t
235+
t/TestUtil/DSL/Compiler.pm
236+
t/TestUtil/DSL.pm
237+
t/TestUtil.pm
249238
t/Test-zone01-A.data
250239
t/Test-zone01-A.t
251240
t/Test-zone01-B.data
@@ -254,17 +243,22 @@ t/Test-zone09-1.data
254243
t/Test-zone09-1.t
255244
t/Test-zone09.data
256245
t/Test-zone09.t
246+
t/Test-zone11-1.data
247+
t/Test-zone11-1.t
248+
t/Test-zone11-2.data
249+
t/Test-zone11-2.t
250+
t/Test-zone11-3.data
251+
t/Test-zone11-3.t
257252
t/Test-zone11.data
258253
t/Test-zone11.t
259-
t/Test.data
260-
t/Test.t
261-
t/TestUtil.pm
254+
t/Test-zone.data
255+
t/Test-zone.t
262256
t/translator.t
263257
t/undelegated.data
264258
t/undelegated.t
265259
t/util.t
266260
t/validation.t
267261
t/zone.data
268-
t/zone.t
269262
t/zonemaster.data
270263
t/zonemaster.t
264+
t/zone.t

Makefile.PL

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ requires 'Net::IP::XS' => 0.21;
3434
requires 'Readonly' => 0;
3535
requires 'Text::CSV' => 0;
3636
requires 'YAML::XS' => 0;
37-
requires 'Zonemaster::LDNS' => 5.000000; # For v5.0.0
37+
requires 'Zonemaster::LDNS' => 5.000001; # For v5.0.1
3838

3939
test_requires 'Locale::PO' => 0;
4040
test_requires 'Pod::Coverage' => 0;

lib/Zonemaster/Engine.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package Zonemaster::Engine;
33
use v5.16.0;
44
use warnings;
55

6-
use version; our $VERSION = version->declare("v8.0.0");
6+
use version; our $VERSION = version->declare("v8.1.0");
77

88
BEGIN {
99
# Locale::TextDomain (<= 1.20) doesn't know about File::ShareDir so give a helping hand.

lib/Zonemaster/Engine/Constants.pm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ Internal method that is used to extract IP blocks details from IANA files for a
244244
245245
Takes an integer (IP version).
246246
247-
Returns a list of hashes - the keys of which are C<ip> (L<Net::IP::XS> object), C<name> (string) and C<reference> (string).
247+
Returns a list of hashes - the keys of which are C<ip> (L<Net::IP::XS> object), C<name> (string), C<reference> (string)
248+
and C<globally_reachable> (string).
248249
249250
=back
250251
@@ -279,7 +280,7 @@ sub _extract_iana_ip_blocks {
279280
$address_data =~ s/[ ]+//smx;
280281
foreach my $address_item ( split /,/smx, $address_data ) {
281282
$address_item =~ s/(\A.+\/\d+).*\z/$1/smx;
282-
push @list, { ip => Net::IP::XS->new( $address_item ), name => $fields->[1], reference => $fields->[2] };
283+
push @list, { ip => Net::IP::XS->new( $address_item ), name => $fields->[1], reference => $fields->[2], globally_reachable => $fields->[8] };
283284
}
284285
}
285286
close $data or croak "Cannot close '${data_location}' : ${OS_ERROR}";

lib/Zonemaster/Engine/Nameserver.pm

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,6 @@ sub _build_dns {
171171

172172
$res->retry( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} ) );
173173
$res->retrans( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} ) );
174-
$res->usevc( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.usevc} ) );
175-
$res->igntc( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.igntc} ) );
176-
$res->recurse( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.recurse} ) );
177174
$res->debug( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.debug} ) );
178175
$res->timeout( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} ) );
179176

@@ -225,10 +222,10 @@ sub query {
225222
}
226223
);
227224

228-
my $class = $href->{class} // 'IN';
229-
my $dnssec = $href->{dnssec} // 0;
230-
my $usevc = $href->{usevc} // $profile->get( q{resolver.defaults.usevc} );
231-
my $recurse = $href->{recurse} // $profile->get( q{resolver.defaults.recurse} );
225+
my $class = $href->{class} // 'IN';
226+
my $dnssec = $href->{dnssec} // 0;
227+
my $usevc = $href->{usevc} // 0;
228+
my $recurse = $href->{recurse} // 0;
232229

233230
if ( exists $href->{edns_details} and exists $href->{edns_details}{do} ) {
234231
$dnssec = $href->{edns_details}{do};
@@ -401,14 +398,17 @@ sub _query {
401398
);
402399

403400
# Make sure we have a value for each flag
404-
$flags{q{retry}} = $href->{q{retry}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} );
405-
$flags{q{retrans}} = $href->{q{retrans}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} );
406-
$flags{q{dnssec}} = $href->{q{dnssec}} // 0;
407-
$flags{q{usevc}} = $href->{q{usevc}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.usevc} );
408-
$flags{q{igntc}} = $href->{q{igntc}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.igntc} );
409-
$flags{q{fallback}} = $href->{q{fallback}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.fallback} );
410-
$flags{q{recurse}} = $href->{q{recurse}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.recurse} );
411-
$flags{q{timeout}} = $href->{q{timeout}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} );
401+
$flags{q{retry}} = $href->{q{retry}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} );
402+
$flags{q{retrans}} = $href->{q{retrans}}
403+
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} );
404+
$flags{q{dnssec}} = $href->{q{dnssec}} // 0;
405+
$flags{q{usevc}} = $href->{q{usevc}} // 0;
406+
$flags{q{igntc}} = $href->{q{igntc}} // 0;
407+
$flags{q{fallback}} = $href->{q{fallback}}
408+
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.fallback} );
409+
$flags{q{recurse}} = $href->{q{recurse}} // 0;
410+
$flags{q{timeout}} = $href->{q{timeout}}
411+
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} );
412412

413413
if ( exists $href->{edns_details} ) {
414414
$flags{q{dnssec}} = $href->{edns_details}{do} // $flags{q{dnssec}};

0 commit comments

Comments
 (0)