Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-Net-CIDR-Set for
openSUSE:Factory checked in at 2026-06-03 20:27:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-CIDR-Set (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-CIDR-Set.new.1937 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-CIDR-Set"
Wed Jun 3 20:27:45 2026 rev:11 rq:1356942 version:0.210.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-CIDR-Set/perl-Net-CIDR-Set.changes
2026-05-18 17:48:57.050618528 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Net-CIDR-Set.new.1937/perl-Net-CIDR-Set.changes
2026-06-03 20:29:58.115985126 +0200
@@ -1,0 +2,18 @@
+Wed Jun 3 10:07:49 UTC 2026 - Tina Müller <[email protected]>
+
+- updated to 0.210.0 (0.21)
+ see /usr/share/doc/packages/perl-Net-CIDR-Set/Changes
+
+ 0.21 2026-06-02 17:45:44+01:00 Europe/London
+ [Security]
+ - Improved strictness of IP address (CVE-2026-49940) and netmask parsing
(CVE-2026-49942).
+ - Removed potential infinite loops when attempting to parse IP addresses
(CVE-2026-49941).
+ [Documentation]
+ - Removed CONTRIBUTING.md until policies about AI are updated.
+ [Tests]
+ - Changed tests to use Test::Exception.
+ [Toolchain]
+ - Added doap.xml to the distibution.
+ - Added automation-policy.json to the distribution.
+
+-------------------------------------------------------------------
Old:
----
Net-CIDR-Set-0.20.tar.gz
New:
----
Net-CIDR-Set-0.21.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-CIDR-Set.spec ++++++
--- /var/tmp/diff_new_pack.7vUgOV/_old 2026-06-03 20:29:59.084025216 +0200
+++ /var/tmp/diff_new_pack.7vUgOV/_new 2026-06-03 20:29:59.092025548 +0200
@@ -18,10 +18,10 @@
%define cpan_name Net-CIDR-Set
Name: perl-Net-CIDR-Set
-Version: 0.200.0
+Version: 0.210.0
Release: 0
-# 0.20 -> normalize -> 0.200.0
-%define cpan_version 0.20
+# 0.21 -> normalize -> 0.210.0
+%define cpan_version 0.21
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: Manipulate sets of IP addresses
URL: https://metacpan.org/release/%{cpan_name}
@@ -32,6 +32,8 @@
BuildRequires: perl-macros
BuildRequires: perl(ExtUtils::MakeMaker) >= 7.22
BuildRequires: perl(Module::Metadata) >= 1.000015
+BuildRequires: perl(Test::Exception)
+BuildRequires: perl(Test::More) >= 0.96
BuildRequires: perl(namespace::autoclean)
Requires: perl(namespace::autoclean)
Provides: perl(Net::CIDR::Set) = %{version}
@@ -72,6 +74,6 @@
%perl_gen_filelist
%files -f %{name}.files
-%doc Changes CONTRIBUTING.md README.md SECURITY.md
+%doc Changes doap.xml README.md SECURITY.md
%license LICENSE
++++++ Net-CIDR-Set-0.20.tar.gz -> Net-CIDR-Set-0.21.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/CONTRIBUTING.md
new/Net-CIDR-Set-0.21/CONTRIBUTING.md
--- old/Net-CIDR-Set-0.20/CONTRIBUTING.md 2026-04-27 20:02:29.000000000
+0200
+++ new/Net-CIDR-Set-0.21/CONTRIBUTING.md 1970-01-01 01:00:00.000000000
+0100
@@ -1,188 +0,0 @@
-# HOW TO CONTRIBUTE
-
-Thank you for considering contributing to Net-CIDR-Set.
-
-There are multiple ways that you can help with this project.
-
-Any contributions (bug reports, feature requests, security issues, or patches)
-must cite any tools which generated the reports or code, and any software that
-the code is based on.
-
-Contributions must not include content generated by large language models
-(LLMs) or other probabilistic tools, including but not limited to Anthropic,
-Copilot or ChatGPT. This policy covers code, documentation, pull requests,
-issues, comments, and any other contributions to this project.
-
-See [AI Contributions](#ai-contributions) below for more more details.
-
-## Report Bugs and Submit Feature Requests
-
-Please report any bugs or feature requests on the bugtracker website
-<https://rt.cpan.org/Dist/Display.html?Queue=Net-CIDR-Set>.
-
-When submitting a bug or request, please include a test-file or a patch to an
-existing test-file that illustrates the bug or desired feature.
-
-Using the bugtracker is preferable to emailing the maintainer, as identified
-in the AUTHOR section of the POD. But if you are unable to use the
-bugtracker, then you may email the current maintainer,
-Robert Rothenberg <[email protected]>.
-
-### Reporting Security Vulnerabilities
-
-Security issues should not be reported on the bugtracker website. Please see
-`SECURITY.md` for instructions how to report security vulnerabilities.
-
-## Submitting Patches
-
-The source code is available via GitHub at
-<https://github.com/robrwo/perl-Net-CIDR-Set>.
-
-Patches should be based on a recent fork of the `main` branch.
-
-This distribution is managed with [Dist::Zilla](https://dzil.org/). This
-means that many of the usual files you might expect are not in the repository,
-but are generated at release time, as is much of the documentation. Some
-generated files are kept in the repository as a convenience
-(e.g. `Makefile.PL` or `cpanfile`).
-
-Generally, **you do not need Dist::Zilla to contribute patches**. You do need
-Dist::Zilla to create a tarball.
-See [Installing and using Dist::Zilla](#installing-and-using-distzilla) below
-for guidance.
-
-### Getting dependencies
-
-If you have [App::cpanminus](https://metacpan.org/pod/App::cpanminus) 1.6 or
-later installed, you can use `cpanm` to satisfy dependencies like this:
-
- $ cpanm --installdeps .
-
-Otherwise, look for either a `Makefile.PL` or `cpanfile` file for a list of
-dependencies to satisfy.
-
-### Running tests
-
-You can run tests directly using the `prove` tool:
-
- $ prove -l
- $ prove -lv t/some_test_file.t
-
-For most cases, `prove` is entirely sufficient to test any patches you have.
-
-### Code style and tidying
-
-Please try to match any existing coding style. If there is a `.perltidyrc`
-file, please install [Perl::Tidy](https://metacpan.org/pod/Perl::Tidy) and use
-`perltidy` before submitting patches.
-
-If there is a `tidyall.ini` file, you can also install
-[Code::TidyAll](https://metacpan.org/pod/Code::TidyAll) and run `tidyall` on a
-file or `tidyall -a` to tidy all files.
-
-### Patching documentation
-
-Much of the documentation POD is generated at release time. Some is generated
-boilerplate; other documentation is built from
-[Pod::Weaver](https://metacpan.org/pod/Pod::Weaver) pseudo-POD directives in
-the source like '=attr', '=method' or '=export'.
-
-If you would like to submit a documentation edit, please limit yourself to the
-documentation you see.
-
-If you see typos or documentation issues in the generated docs, please email
-the maintainers or open a bug ticket instead of patching.
-
-### Where to send patches and pull requests
-
-If you found this distribution on GitHub, sending a pull-request is the best
way to contribute.
-
-If a pull-request isn't possible, a bug ticket with a patch file is the next
best option.
-
-As a last resort, an email to the maintainer is acceptable.
-
-## Installing and using Dist::Zilla
-
-Dist::Zilla is not required for contributing, but if you'd like to learn more,
-this section will get you up to speed.
-
-Dist::Zilla is a very powerful authoring tool, optimised for maintaining a
-large number of distributions with a high degree of automation, but it has a
-large dependency chain, a bit of a learning curve and requires a number of
-author-specific plugins.
-
-To install it from CPAN, I recommend one of the following approaches for the
-quickest installation:
-
- # using CPAN.pm, but bypassing non-functional pod tests
- $ cpan TAP::Harness::Restricted
- $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan
Dist::Zilla
-
- # using cpanm, bypassing *all* tests
- $ cpanm -n Dist::Zilla
-
-In either case, it's probably going to take several minutes. Go for a walk,
-go get a cup of your favourite beverage, take a bathroom break, or whatever.
-When you get back, Dist::Zilla should be ready for you.
-
-Then you need to install any plugins specific to this distribution:
-
- $ cpan `dzil authordeps`
- $ dzil authordeps | cpanm
-
-Once installed, here are some dzil commands you might try:
-
- $ dzil build
- $ dzil test
-
-You can learn more about Dist::Zilla at <http://dzil.org>.
-
-## AI Contributions
-
-Contributions must not include content generated by large language models
-(LLMs) or other probabilistic tools, including but not limited to Anthropic,
-Copilot or ChatGPT. This policy covers code, documentation, pull requests,
-issues, comments, and any other contributions to this project.
-
-This restriction is based on several concerns:
-
-### Maintainer burden
-
-These tools make it easy to generate large amounts of plausible-looking bug
-reports or code that the contributor does not understand and cannot explain.
-Instead, the burden of understanding is placed on the maintainers.
-
-### Correctness and security
-
-These tools generate code based on probabilities of symbols in their models.
-There is no semantic model about what the code does. There is no guarantee
-that it is correct, and no indication of what security implications it may
-have.
-
-### Copyright issues
-
-These tools may use models that are trained on copyrighted content, both
-accidentally and intentionally, and their output often includes that content
-verbatim, without attribution. Since the legality of this is uncertain, these
-contributions may violate the licenses of copyrighted works.
-
-Using these tools also requires training their models on the source code from
-this project, and it makes it likely that code from this project will be used
-in other projects in ways that violate this project's license.
-
-### Ethical issues
-
-These tools require an unreasonable amount of energy and water to build and
-operate, and they are being used to undermine labour and justify layoffs.
-These are harms that the maintainers of this project do not want to
-perpetuate, even if only indirectly.
-
-# Credits
-
-This file was adapted from an initial `CONTRIBUTING.mkdn` file from David
-Golden under the terms of the Apache 2 license.
-
-The text in "AI Contributions" was adapted from the
-[Contributing to Servo](https://book.servo.org/contributing.html) section of
-The Servo Book, which is licensed as no rights reserved under
-[CC0](https://creativecommons.org/public-domain/cc0/).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/CPAN-META/automation-policy.json
new/Net-CIDR-Set-0.21/CPAN-META/automation-policy.json
--- old/Net-CIDR-Set-0.20/CPAN-META/automation-policy.json 1970-01-01
01:00:00.000000000 +0100
+++ new/Net-CIDR-Set-0.21/CPAN-META/automation-policy.json 2026-06-02
18:45:45.000000000 +0200
@@ -0,0 +1,7 @@
+{
+ "automated_actions" : "issue",
+ "automated_contributions" : "issue",
+ "code_generation" : "toolchain",
+ "distribution" : "Net-CIDR-Set-0.21",
+ "version" : 1
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/Changes
new/Net-CIDR-Set-0.21/Changes
--- old/Net-CIDR-Set-0.20/Changes 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/Changes 2026-06-02 18:45:45.000000000 +0200
@@ -1,5 +1,22 @@
Revision history for Net-CIDR-Set
+0.21 2026-06-02 17:45:44+01:00 Europe/London
+ [Security]
+ - Improved strictness of IP address (CVE-2026-49940) and netmask parsing
(CVE-2026-49942).
+
+ - Removed potential infinite loops when attempting to parse IP addresses
(CVE-2026-49941).
+
+ [Documentation]
+ - Removed CONTRIBUTING.md until policies about AI are updated.
+
+ [Tests]
+ - Changed tests to use Test::Exception.
+
+ [Toolchain]
+ - Added doap.xml to the distibution.
+
+ - Added automation-policy.json to the distribution.
+
0.20 2026-04-27 19:02:28+01:00 Europe/London
[Documentation]
- Mentioned CONTRIBUTING.md in SOURCE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/MANIFEST
new/Net-CIDR-Set-0.21/MANIFEST
--- old/Net-CIDR-Set-0.20/MANIFEST 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/MANIFEST 2026-06-02 18:45:45.000000000 +0200
@@ -1,5 +1,5 @@
# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.037
-CONTRIBUTING.md
+CPAN-META/automation-policy.json
Changes
LICENSE
MANIFEST
@@ -11,6 +11,7 @@
SECURITY.md
cpanfile
dist.ini
+doap.xml
lib/Net/CIDR/Set.pm
lib/Net/CIDR/Set/IPv4.pm
lib/Net/CIDR/Set/IPv6.pm
@@ -24,6 +25,7 @@
t/octal.t
t/operations.t
t/private.t
+t/validation.t
weaver.ini
xt/author/clean-namespaces.t
xt/author/critic.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/META.json
new/Net-CIDR-Set-0.21/META.json
--- old/Net-CIDR-Set-0.20/META.json 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/META.json 2026-06-02 18:45:45.000000000 +0200
@@ -18,7 +18,7 @@
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : 2
+ "version" : "2"
},
"name" : "Net-CIDR-Set",
"prereqs" : {
@@ -35,6 +35,7 @@
},
"develop" : {
"requires" : {
+ "Dist::AutomationPolicy" : "v0.2.0",
"Dist::Zilla::Plugin::UsefulReadme" : "v0.4.3",
"Pod::Coverage::TrustPod" : "0",
"Pod::Markdown::Github" : "0",
@@ -81,22 +82,23 @@
"Data::Dumper" : "0",
"File::Spec" : "0",
"Module::Metadata" : "1.000015",
- "Test::More" : "0"
+ "Test::Exception" : "0",
+ "Test::More" : "0.96"
}
}
},
"provides" : {
"Net::CIDR::Set" : {
"file" : "lib/Net/CIDR/Set.pm",
- "version" : "0.20"
+ "version" : "0.21"
},
"Net::CIDR::Set::IPv4" : {
"file" : "lib/Net/CIDR/Set/IPv4.pm",
- "version" : "0.20"
+ "version" : "0.21"
},
"Net::CIDR::Set::IPv6" : {
"file" : "lib/Net/CIDR/Set/IPv6.pm",
- "version" : "0.20"
+ "version" : "0.21"
}
},
"release_status" : "stable",
@@ -111,7 +113,7 @@
},
"x_authority" : "cpan:RRWO"
},
- "version" : "0.20",
+ "version" : "0.21",
"x_contributors" : [
"Thomas Eckardt <[email protected]>",
"Brian Gottreu <[email protected]>",
@@ -119,7 +121,7 @@
"Stig Palmquist <[email protected]>"
],
"x_generated_by_perl" : "v5.42.1",
- "x_serialization_backend" : "Cpanel::JSON::XS version 4.40",
+ "x_serialization_backend" : "JSON::XS version 4.04",
"x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/META.yml
new/Net-CIDR-Set-0.21/META.yml
--- old/Net-CIDR-Set-0.20/META.yml 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/META.yml 2026-06-02 18:45:45.000000000 +0200
@@ -7,7 +7,8 @@
ExtUtils::MakeMaker: '7.22'
File::Spec: '0'
Module::Metadata: '1.000015'
- Test::More: '0'
+ Test::Exception: '0'
+ Test::More: '0.96'
configure_requires:
ExtUtils::MakeMaker: '0'
dynamic_config: 0
@@ -27,13 +28,13 @@
provides:
Net::CIDR::Set:
file: lib/Net/CIDR/Set.pm
- version: '0.20'
+ version: '0.21'
Net::CIDR::Set::IPv4:
file: lib/Net/CIDR/Set/IPv4.pm
- version: '0.20'
+ version: '0.21'
Net::CIDR::Set::IPv6:
file: lib/Net/CIDR/Set/IPv6.pm
- version: '0.20'
+ version: '0.21'
requires:
Carp: '0'
namespace::autoclean: '0'
@@ -45,7 +46,7 @@
Authority: cpan:RRWO
bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Net-CIDR-Set
repository: git://github.com/robrwo/perl-Net-CIDR-Set.git
-version: '0.20'
+version: '0.21'
x_contributors:
- 'Thomas Eckardt <[email protected]>'
- 'Brian Gottreu <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/Makefile.PL
new/Net-CIDR-Set-0.21/Makefile.PL
--- old/Net-CIDR-Set-0.20/Makefile.PL 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/Makefile.PL 2026-06-02 18:45:45.000000000 +0200
@@ -31,9 +31,10 @@
"Data::Dumper" => 0,
"File::Spec" => 0,
"Module::Metadata" => "1.000015",
- "Test::More" => 0
+ "Test::Exception" => 0,
+ "Test::More" => "0.96"
},
- "VERSION" => "0.20",
+ "VERSION" => "0.21",
"test" => {
"TESTS" => "t/*.t"
}
@@ -46,7 +47,8 @@
"ExtUtils::MakeMaker" => "7.22",
"File::Spec" => 0,
"Module::Metadata" => "1.000015",
- "Test::More" => 0,
+ "Test::Exception" => 0,
+ "Test::More" => "0.96",
"namespace::autoclean" => 0,
"overload" => 0,
"strict" => 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/README.md
new/Net-CIDR-Set-0.21/README.md
--- old/Net-CIDR-Set-0.20/README.md 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/README.md 2026-06-02 18:45:45.000000000 +0200
@@ -37,18 +37,18 @@
# RECENT CHANGES
-Changes for version 0.20 (2026-04-27)
+Changes for version 0.21 (2026-06-02)
+- Security
+ - Improved strictness of IP address (CVE-2026-49940) and netmask parsing
(CVE-2026-49942).
+ - Removed potential infinite loops when attempting to parse IP addresses
(CVE-2026-49941).
- Documentation
- - Mentioned CONTRIBUTING.md in SOURCE.
- - Updated copyright year.
- - Updated the current maintainer email.
+ - Removed CONTRIBUTING.md until policies about AI are updated.
- Tests
- - Added and improved author tests.
- - Moved author tests into xt.
+ - Changed tests to use Test::Exception.
- Toolchain
- - Set up GitHub workflow for testing.
- - Stopped using Module::Signature for signing modules.
+ - Added doap.xml to the distibution.
+ - Added automation-policy.json to the distribution.
See the `Changes` file for more details.
@@ -122,8 +122,6 @@
The development version is on github at
[https://github.com/robrwo/perl-Net-CIDR-Set](https://github.com/robrwo/perl-Net-CIDR-Set)
and may be cloned from
[https://github.com/robrwo/perl-Net-CIDR-Set.git](https://github.com/robrwo/perl-Net-CIDR-Set.git)
-See `CONTRIBUTING.md` for more information.
-
# AUTHOR
Andy Armstrong <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/cpanfile
new/Net-CIDR-Set-0.21/cpanfile
--- old/Net-CIDR-Set-0.20/cpanfile 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/cpanfile 2026-06-02 18:45:45.000000000 +0200
@@ -17,7 +17,8 @@
requires "Data::Dumper" => "0";
requires "File::Spec" => "0";
requires "Module::Metadata" => "1.000015";
- requires "Test::More" => "0";
+ requires "Test::Exception" => "0";
+ requires "Test::More" => "0.96";
};
on 'test' => sub {
@@ -29,6 +30,7 @@
};
on 'develop' => sub {
+ requires "Dist::AutomationPolicy" => "v0.2.0";
requires "Dist::Zilla::Plugin::UsefulReadme" => "v0.4.3";
requires "Pod::Coverage::TrustPod" => "0";
requires "Pod::Markdown::Github" => "0";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/dist.ini
new/Net-CIDR-Set-0.21/dist.ini
--- old/Net-CIDR-Set-0.20/dist.ini 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/dist.ini 2026-06-02 18:45:45.000000000 +0200
@@ -15,12 +15,15 @@
[GatherDir]
exclude_match = cpanfile*
-exclude_match = LICENSE
-exclude_match = SECURITY.md
+exclude_filename = LICENSE
+exclude_filename = SECURITY.md
+exclude_filename = doap.xml
+
[PruneCruft]
[ManifestSkip]
[CPANFile]
[License]
+[DOAP]
[ExecDir]
[ShareDir]
[MakeMaker]
@@ -51,6 +54,9 @@
; type = requires
; type = recommends
+[AutomationPolicy]
+template = issues_only
+
[SecurityPolicy]
; authordep Software::Security::Policy::Individual
-policy = Individual
@@ -75,6 +81,7 @@
copy = README.md
copy = SECURITY.md
copy = cpanfile
+copy = doap.xml
[PruneFiles]
match = ~$
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/doap.xml
new/Net-CIDR-Set-0.21/doap.xml
--- old/Net-CIDR-Set-0.20/doap.xml 1970-01-01 01:00:00.000000000 +0100
+++ new/Net-CIDR-Set-0.21/doap.xml 2026-06-02 18:45:45.000000000 +0200
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<Project
+ xmlns="http://usefulinc.com/ns/doap#"
+ xmlns:dc="http://purl.org/dc/terms/"
+ xmlns:foaf="http://xmlns.com/foaf/0.1/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
+ >
+ <name>Net-CIDR-Set</name>
+ <shortdesc>Manipulate sets of IP addresses</shortdesc>
+ <category rdfs:label="CIDR" />
+ <category rdfs:label="INET" />
+ <category rdfs:label="LPM" />
+ <category rdfs:label="Longest" />
+ <category rdfs:label="Prefix" />
+ <category rdfs:label="Match" />
+ <developer>
+ <foaf:Person>
+ <foaf:name>Andy Armstrong</foaf:name>
+ <foaf:mbox rdf:resource="mailto:[email protected]" />
+ </foaf:Person>
+ </developer>
+ <helper>
+ <foaf:Person>
+ <foaf:name>Thomas Eckardt</foaf:name>
+ <foaf:mbox rdf:resource="mailto:[email protected]" />
+ </foaf:Person>
+ </helper>
+ <helper>
+ <foaf:Person>
+ <foaf:name>Brian Gottreu</foaf:name>
+ <foaf:mbox rdf:resource="mailto:[email protected]" />
+ </foaf:Person>
+ </helper>
+ <helper>
+ <foaf:Person>
+ <foaf:name>Robert Rothenberg</foaf:name>
+ <foaf:mbox rdf:resource="mailto:[email protected]" />
+ </foaf:Person>
+ </helper>
+ <helper>
+ <foaf:Person>
+ <foaf:name>Stig Palmquist</foaf:name>
+ <foaf:mbox rdf:resource="mailto:[email protected]" />
+ </foaf:Person>
+ </helper>
+ <license rdf:resource="http://dev.perl.org/licenses/" />
+ <bug-database
rdf:resource="https://rt.cpan.org/Public/Dist/Display.html?Name=Net-CIDR-Set" />
+ <repository>
+ <GitRepository>
+ <browse rdf:resource="https://github.com/robrwo/perl-Net-CIDR-Set" />
+ <location rdf:resource="git://github.com/robrwo/perl-Net-CIDR-Set.git" />
+ </GitRepository>
+ </repository>
+ <programming-language>Perl</programming-language>
+</Project>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set/IPv4.pm
new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set/IPv4.pm
--- old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set/IPv4.pm 2026-04-27
20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set/IPv4.pm 2026-06-02
18:45:45.000000000 +0200
@@ -8,15 +8,18 @@
# ABSTRACT: Encode / decode IPv4 addresses
-our $VERSION = '0.20';
+our $VERSION = '0.21';
sub new { bless \my $x, shift }
+my $DEC = "(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})";
+my $IP = "(?:${DEC}\.){3}${DEC}";
+
sub _pack {
my @nums = split /[.]/, shift, -1;
return unless @nums == 4;
for ( @nums ) {
- return unless /^\d{1,3}$/ and !/^0\d{1,2}$/ and $_ < 256;
+ return unless /\A${DEC}\z/ and !/\A0[1-9]+/;
}
return pack "CC*", 0, @nums;
}
@@ -33,7 +36,7 @@
my $ip = shift or return;
vec( $ip, 0, 8 ) = 255;
my $bits = unpack 'B*', $ip;
- return unless $bits =~ /^1*0*$/; # Valid mask?
+ return unless $bits =~ /\A1*0*\z/; # Valid mask?
return $ip;
}
@@ -42,30 +45,33 @@
my $mask = ~( $lo ^ $hi );
my $bits = unpack 'B*', $mask;
return unless $hi eq ($lo | $hi);
- return unless $bits =~ /^(1*)0*$/;
+ return unless $bits =~ /\A(1*)0*\z/;
return length( $1 ) - 8;
}
sub _encode {
my ( $self, $ip ) = @_;
- if ( $ip =~ m{^(.+?)/(.+)$} ) {
+ if ( $ip =~ m{\A(${IP})/((?:3[0-2]|[12]?[0-9])|${IP})\z} ) {
my $mask = $2;
return unless my $addr = _pack( $1 );
return
unless my $bits
- = ( $mask =~ /^\d+$/ )
+ = ( $mask =~ /\A[0-9]+\z/ )
? _width2bits( $mask, 32 )
: _ip2bits( _pack( $mask ) );
return ( $addr & $bits, Net::CIDR::Set::_inc( $addr | ~$bits ) );
}
- elsif ( $ip =~ m{^(.+?)-(.+)$} ) {
+ elsif ( $ip =~ m{\A(${IP})-(${IP})\z} ) {
return unless my $lo = _pack( $1 );
return unless my $hi = _pack( $2 );
return ( $lo, Net::CIDR::Set::_inc( $hi ) );
}
- else {
+ elsif ( $ip =~ m{\A${IP}\z} ) {
return $self->_encode( "$ip/32" );
}
+ else {
+ return;
+ }
}
sub encode {
@@ -110,7 +116,7 @@
=head1 VERSION
-version 0.20
+version 0.21
=for Pod::Coverage new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set/IPv6.pm
new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set/IPv6.pm
--- old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set/IPv6.pm 2026-04-27
20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set/IPv6.pm 2026-06-02
18:45:45.000000000 +0200
@@ -8,15 +8,17 @@
# ABSTRACT: Encode / decode IPv6 addresses
-our $VERSION = '0.20';
+our $VERSION = '0.21';
sub new { bless \my $x, shift }
+my $DEC = "(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})";
+
sub _pack_ipv4 {
my @nums = split /[.]/, shift, -1;
return unless @nums == 4;
for ( @nums ) {
- return unless /^\d{1,3}$/ and !/^0\d{1,2}$/ and $_ < 256;
+ return unless /\A${DEC}\z/ and !/\A0[1-9]+/;
}
return pack "CC*", 0, @nums;
}
@@ -30,14 +32,14 @@
sub _pack {
my $ip = shift;
return pack( 'H*', '0' x 33 ) if $ip eq '::';
- return if $ip =~ /^:/ and $ip !~ s/^::/:/;
- return if $ip =~ /:$/ and $ip !~ s/::$/:/;
+ return if $ip =~ /\A:/ and $ip !~ s/\A::/:/;
+ return if $ip =~ /:\z/ and $ip !~ s/::\z/:/;
my @nums = split /:/, $ip, -1;
return unless @nums <= 8;
my ( $empty, $ipv4, $str ) = ( 0, '', '' );
for ( @nums ) {
return if $ipv4;
- $str .= "0" x ( 4 - length ) . $_, next if /^[a-fA-F\d]{1,4}$/;
+ $str .= "0" x ( 4 - length ) . $_, next if /\A[A-Fa-f0-9]{1,4}\z/;
do { return if $empty++ }, $str .= "X", next if $_ eq '';
next if $ipv4 = _pack_ipv4( $_ );
return;
@@ -55,7 +57,7 @@
# Replace longest run of null blocks with a double colon
sub _compress_ipv6 {
my $ip = shift;
- if ( my @runs = $ip =~ /((?:(?:^|:)(?:0000))+:?)/g ) {
+ if ( my @runs = $ip =~ /((?:(?:\A|:)(?:0000))+:?)/g ) {
my $max = $runs[0];
for ( @runs[ 1 .. $#runs ] ) {
$max = $_ if length( $max ) < length;
@@ -77,27 +79,30 @@
my $mask = ~( $lo ^ $hi );
my $bits = unpack 'B*', $mask;
return unless $hi eq ($lo | $hi);
- return unless $bits =~ /^(1*)0*$/;
+ return unless $bits =~ /\A(1*)0*\z/;
return length( $1 ) - 8;
}
sub _encode {
my ( $self, $ip ) = @_;
- if ( $ip =~ m{^(.+?)/(.+)$} ) {
+ if ( $ip =~ m{\A([0-9A-Fa-f:]+)/(0|[1-9][0-9]*)\z} ) {
my $mask = $2;
return unless my $addr = _pack( $1 );
return unless my $bits = _width2bits( $mask, 128 );
return ( $addr & $bits, Net::CIDR::Set::_inc( $addr | ~$bits ) );
}
- elsif ( $ip =~ m{^(.+?)-(.+)$} ) {
+ elsif ( $ip =~ m{\A([0-9A-Fa-f:]+)-([0-9A-Fa-f:]+)\z} ) {
my ( $from, $to ) = ( $1, $2 );
return unless my $lo = _pack( $from );
return unless my $hi = _pack( $to );
return ( $lo, Net::CIDR::Set::_inc( $hi ) );
}
- else {
+ elsif ( $ip =~ m{\A[0-9A-Fa-f:]+\z} ) {
return $self->_encode( "$ip/128" );
}
+ else {
+ return;
+ }
}
sub encode {
@@ -142,7 +147,7 @@
=head1 VERSION
-version 0.20
+version 0.21
=for Pod::Coverage new
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set.pm
new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set.pm
--- old/Net-CIDR-Set-0.20/lib/Net/CIDR/Set.pm 2026-04-27 20:02:29.000000000
+0200
+++ new/Net-CIDR-Set-0.21/lib/Net/CIDR/Set.pm 2026-06-02 18:45:45.000000000
+0200
@@ -13,7 +13,7 @@
use namespace::autoclean;
-our $VERSION = '0.20';
+our $VERSION = '0.21';
{
@@ -436,7 +436,7 @@
=head1 VERSION
-version 0.20
+version 0.21
=head1 SYNOPSIS
@@ -775,8 +775,6 @@
The development version is on github at
L<https://github.com/robrwo/perl-Net-CIDR-Set>
and may be cloned from L<https://github.com/robrwo/perl-Net-CIDR-Set.git>
-See F<CONTRIBUTING.md> for more information.
-
=head1 SUPPORT
Only the latest version of this module will be supported.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/t/00-report-prereqs.dd
new/Net-CIDR-Set-0.21/t/00-report-prereqs.dd
--- old/Net-CIDR-Set-0.20/t/00-report-prereqs.dd 2026-04-27
20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/t/00-report-prereqs.dd 2026-06-02
18:45:45.000000000 +0200
@@ -12,6 +12,7 @@
},
'develop' => {
'requires' => {
+ 'Dist::AutomationPolicy' => 'v0.2.0',
'Dist::Zilla::Plugin::UsefulReadme' =>
'v0.4.3',
'Pod::Coverage::TrustPod' => '0',
'Pod::Markdown::Github' => '0',
@@ -58,7 +59,8 @@
'Data::Dumper' => '0',
'File::Spec' => '0',
'Module::Metadata' => '1.000015',
- 'Test::More' => '0'
+ 'Test::Exception' => '0',
+ 'Test::More' => '0.96'
}
}
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/t/misc.t
new/Net-CIDR-Set-0.21/t/misc.t
--- old/Net-CIDR-Set-0.20/t/misc.t 2026-04-27 20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/t/misc.t 2026-06-02 18:45:45.000000000 +0200
@@ -2,33 +2,41 @@
use strict;
use warnings;
-use Test::More tests => 6;
+
+use Test::More 0.96;
+use Test::Exception;
+
+
use Net::CIDR::Set;
-{
- eval { Net::CIDR::Set->new( 'foo' ) };
- like $@, qr{Can't decode}, 'parse error on new';
-}
-
-{
- my $set = Net::CIDR::Set->new;
- eval { $set->add( 'foo' ) };
- like $@, qr{Can't decode}, 'parse error on add';
- eval { $set->add( '10.0.0.0/8' ) };
- ok !$@, 'can still parse ipv4';
- eval { $set->add( '::' ) };
- like $@, qr{Can't decode}, 'ipv4 personality set';
-}
-
-{
- my $set = Net::CIDR::Set->new;
- eval { $set->add( 'foo' ) };
- like $@, qr{Can't decode}, 'parse error on add';
- eval { $set->add( '::' ) };
- ok !$@, 'can still parse ipv6';
-# eval { $set->add( '10.0.0.0/8' ) };
-# like $@, qr{Can't decode}, 'ipv6 personality set';
-}
+throws_ok {
+ Net::CIDR::Set->new( 'foo' );
+} qr{Can't decode}, 'parse error on new';
-# vim:ts=2:sw=2:et:ft=perl
+my $set = Net::CIDR::Set->new;
+
+throws_ok {
+ $set->add( 'foo' )
+} qr{Can't decode}, 'parse error on add';
+
+lives_ok {
+ $set->add( '10.0.0.0/8' )
+} 'can still parse ipv4';
+throws_ok {
+ $set->add( '::' )
+} qr{Can't decode}, 'ipv4 personality set';
+
+$set = Net::CIDR::Set->new;
+
+throws_ok {
+ $set->add( 'foo' )
+} qr{Can't decode}, 'parse error on add';
+
+lives_ok {
+ $set->add( '::' )
+} 'can still parse ipv6';
+
+done_testing;
+
+# vim:ts=2:sw=2:et:ft=perl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/t/validation.t
new/Net-CIDR-Set-0.21/t/validation.t
--- old/Net-CIDR-Set-0.20/t/validation.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Net-CIDR-Set-0.21/t/validation.t 2026-06-02 18:45:45.000000000
+0200
@@ -0,0 +1,38 @@
+#!perl
+
+use strict;
+use warnings;
+
+use Test::More 0.96;
+use Test::Exception;
+
+use Net::CIDR::Set;
+
+
+my $set = Net::CIDR::Set->new;
+
+throws_ok {
+ $set->add("\x{0661}0.0.0.0/8");
+} qr{^Can't decode \x{0661}0\.0\.0\.0/8 as an IPv4 or IPv6 address};
+
+$set->add("10.0.0.0/8");
+
+throws_ok {
+ $set->add("1.1.1.1/09");
+} qr{^Can't decode 1\.1\.1\.1/09 as an IPv4 (or IPv6 )?address};
+
+throws_ok {
+ $set->contains("10\n.0.0.0");
+} qr{^Can't decode 10\n\.0\.0\.0 as an IPv4 or IPv6 address}s;
+
+throws_ok {
+ Net::CIDR::Set->new->add("::1/foo");
+} qr{^Can't decode ::1/foo as an IPv4 or IPv6 address};
+
+
+throws_ok {
+ Net::CIDR::Set->new->add("::1/02");
+} qr{^Can't decode ::1/02 as an IPv4 or IPv6 address};
+
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/xt/author/eol.t
new/Net-CIDR-Set-0.21/xt/author/eol.t
--- old/Net-CIDR-Set-0.20/xt/author/eol.t 2026-04-27 20:02:29.000000000
+0200
+++ new/Net-CIDR-Set-0.21/xt/author/eol.t 2026-06-02 18:45:45.000000000
+0200
@@ -19,7 +19,8 @@
't/misc.t',
't/octal.t',
't/operations.t',
- 't/private.t'
+ 't/private.t',
+ 't/validation.t'
);
eol_unix_ok($_, { trailing_whitespace => 1 }) foreach @files;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/xt/author/mixed-unicode-scripts.t
new/Net-CIDR-Set-0.21/xt/author/mixed-unicode-scripts.t
--- old/Net-CIDR-Set-0.20/xt/author/mixed-unicode-scripts.t 2026-04-27
20:02:29.000000000 +0200
+++ new/Net-CIDR-Set-0.21/xt/author/mixed-unicode-scripts.t 2026-06-02
18:45:45.000000000 +0200
@@ -22,7 +22,8 @@
't/misc.t',
't/octal.t',
't/operations.t',
- 't/private.t'
+ 't/private.t',
+ 't/validation.t'
);
file_scripts_ok($_, { scripts => \@scxs } ) for @files;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Net-CIDR-Set-0.20/xt/author/no-tabs.t
new/Net-CIDR-Set-0.21/xt/author/no-tabs.t
--- old/Net-CIDR-Set-0.20/xt/author/no-tabs.t 2026-04-27 20:02:29.000000000
+0200
+++ new/Net-CIDR-Set-0.21/xt/author/no-tabs.t 2026-06-02 18:45:45.000000000
+0200
@@ -19,7 +19,8 @@
't/misc.t',
't/octal.t',
't/operations.t',
- 't/private.t'
+ 't/private.t',
+ 't/validation.t'
);
notabs_ok($_) foreach @files;
++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.7vUgOV/_old 2026-06-03 20:29:59.216030683 +0200
+++ /var/tmp/diff_new_pack.7vUgOV/_new 2026-06-03 20:29:59.220030849 +0200
@@ -1,6 +1,6 @@
-mtime: 1777362315
-commit: 4c1ced1bb65a3d28673ea7690a41a017c8bb6caeaa586943308cde300d715c8e
+mtime: 1780481270
+commit: 0023a40732d2bd2d1dc87b621e04689b2766778d7a7e632cc3ad85511f6ebe14
url: https://src.opensuse.org/perl/perl-Net-CIDR-Set
-revision: 4c1ced1bb65a3d28673ea7690a41a017c8bb6caeaa586943308cde300d715c8e
+revision: 0023a40732d2bd2d1dc87b621e04689b2766778d7a7e632cc3ad85511f6ebe14
projectscmsync: https://src.opensuse.org/perl/_ObsPrj
++++++ build.specials.obscpio ++++++
++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore 2026-06-03 12:07:50.000000000 +0200
@@ -0,0 +1 @@
+.osc