Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package yast2-perl-bindings for
openSUSE:Factory checked in at 2022-07-13 13:44:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-perl-bindings (Old)
and /work/SRC/openSUSE:Factory/.yast2-perl-bindings.new.1523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "yast2-perl-bindings"
Wed Jul 13 13:44:41 2022 rev:47 rq:988660 version:4.5.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-perl-bindings/yast2-perl-bindings.changes
2022-04-14 17:24:40.303207725 +0200
+++
/work/SRC/openSUSE:Factory/.yast2-perl-bindings.new.1523/yast2-perl-bindings.changes
2022-07-13 13:44:41.793972927 +0200
@@ -1,0 +2,7 @@
+Tue Jul 12 12:20:50 UTC 2022 - Stefan Hundhammer <[email protected]>
+
+- Adapted to new Perl-5.36.0 API (bsc#1200990)
+ Details: https://github.com/yast/yast-perl-bindings/pull/30
+- 4.5.1
+
+-------------------------------------------------------------------
Old:
----
yast2-perl-bindings-4.5.0.tar.bz2
New:
----
yast2-perl-bindings-4.5.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-perl-bindings.spec ++++++
--- /var/tmp/diff_new_pack.669TNq/_old 2022-07-13 13:44:42.297973642 +0200
+++ /var/tmp/diff_new_pack.669TNq/_new 2022-07-13 13:44:42.305973654 +0200
@@ -17,7 +17,7 @@
Name: yast2-perl-bindings
-Version: 4.5.0
+Version: 4.5.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ yast2-perl-bindings-4.5.0.tar.bz2 -> yast2-perl-bindings-4.5.1.tar.bz2
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-perl-bindings-4.5.0/doc/examples/Makefile.am.old
new/yast2-perl-bindings-4.5.1/doc/examples/Makefile.am.old
--- old/yast2-perl-bindings-4.5.0/doc/examples/Makefile.am.old 2022-04-12
13:36:34.000000000 +0200
+++ new/yast2-perl-bindings-4.5.1/doc/examples/Makefile.am.old 1970-01-01
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-#
-# Makefile.am for perl-bindings/doc/examples
-#
-# making the examples currently needs that
-# "make -C ../../src install" has run
-# so for build it is excluded from SUBDIRS in ../Makefile.am
-
-include Makefile.am.common
-
-ycp_examplesdir = $(docdir)/examples
-perl_examplesdir = $(docdir)/examples
-
-FIXME
-
-ycp_examples_DATA =
-
-#for dependencies
-module_DATA = \
- doimport.ycp \
- example.ycp \
- foo.ycp \
- import.ycp \
- import2.ycp \
- intermediate.ycp
-
-perl_examples_DATA = \
- dummy.pm \
- imported.pm
-
-EXTRA_DIST = $(ycp_examples_DATA) $(perl_examples_DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-perl-bindings-4.5.0/doc/examples/run_scalar_types_test
new/yast2-perl-bindings-4.5.1/doc/examples/run_scalar_types_test
--- old/yast2-perl-bindings-4.5.0/doc/examples/run_scalar_types_test
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-perl-bindings-4.5.1/doc/examples/run_scalar_types_test
2022-07-12 17:07:29.000000000 +0200
@@ -0,0 +1,2 @@
+#!/bin/sh
+Y2DIR=.. /usr/lib/YaST2/bin/y2start ./scalar_types_test.ycp qt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-perl-bindings-4.5.0/doc/examples/scalar_types_test.ycp
new/yast2-perl-bindings-4.5.1/doc/examples/scalar_types_test.ycp
--- old/yast2-perl-bindings-4.5.0/doc/examples/scalar_types_test.ycp
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-perl-bindings-4.5.1/doc/examples/scalar_types_test.ycp
2022-07-12 17:07:29.000000000 +0200
@@ -0,0 +1,67 @@
+// Simple manual test for correct type conversions of Perl scalar values
+//
+// Start with
+//
+// Y2DIR=.. /usr/lib/YaST2/bin/y2start ./scalar_types_test.ycp qt
+//
+// Since modules are imported from the $Y2DIR/modules directory, the Perl
+// module that we import is in ../modules, and we need to tell the YaST
+// framework where that Y2DIR is: One directory level up from here.
+//
+// This test uses the y2log for its output.
+//
+// For more details, see
+// https://github.com/yast/yast-perl-bindings/pull/30
+
+{
+ import "ScalarTypes"; // ../modules/ScalarTypes.pm
+
+ void log_str( string test_name, string value )
+ {
+ y2milestone( "*** Result of test %1: %2", test_name, value );
+ }
+
+
+ void log_any( string test_name, any value, boolean type_ok )
+ {
+ if ( type_ok )
+ {
+ y2milestone( "*** Result of test %1: %2", test_name, value );
+ }
+ else
+ {
+ y2error( "*** ERROR: Wrong result type in test %1: %2", test_name,
value );
+ }
+ }
+
+
+ string hello = ScalarTypes::hello();
+ log_str( "hello", hello );
+
+ string str_int = ScalarTypes::str_int();
+ log_str( "str_int", str_int );
+
+ string str_float = ScalarTypes::str_float();
+ log_str( "str_float", str_float );
+
+
+ integer int_val = ScalarTypes::int_val();
+ log_any( "int_val", int_val, is( int_val, integer ) );
+
+ float float_val = ScalarTypes::float_val();
+ log_any( "float_val", float_val, is( float_val, float ) );
+
+
+ any any_str = ScalarTypes::any_str();
+ log_any( "any_str", any_str, is( any_str, string ) );
+
+
+ // Our Perl bindings intentionally treat all YCP 'any' values as strings.
+ // See ../../src/YPerl.cc
+
+ any any_int = ScalarTypes::any_int();
+ log_any( "any_int", any_int, is( any_int, string ) );
+
+ any any_float = ScalarTypes::any_float();
+ log_any( "any_float", any_float, is( any_float, string ) );
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-perl-bindings-4.5.0/doc/modules/Makefile.am
new/yast2-perl-bindings-4.5.1/doc/modules/Makefile.am
--- old/yast2-perl-bindings-4.5.0/doc/modules/Makefile.am 2022-04-12
13:36:34.000000000 +0200
+++ new/yast2-perl-bindings-4.5.1/doc/modules/Makefile.am 2022-07-12
17:07:29.000000000 +0200
@@ -1,4 +1,4 @@
pmdir = $(docdir)/modules
-pm_DATA = PerlHello.pm PerlFunc.pm
+pm_DATA = PerlHello.pm PerlFunc.pm ScalarTypes.pm
EXTRA_DIST = $(pm_DATA)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-perl-bindings-4.5.0/doc/modules/ScalarTypes.pm
new/yast2-perl-bindings-4.5.1/doc/modules/ScalarTypes.pm
--- old/yast2-perl-bindings-4.5.0/doc/modules/ScalarTypes.pm 1970-01-01
01:00:00.000000000 +0100
+++ new/yast2-perl-bindings-4.5.1/doc/modules/ScalarTypes.pm 2022-07-12
17:07:29.000000000 +0200
@@ -0,0 +1,80 @@
+#! /usr/bin/perl -w
+#
+# Perl module to test scalar types with the yast-perl-bindings.
+
+use strict;
+use English;
+
+package ScalarTypes;
+
+our %TYPEINFO;
+
+
+# BEGIN { print "Executing ScalarTypes module BEGIN block\n"; }
+# END { print "Executing ScalarTypes module END block\n"; }
+
+
+BEGIN { $TYPEINFO{ hello } = [ "function", "string" ]; }
+sub hello()
+{
+ return "hello";
+}
+
+
+# Perl implicitly converts values that look like numbers to a numeric scalar,
+# even if it's in a string. This can be used to test the yast-perl-bindings
+# that should use a string when a YCPString was requested.
+
+BEGIN { $TYPEINFO{ str_int } = [ "function", "string" ]; }
+sub str_int()
+{
+ return "42";
+}
+
+
+BEGIN { $TYPEINFO{ str_float } = [ "function", "string" ]; }
+sub str_float()
+{
+ return "42.84";
+}
+
+
+
+BEGIN { $TYPEINFO{ int_val } = [ "function", "integer" ]; }
+sub int_val()
+{
+ return 42;
+}
+
+
+BEGIN { $TYPEINFO{ float_val } = [ "function", "float" ]; }
+sub float_val
+{
+ return 42.84;
+}
+
+
+
+BEGIN { $TYPEINFO{ any_str } = [ "function", "any" ]; }
+sub any_str()
+{
+ return "foo";
+}
+
+
+BEGIN { $TYPEINFO{ any_int } = [ "function", "any" ]; }
+sub any_int()
+{
+ return 42;
+}
+
+
+BEGIN { $TYPEINFO{ any_float } = [ "function", "any" ]; }
+sub any_float()
+{
+ return 42.84;
+}
+
+
+# Return value
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-perl-bindings-4.5.0/package/yast2-perl-bindings.changes
new/yast2-perl-bindings-4.5.1/package/yast2-perl-bindings.changes
--- old/yast2-perl-bindings-4.5.0/package/yast2-perl-bindings.changes
2022-04-12 13:36:34.000000000 +0200
+++ new/yast2-perl-bindings-4.5.1/package/yast2-perl-bindings.changes
2022-07-12 17:07:29.000000000 +0200
@@ -1,4 +1,11 @@
-------------------------------------------------------------------
+Tue Jul 12 12:20:50 UTC 2022 - Stefan Hundhammer <[email protected]>
+
+- Adapted to new Perl-5.36.0 API (bsc#1200990)
+ Details: https://github.com/yast/yast-perl-bindings/pull/30
+- 4.5.1
+
+-------------------------------------------------------------------
Wed Apr 06 13:24:58 UTC 2022 - Ladislav Slez??k <[email protected]>
- Bump version to 4.5.0 (bsc#1198109)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/yast2-perl-bindings-4.5.0/package/yast2-perl-bindings.spec
new/yast2-perl-bindings-4.5.1/package/yast2-perl-bindings.spec
--- old/yast2-perl-bindings-4.5.0/package/yast2-perl-bindings.spec
2022-04-12 13:36:34.000000000 +0200
+++ new/yast2-perl-bindings-4.5.1/package/yast2-perl-bindings.spec
2022-07-12 17:07:29.000000000 +0200
@@ -17,7 +17,7 @@
Name: yast2-perl-bindings
-Version: 4.5.0
+Version: 4.5.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/yast2-perl-bindings-4.5.0/src/YPerl.cc
new/yast2-perl-bindings-4.5.1/src/YPerl.cc
--- old/yast2-perl-bindings-4.5.0/src/YPerl.cc 2022-04-12 13:36:34.000000000
+0200
+++ new/yast2-perl-bindings-4.5.1/src/YPerl.cc 2022-07-12 17:07:29.000000000
+0200
@@ -259,14 +259,14 @@
SAVETMPS; // Save temporary variables
PUSHMARK(SP); // Save stack pointer
-
+
// For class method calls put the class name on the stack first
-
+
if (method)
{
XPUSHs( sv_2mortal( newSVpv( module.c_str(), 0 ) ) );
}
-
+
// Put arguments on the stack
SV **svs = new SV*[argList->size()];
@@ -286,7 +286,7 @@
string full_name = module + "::" + function;
int ret_count = 0;
-
+
// G_EVAL: prevent errors from making Perl (and the rest of YaST) die
// (FATE 412)
// so far we use static methods, so call_pv is enough
@@ -397,7 +397,7 @@
YPerl::newPerlScalar( const YCPValue & xval, bool composite )
{
EMBEDDED_PERL_DEFS;
-
+
YCPValue val = xval;
if ( val->isReference()) {
val = val->asReference()->entry()->value();
@@ -671,7 +671,7 @@
{
SV * ref = SvRV(sv);
SvREFCNT_inc(ref);
-
+
YCPExternal ex(ref, string(YCP_EXTERNAL_MAGIC), &perl_class_destructor);
out = ex;
}
@@ -895,12 +895,17 @@
{
if (SvROK(sv))
sv = SvRV(sv);
- // Perl relies on automatic coercion between strings and numbers
- // So to behave more like it,
- // instead of "if (SvXOK (sv)) SvXV (sv)"
- // we first SvXV (sv) and only then SvXOK.
+
const char *pv = SvPV_nolen (sv);
- if (SvPOK (sv))
+
+ // Perl uses automatic coercion between strings and numbers,
+ // but when we expect a string, we really want a string.
+ //
+ // bsc#1200990: From Perl 5.36.0 on, it no longer always sets
+ // SvPOK() if it's a numeric type (int or float), so we need to
+ // check those other two cases as well.
+
+ if ( SvPOK(sv) || SvIOK(sv) || SvNOK(sv) )
{
val = YCPString (pv);
}
@@ -959,6 +964,7 @@
{
// see isString
const char *pv = SvPV_nolen (sv);
+
if (SvPOK (sv))
{
val = YCPSymbol (pv);
@@ -1153,7 +1159,7 @@
{
sv_args[i] = sv_2mortal (newPerlScalar (args->value (i), false ));
}
-
+
PUSHMARK (SP);
// Class name
@@ -1211,7 +1217,8 @@
// use the explicit data classes YaST::YCP::Integer.
const char *pv = SvPV_nolen (sv);
- if (SvPOK (sv))
+
+ if ( SvPOK(sv) || SvIOK(sv) || SvNOK(sv) ) // bsc#1200990
{
val = YCPString (pv);
}