Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Net-SSH2 for openSUSE:Factory checked in at 2022-08-16 17:08:32 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Net-SSH2 (Old) and /work/SRC/openSUSE:Factory/.perl-Net-SSH2.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-SSH2" Tue Aug 16 17:08:32 2022 rev:13 rq:997348 version:0.73 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Net-SSH2/perl-Net-SSH2.changes 2021-01-04 19:09:58.431425884 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Net-SSH2.new.1521/perl-Net-SSH2.changes 2022-08-16 17:08:37.872037338 +0200 @@ -1,0 +2,9 @@ +Thu Aug 4 03:07:28 UTC 2022 - Tina M??ller <[email protected]> + +- updated to 0.73 + see /usr/share/doc/packages/perl-Net-SSH2/Changes + + 0.73 2022-08-03 + - Switch to -std=c11 because Perl uses thread_local now #58 + +------------------------------------------------------------------- Old: ---- Net-SSH2-0.72.tar.gz New: ---- Net-SSH2-0.73.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Net-SSH2.spec ++++++ --- /var/tmp/diff_new_pack.LtwPP7/_old 2022-08-16 17:08:38.664039706 +0200 +++ /var/tmp/diff_new_pack.LtwPP7/_new 2022-08-16 17:08:38.668039718 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Net-SSH2 # -# Copyright (c) 2020 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 @@ -16,19 +16,18 @@ # +%define cpan_name Net-SSH2 Name: perl-Net-SSH2 -Version: 0.72 +Version: 0.73 Release: 0 -%define cpan_name Net-SSH2 -Summary: Support for the SSH 2 protocol via libssh2 License: Artistic-1.0 OR GPL-1.0-or-later -Group: Development/Libraries/Perl +Summary: Support for the SSH 2 protocol via libssh2 URL: https://metacpan.org/release/%{cpan_name} -Source0: https://cpan.metacpan.org/authors/id/S/SA/SALVA/%{cpan_name}-%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/R/RK/RKITOVER/%{cpan_name}-%{version}.tar.gz Source1: cpanspec.yml -BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros +BuildRequires: perl(ExtUtils::MakeMaker) >= 6.59 %{perl_requires} # MANUAL BEGIN BuildRequires: libgcrypt-devel @@ -46,14 +45,14 @@ quite buggy and unreliable) and version 1.7.0 or later is recommended. %prep -%setup -q -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{version} # MANUAL BEGIN sed -i -e 's/use inc::Module::Install/use lib q[.];\nuse inc::Module::Install/' Makefile.PL # MANUAL END %build PERL_USE_UNSAFE_INC=1 perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" -make %{?_smp_mflags} +%make_build %check make test @@ -64,7 +63,6 @@ %perl_gen_filelist %files -f %{name}.files -%defattr(-,root,root,755) %doc Changes const-c.inc const-xs.inc example %changelog ++++++ Net-SSH2-0.72.tar.gz -> Net-SSH2-0.73.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/Changes new/Net-SSH2-0.73/Changes --- old/Net-SSH2-0.72/Changes 2020-12-22 16:56:20.000000000 +0100 +++ new/Net-SSH2-0.73/Changes 2022-08-03 17:18:50.000000000 +0200 @@ -1,5 +1,8 @@ Revision history for Perl extension Net::SSH2. +0.73 2022-08-03 + - Switch to -std=c11 because Perl uses thread_local now #58 + 0.72 2020-12-22 - Add support for some new error codes in latest libssh2 versions. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/META.yml new/Net-SSH2-0.73/META.yml --- old/Net-SSH2-0.72/META.yml 2020-12-22 17:03:24.000000000 +0100 +++ new/Net-SSH2-0.73/META.yml 2022-08-03 18:09:18.000000000 +0200 @@ -22,7 +22,7 @@ provides: Net::SSH2: file: lib/Net/SSH2.pm - version: '0.72' + version: '0.73' Net::SSH2::Channel: file: lib/Net/SSH2/Channel.pm Net::SSH2::Dir: @@ -43,4 +43,4 @@ bugtracker: https://github.com/rkitover/net-ssh2/issues license: http://dev.perl.org/licenses/ repository: git://github.com/rkitover/net-ssh2.git -version: '0.72' +version: '0.73' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/Makefile.PL new/Net-SSH2-0.73/Makefile.PL --- old/Net-SSH2-0.72/Makefile.PL 2020-12-22 12:39:44.000000000 +0100 +++ new/Net-SSH2-0.73/Makefile.PL 2022-08-03 17:13:48.000000000 +0200 @@ -275,7 +275,7 @@ makemaker_append_once(CCFLAGS => '-Wno-deprecated-declarations') if $^O eq 'darwin'; -makemaker_append_once(CCFLAGS => '-DPERL_GCC_PEDANTIC -std=c99 -pedantic-errors -Wno-long-long') +makemaker_append_once(CCFLAGS => '-DPERL_GCC_PEDANTIC -std=c11 -pedantic-errors -Wno-long-long') if $Module::Install::AUTHOR and $linux and $cc_gcc; resources repository => 'git://github.com/rkitover/net-ssh2.git'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/README.pod new/Net-SSH2-0.73/README.pod --- old/Net-SSH2-0.72/README.pod 2020-12-22 17:03:24.000000000 +0100 +++ new/Net-SSH2-0.73/README.pod 2022-08-03 18:09:18.000000000 +0200 @@ -817,8 +817,8 @@ =head2 Protocol versions -The underlaying C<libssh2> library does support version 2 of the SSH -protocol exclusively (hopefully, version 1 usage is almost extinct). +The underlying C<libssh2> library does support version 2 of the SSH protocol +exclusively (hopefully, version 1 usage is almost extinct.) The SFTP client implements version 3 of the SFTP protocol. @@ -830,10 +830,9 @@ it was configured to use at build time (OpenSSL C<libssl> or C<libgcrypt>). -An increassingly common problem is that OpenSSH since version 7.8 -(released 2018-8-24) generates keys by default using the format -RFC4716 which is not supported by the default crypto backend -(C<libssl>). +An increasingly common problem is that OpenSSH since version 7.8 (released +2018-8-24) generates keys by default using the format RFC4716 which is not +supported by the default crypto backend (C<libssl>). Keys can be converted inplace to the old PEM format using L<ssh-keygen(1)> as follows: @@ -843,11 +842,10 @@ On Windows, PuTTYgen (which is part of the PuTTY distribution) can be used to convert keys. -Another common issue is that in the last years OpenSSH has -incorporated several new cyphers that are not supported by any version -of C<libssh2> yet (though the incoming 1.8.1 may aliviate the -situation). Currently the best option from an interoperability -standpoint is probably to stick to RSA key usage. +Another common issue is that in the last years OpenSSH has incorporated several +new cyphers that are not supported by any version of C<libssh2> yet. Currently +the best option from an interoperability standpoint is probably to stick to RSA +key usage. =head2 Security diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/inc/Devel/CheckLib.pm new/Net-SSH2-0.73/inc/Devel/CheckLib.pm --- old/Net-SSH2-0.72/inc/Devel/CheckLib.pm 2020-12-22 17:03:23.000000000 +0100 +++ new/Net-SSH2-0.73/inc/Devel/CheckLib.pm 2022-08-03 18:09:16.000000000 +0200 @@ -6,9 +6,9 @@ use 5.00405; #postfix foreach use strict; use vars qw($VERSION @ISA @EXPORT); -$VERSION = '1.14'; +$VERSION = '1.16'; use Config qw(%Config); -use Text::ParseWords 'quotewords'; +use Text::ParseWords qw(quotewords shellwords); use File::Spec; use File::Temp; @@ -261,21 +261,79 @@ return(@pieces); } +sub _parsewords { + return shellwords @_ if $^O ne 'MSWin32'; + # for Win32, take off "" but leave \ + map { my $s=$_; $s =~ s/^"(.*)"$/$1/; $s } grep defined && length, quotewords '\s+', 1, @_; +} + +sub _compile_cmd { + my ($Config_cc, $cc, $cfile, $exefile, $incpaths, $ld, $Config_libs, $lib, $libpaths) = @_; + my @sys_cmd = @$cc; + if ( $Config_cc eq 'cl' ) { # Microsoft compiler + # this is horribly sensitive to the order of arguments + push @sys_cmd, + $cfile, + (defined $lib ? "${lib}.lib" : ()), + "/Fe$exefile", + (map '/I'.$_, @$incpaths), + "/link", + @$ld, + _parsewords($Config_libs), + (defined $lib ? map '/libpath:'.$_, @$libpaths : ()), + ; + } elsif($Config_cc =~ /bcc32(\.exe)?/) { # Borland + push @sys_cmd, + @$ld, + (map "-I$_", @$incpaths), + "-o$exefile", + (defined $lib ? ((map "-L$_", @$libpaths), "-l$lib") : ()), + $cfile, + ; + } else { # Unix-ish: gcc, Sun, AIX (gcc, cc), ... + push @sys_cmd, + (map "-I$_", @$incpaths), + $cfile, + (!defined $lib ? () : ( + (map "-L$_", @$libpaths), + ($^O eq 'darwin' ? (map { "-Wl,-rpath,$_" } @$libpaths) : ()), + "-l$lib", + )), + @$ld, + "-o", $exefile, + ; + } + @sys_cmd; +} + +sub _make_cfile { + my ($use_headers, $function, $debug) = @_; + my $code = ''; + $code .= qq{#include <$_>\n} for @$use_headers; + $code .= "int main(int argc, char *argv[]) { ".($function || 'return 0;')." }\n"; + if ($debug) { + (my $c = $code) =~ s:^:# :gm; + warn "# Code:\n$c\n"; + } + my ($ch, $cfile) = File::Temp::tempfile( + 'assertlibXXXXXXXX', SUFFIX => '.c' + ); + print $ch $code; + close $ch; + (my $ofile = $cfile) =~ s/\.c$/$Config{_o}/; + ($cfile, $ofile); +} + sub assert_lib { my %args = @_; - my (@libs, @libpaths, @headers, @incpaths); - - # FIXME: these four just SCREAM "refactor" at me - @libs = (ref($args{lib}) ? @{$args{lib}} : $args{lib}) - if $args{lib}; - @libpaths = (ref($args{libpath}) ? @{$args{libpath}} : $args{libpath}) - if $args{libpath}; - @headers = (ref($args{header}) ? @{$args{header}} : $args{header}) - if $args{header}; - @incpaths = (ref($args{incpath}) ? @{$args{incpath}} : $args{incpath}) - if $args{incpath}; + $args{$_} = [$args{$_}] + for grep $args{$_} && !ref($args{$_}), qw(lib libpath header incpath); + my @libs = @{$args{lib} || []}; + my @libpaths = @{$args{libpath} || []}; + my @headers = @{$args{header} || []}; + my @incpaths = @{$args{incpath} || []}; my $analyze_binary = $args{analyze_binary}; - my $not_execute = $args{not_execute}; + my $execute = !$args{not_execute}; my @argv = @ARGV; push @argv, _parse_line('\s+', 0, $ENV{PERL_MM_OPT}||''); @@ -293,15 +351,14 @@ } } - # using special form of split to trim whitespace if(defined($args{LIBS})) { - foreach my $arg (split(' ', $args{LIBS})) { + foreach my $arg (_parsewords($args{LIBS})) { die("LIBS argument badly-formed: $arg\n") unless($arg =~ /^-[lLR]/); push @{$arg =~ /^-l/ ? \@libs : \@libpaths}, substr($arg, 2); } } if(defined($args{INC})) { - foreach my $arg (split(' ', $args{INC})) { + foreach my $arg (_parsewords($args{INC})) { die("INC argument badly-formed: $arg\n") unless($arg =~ /^-I/); push @incpaths, substr($arg, 2); } @@ -316,45 +373,9 @@ # first figure out which headers we can't find ... for my $header (@headers) { push @use_headers, $header; - my($ch, $cfile) = File::Temp::tempfile( - 'assertlibXXXXXXXX', SUFFIX => '.c' - ); - my $ofile = $cfile; - $ofile =~ s/\.c$/$Config{_o}/; - print $ch qq{#include <$_>\n} for @use_headers; - print $ch qq{int main(void) { return 0; }\n}; - close($ch); + my ($cfile, $ofile) = _make_cfile(\@use_headers, '', $args{debug}); my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; - my @sys_cmd; - # FIXME: re-factor - almost identical code later when linking - if ( $Config{cc} eq 'cl' ) { # Microsoft compiler - require Win32; - @sys_cmd = ( - @$cc, - $cfile, - "/Fe$exefile", - (map { '/I'.Win32::GetShortPathName($_) } @incpaths), - "/link", - @$ld, - split(' ', $Config{libs}), - ); - } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland - @sys_cmd = ( - @$cc, - @$ld, - (map { "-I$_" } @incpaths), - "-o$exefile", - $cfile - ); - } else { # Unix-ish: gcc, Sun, AIX (gcc, cc), ... - @sys_cmd = ( - @$cc, - (map { "-I$_" } @incpaths), - $cfile, - @$ld, - "-o", "$exefile" - ); - } + my @sys_cmd = _compile_cmd($Config{cc}, $cc, $cfile, $exefile, \@incpaths, $ld, $Config{libs}); warn "# @sys_cmd\n" if $args{debug}; my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); push @missing, $header if $rv != 0 || ! -f $exefile; @@ -363,58 +384,13 @@ } # now do each library in turn with headers - my($ch, $cfile) = File::Temp::tempfile( - 'assertlibXXXXXXXX', SUFFIX => '.c' - ); - my $ofile = $cfile; - $ofile =~ s/\.c$/$Config{_o}/; - print $ch qq{#include <$_>\n} foreach (@headers); - print $ch "int main(int argc, char *argv[]) { ".($args{function} || 'return 0;')." }\n"; - close($ch); + my ($cfile, $ofile) = _make_cfile(\@use_headers, @args{qw(function debug)}); for my $lib ( @libs ) { + last if $Config{cc} eq 'CC/DECC'; # VMS my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe}; - my @sys_cmd; - if ( $Config{cc} eq 'cl' ) { # Microsoft compiler - require Win32; - my @libpath = map { - q{/libpath:} . Win32::GetShortPathName($_) - } @libpaths; - # this is horribly sensitive to the order of arguments - @sys_cmd = ( - @$cc, - $cfile, - "${lib}.lib", - "/Fe$exefile", - (map { '/I'.Win32::GetShortPathName($_) } @incpaths), - "/link", - @$ld, - split(' ', $Config{libs}), - (map {'/libpath:'.Win32::GetShortPathName($_)} @libpaths), - ); - } elsif($Config{cc} eq 'CC/DECC') { # VMS - } elsif($Config{cc} =~ /bcc32(\.exe)?/) { # Borland - @sys_cmd = ( - @$cc, - @$ld, - "-o$exefile", - (map { "-I$_" } @incpaths), - (map { "-L$_" } @libpaths), - "-l$lib", - $cfile); - } else { # Unix-ish - # gcc, Sun, AIX (gcc, cc) - @sys_cmd = ( - @$cc, - (map { "-I$_" } @incpaths), - $cfile, - (map { "-L$_" } @libpaths), - "-l$lib", - @$ld, - "-o", "$exefile", - ); - } + my @sys_cmd = _compile_cmd($Config{cc}, $cc, $cfile, $exefile, \@incpaths, $ld, $Config{libs}, $lib, \@libpaths); warn "# @sys_cmd\n" if $args{debug}; - local $ENV{LD_RUN_PATH} = join(":", grep $_, @libpaths, $ENV{LD_RUN_PATH}) unless $^O eq 'MSWin32'; + local $ENV{LD_RUN_PATH} = join(":", grep $_, @libpaths, $ENV{LD_RUN_PATH}) unless $^O eq 'MSWin32' or $^O eq 'darwin'; local $ENV{PATH} = join(";", @libpaths).";".$ENV{PATH} if $^O eq 'MSWin32'; my $rv = $args{debug} ? system(@sys_cmd) : _quiet_system(@sys_cmd); if ($rv != 0 || ! -f $exefile) { @@ -424,24 +400,24 @@ chmod 0755, $exefile; my $absexefile = File::Spec->rel2abs($exefile); $absexefile = '"'.$absexefile.'"' if $absexefile =~ m/\s/; - if (!$not_execute && system($absexefile) != 0) { - push @wrongresult, $lib; - } - else { - if ($analyze_binary) { - push @wronganalysis, $lib if !$analyze_binary->($lib, $exefile) - } + warn "# Execute($execute): $absexefile\n" if $args{debug}; + if ($execute) { + my $retval = system($absexefile); + warn "# return value: $retval\n" if $args{debug}; + push @wrongresult, $lib if $retval != 0; } + push @wronganalysis, $lib + if $analyze_binary and !$analyze_binary->($lib, $exefile); } _cleanup_exe($exefile); - } + } unlink $cfile; - my $miss_string = join( q{, }, map { qq{'$_'} } @missing ); + my $miss_string = join( q{, }, map qq{'$_'}, @missing ); die("Can't link/include C library $miss_string, aborting.\n") if @missing; - my $wrong_string = join( q{, }, map { qq{'$_'} } @wrongresult); + my $wrong_string = join( q{, }, map qq{'$_'}, @wrongresult); die("wrong result: $wrong_string\n") if @wrongresult; - my $analysis_string = join(q{, }, map { qq{'$_'} } @wronganalysis ); + my $analysis_string = join(q{, }, map qq{'$_'}, @wronganalysis ); die("wrong analysis: $analysis_string") if @wronganalysis; } @@ -460,14 +436,12 @@ $pdbfile =~ s/$Config{_exe}$/.pdb/; push @rmfiles, $ilkfile, $pdbfile; } - foreach (@rmfiles) { - if ( -f $_ ) { - unlink $_ or warn "Could not remove $_: $!"; - } + foreach (grep -f, @rmfiles) { + unlink $_ or warn "Could not remove $_: $!"; } return } - + # return ($cc, $ld) # where $cc is an array ref of compiler name, compiler flags # where $ld is an array ref of linker flags @@ -475,14 +449,15 @@ my ($debug, $user_ccflags, $user_ldflags) = @_; # Need to use $keep=1 to work with MSWin32 backslashes and quotes my $Config_ccflags = $Config{ccflags}; # use copy so ASPerl will compile + $Config_ccflags =~ s:-O\S*::; # stop GCC optimising away test code my @Config_ldflags = (); for my $config_val ( @Config{qw(ldflags)} ){ push @Config_ldflags, $config_val if ( $config_val =~ /\S/ ); } - my @ccflags = grep { length } quotewords('\s+', 1, $Config_ccflags||'', $user_ccflags||''); - my @ldflags = grep { length && $_ !~ m/^-Wl/ } quotewords('\s+', 1, @Config_ldflags, $user_ldflags||''); + my @ccflags = grep { length } _parsewords($Config_ccflags||'', $user_ccflags||''); + my @ldflags = grep { length && $_ !~ m/^-Wl/ } _parsewords(@Config_ldflags, $user_ldflags||''); my @paths = split(/$Config{path_sep}/, $ENV{PATH}); - my @cc = split(/\s+/, $Config{cc}); + my @cc = _parsewords($Config{cc}); if (check_compiler ($cc[0], $debug)) { return ( [ @cc, @ccflags ], \@ldflags ); } @@ -511,11 +486,10 @@ { my ($compiler, $debug) = @_; if (-f $compiler && -x $compiler) { - if ($debug) { - warn("# Compiler seems to be $compiler\n"); - } + warn "# Compiler seems to be $compiler\n" if $debug; return 1; } + warn "# Compiler was not $compiler\n" if $debug; return ''; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/inc/Module/Install/CheckLib.pm new/Net-SSH2-0.73/inc/Module/Install/CheckLib.pm --- old/Net-SSH2-0.72/inc/Module/Install/CheckLib.pm 2020-12-22 17:03:23.000000000 +0100 +++ new/Net-SSH2-0.73/inc/Module/Install/CheckLib.pm 2022-08-03 18:09:16.000000000 +0200 @@ -7,7 +7,7 @@ use base qw(Module::Install::Base); use vars qw($VERSION); -$VERSION = '0.12'; +$VERSION = '0.14'; sub checklibs { my $self = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-SSH2-0.72/lib/Net/SSH2.pm new/Net-SSH2-0.73/lib/Net/SSH2.pm --- old/Net-SSH2-0.72/lib/Net/SSH2.pm 2020-12-22 16:57:54.000000000 +0100 +++ new/Net-SSH2-0.73/lib/Net/SSH2.pm 2022-08-03 17:16:20.000000000 +0200 @@ -1,6 +1,6 @@ package Net::SSH2; -our $VERSION = '0.72'; +our $VERSION = '0.73'; use 5.006; use strict; @@ -1478,8 +1478,8 @@ =head2 Protocol versions -The underlaying C<libssh2> library does support version 2 of the SSH -protocol exclusively (hopefully, version 1 usage is almost extinct). +The underlying C<libssh2> library does support version 2 of the SSH protocol +exclusively (hopefully, version 1 usage is almost extinct.) The SFTP client implements version 3 of the SFTP protocol. @@ -1491,10 +1491,9 @@ it was configured to use at build time (OpenSSL C<libssl> or C<libgcrypt>). -An increassingly common problem is that OpenSSH since version 7.8 -(released 2018-8-24) generates keys by default using the format -RFC4716 which is not supported by the default crypto backend -(C<libssl>). +An increasingly common problem is that OpenSSH since version 7.8 (released +2018-8-24) generates keys by default using the format RFC4716 which is not +supported by the default crypto backend (C<libssl>). Keys can be converted inplace to the old PEM format using L<ssh-keygen(1)> as follows: @@ -1504,11 +1503,10 @@ On Windows, PuTTYgen (which is part of the PuTTY distribution) can be used to convert keys. -Another common issue is that in the last years OpenSSH has -incorporated several new cyphers that are not supported by any version -of C<libssh2> yet (though the incoming 1.8.1 may aliviate the -situation). Currently the best option from an interoperability -standpoint is probably to stick to RSA key usage. +Another common issue is that in the last years OpenSSH has incorporated several +new cyphers that are not supported by any version of C<libssh2> yet. Currently +the best option from an interoperability standpoint is probably to stick to RSA +key usage. =head2 Security
