Hello community, here is the log from the commit of package percona-toolkit for openSUSE:Factory checked in at 2012-10-18 21:59:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/percona-toolkit (Old) and /work/SRC/openSUSE:Factory/.percona-toolkit.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "percona-toolkit", Maintainer is "" Changes: -------- --- /work/SRC/openSUSE:Factory/percona-toolkit/percona-toolkit.changes 2012-10-07 19:54:35.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.percona-toolkit.new/percona-toolkit.changes 2012-10-18 21:59:29.000000000 +0200 @@ -1,0 +2,11 @@ +Tue Oct 16 20:34:53 UTC 2012 - [email protected] + +- update to 2.1.5 + * pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB + Cluster nodes + * pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based + slaves as cluster nodes + * pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL + * Missing version-check page + +------------------------------------------------------------------- Old: ---- percona-toolkit-2.1.4.tar.gz New: ---- percona-toolkit-2.1.5.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ percona-toolkit.spec ++++++ --- /var/tmp/diff_new_pack.qXHKYQ/_old 2012-10-18 21:59:30.000000000 +0200 +++ /var/tmp/diff_new_pack.qXHKYQ/_new 2012-10-18 21:59:30.000000000 +0200 @@ -20,10 +20,10 @@ Summary: Advanced MySQL and system command-line tools License: GPL-2.0 Group: Productivity/Databases/Tools -Version: 2.1.4 +Version: 2.1.5 Release: 0 -Url: http://www.percona.com/software/percona-toolkit/ -Source: http://www.percona.com/redir/downloads/%{name}/%{version}/percona-toolkit-%{version}.tar.gz +Url: https://www.percona.com/software/percona-toolkit/ +Source: https://www.percona.com/redir/downloads/%{name}/%{version}/percona-toolkit-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build %{perl_requires} Requires: perl(DBD::mysql) >= 1.0 ++++++ percona-toolkit-2.1.4.tar.gz -> percona-toolkit-2.1.5.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/Changelog new/percona-toolkit-2.1.5/Changelog --- old/percona-toolkit-2.1.4/Changelog 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/Changelog 2012-10-08 23:53:00.000000000 +0200 @@ -1,5 +1,12 @@ Changelog for Percona Toolkit +v2.1.5 released 2012-10-08 + + * Fixed bug 1062563: pt-table-checksum 2.1.4 doesn't detect diffs on Percona XtraDB Cluster nodes + * Fixed bug 1063912: pt-table-checksum 2.1.4 miscategorizes Percona XtraDB Cluster-based slaves as cluster nodes + * Fixed bug 1064016: pt-table-sync 2.1.4 --version-check may not work with HTTPS/SSL + * Fixed bug 1060423: Missing version-check page + v2.1.4 released 2012-09-20 * pt-table-checksum: Percona XtraDB Cluster support diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/Makefile.PL new/percona-toolkit-2.1.5/Makefile.PL --- old/percona-toolkit-2.1.4/Makefile.PL 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/Makefile.PL 2012-10-08 23:53:00.000000000 +0200 @@ -2,7 +2,7 @@ WriteMakefile( NAME => 'percona-toolkit', - VERSION => '2.1.4', + VERSION => '2.1.5', EXE_FILES => [ <bin/*> ], MAN1PODS => { 'docs/percona-toolkit.pod' => 'blib/man1/percona-toolkit.1p', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-align new/percona-toolkit-2.1.5/bin/pt-align --- old/percona-toolkit-2.1.4/bin/pt-align 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-align 2012-10-08 23:53:00.000000000 +0200 @@ -218,6 +218,6 @@ =head1 VERSION -pt-align 2.1.4 +pt-align 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-archiver new/percona-toolkit-2.1.5/bin/pt-archiver --- old/percona-toolkit-2.1.4/bin/pt-archiver 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-archiver 2012-10-08 23:53:00.000000000 +0200 @@ -7489,6 +7489,6 @@ =head1 VERSION -pt-archiver 2.1.4 +pt-archiver 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-config-diff new/percona-toolkit-2.1.5/bin/pt-config-diff --- old/percona-toolkit-2.1.4/bin/pt-config-diff 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-config-diff 2012-10-08 23:53:00.000000000 +0200 @@ -4803,6 +4803,6 @@ =head1 VERSION -pt-config-diff 2.1.4 +pt-config-diff 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-deadlock-logger new/percona-toolkit-2.1.5/bin/pt-deadlock-logger --- old/percona-toolkit-2.1.4/bin/pt-deadlock-logger 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-deadlock-logger 2012-10-08 23:53:00.000000000 +0200 @@ -4721,6 +4721,6 @@ =head1 VERSION -pt-deadlock-logger 2.1.4 +pt-deadlock-logger 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-diskstats new/percona-toolkit-2.1.5/bin/pt-diskstats --- old/percona-toolkit-2.1.4/bin/pt-diskstats 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-diskstats 2012-10-08 23:53:00.000000000 +0200 @@ -5537,6 +5537,6 @@ =head1 VERSION -pt-diskstats 2.1.4 +pt-diskstats 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-duplicate-key-checker new/percona-toolkit-2.1.5/bin/pt-duplicate-key-checker --- old/percona-toolkit-2.1.4/bin/pt-duplicate-key-checker 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-duplicate-key-checker 2012-10-08 23:53:00.000000000 +0200 @@ -5385,6 +5385,6 @@ =head1 VERSION -pt-duplicate-key-checker 2.1.4 +pt-duplicate-key-checker 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-fifo-split new/percona-toolkit-2.1.5/bin/pt-fifo-split --- old/percona-toolkit-2.1.4/bin/pt-fifo-split 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-fifo-split 2012-10-08 23:53:00.000000000 +0200 @@ -1560,6 +1560,6 @@ =head1 VERSION -pt-fifo-split 2.1.4 +pt-fifo-split 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-find new/percona-toolkit-2.1.5/bin/pt-find --- old/percona-toolkit-2.1.4/bin/pt-find 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-find 2012-10-08 23:53:00.000000000 +0200 @@ -4876,6 +4876,6 @@ =head1 VERSION -pt-find 2.1.4 +pt-find 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-fingerprint new/percona-toolkit-2.1.5/bin/pt-fingerprint --- old/percona-toolkit-2.1.4/bin/pt-fingerprint 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-fingerprint 2012-10-08 23:53:00.000000000 +0200 @@ -2151,6 +2151,6 @@ =head1 VERSION -pt-fingerprint 2.1.4 +pt-fingerprint 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-fk-error-logger new/percona-toolkit-2.1.5/bin/pt-fk-error-logger --- old/percona-toolkit-2.1.4/bin/pt-fk-error-logger 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-fk-error-logger 2012-10-08 23:53:00.000000000 +0200 @@ -3968,6 +3968,6 @@ =head1 VERSION -pt-fk-error-logger 2.1.4 +pt-fk-error-logger 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-heartbeat new/percona-toolkit-2.1.5/bin/pt-heartbeat --- old/percona-toolkit-2.1.4/bin/pt-heartbeat 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-heartbeat 2012-10-08 23:53:00.000000000 +0200 @@ -5902,6 +5902,6 @@ =head1 VERSION -pt-heartbeat 2.1.4 +pt-heartbeat 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-index-usage new/percona-toolkit-2.1.5/bin/pt-index-usage --- old/percona-toolkit-2.1.4/bin/pt-index-usage 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-index-usage 2012-10-08 23:53:00.000000000 +0200 @@ -7428,6 +7428,6 @@ =head1 VERSION -pt-index-usage 2.1.4 +pt-index-usage 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-ioprofile new/percona-toolkit-2.1.5/bin/pt-ioprofile --- old/percona-toolkit-2.1.4/bin/pt-ioprofile 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-ioprofile 2012-10-08 23:53:00.000000000 +0200 @@ -1103,7 +1103,7 @@ =head1 VERSION -pt-ioprofile 2.1.4 +pt-ioprofile 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-kill new/percona-toolkit-2.1.5/bin/pt-kill --- old/percona-toolkit-2.1.4/bin/pt-kill 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-kill 2012-10-08 23:53:00.000000000 +0200 @@ -7775,6 +7775,6 @@ =head1 VERSION -pt-kill 2.1.4 +pt-kill 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-log-player new/percona-toolkit-2.1.5/bin/pt-log-player --- old/percona-toolkit-2.1.4/bin/pt-log-player 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-log-player 2012-10-08 23:53:00.000000000 +0200 @@ -3642,6 +3642,6 @@ =head1 VERSION -pt-log-player 2.1.4 +pt-log-player 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-mext new/percona-toolkit-2.1.5/bin/pt-mext --- old/percona-toolkit-2.1.4/bin/pt-mext 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-mext 2012-10-08 23:53:00.000000000 +0200 @@ -282,7 +282,7 @@ =head1 VERSION -pt-mext 2.1.4 +pt-mext 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-mysql-summary new/percona-toolkit-2.1.5/bin/pt-mysql-summary --- old/percona-toolkit-2.1.4/bin/pt-mysql-summary 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-mysql-summary 2012-10-08 23:53:00.000000000 +0200 @@ -2905,7 +2905,7 @@ =head1 VERSION -pt-mysql-summary 2.1.4 +pt-mysql-summary 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-online-schema-change new/percona-toolkit-2.1.5/bin/pt-online-schema-change --- old/percona-toolkit-2.1.4/bin/pt-online-schema-change 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-online-schema-change 2012-10-08 23:53:00.000000000 +0200 @@ -10084,6 +10084,6 @@ =head1 VERSION -pt-online-schema-change 2.1.4 +pt-online-schema-change 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-pmp new/percona-toolkit-2.1.5/bin/pt-pmp --- old/percona-toolkit-2.1.4/bin/pt-pmp 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-pmp 2012-10-08 23:53:00.000000000 +0200 @@ -396,7 +396,7 @@ =head1 VERSION -pt-pmp 2.1.4 +pt-pmp 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-query-advisor new/percona-toolkit-2.1.5/bin/pt-query-advisor --- old/percona-toolkit-2.1.4/bin/pt-query-advisor 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-query-advisor 2012-10-08 23:53:00.000000000 +0200 @@ -8675,6 +8675,6 @@ =head1 VERSION -pt-query-advisor 2.1.4 +pt-query-advisor 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-query-digest new/percona-toolkit-2.1.5/bin/pt-query-digest --- old/percona-toolkit-2.1.4/bin/pt-query-digest 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-query-digest 2012-10-08 23:53:00.000000000 +0200 @@ -17103,6 +17103,6 @@ =head1 VERSION -pt-query-digest 2.1.4 +pt-query-digest 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-show-grants new/percona-toolkit-2.1.5/bin/pt-show-grants --- old/percona-toolkit-2.1.4/bin/pt-show-grants 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-show-grants 2012-10-08 23:53:00.000000000 +0200 @@ -2252,6 +2252,6 @@ =head1 VERSION -pt-show-grants 2.1.4 +pt-show-grants 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-sift new/percona-toolkit-2.1.5/bin/pt-sift --- old/percona-toolkit-2.1.4/bin/pt-sift 2012-09-25 17:35:53.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-sift 2012-10-08 23:53:00.000000000 +0200 @@ -781,7 +781,7 @@ =head1 VERSION -pt-sift 2.1.4 +pt-sift 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-slave-delay new/percona-toolkit-2.1.5/bin/pt-slave-delay --- old/percona-toolkit-2.1.4/bin/pt-slave-delay 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-slave-delay 2012-10-08 23:53:00.000000000 +0200 @@ -4548,6 +4548,6 @@ =head1 VERSION -pt-slave-delay 2.1.4 +pt-slave-delay 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-slave-find new/percona-toolkit-2.1.5/bin/pt-slave-find --- old/percona-toolkit-2.1.4/bin/pt-slave-find 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-slave-find 2012-10-08 23:53:00.000000000 +0200 @@ -4008,6 +4008,6 @@ =head1 VERSION -pt-slave-find 2.1.4 +pt-slave-find 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-slave-restart new/percona-toolkit-2.1.5/bin/pt-slave-restart --- old/percona-toolkit-2.1.4/bin/pt-slave-restart 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-slave-restart 2012-10-08 23:53:00.000000000 +0200 @@ -5468,6 +5468,6 @@ =head1 VERSION -pt-slave-restart 2.1.4 +pt-slave-restart 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-stalk new/percona-toolkit-2.1.5/bin/pt-stalk --- old/percona-toolkit-2.1.4/bin/pt-stalk 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-stalk 2012-10-08 23:53:00.000000000 +0200 @@ -1775,7 +1775,7 @@ =head1 VERSION -pt-stalk 2.1.4 +pt-stalk 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-summary new/percona-toolkit-2.1.5/bin/pt-summary --- old/percona-toolkit-2.1.4/bin/pt-summary 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-summary 2012-10-08 23:53:00.000000000 +0200 @@ -2673,7 +2673,7 @@ =head1 VERSION -pt-summary 2.1.4 +pt-summary 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-table-checksum new/percona-toolkit-2.1.5/bin/pt-table-checksum --- old/percona-toolkit-2.1.4/bin/pt-table-checksum 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-table-checksum 2012-10-08 23:53:00.000000000 +0200 @@ -3320,7 +3320,9 @@ PTDEBUG && _d($sql); my $row = $self->{dbh}->selectrow_arrayref($sql); PTDEBUG && _d(defined $row ? @$row : 'undef'); - $self->{is_cluster_node} = $row && $row->[0] ? 1 : 0; + $self->{is_cluster_node} = $row && $row->[1] + ? ($row->[1] eq 'ON' || $row->[1] eq '1') + : 0; return $self->{is_cluster_node}; } @@ -8580,7 +8582,7 @@ } else { PTDEBUG && _d('Will check slave lag on all slaves'); - $slave_lag_cxns = $slaves; + $slave_lag_cxns = [ map { $_ } @$slaves ]; } # Cluster nodes aren't slaves, so SHOW SLAVE STATUS doesn't work. @@ -11313,6 +11315,12 @@ cannot be detected automatically. The lag check (see L<"REPLICA CHECKS">) is not performed for cluster nodes. +Mixed replication setups are not currently supported. For example, the tool +does not work completely if the master host is replicating to a cluster, +or if the cluster is replicating to another cluster. In short, the only +supported setup is a single cluster with nodes optionally having traditional +replication slaves. + =back =head1 BUGS @@ -11396,6 +11404,6 @@ =head1 VERSION -pt-table-checksum 2.1.4 +pt-table-checksum 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-table-sync new/percona-toolkit-2.1.5/bin/pt-table-sync --- old/percona-toolkit-2.1.4/bin/pt-table-sync 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-table-sync 2012-10-08 23:53:00.000000000 +0200 @@ -8389,12 +8389,13 @@ sub get_os_version { my ($self) = @_; + if ( $OSNAME eq 'MSWin32' ) { + require Win32; + return Win32::GetOSDisplayName(); + } + chomp(my $platform = `uname -s`); PTDEBUG && _d('platform:', $platform); - if ( !$platform ) { - return $OSNAME if $OSNAME ne 'MSWin32'; - return Win32::GetOSDisplayName(); - } return $OSNAME unless $platform; chomp(my $lsb_release @@ -8428,6 +8429,10 @@ $release .= " ($code_name)" if $code_name; } } + elsif ( -f "/etc/os-release" ) { # openSUSE + chomp($release = `grep PRETTY_NAME /etc/os-release`); + $release =~ s/^PRETTY_NAME="(.+)"$/$1/; + } elsif ( `ls /etc/*release 2>/dev/null` ) { if ( `grep DISTRIB_DESCRIPTION /etc/*release 2>/dev/null` ) { $release = `grep DISTRIB_DESCRIPTION /etc/*release | head -n1`; @@ -8437,7 +8442,7 @@ } } } - elsif ( $platform =~ m/^(BSD|Darwin)$/ ) { + elsif ( $platform =~ m/(?:BSD|^Darwin)$/ ) { my $rel = `uname -r`; $release = "$platform $rel"; } @@ -8452,6 +8457,8 @@ } chomp($release); + $release =~ s/^"|"$//g; + PTDEBUG && _d('OS version =', $release); return $release; } @@ -8782,8 +8789,14 @@ IO::Socket::SSL->start_SSL($self->{fh}); ref($self->{fh}) eq 'IO::Socket::SSL' or die(qq/SSL connection failed for $host\n/); - $self->{fh}->verify_hostname( $host, $ssl_verify_args ) - or die(qq/SSL certificate not valid for $host\n/); + if ( $self->{fh}->can("verify_hostname") ) { + $self->{fh}->verify_hostname( $host, $ssl_verify_args ); + } + else { + my $fh = $self->{fh}; + _verify_hostname_of_cert($host, _peer_certificate($fh), $ssl_verify_args) + or die(qq/SSL certificate not valid for $host\n/); + } } $self->{host} = $host; @@ -9026,6 +9039,179 @@ return $self->_do_timeout('write', @_) } +my $prog = <<'EOP'; +BEGIN { + if ( defined &IO::Socket::SSL::CAN_IPV6 ) { + *CAN_IPV6 = \*IO::Socket::SSL::CAN_IPV6; + } + else { + constant->import( CAN_IPV6 => '' ); + } + my %const = ( + NID_CommonName => 13, + GEN_DNS => 2, + GEN_IPADD => 7, + ); + while ( my ($name,$value) = each %const ) { + no strict 'refs'; + *{$name} = UNIVERSAL::can( 'Net::SSLeay', $name ) || sub { $value }; + } +} +{ + my %dispatcher = ( + issuer => sub { Net::SSLeay::X509_NAME_oneline( Net::SSLeay::X509_get_issuer_name( shift )) }, + subject => sub { Net::SSLeay::X509_NAME_oneline( Net::SSLeay::X509_get_subject_name( shift )) }, + ); + if ( $Net::SSLeay::VERSION >= 1.30 ) { + $dispatcher{commonName} = sub { + my $cn = Net::SSLeay::X509_NAME_get_text_by_NID( + Net::SSLeay::X509_get_subject_name( shift ), NID_CommonName); + $cn =~s{\0$}{}; # work around Bug in Net::SSLeay <1.33 + $cn; + } + } else { + $dispatcher{commonName} = sub { + croak "you need at least Net::SSLeay version 1.30 for getting commonName" + } + } + + if ( $Net::SSLeay::VERSION >= 1.33 ) { + $dispatcher{subjectAltNames} = sub { Net::SSLeay::X509_get_subjectAltNames( shift ) }; + } else { + $dispatcher{subjectAltNames} = sub { + return; + }; + } + + $dispatcher{authority} = $dispatcher{issuer}; + $dispatcher{owner} = $dispatcher{subject}; + $dispatcher{cn} = $dispatcher{commonName}; + + sub _peer_certificate { + my ($self, $field) = @_; + my $ssl = $self->_get_ssl_object or return; + + my $cert = ${*$self}{_SSL_certificate} + ||= Net::SSLeay::get_peer_certificate($ssl) + or return $self->error("Could not retrieve peer certificate"); + + if ($field) { + my $sub = $dispatcher{$field} or croak + "invalid argument for peer_certificate, valid are: ".join( " ",keys %dispatcher ). + "\nMaybe you need to upgrade your Net::SSLeay"; + return $sub->($cert); + } else { + return $cert + } + } + + + my %scheme = ( + ldap => { + wildcards_in_cn => 0, + wildcards_in_alt => 'leftmost', + check_cn => 'always', + }, + http => { + wildcards_in_cn => 'anywhere', + wildcards_in_alt => 'anywhere', + check_cn => 'when_only', + }, + smtp => { + wildcards_in_cn => 0, + wildcards_in_alt => 0, + check_cn => 'always' + }, + none => {}, # do not check + ); + + $scheme{www} = $scheme{http}; # alias + $scheme{xmpp} = $scheme{http}; # rfc 3920 + $scheme{pop3} = $scheme{ldap}; # rfc 2595 + $scheme{imap} = $scheme{ldap}; # rfc 2595 + $scheme{acap} = $scheme{ldap}; # rfc 2595 + $scheme{nntp} = $scheme{ldap}; # rfc 4642 + $scheme{ftp} = $scheme{http}; # rfc 4217 + + + sub _verify_hostname_of_cert { + my $identity = shift; + my $cert = shift; + my $scheme = shift || 'none'; + if ( ! ref($scheme) ) { + $scheme = $scheme{$scheme} or croak "scheme $scheme not defined"; + } + + return 1 if ! %$scheme; # 'none' + + my $commonName = $dispatcher{cn}->($cert); + my @altNames = $dispatcher{subjectAltNames}->($cert); + + if ( my $sub = $scheme->{callback} ) { + return $sub->($identity,$commonName,@altNames); + } + + + my $ipn; + if ( CAN_IPV6 and $identity =~m{:} ) { + $ipn = IO::Socket::SSL::inet_pton(IO::Socket::SSL::AF_INET6,$identity) + or croak "'$identity' is not IPv6, but neither IPv4 nor hostname"; + } elsif ( $identity =~m{^\d+\.\d+\.\d+\.\d+$} ) { + $ipn = IO::Socket::SSL::inet_aton( $identity ) or croak "'$identity' is not IPv4, but neither IPv6 nor hostname"; + } else { + if ( $identity =~m{[^a-zA-Z0-9_.\-]} ) { + $identity =~m{\0} and croak("name '$identity' has \\0 byte"); + $identity = IO::Socket::SSL::idn_to_ascii($identity) or + croak "Warning: Given name '$identity' could not be converted to IDNA!"; + } + } + + my $check_name = sub { + my ($name,$identity,$wtyp) = @_; + $wtyp ||= ''; + my $pattern; + if ( $wtyp eq 'anywhere' and $name =~m{^([a-zA-Z0-9_\-]*)\*(.+)} ) { + $pattern = qr{^\Q$1\E[a-zA-Z0-9_\-]*\Q$2\E$}i; + } elsif ( $wtyp eq 'leftmost' and $name =~m{^\*(\..+)$} ) { + $pattern = qr{^[a-zA-Z0-9_\-]*\Q$1\E$}i; + } else { + $pattern = qr{^\Q$name\E$}i; + } + return $identity =~ $pattern; + }; + + my $alt_dnsNames = 0; + while (@altNames) { + my ($type, $name) = splice (@altNames, 0, 2); + if ( $ipn and $type == GEN_IPADD ) { + return 1 if $ipn eq $name; + + } elsif ( ! $ipn and $type == GEN_DNS ) { + $name =~s/\s+$//; $name =~s/^\s+//; + $alt_dnsNames++; + $check_name->($name,$identity,$scheme->{wildcards_in_alt}) + and return 1; + } + } + + if ( ! $ipn and ( + $scheme->{check_cn} eq 'always' or + $scheme->{check_cn} eq 'when_only' and !$alt_dnsNames)) { + $check_name->($commonName,$identity,$scheme->{wildcards_in_cn}) + and return 1; + } + + return 0; # no match + } +} +EOP + +eval { require IO::Socket::SSL }; +if ( $INC{"IO/Socket/SSL.pm"} ) { + eval $prog; + die $@ if $@; +} + 1; } # ########################################################################### @@ -9113,8 +9299,10 @@ print "# Percona suggests these upgrades:\n"; print join("\n", map { "# * $_" } @$advice), "\n\n"; } - elsif ( $ENV{PTVCDEBUG} || PTDEBUG ) { - _d('--version-check worked, but there were no suggestions'); + else { + print "# No suggestions at this time.\n\n"; + ($ENV{PTVCDEBUG} || PTDEBUG ) + && _d('--version-check worked, but there were no suggestions'); } }; if ( $EVAL_ERROR ) { @@ -9287,7 +9475,7 @@ sub _touch { my ($file) = @_; - sysopen my $fh, $file, O_WRONLY|O_CREAT|O_NONBLOCK + sysopen my $fh, $file, O_WRONLY|O_CREAT or die "Cannot create $file : $!"; close $fh or die "Cannot close $file : $!"; utime(undef, undef, $file); @@ -12390,6 +12578,6 @@ =head1 VERSION -pt-table-sync 2.1.4 +pt-table-sync 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-table-usage new/percona-toolkit-2.1.5/bin/pt-table-usage --- old/percona-toolkit-2.1.4/bin/pt-table-usage 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-table-usage 2012-10-08 23:53:00.000000000 +0200 @@ -7397,6 +7397,6 @@ =head1 VERSION -pt-table-usage 2.1.4 +pt-table-usage 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-tcp-model new/percona-toolkit-2.1.5/bin/pt-tcp-model --- old/percona-toolkit-2.1.4/bin/pt-tcp-model 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-tcp-model 2012-10-08 23:53:00.000000000 +0200 @@ -2532,6 +2532,6 @@ =head1 VERSION -pt-tcp-model 2.1.4 +pt-tcp-model 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-trend new/percona-toolkit-2.1.5/bin/pt-trend --- old/percona-toolkit-2.1.4/bin/pt-trend 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-trend 2012-10-08 23:53:00.000000000 +0200 @@ -2214,6 +2214,6 @@ =head1 VERSION -pt-trend 2.1.4 +pt-trend 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-upgrade new/percona-toolkit-2.1.5/bin/pt-upgrade --- old/percona-toolkit-2.1.4/bin/pt-upgrade 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-upgrade 2012-10-08 23:53:00.000000000 +0200 @@ -13067,6 +13067,6 @@ =head1 VERSION -pt-upgrade 2.1.4 +pt-upgrade 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-variable-advisor new/percona-toolkit-2.1.5/bin/pt-variable-advisor --- old/percona-toolkit-2.1.4/bin/pt-variable-advisor 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-variable-advisor 2012-10-08 23:53:00.000000000 +0200 @@ -5822,6 +5822,6 @@ =head1 VERSION -pt-variable-advisor 2.1.4 +pt-variable-advisor 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/bin/pt-visual-explain new/percona-toolkit-2.1.5/bin/pt-visual-explain --- old/percona-toolkit-2.1.4/bin/pt-visual-explain 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/bin/pt-visual-explain 2012-10-08 23:53:00.000000000 +0200 @@ -3112,6 +3112,6 @@ =head1 VERSION -pt-visual-explain 2.1.4 +pt-visual-explain 2.1.5 =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/percona-toolkit-2.1.4/docs/percona-toolkit.pod new/percona-toolkit-2.1.5/docs/percona-toolkit.pod --- old/percona-toolkit-2.1.4/docs/percona-toolkit.pod 2012-09-25 17:35:54.000000000 +0200 +++ new/percona-toolkit-2.1.5/docs/percona-toolkit.pod 2012-10-08 23:53:00.000000000 +0200 @@ -510,6 +510,6 @@ =head1 VERSION -Percona Toolkit v2.1.4 released 2012-09-20 +Percona Toolkit v2.1.5 released 2012-10-08 =cut -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
