Hi Gregor,

On Tue, Dec 20, 2022 at 07:31:55PM +0100, gregor herrmann wrote:
> Control: tag -1 + confirmed upstream
> 
> On Tue, 20 Dec 2022 18:28:10 +0100, Lucas Nussbaum wrote:
> 
> > Source: clusterssh
> > Version: 4.16-3
> > Severity: serious
> > Justification: FTBFS
> > Tags: bookworm sid ftbfs
> > User: lu...@debian.org
> > Usertags: ftbfs-20221220 ftbfs-bookworm
> 
> > > #   Failed test 'returned ok'
> > > #   at t/15config.t line 546.
> > > #          got: 'die'
> > > #     expected: 'return'
> > > 
> > > #   Failed test 'Expecting no STDERR'
> > > #   at t/15config.t line 550.
> > > #          got: ''
> > > #     expected: 'Unable to write default $HOME/.clusterssh/config: Is a 
> > > directory
> > > # 
> > > # '
> > > # Looks like you failed 2 tests of 155.
> > > t/15config.t ...... 
> 
> > > # check failure to write default config is caught
> > > not ok 147 - returned ok
> > > ok 148 - An object of class 'App::ClusterSSH::Config' isa 
> > > 'App::ClusterSSH::Config'
> > > ok 149 - An object of class 'App::ClusterSSH::Config' isa 
> > > 'App::ClusterSSH::Config'
> > > ok 150 - Expecting no STDOUT
> > > not ok 151 - Expecting no STDERR
> 
> > > Test Summary Report
> > > -------------------
> 
> > > t/15config.t    (Wstat: 512 (exited 2) Tests: 155 Failed: 2)
> > >   Failed tests:  147, 151
> > >   Non-zero exit status: 2
> 
> This reminds me of #1025722 in duck and is probably also caused by
> this change in perl:
> 
> perl (5.36.0-5) unstable; urgency=medium
> 
>   * Backported upstream changes:
>     + only clear the stream error state in readline() for glob()
>       (Closes: #1016369)
> 
> The problem seems to be in lines 384 ff in write_user_config_file()
> in lib/App/ClusterSSH/Config.pm:
> 
>    341  sub write_user_config_file {
> 
>    384      # Debian #673507 - migrate clusters prior to writing 
> ~/.clusterssh/config
>    385      # in order to update the extra_cluster_file property
>    386      if (%old_clusters) {
>    387          if ( open( my $fh, ">", "$ENV{HOME}/.clusterssh/clusters" ) ) 
> {
>    388              print $fh '# '
>    389                  . $self->loc('Tag definitions moved from old .csshrc 
> file'),
>    390                  $/;
>    391              foreach ( sort( keys(%old_clusters) ) ) {
>    392                  print $fh $_, ' ', join( ' ', $old_clusters{$_} ), $/;
>    393              }
>    394              close($fh);
>    395          }
>    396          else {
>    397              croak(
>    398                  App::ClusterSSH::Exception::Config->throw(
>    399                      error => $self->loc(
>    400                          'Unable to write [_1]: [_2]' . $/,
>    401                          '$HOME/.clusterssh/clusters',
>    402                          $!
>    403                      ),
>    404                  ),
>    405              );
>    406          }
>    407      }
> 
> 
> As #673507 is from 2012, I guess this code (and the tests) can be
> removed?

I think reference to #673507 is merely for context and that the behavior
implemented (with respect to the configuration file location and logic)
is the desired behavior.

Thank you for the pointer to the bug in duck [1].  I'll work on a patch.

Cheers,
tony

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1025722

Attachment: signature.asc
Description: PGP signature

Reply via email to