Bug #53769 MEB: Innobackup script throws warning for Perl version
Submitted: 18 May 2010 23:11 Modified: 19 Jun 2010 9:51
Reporter: Chuck Bell Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Enterprise Backup Severity:S3 (Non-critical)
Version:1.5.2 OS:Any
Assigned to: Satya B
Triage: Triaged: D2 (Serious)

[18 May 2010 23:11] Chuck Bell
Description:
The script innobackup throws a warning on later versions of Perl.

Chucks-MacBook-Pro:Downloads Chuck$ ./innobackup-1.5.2 
Version string '' contains invalid data; ignoring: '' at ./innobackup-1.5.2 line 1273.

How to repeat:
Run innobackup.

Suggested fix:
Change the Perl version detection to recognize when the version string is a string versus a number as in earlier releases of Perl.
[20 May 2010 14:49] Chuck Bell
There is another problem with this portion of the code. It does not handle Perl versions with more than a single digit in the version parts. For example, 5.8.5 is fine but 5.10.11 will print out garbage instead of 10 and 11. I will fix this as well.
[29 May 2010 19:30] Chuck Bell
It has been discussed and decided each tool shall display its version number and the MEB version number it is associated with. For example:

./ibbackup --version

ibbackup X.Y.Z MySQL Enterprise A.B.C

./innobackup --version

innobackup X.Y.Z MySQL Enterprise A.B.C

Where A,B,C | X,Y.Z are major, minor, and bug release values (or their equivalent). Build numbers shall not be included.
[29 May 2010 19:46] Chuck Bell
It has been discussed and decided each tool shall display its version number and the MEB version number it is associated with. For example:

./ibbackup --version

ibbackup X.Y.Z MySQL Enterprise A.B.C

./innobackup --version

innobackup X.Y.Z MySQL Enterprise A.B.C

Where A,B,C | X,Y.Z are major, minor, and bug release values (or their equivalent). Build numbers shall not be included.
[2 Jun 2010 9:59] Ingo Strüwing
Approved with some whining about ignored review comments.
[2 Jun 2010 14:37] Satya B
patch queued to svn+ssh://nbodapati@bk-internal.mysql.com/svnroot/innodb-innobackup/branches/1.5
[9 Jun 2010 4:56] Satya B
This is the patch:

Index: innobackup
===================================================================
--- innobackup  (revision 82)
+++ innobackup  (revision 89)
@@ -15,12 +15,12 @@

 # version of this script
-my $innobackup_version = '1.5.2';
+my $innobackup_version = '1.5.3';

 # copyright notice
 my $copyright_notice =
-"InnoDB Backup Utility v${innobackup_version}; Copyright 2003, 2009 Innobase Oy.
-All Rights Reserved.
+"InnoDB Backup Utility v${innobackup_version}
+Copyright (c) 2003, 2010, Oracle and/or its affiliates. All Rights Reserved.

 This software is published under
 the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
@@ -1260,24 +1260,14 @@
     # check the version of the perl we are running
     if (!defined $^V) {
         # this perl is prior to 5.6.0 and uses old style version string
+        # Since we are checking for 5.6.0 first, this is sufficient
+        # for checking for minimum required perl version 5.0.5
         my $required_version = $required_perl_version_old_style;
         if ($] lt $required_version) {
             print "$prefix Warning: " .
                 "Your perl is too old! Innobackup requires\n";
             print "$prefix Warning: perl $required_version or newer!\n";
         }
-    } else {
-        $perl_version = chr($required_perl_version[0])
-            . chr($required_perl_version[1])
-            . chr($required_perl_version[2]);
-        if ($^V lt $perl_version) {
-            my $version = chr(48 + $required_perl_version[0])
-                . "." . chr(48 + $required_perl_version[1])
-                . "." . chr(48 + $required_perl_version[2]);
-            print "$prefix Warning: " .
-                "Your perl is too old! Innobackup requires\n";
-            print "$prefix Warning: perl $version or newer!\n";
-        }
     }