Pull in all fixes from 4.13.x

This commit is contained in:
Duncan Ferguson 2018-03-15 22:09:44 +00:00
commit 7670b0be39
11 changed files with 137 additions and 87 deletions

View file

@ -82,6 +82,19 @@ EOF
$self->SUPER::ACTION_dist; $self->SUPER::ACTION_dist;
} }
sub ACTION_clean {
my ($self, @args) = @_;
for my $file (keys %{ $self->script_files } ) {
if( -e $file) {
print "Removing '$file'",$/;
unlink $file;
}
}
$self->SUPER::ACTION_clean;
}
}, },
); );
@ -89,7 +102,8 @@ my $build = $class->new(
meta_merge => { meta_merge => {
resources => { resources => {
Repository => [ Repository => [
'http://clusterssh.git.sourceforge.net/',
#'http://clusterssh.git.sourceforge.net/',
$project_info{repository}, $project_info{repository},
], ],
bugtracker => $project_info{tracker}, bugtracker => $project_info{tracker},
@ -126,23 +140,29 @@ my $build = $class->new(
'CPAN::Changes' => 0.27, 'CPAN::Changes' => 0.27,
'File::Slurp' => 0, 'File::Slurp' => 0,
'Test::PerlTidy' => 0, 'Test::PerlTidy' => 0,
'Perl::Tidy' => 20171214, 'Perl::Tidy' => 20180220,
}, },
recommends => { 'Sort::Naturally' => 0, }, recommends => { 'Sort::Naturally' => 0, },
configure_requires => { 'Module::Build' => 0, }, configure_requires => { 'Module::Build' => 0, },
add_to_cleanup => ['App-ClusterSSH-*'], add_to_cleanup => ['App-ClusterSSH-*'],
create_makefile_pl => 'traditional', create_makefile_pl => 'traditional',
script_files => [ script_files => [
'bin/cssh', 'bin/csftp', 'bin/cssh',
'bin/ccon', 'bin/crsh', 'bin/csftp',
'bin/ctel', 'bin/clusterssh_bash_completion.dist' 'bin/ccon',
'bin/crsh',
'bin/ctel',
'bin/clusterssh_bash_completion.dist'
], ],
get_options => { changes => { type => '=s' }, }, get_options => { changes => { type => '=s' }, },
PL_files => { PL_files => {
'bin_PL/_build_docs' => [ 'bin_PL/_build_docs' => [
'bin/cssh', 'bin/csftp', 'bin/cssh',
'bin/ccon', 'bin/crsh', 'bin/csftp',
'bin/ctel', 'bin/clusterssh_bash_completion.dist' 'bin/ccon',
'bin/crsh',
'bin/ctel',
'bin/clusterssh_bash_completion.dist'
], ],
}, },
); );

View file

@ -1,6 +1,13 @@
4.13_01 0000-00-00 Duncan Ferguson <duncan_ferguson@user.sf.net> 4.14_01 0000-00-00 Duncan Ferguson <duncan_ferguson@user.sf.net>
- Move all Tk code into its own module as-is - Move all Tk code into its own module as-is
4.13.2 2018-03-14 Duncan Ferguson <duncan_ferguson@user.sf.net>
- Fix for running builds in parallel
- Improvements to SUPPORT and REPORTING BUGS sections in documentation
4.13.1 2018-03-05 Duncan Ferguson <duncan_ferguson@user.sf.net>
- Minor update to fix failing tests due to 3rd party perltidy changes
4.13 2017-12-27 Duncan Ferguson <duncan_ferguson@user.sf.net> 4.13 2017-12-27 Duncan Ferguson <duncan_ferguson@user.sf.net>
- Ensure ssh_args is keep unset if it is emptied in the configuration file - Ensure ssh_args is keep unset if it is emptied in the configuration file
- Obey configured console position (Debian bug 758215) (Github issue #100) - Obey configured console position (Debian bug 758215) (Github issue #100)

View file

@ -20,7 +20,7 @@
"File::Slurp" : "0", "File::Slurp" : "0",
"File::Temp" : "0", "File::Temp" : "0",
"File::Which" : "0", "File::Which" : "0",
"Perl::Tidy" : "20171214", "Perl::Tidy" : "20180220",
"Readonly" : "0", "Readonly" : "0",
"Test::Differences" : "0", "Test::Differences" : "0",
"Test::DistManifest" : "0", "Test::DistManifest" : "0",
@ -49,6 +49,7 @@
"Try::Tiny" : "0", "Try::Tiny" : "0",
"X11::Protocol" : "0.56", "X11::Protocol" : "0.56",
"X11::Protocol::WM" : "0", "X11::Protocol::WM" : "0",
"perl" : "v5.8.4",
"version" : "0.77" "version" : "0.77"
} }
} }
@ -56,7 +57,7 @@
"provides" : { "provides" : {
"App::ClusterSSH" : { "App::ClusterSSH" : {
"file" : "lib/App/ClusterSSH.pm", "file" : "lib/App/ClusterSSH.pm",
"version" : "4.13" "version" : "4.14_01"
}, },
"App::ClusterSSH::Base" : { "App::ClusterSSH::Base" : {
"file" : "lib/App/ClusterSSH/Base.pm", "file" : "lib/App/ClusterSSH/Base.pm",
@ -90,9 +91,17 @@
}, },
"App::ClusterSSH::Range" : { "App::ClusterSSH::Range" : {
"file" : "lib/App/ClusterSSH/Range.pm" "file" : "lib/App/ClusterSSH/Range.pm"
},
"App::ClusterSSH::Window" : {
"file" : "lib/App/ClusterSSH/Window.pm",
"version" : "0.01"
},
"App::ClusterSSH::Window::Tk" : {
"file" : "lib/App/ClusterSSH/Window/Tk.pm",
"version" : "0.01"
} }
}, },
"release_status" : "stable", "release_status" : "testing",
"resources" : { "resources" : {
"bugtracker" : { "bugtracker" : {
"web" : "https://github.com/duncs/clusterssh/issues" "web" : "https://github.com/duncs/clusterssh/issues"
@ -102,11 +111,10 @@
"http://dev.perl.org/licenses/" "http://dev.perl.org/licenses/"
], ],
"x_Repository" : [ "x_Repository" : [
"http://clusterssh.git.sourceforge.net/",
"http://github.com/duncs/clusterssh" "http://github.com/duncs/clusterssh"
], ],
"x_coverage" : "https://coveralls.io/github/duncs/clusterssh" "x_coverage" : "https://coveralls.io/github/duncs/clusterssh"
}, },
"version" : "4.13", "version" : "4.14_01",
"x_serialization_backend" : "JSON::PP version 2.94" "x_serialization_backend" : "JSON::PP version 2.94"
} }

