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

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.

5.5

10.0

5.5 Galera

10.0 Galera

Downstream

Ubuntu inherits packages from Debian:

Ubuntu micro release procedure (security update):

Binaries for public testing

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/ mariabd-5.5-sid-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariabd-5.5-sid-i386/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariabd-10.0-sid-amd64/
  deb http://labs.seravo.fi/~otto/mariadb-repo/ mariabd-10.0-sid-i386/

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

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

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

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.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

Urgent items

  1. SONAME is defined inside the shared library and to change if the build source itself must be updated. Filed issue https://mariadb.atlassian.net/browse/MDEV-5482)

  2. Should libmariadbclient18 depend on package libmysqlclient18? Can that work it the -dev versions of the same packages conflict?
  3. Should libmariadbclient18 be ditched altoghether because nobody anyway links their programs to the libmariadbclient18.so shared library? Should the LGPL MariaDB client library be adopted here instead? Is is feature complete enough?
  4. 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?

Long-term items

  1. Review debian/patches, do we really need them? At least remove the temporary mysqld_safe-extrafix which was added only to satisfy dpkg-source nag.

  2. Figure out optimal way to add Ubuntu patches upon the Debian base and after that file issue upstream to get rid of debian/dists/(Debian|Ubuntu) folder.

  3. Figure out and document the optimal workflow to from importing upstream changes (using git-dch with correct parameters etc), committing, testing and all the way to uploading into Debian.

  4. Discuss with upstream to bump up the Debian policy version, rename *.files into *.install etc.

  5. Talk with upstream about autobake.sh and possible removal or simplification to run same build process as Debian does.

  6. Ask upstream to have one autobake run for our git also, so that we can benefit from the continuous integration system there https://mariadb.com/kb/en/package-testing-with-buildbot-and-kvm/)-- See now http://buildbot.askmonty.org/buildbot/builders/debpkg-trusty and http://buildbot.askmonty.org/buildbot/builders/debpkg-sid

  7. --(In general, minimize delta with upstream to make maintenance and updates easier See README.Maintainer, updating is now very easy.

  8. Ask upstream to GPG sign their tar.gz packages. Then we could use the new uscan feature: As of devscripts 2.13.3, uscan now supports verifying cryptographic signatures on upstream source via the pgpsigurlmangle option in debian/watch. See uscan(1) for details and examples. (or https://wiki.debian.org/debian/watch/#Cryptographic_signature_verification))--

  9. Add ci.debian.net integration like MySQL has: http://ci.debian.net/#package/mysql-5.5

  10. Rename libmariadbclient-dev to libmariadbclient18-dev
  11. Use utf-8 as default in my.cnf as Gentoo does and most users probably want (instead of current latin-1)?
  12. Implement metadata.yml DEP12). Confirm with Duck that all URLs are functional.

  13. Move data in 10.0 to /var/lib/mariadb
  14. Add question to installer to make feedback plugin opt-in very easy.