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';

Reply via email to