View file

@ -7,7 +7,7 @@ build_requires:
File::Slurp: '0' File::Slurp: '0'
File::Temp: '0' File::Temp: '0'
File::Which: '0' File::Which: '0'
Perl::Tidy: '20171214' Perl::Tidy: '20180220'
Readonly: '0' Readonly: '0'
Test::Differences: '0' Test::Differences: '0'
Test::DistManifest: '0' Test::DistManifest: '0'
@ -27,7 +27,7 @@ name: App-ClusterSSH
provides: provides:
App::ClusterSSH: App::ClusterSSH:
file: lib/App/ClusterSSH.pm file: lib/App/ClusterSSH.pm
version: '4.13' version: 4.14_01
App::ClusterSSH::Base: App::ClusterSSH::Base:
file: lib/App/ClusterSSH/Base.pm file: lib/App/ClusterSSH/Base.pm
version: '0.02' version: '0.02'
@ -52,6 +52,12 @@ provides:
file: lib/App/ClusterSSH/L10N/en.pm file: lib/App/ClusterSSH/L10N/en.pm
App::ClusterSSH::Range: App::ClusterSSH::Range:
file: lib/App/ClusterSSH/Range.pm file: lib/App/ClusterSSH/Range.pm
App::ClusterSSH::Window:
file: lib/App/ClusterSSH/Window.pm
version: '0.01'
App::ClusterSSH::Window::Tk:
file: lib/App/ClusterSSH/Window/Tk.pm
version: '0.01'
recommends: recommends:
Sort::Naturally: '0' Sort::Naturally: '0'
requires: requires:
@ -64,14 +70,14 @@ requires:
Try::Tiny: '0' Try::Tiny: '0'
X11::Protocol: '0.56' X11::Protocol: '0.56'
X11::Protocol::WM: '0' X11::Protocol::WM: '0'
perl: v5.8.4
version: '0.77' version: '0.77'
resources: resources:
Coverage: https://coveralls.io/github/duncs/clusterssh Coverage: https://coveralls.io/github/duncs/clusterssh
Repository: Repository:
- http://clusterssh.git.sourceforge.net/
- http://github.com/duncs/clusterssh - http://github.com/duncs/clusterssh
bugtracker: https://github.com/duncs/clusterssh/issues bugtracker: https://github.com/duncs/clusterssh/issues
homepage: http://github.com/duncs/clusterssh/wiki homepage: http://github.com/duncs/clusterssh/wiki
license: http://dev.perl.org/licenses/ license: http://dev.perl.org/licenses/
version: '4.13' version: 4.14_01
x_serialization_backend: 'CPAN::Meta::YAML version 0.016' x_serialization_backend: 'CPAN::Meta::YAML version 0.016'

