Contributions to MariaDB packaging are welcome! Just state your interest on the pkg-mysql-maint mailing list or send git pull requests directly.

Status

Debian

* Complete Debian package listings: mariadb

5.5

10.0

5.5 Galera

10.0 Galera

10.1 (includes Galera WSREP consumer patches)

Galera package (WSREP provider)

MariaDB client LGPL version

Downstream

Ubuntu inherits packages from Debian:

Note that Ubuntu automatically also provides debug packages. For details see

Ubuntu micro release procedure (security update):

Binaries for public testing

The directory http://labs.seravo.fi/~otto/mariadb-repo/ is browseable and there you can find build logs and both binary and source packages. Build logs have the git hash appended so it is possible to track build logs per commit.

Latest test packages can be installed after adding the sources.list line corresponding to your distro:

  # Debian unstable, all packages in one repository
  deb http://labs.seravo.fi/~otto/mariadb-repo/ sid-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ sid-i386/

  # Debian unstable, per-package repositories
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-sid-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-sid-i386/

  # Debian stable
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-jessie-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-jessie-i386/

  # Ubuntu latest LTS
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-5.5-trusty-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-5.5-trusty-i386/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-trusty-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariadb-10.0-trusty-i386/

For a full list of available repositories, please browse http://labs.seravo.fi/~otto/mariadb-repo/

There is also a Launchpad page that provides public build logs and testable binaries via PPA repository. See https://launchpad.net/~mysql-ubuntu/+archive/ubuntu/mariadb-10.0/+builds?build_text=&build_state=all (link to 10.0 - other series also available)

Building yourself

Basically you can just run gbp-clone --pristine-tar git://github.com/ottok/mariadb-X.git to check out the code in all branches and then run git-buildpackage  --git-pristine-tar to build directly on your own computer, on with --git-pbuilder to use separate chroot environments for installing build dependencies and building. Without pbuilder you need to manually install the build dependencies with apt-get.

See more commands in script at http://labs.seravo.fi/~otto/mariadb-repo/build.sh

Also see the debian/README.Maintaner file inside the package.

Packaging background

How MariaDB works

Regarding circular dependencies:

Regarding symbol and soname changes in MariaDB:

In the future it might be possible to run something like

   licensecheck --copyright -r . -c . | /usr/lib/cdbs/licensecheck2dep5 > /tmp/copyright

..but at the moment it does not work, so the license file is a hybrid with automation plus manual clean up.

Script license-reconcile can be used to lint the copyright file, but it cannot generate a correct file.

Related issue filed upstream: https://mariadb.atlassian.net/browse/MDEV-5483

TODO

Long-term items

  1. Create systemd scripts? Copy from mysql-5.6 package or from upstream MariaDB if closes https://mariadb.atlassian.net/browse/MDEV-427

  2. In which package should the file libmysqld.so live? Should that package depend also on mariadb-server and draw in all of server because the shared lib uses stuff from the server package?
  3. Drop old legacy: mysqld.sym.gz, INFO_SRC, INFO_BIN. Remove in rules legacy lines about STATIC_MYSQLD (was for autotools, does not work with cmake anymore)

  4. Rewrite parallel job support for cmake and skip old make style with -j and jobserver.

  5. Check if dirs files are really needed nowdays (e.g. mariadb-server-10.0.dirs)

  6. Use utf-8 as default in my.cnf as Gentoo does and most users probably want (instead of current latin-1)?

  7. Start using cyassl from Debian instead of bundled library (not possible according to upstream yet). Bundled YaSSL is used instead of OpenSSL.

  8. Add autopkg tests to detect changes introduced by other uploaded packages: http://ci.debian.net/doc/ (examples at http://anonscm.debian.org/cgit/pkg-mysql/mysql-5.5.git/tree/debian/tests)

  9. Implement metadata.yml DEP12). Confirm with Duck that all URLs are functional.

  10. Review all install scripts (pre/post/inst/rm) and remove all legacy stuff and replace the long echos with file templates (or at least use printf instead of echo). This was postponed until mysql-5.5->5.6 transition is done and whole mysql-maint team can participate, as the install scripts are (almost) the same across all packages.

  11. Implement config and data files de-coupling across the MySQL variants, see http://lists.alioth.debian.org/pipermail/pkg-mysql-maint/2014-December/007392.html)--

  12. Add question to installer to make feedback plugin opt-in very easy.
  13. Old hardening-wrapper supported PIE protection, but it does not work anymore with dpkg-buildflags. Research how hardening could be as optimal as possible now, see https://wiki.debian.org/HardeningWalkthrough

  14. Use Travis CI for building and testing packages under development, e.g. https://github.com/openquery/mariadb-server/blob/travis-ci-10.0/.travis.yml