Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-YAML-LibYAML for
openSUSE:Factory checked in at 2022-09-10 20:16:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-YAML-LibYAML (Old)
and /work/SRC/openSUSE:Factory/.perl-YAML-LibYAML.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-YAML-LibYAML"
Sat Sep 10 20:16:42 2022 rev:22 rq:1002181 version:0.84
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-YAML-LibYAML/perl-YAML-LibYAML.changes
2021-05-12 19:31:36.107188852 +0200
+++
/work/SRC/openSUSE:Factory/.perl-YAML-LibYAML.new.2083/perl-YAML-LibYAML.changes
2022-09-10 20:16:43.068740491 +0200
@@ -1,0 +2,9 @@
+Sun Sep 4 03:13:51 UTC 2022 - Tina M??ller <[email protected]>
+
+- updated to 0.84
+ see /usr/share/doc/packages/perl-YAML-LibYAML/Changes
+
+ 0.84 Sat 03 Sep 2022 09:20:20 PM CEST
+ - Add option ForbidDuplicateKeys (PR#105 tinita)
+
+-------------------------------------------------------------------
Old:
----
YAML-LibYAML-0.83.tar.gz
New:
----
YAML-LibYAML-0.84.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-YAML-LibYAML.spec ++++++
--- /var/tmp/diff_new_pack.30PV32/_old 2022-09-10 20:16:43.632741941 +0200
+++ /var/tmp/diff_new_pack.30PV32/_new 2022-09-10 20:16:43.640741961 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-YAML-LibYAML
#
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,10 +18,10 @@
%define cpan_name YAML-LibYAML
Name: perl-YAML-LibYAML
-Version: 0.83
+Version: 0.84
Release: 0
-Summary: Perl YAML Serialization using XS and libyaml
License: Artistic-1.0 OR GPL-1.0-or-later
+Summary: Perl YAML Serialization using XS and libyaml
URL: https://metacpan.org/release/%{cpan_name}
Source0:
https://cpan.metacpan.org/authors/id/T/TI/TINITA/%{cpan_name}-%{version}.tar.gz
Source1: cpanspec.yml
++++++ YAML-LibYAML-0.83.tar.gz -> YAML-LibYAML-0.84.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/Changes
new/YAML-LibYAML-0.84/Changes
--- old/YAML-LibYAML-0.83/Changes 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/Changes 2022-09-03 21:20:29.000000000 +0200
@@ -1,3 +1,6 @@
+0.84 Sat 03 Sep 2022 09:20:20 PM CEST
+ - Add option ForbidDuplicateKeys (PR#105 tinita)
+
0.83 Sat 08 May 2021 11:51:32 PM CEST
- Recognize tied variables (PR#101 tinita)
- Add license file from included libyaml code (PR#102 tinita)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/LICENSE
new/YAML-LibYAML-0.84/LICENSE
--- old/YAML-LibYAML-0.83/LICENSE 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/LICENSE 2022-09-03 21:20:29.000000000 +0200
@@ -1,4 +1,4 @@
-This software is copyright (c) 2021 by Ingy d??t Net.
+This software is copyright (c) 2022 by Ingy d??t Net.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
@@ -12,7 +12,7 @@
--- The GNU General Public License, Version 1, February 1989 ---
-This software is Copyright (c) 2021 by Ingy d??t Net.
+This software is Copyright (c) 2022 by Ingy d??t Net.
This is free software, licensed under:
@@ -272,7 +272,7 @@
--- The Artistic License 1.0 ---
-This software is Copyright (c) 2021 by Ingy d??t Net.
+This software is Copyright (c) 2022 by Ingy d??t Net.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/LibYAML/perl_libyaml.c
new/YAML-LibYAML-0.84/LibYAML/perl_libyaml.c
--- old/YAML-LibYAML-0.83/LibYAML/perl_libyaml.c 2021-05-08
23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/LibYAML/perl_libyaml.c 2022-09-03
21:20:30.000000000 +0200
@@ -156,10 +156,14 @@
loader.load_blessed = 0;
gv = gv_fetchpv("YAML::XS::LoadBlessed", FALSE, SVt_PV);
- if (SvOK(GvSV(gv))) {
- if (SvTRUE(GvSV(gv))) {
- loader.load_blessed = 1;
- }
+ if (SvOK(GvSV(gv)) && SvTRUE(GvSV(gv))) {
+ loader.load_blessed = 1;
+ }
+
+ loader.forbid_duplicate_keys = 0;
+ gv = gv_fetchpv("YAML::XS::ForbidDuplicateKeys", FALSE, SVt_PV);
+ if (SvOK(GvSV(gv)) && SvTRUE(GvSV(gv))) {
+ loader.forbid_duplicate_keys = 1;
}
yaml_str = (const unsigned char *)SvPV_const(yaml_sv, yaml_len);
@@ -352,6 +356,17 @@
while ((key_node = load_node(loader))) {
assert(SvPOK(key_node));
value_node = load_node(loader);
+ if (loader->forbid_duplicate_keys &&
+ hv_exists_ent(hash, key_node, 0)
+ ) {
+ croak(
+ "%s",
+ loader_error_msg(
+ loader,
+ form("Duplicate key '%s'", SvPV_nolen(key_node))
+ )
+ );
+ }
hv_store_ent(
hash, sv_2mortal(key_node), value_node, 0
);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/LibYAML/perl_libyaml.h
new/YAML-LibYAML-0.84/LibYAML/perl_libyaml.h
--- old/YAML-LibYAML-0.83/LibYAML/perl_libyaml.h 2021-05-08
23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/LibYAML/perl_libyaml.h 2022-09-03
21:20:30.000000000 +0200
@@ -32,6 +32,7 @@
int load_bool_jsonpp;
int load_bool_boolean;
int load_blessed;
+ int forbid_duplicate_keys;
int document;
} perl_yaml_loader_t;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/MANIFEST
new/YAML-LibYAML-0.84/MANIFEST
--- old/YAML-LibYAML-0.83/MANIFEST 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/MANIFEST 2022-09-03 21:20:29.000000000 +0200
@@ -55,6 +55,7 @@
t/dump-heuristics.t
t/dump-int.t
t/dump.t
+t/duplicate-keys.t
t/empty.t
t/empty.yaml
t/error.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/META.json
new/YAML-LibYAML-0.84/META.json
--- old/YAML-LibYAML-0.83/META.json 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/META.json 2022-09-03 21:20:29.000000000 +0200
@@ -55,9 +55,9 @@
"web" : "https://github.com/ingydotnet/yaml-libyaml-pm"
}
},
- "version" : "0.83",
+ "version" : "0.84",
"x_generated_by_perl" : "v5.30.3",
- "x_serialization_backend" : "Cpanel::JSON::XS version 4.25",
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.26",
"x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/META.yml
new/YAML-LibYAML-0.84/META.yml
--- old/YAML-LibYAML-0.83/META.yml 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/META.yml 2022-09-03 21:20:29.000000000 +0200
@@ -25,7 +25,7 @@
bugtracker: https://github.com/ingydotnet/yaml-libyaml-pm/issues
homepage: https://github.com/ingydotnet/yaml-libyaml-pm
repository: https://github.com/ingydotnet/yaml-libyaml-pm.git
-version: '0.83'
+version: '0.84'
x_generated_by_perl: v5.30.3
x_serialization_backend: 'YAML::Tiny version 1.73'
x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/Makefile.PL
new/YAML-LibYAML-0.84/Makefile.PL
--- old/YAML-LibYAML-0.83/Makefile.PL 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/Makefile.PL 2022-09-03 21:20:29.000000000 +0200
@@ -20,7 +20,7 @@
"TEST_REQUIRES" => {
"Test::More" => "0.90"
},
- "VERSION" => "0.83",
+ "VERSION" => "0.84",
"test" => {
"TESTS" => "t/*.t"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/README new/YAML-LibYAML-0.84/README
--- old/YAML-LibYAML-0.83/README 2021-05-08 23:51:42.000000000 +0200
+++ new/YAML-LibYAML-0.84/README 2022-09-03 21:20:29.000000000 +0200
@@ -49,6 +49,20 @@
removing files can be found at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=862373
+ $YAML::XS::ForbidDuplicateKeys` (since 0.84)
+
+ Default: false
+
+ When set to true, Load will die when encountering a duplicate key in
+ a hash, e.g.
+
+ key: value
+ key: another value
+
+ This can be useful for bigger YAML documents where it is not that
+ obvious, and it is recommended to set it to true. That's also what a
+ YAML loader should do by default according to the YAML specification.
+
$YAML::XS::UseCode
$YAML::XS::DumpCode
@@ -147,7 +161,7 @@
COPYRIGHT AND LICENSE
- Copyright 2007-2021. Ingy d??t Net.
+ Copyright 2007-2022. Ingy d??t Net.
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/lib/YAML/LibYAML.pm
new/YAML-LibYAML-0.84/lib/YAML/LibYAML.pm
--- old/YAML-LibYAML-0.83/lib/YAML/LibYAML.pm 2021-05-08 23:51:42.000000000
+0200
+++ new/YAML-LibYAML-0.84/lib/YAML/LibYAML.pm 2022-09-03 21:20:30.000000000
+0200
@@ -1,6 +1,6 @@
use strict; use warnings;
package YAML::LibYAML;
-our $VERSION = '0.83';
+our $VERSION = '0.84';
sub import {
die "YAML::LibYAML has been renamed to YAML::XS. Please use YAML::XS
instead.";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/lib/YAML/LibYAML.pod
new/YAML-LibYAML-0.84/lib/YAML/LibYAML.pod
--- old/YAML-LibYAML-0.83/lib/YAML/LibYAML.pod 2021-05-08 23:51:42.000000000
+0200
+++ new/YAML-LibYAML-0.84/lib/YAML/LibYAML.pod 2022-09-03 21:20:30.000000000
+0200
@@ -22,7 +22,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright 2007-2021. Ingy d??t Net.
+Copyright 2007-2022. Ingy d??t Net.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/lib/YAML/XS.pm
new/YAML-LibYAML-0.84/lib/YAML/XS.pm
--- old/YAML-LibYAML-0.83/lib/YAML/XS.pm 2021-05-08 23:51:42.000000000
+0200
+++ new/YAML-LibYAML-0.84/lib/YAML/XS.pm 2022-09-03 21:20:30.000000000
+0200
@@ -1,7 +1,7 @@
use strict; use warnings;
package YAML::XS;
-our $VERSION = '0.83';
+our $VERSION = '0.84';
use base 'Exporter';
@@ -10,7 +10,16 @@
%YAML::XS::EXPORT_TAGS = (
all => [qw(Dump Load LoadFile DumpFile)],
);
-our ($UseCode, $DumpCode, $LoadCode, $Boolean, $LoadBlessed, $Indent);
+our (
+ $Boolean,
+ $DumpCode,
+ $ForbidDuplicateKeys,
+ $Indent,
+ $LoadBlessed,
+ $LoadCode,
+ $UseCode,
+);
+$ForbidDuplicateKeys = 0;
# $YAML::XS::UseCode = 0;
# $YAML::XS::DumpCode = 0;
# $YAML::XS::LoadCode = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/lib/YAML/XS.pod
new/YAML-LibYAML-0.84/lib/YAML/XS.pod
--- old/YAML-LibYAML-0.83/lib/YAML/XS.pod 2021-05-08 23:51:42.000000000
+0200
+++ new/YAML-LibYAML-0.84/lib/YAML/XS.pod 2022-09-03 21:20:30.000000000
+0200
@@ -61,6 +61,20 @@
the object is deleted. An example with File::Temp removing files can be found
at L<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=862373>
+=item $YAML::XS::ForbidDuplicateKeys` (since 0.84)
+
+Default: false
+
+When set to true, C<Load> will die when encountering a duplicate key in a
+hash, e.g.
+
+ key: value
+ key: another value
+
+This can be useful for bigger YAML documents where it is not that obvious, and
+it is recommended to set it to true. That's also what a YAML loader should do
+by default according to the YAML specification.
+
=item C<$YAML::XS::UseCode>
@@ -163,7 +177,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright 2007-2021. Ingy d??t Net.
+Copyright 2007-2022. Ingy d??t Net.
This program is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/YAML-LibYAML-0.83/t/duplicate-keys.t
new/YAML-LibYAML-0.84/t/duplicate-keys.t
--- old/YAML-LibYAML-0.83/t/duplicate-keys.t 1970-01-01 01:00:00.000000000
+0100
+++ new/YAML-LibYAML-0.84/t/duplicate-keys.t 2022-09-03 21:20:30.000000000
+0200
@@ -0,0 +1,22 @@
+use FindBin '$Bin';
+use lib $Bin;
+use TestYAMLTests;
+
+plan tests => 3;
+
+my $yaml = <<'...';
+key: value
+key: another value
+...
+
+my $hash = Load $yaml;
+is_deeply $hash, { key => 'another value' }, 'Allow duplicate keys (default)';
+
+$YAML::XS::ForbidDuplicateKeys = 0;
+$hash = Load $yaml;
+is_deeply $hash, { key => 'another value' }, 'Allow duplicate keys explicitly';
+
+$YAML::XS::ForbidDuplicateKeys = 1;
+$hash = eval { Load $yaml };
+my $err = $@;
+like $err, qr{Duplicate key 'key'}, 'Forbid duplicate keys';