View file

@ -1,4 +1,5 @@
# Note: this file was auto-generated by Module::Build::Compat version 0.4224 # Note: this file was auto-generated by Module::Build::Compat version 0.4224
require 5.008004;
use ExtUtils::MakeMaker; use ExtUtils::MakeMaker;
WriteMakefile WriteMakefile
( (
@ -14,7 +15,7 @@ WriteMakefile
'File::Which' => 0, 'File::Which' => 0,
'Getopt::Long' => 0, 'Getopt::Long' => 0,
'Locale::Maketext' => 0, 'Locale::Maketext' => 0,
'Perl::Tidy' => 20171214, 'Perl::Tidy' => 20180220,
'Readonly' => 0, 'Readonly' => 0,
'Test::Differences' => 0, 'Test::Differences' => 0,
'Test::DistManifest' => 0, 'Test::DistManifest' => 0,

42
README
View file

@ -2,7 +2,7 @@ NAME
cssh - Cluster administration tool cssh - Cluster administration tool
VERSION VERSION
This documentation is for version: 4.13 This documentation is for version: 4.14_01
SYNOPSIS SYNOPSIS
cssh [-a '<command>'] [-K <seconds>] [-q] [-c '<filename>'] [-x <cols>] cssh [-a '<command>'] [-K <seconds>] [-q] [-c '<filename>'] [-x <cols>]
@ -640,29 +640,34 @@ KNOWN BUGS
tell the difference between the two events, there is no fix (apart tell the difference between the two events, there is no fix (apart
from rewriting everything directly in X). from rewriting everything directly in X).
REPORTING BUGS TROUBLESHOOTING
* If you have issues running cssh, first try: If you have issues running cssh, first try:
"cssh -e [user@]<hostname>[:port]" "cssh -e [user@]<hostname>[:port]"
This performs two tests to confirm cssh is able to work properly This performs two tests to confirm cssh is able to work properly with
with the settings provided within the $HOME/.clusterssh/config file the settings provided within the $HOME/.clusterssh/config file (or
(or internal defaults). internal defaults).
1 Test the terminal window works with the options provided 1 Test the terminal window works with the options provided
2 Test ssh works to a host with the configured arguments 2 Test ssh works to a host with the configured arguments
Configuration options to watch for in ssh are Configuration options to watch for in ssh are:
SSH doesn't understand "-o ConnectTimeout=10" - remove the option * SSH doesn't understand "-o ConnectTimeout=10" - remove the option
from the $HOME/.clusterssh/config file from the $HOME/.clusterssh/config file
OpenSSH-3.8 using untrusted ssh tunnels - use "-Y" instead of "-X"
* OpenSSH-3.8 using untrusted ssh tunnels - use "-Y" instead of "-X"
or use "ForwardX11Trusted yes" in $HOME/.ssh/ssh_config (if you or use "ForwardX11Trusted yes" in $HOME/.ssh/ssh_config (if you
change the default ssh options from "-x" to "-X") change the default ssh options from "-x" to "-X")
* If you require support, please run the following commands and post SUPPORT AND REPORTING BUGS
it on the web site in the support/problems forum: A web site for comments, requests, bug reports and bug fixes/patches is
available at: <https://github.com/duncs/clusterssh>
If you require support, please run the following commands and create an
issue via: <https://github.com/duncs/clusterssh/issues>
"perl -V" "perl -V"
@ -672,20 +677,15 @@ REPORTING BUGS
"cat /etc/csshrc $HOME/.clusterssh/config" "cat /etc/csshrc $HOME/.clusterssh/config"
* Using the debug option (--debug) will turn on debugging output. Using the debug option (--debug) will turn on debugging output. Repeat
Repeat the option to increase the amount of debug. However, if the option to increase the amount of debug. However, if possible please
possible please only use this option with one host at a time, e.g. only use this option with one host at a time, e.g. "cssh --debug <host>"
"cssh --debug <host>" due to the amount of output produced (in both due to the amount of output produced (in both main and child windows).
main and child windows).
SEE ALSO SEE ALSO
<http://clusterssh.sourceforge.net/>, "ssh", Tk::overview, <https://github.com/duncs/clusterssh/wiki/>, "ssh", Tk::overview,
X11::Protocol, "perl" X11::Protocol, "perl"
CREDITS
A web site for comments, requests, bug reports and bug fixes/patches is
available at: <https://github.com/duncs/clusterssh>
AUTHOR AUTHOR
Duncan Ferguson, "<duncan_j_ferguson at yahoo.co.uk>" Duncan Ferguson, "<duncan_j_ferguson at yahoo.co.uk>"

View file

@ -4,10 +4,9 @@ use strict;
use warnings; use warnings;
use FindBin qw($Bin $Script); use FindBin qw($Bin $Script);
use File::Basename;
chdir $Bin || die "Unable to chdir into $Bin: $!"; my $bindir="bin";
my $bindir="$Bin/../bin";
if(! -d $bindir) { if(! -d $bindir) {
mkdir $bindir || die "Could not mkdir $bindir: $!"; mkdir $bindir || die "Could not mkdir $bindir: $!";
@ -16,8 +15,8 @@ if(! -d $bindir) {
print "Using perl binary: $^X",$/; print "Using perl binary: $^X",$/;
print "Using perl version $^V",$/; print "Using perl version $^V",$/;
for my $source (glob("*")) { for my $dest (@ARGV) {
my $dest="$bindir/$source"; my $source=$Bin.'/'.basename($dest);
next if($source =~ m/$Script/); next if($source =~ m/$Script/);
next if($source =~ m/\.x$/); next if($source =~ m/\.x$/);
@ -33,10 +32,10 @@ for my $source (glob("*")) {
print $dfh $_ while(<$sfh>); print $dfh $_ while(<$sfh>);
close($sfh); close($sfh);
if($source ne "clusterssh_bash_completion.dist") { if($source !~ m/clusterssh_bash_completion.dist/) {
print $dfh "\n\n__END__\n\n"; print $dfh "\n\n__END__\n\n";
my $pod= qx{ $^X ./$source --generate-pod }; my $pod= qx{ $^X $source --generate-pod };
die "Failed to generate pod" if($?); die "Failed to generate pod" if($?);
print $dfh $pod; print $dfh $pod;
} }

View file

@ -3,7 +3,7 @@ package App::ClusterSSH;
use 5.008.004; use 5.008.004;
use warnings; use warnings;
use strict; use strict;
use version; our $VERSION = version->new('4.13_01'); use version; our $VERSION = version->new('4.14_01');
use Carp qw/cluck :DEFAULT/; use Carp qw/cluck :DEFAULT/;

View file

@ -1014,9 +1014,8 @@ B<NOTE:> Any "generic" change to the method (e.g., specifying the ssh port to us
); );
output '=back'; output '=back';
output '=head1 ', $self->loc('REPORTING BUGS'); output '=head1 ', $self->loc('TROUBLESHOOTING');
output '=over';
output '=item *';
output $self->loc( output $self->loc(
q{If you have issues running [_1], first try: q{If you have issues running [_1], first try:
@ -1037,16 +1036,16 @@ This performs two tests to confirm cssh is able to work properly with the settin
$self->parent->config->{comms} ); $self->parent->config->{comms} );
output '=back'; output '=back';
output $self->loc(q{Configuration options to watch for in ssh are}); output $self->loc(q{Configuration options to watch for in ssh are:});
output '=over'; output '=over';
output '=item ', output '=item *';
$self->loc( output $self->loc(
q{SSH doesn't understand [_1] - remove the option from the [_2] file}, q{SSH doesn't understand [_1] - remove the option from the [_2] file},
'C<-o ConnectTimeout=10>', 'C<-o ConnectTimeout=10>',
'F<$HOME/.clusterssh/config>' 'F<$HOME/.clusterssh/config>'
); );
output '=item ', output '=item *';
$self->loc( output $self->loc(
q{OpenSSH-3.8 using untrusted ssh tunnels - use [_1] instead of [_2] or use [_3] in [_4] (if you change the default ssh options from [_5] to [_6])}, q{OpenSSH-3.8 using untrusted ssh tunnels - use [_1] instead of [_2] or use [_3] in [_4] (if you change the default ssh options from [_5] to [_6])},
'C<-Y>', 'C<-Y>',
'C<-X>', 'C<-X>',
@ -1057,9 +1056,16 @@ This performs two tests to confirm cssh is able to work properly with the settin
); );
output '=back'; output '=back';
output '=item *'; output '=head1 ', $self->loc('SUPPORT AND REPORTING BUGS');
output $self->loc( output $self->loc(
q{If you require support, please run the following commands and post it on the web site in the support/problems forum:} q{A web site for comments, requests, bug reports and bug fixes/patches is available at: [_1]},
'L<https://github.com/duncs/clusterssh>'
);
output $self->loc(
q{If you require support, please run the following commands and create an issue via: [_1]},
'L<https://github.com/duncs/clusterssh/issues>',
); );
output 'C<< perl -V >>'; output 'C<< perl -V >>';
output q{C<< perl -MTk -e 'print $Tk::VERSION,$/' >>}; output q{C<< perl -MTk -e 'print $Tk::VERSION,$/' >>};
@ -1067,28 +1073,20 @@ This performs two tests to confirm cssh is able to work properly with the settin
q{C<< perl -MX11::Protocol -e 'print $X11::Protocol::VERSION,$/' >>}; q{C<< perl -MX11::Protocol -e 'print $X11::Protocol::VERSION,$/' >>};
output 'C<< cat /etc/csshrc $HOME/.clusterssh/config >>'; output 'C<< cat /etc/csshrc $HOME/.clusterssh/config >>';
output '=item *';
output $self->loc( output $self->loc(
q{Using the debug option (--debug) will turn on debugging output. Repeat the option to increase the amount of debug. However, if possible please only use this option with one host at a time, e.g. [_1] due to the amount of output produced (in both main and child windows).}, q{Using the debug option (--debug) will turn on debugging output. Repeat the option to increase the amount of debug. However, if possible please only use this option with one host at a time, e.g. [_1] due to the amount of output produced (in both main and child windows).},
'C<< cssh --debug <host> >>' 'C<< cssh --debug <host> >>'
); );
output '=back';
output '=head1 ', $self->loc('SEE ALSO'); output '=head1 ', $self->loc('SEE ALSO');
output $self->loc( output $self->loc(
q{L<http://clusterssh.sourceforge.net/>, q{L<https://github.com/duncs/clusterssh/wiki/>,
C<ssh>, C<ssh>,
L<Tk::overview>, L<Tk::overview>,
L<X11::Protocol>, L<X11::Protocol>,
C<perl>} C<perl>}
); );
output '=head1 ', $self->loc('CREDITS');
output $self->loc(
'A web site for comments, requests, bug reports and bug fixes/patches is available at: [_1]',
'L<https://github.com/duncs/clusterssh>'
);
output '=head1 ', $self->loc('AUTHOR'); output '=head1 ', $self->loc('AUTHOR');
output 'Duncan Ferguson, C<< <duncan_j_ferguson at yahoo.co.uk> >>'; output 'Duncan Ferguson, C<< <duncan_j_ferguson at yahoo.co.uk> >>';

View file

@ -425,4 +425,15 @@ TODO: {
is( $trap->die, undef, 'Expecting no die message' ); is( $trap->die, undef, 'Expecting no die message' );
} }
@ARGV = ( '--rows', 5, '--cols', 10 );
$getopts = App::ClusterSSH::Getopt->new( parent => $mock_object, );
trap {
$getopts->getopts;
};
$trap->did_return(" ... returned");
$trap->quiet(" ... quietly");
is( $mock_object->{cols}, 10, 'cols set correctly' );
is( $mock_object->{rows}, 5, 'rows set correctly' );
done_testing; done_testing;