Provide only single binary xtrabackup

Registered by Vadim Tkachenko

I do not think we should provide several binaries, i.e.
xtrabackup
xtrabackup_51
xtrabackup_55

It seems that having single binary xtrabackup, based on most advanced version of Percona Server,
will be enough.

This should be properly tested, and if there is no problem, we should ship only single binary file.

Blueprint information

Status:
Complete
Approver:
Alexey Kopytov
Priority:
High
Drafter:
Alexey Kopytov
Direction:
Approved
Assignee:
Alexey Kopytov
Definition:
Approved
Series goal:
Accepted for 2.2
Implementation:
Implemented
Milestone target:
milestone icon 2.2.1-alpha1
Started by
Alexey Kopytov
Completed by
Alexey Kopytov

Whiteboard

The goals are to:

  1. Get rid of multiple xtrabackup binaries (xtrabackup, xtrabackup_55,
  xtrabackup_56, etc.)
  2. Make the XtraBackup source tree self-contained (without having to
  download server source tarballs).
  3. Get rid of patches.

  This obviously required a lot of small changes all over the source tree,
  here’s a description of the major ones:

  - merged patches/innodb56.patch to the server tree (currently based on
    5.6.11, will be rebased as a separate step);

  - merged relevant bits from XtraDB 5.1/5.5/5.6 to be able to backup
    all versions of Percona Server with a MySQL 5.6-based binary

  - cleaned up the code, removed tons of #ifdef
    XTRADB55/XTRADB_BASED/MYSQL_VERSION_ID, which are no longer necessary
    as we are building from a single tree;

  - moved the xtrabackup subdirectory to storage/innobase/xtrabackup. This
    was the only reliable way I could find to automatically inherit InnoDB
    compiler flags;

  - kewpie is gone (unmaintained, wouldn’t work with single binary anyway)

  - innodb_int.[ch] are gone;

  - build.sh is gone (one can use regular cmake commands to build in
    various configurations)

  - AUTO_DOWNLOAD is gone

  - insane hand-written Makefiles to support all kinds of tricks to build
    with external tarballs + patches are gone

  - run.sh -c does not have any effect (but is still supported for Jenkins
    compatibility)

  - the xtrabackup_binary file in the backup directory is no longer created

  - innobackupex-1.5.1 symlink is gone

  What needs further work:

  - packaging scripts are likely broken. Should be modified to use “make
    install” (short-term), and replaced with CPack (long-term)

  - documentation needs updating to reflect user-visible changes from above

  - documentation still uses its own build system (and thus is not
    installed on “make install”)

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.