1
# README for Debian package maintainers #
3
This file mostly applies to how the packaging workflow works for the official Debian packages, but it may contain useful information also for anybody doing their own private .deb builds.
1
6
## Building from sources with git-buildpackage ##
4
8
Clone sources with all branches
5
9
sudo apt-get install git-buildpackage
6
10
gbp-clone --pristine-tar git://git.debian.org/git/pkg-mysql/mariadb-5.5.git
31
35
export DEB_BUILD_OPTIONS="nocheck"
37
If you want to run the build in parallel on 2 CPUs and have verbose output, use:
38
export DEB_BUILD_OPTIONS="parallel=2 verbose"
40
The options above can also be combined freely to get required behaviour.
34
43
## Importing initial sources from upstream the first fime ##
56
65
## Upgrading sources from upstream ##
67
Upstream will publish maintenance releases at least 5 years after the major version release, and security updates are likely to come even after that as long as major distributions ship the version.
69
See table at https://mariadb.com/kb/en/mariadb/development/mariadb-maintenance-policy/
71
Release notes are available at https://mariadb.com/kb/en/mariadb/development/release-notes/
74
### Steps to import new upstream version ###
58
76
Download new source package
76
94
Note that in above if you want to sync to Github directly you need to have collaborator rights to the Github repo and you need to add it as a secondary remote location with:
77
95
git remote add origin git@github.com:ottok/mariadb-5.5.git
97
To push to the git.debian.org repos you need to a member of the pkg-mysql team at Alioth. It does not matter which repository you push to, eventually they are synced with each other anyway.
100
### Maintaining patches ###
102
Test that the patches still apply by running:
103
export QUILT_PATCHES=debian/patches
107
If there are any rejects, inspect the files and update the patches.
80
109
### Maintaining symbols file for libmariadbclient18 et al ###
122
153
The run the commands to automatically change version and upload
123
154
backportpackage -u ppa:mysql-ubuntu/mariadb -d precise -r *.dsc -S ~ppa1 -y
156
## Uploading to Ubuntu security releases ##
158
See examples with documented procedures:
159
* https://bugs.launchpad.net/ubuntu/+source/mariadb-5.5/+bug/1313187
160
* https://bugs.launchpad.net/ubuntu/+source/mariadb-5.5/+bug/1363222
162
Probably the most optimal workflow would be to create a git branch (e.g. ubuntu-14.04) with custom gbp.conf and maintaining it by importing upstream in one commit, and updating changelog and other stuff, including refreshing patches in another commits, so that it would be easy to produce a patch file that Ubuntu security team can apply upon the mix of previous debian/ contents from Ubuntu archive and updated others from upstream. This would allow to use git-buildpackage to produce test builds instead of plain 'fakeroot dpkg-buildpackage'.
164
## Comparison to other distributions ##
166
For tracking security release information, finding solutions for build errors on many architechtures and for general quality control it can be useful to keep an eye on what packagers in other distributions do:
169
* https://apps.fedoraproject.org/packages/mariadb/
170
* http://pkgs.fedoraproject.org/cgit/mariadb.git/
172
* https://build.opensuse.org/package/show/server:database/mariadb
174
* https://projects.archlinux.org/svntogit/packages.git/?h=packages/mariadb
176
* http://svnweb.mageia.org/packages/cauldron/mariadb/current/
178
## Notes about hard to fix bugs ##
180
The following issues at https://qa.debian.org/bls/packages/m/mariadb-5.5.html are due to a bug in GCC which has been reported to GCC and will become fixed eventually:
181
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:300 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)
182
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:496 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)