Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
MariaDB and MySQL Packaging Team
mariadb-10.1
Commits
49431b99
Commit
49431b99
authored
Aug 31, 2018
by
Otto Kekäläinen
Browse files
Update README.Maintainer to match current best practices
parent
c17ab088
Changes
1
Hide whitespace changes
Inline
Side-by-side
debian/README.Maintainer
View file @
49431b99
# README for Debian package maintainers
#
# README for Debian package maintainers
This file mostly applies to how the packaging work-flow works for the official
This file mostly applies to how the packaging work-flow works for the official
Debian packages, but it may contain useful information also for anybody doing
Debian packages, but it may contain useful information also for anybody doing
their own private .deb builds.
their own private .deb builds.
## Version control
## Building from sources with git-buildpackage ##
This package is maintained by the MariaDB/MySQL team in Debian using the
git-buildpackage tool and storing the git repositories on the Debian Gitlab
Clone sources with all branches
instance Salsa. For details see https://salsa.debian.org/mariadb-team/.
sudo apt-get install git-buildpackage
gbp-clone --pristine-tar git://git.debian.org/git/pkg-mysql/mariadb-10.1.git
Alternatively use Github mirror at https://github.com/ottok/mariadb-10.1.git
On later runs make sure to have latest version of sources
The official Ubuntu packages are also maintained by the same team using the same
gbp-pull --pristine-tar --force
source repository.
### Ensuring git contents match what has been uploaded to Debian/Ubuntu
Build
It is possible (but extremely rare) that somebody uploads a MariaDB package to
git-buildpackage --git-pristine-tar
Debian/Ubuntu and either does not use git at all, or simply forgets to push the
same changes on git, or makes an error in tagging the release or something.
Therefore maintainers should check that the git contents match what has been
uploaded to Debian/Ubuntu before making new changes on git.
For a more elaborate setup with automatic build dependency installation and
This can be done by using dgit. The example command below will fetch the latest
multi-target chroot usage check out how http://labs.seravo.fi/~otto/mariadb-repo/build.sh
mariadb-10.0 package available in Ubuntu 16.04 (Xenial) base archive or security
uses git-buildpackage with pbuilder.
archive (whichever has a newer version):
dgit -d ubuntu clone mariadb-10.0 xenial,-security
If the build fails the easiest way to clean up before a new run is
You can then compare these two directories with a recursive diff.
git clean -fdx && git reset --hard
Another option is to manually check on packages.debian.org or packages.ubuntu.com
what is the latest version, and download and extract it on top of the existing
debian/ directory with:
curl -SL http://archive.ubuntu.com/ubuntu/pool/universe/m/mariadb-10.0/\
mariadb-10.0_10.0.34-0ubuntu0.16.04.1.debian.tar.xz -o - | tar xv --xz
### Tip ###
The you can simply run `git diff` to see the report on differences.
Don't run the mysql-test-run test suite as part of build.
It takes a lot of time, and we will do a better test anyway in
Buildbot, running the test suite from installed .debs on a clean VM.
export DEB_BUILD_OPTIONS="nocheck"
## Building from sources with git-buildpackage ##
If you want to run the build in parallel on 2 CPUs and have verbose output, use:
export DEB_BUILD_OPTIONS="parallel=2 verbose"
The options above can also be combined freely to get required behaviour.
See README.Contribute for details.
## Importing initial sources from upstream the first fime ##
## Importing initial sources from upstream the first fime ##
...
@@ -49,7 +48,7 @@ Create repository
...
@@ -49,7 +48,7 @@ Create repository
cd mariadb-10.1
cd mariadb-10.1
git init
git init
git branch upstream
git branch upstream
g
it-
import-orig --pristine-tar ../../upstream/mariadb-10.1.20
g
bp
import-orig --pristine-tar ../../upstream/mariadb-10.1.20
Fill in values prompted
Fill in values prompted
What will be the source package name? [mariadb] mariadb-10.1
What will be the source package name? [mariadb] mariadb-10.1
...
@@ -81,44 +80,63 @@ https://mariadb.com/kb/en/mariadb/development/release-notes/
...
@@ -81,44 +80,63 @@ https://mariadb.com/kb/en/mariadb/development/release-notes/
Download new source package
Download new source package
cd pkg-mariadb-10.1
cd pkg-mariadb-10.1
uscan
--verbose
gbp import-orig --uscan --no-interactive
--verbose
Enter git repository path and apply new sources
Refresh patches
cd mariadb-10.1
while quilt push; do quilt refresh; done; quilt pop -a
git-import-orig --pristine-tar ../mariadb-10.1.20.tar.gz
Simple offsets will be updated automatically. If there are any rejects, inspect
the files and update the patches or discard the patch completely if you are
_sure_ that it has been applied upstream.
Generate new debian/changelog entry automatically with git-dch
Generate new debian/changelog entry automatically with git-dch
git-dch -avR
git-dch -avR
Manually merge what needs to be done
Edit the details to match correct release
gedit debian/changelog &
Commit to git
git citool
Build and test locally to verify it works.
gbp buildpackage --git-pristine-tar
Alternatively you can use Docker with something like this:
mkdir ccache buildout
docker run -it -v "${PWD}/buildout":/tmp/build -v "${PWD}/ccache":/.ccache \
-v "${PWD}/$PKG":/tmp/build/source -w /tmp/build/source \
-e DEB_BUILD_OPTIONS="$DEB_BUILD_OPTIONS" -e CCACHE_DIR=/var/cache/ccache \
--user=1001 registry.gitlab.com/mariadb/mariadb.org-build-containers:$PKG-debian-sid-build-env \
gbp buildpackage --git-pristine-tar -us -uc | tee latest.build
Commit and push
If needed, add commits or amend the ones you made until the package is in
git commit -am "Merged with upstream 10.1.20"
perfect shape.
git push --all; git push --all github
git push --tags; git push --tags github
Note that in above if you want to sync to Github directly you need to have
Then proceed to make a source only build
collaborator rights to the Github repo and you need to add it as a secondary
gbp buildpackage -S
remote location with:
git remote add origin git@github.com:ottok/mariadb-10.1.git
To push to the git.debian.org repos you need to a member of the pkg-mysql team
Test more with upload to Launchpad
at Alioth. It does not matter which repository you push to, eventually they are
COMMIT_ID=`git log -n 1 --oneline | cut -d ' ' -f 1`
synced with each other anyway.
PKG=mariadb-10.1
backportpackage --yes -u ppa:mysql-ubuntu/$PKG -d xenial -S ~`date '+%s'`.$COMMIT_ID $PKG*.dsc
When done, push to Salsa:
git push -v
### Maintaining patches ###
Wait until the Salsa CI pipeline finishes. If it did not either spot any
regressions, proceed to tagging the commit:
git tag -s ...
git push --tags
Test that the patches still apply by running:
Sign and upload to autobake for one final round of testing:
export QUILT_PATCHES=debian/patches
dput autobake *.changes
quilt import
quilt push -a
If there are any rejects, inspect the files and update the patches.
Once you are sure there are no regressions, finally upload to Debian
dput ftp-master *.changes
If there are simple offsets we can refresh the patches simply with:
After the upload, check that everything is OK at
quilt pop -a
* https://tracker.debian.org/mariadb-10.1 (Debian)
while quilt push; do quilt refresh; done
* https://launchpad.net/ubuntu/+source/mariadb-10.1 (Ubuntu)
### Maintaining debian/copyright ###
### Maintaining debian/copyright ###
...
@@ -138,10 +156,10 @@ those cleaned up.
...
@@ -138,10 +156,10 @@ those cleaned up.
### Quality control ###
### Quality control ###
Run wrap-and-sort to style contents in debian/*
Run wrap-and-sort to style contents in debian/*
wrap-and-sort
wrap-and-sort
-a -t -v
Once packages are done check their quality with Lintian
Once packages are done check their quality with Lintian
lintian -EvIL +pedantic --color=always *.
deb
lintian -EvIL +pedantic --color=always *.
changes
## Uploading to Ubuntu PPA for testing ##
## Uploading to Ubuntu PPA for testing ##
...
@@ -154,8 +172,23 @@ These are good to have as environment variables (replace values with your own)
...
@@ -154,8 +172,23 @@ These are good to have as environment variables (replace values with your own)
DEBFULLNAME="Otto Kekäläinen"
DEBFULLNAME="Otto Kekäläinen"
export DEBEMAIL DEBFULLNAME
export DEBEMAIL DEBFULLNAME
The run the commands to automatically change version and upload
Then run the commands to automatically change version and upload
backportpackage -u ppa:mysql-ubuntu/mariadb -d precise -r *.dsc -S ~ppa1 -y
backportpackage --yes -u ppa:mysql-ubuntu/$PKG -d xenial -S ~`date '+%s'`.$COMMIT_ID $PKG*.dsc
### Launchpad testing matrix
Since Launchpad only has Ubuntu releases, packages for specific Debian releases
needs to be tested on the Ubuntu release which most closely matches the Debian
release in question. The following matrix maps what package should be tested
where:
- 10.3 for sid on launchpad cosmic
- 10.1 for bionic on launchpad bionic
- 10.0 for xenial on launchpad xenial
- 10.1 for sid on launchpad cosmic
- 10.1 for stretch on launchpad xenial
- 10.0 for jessie on launhcpad trusty
- 5.5. for trusy on launchpad trusty
## Uploading to Ubuntu security releases ##
## Uploading to Ubuntu security releases ##
...
@@ -170,6 +203,24 @@ that Ubuntu security team can apply upon the mix of previous debian/ contents
...
@@ -170,6 +203,24 @@ 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
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'.
git-buildpackage to produce test builds instead of plain 'fakeroot dpkg-buildpackage'.
### Upload priority
Do the security uploads in this order for having the best chance of catching
regressions before they spread out to too many users.
Upload priority for 10.1
- debian sid
- debian stretch
- ubuntu bionic
for 10.0
- debian jessie
- ubuntu xenial
for 5.5
- ubuntu trusty
## Comparison to other distributions ##
## Comparison to other distributions ##
For tracking security release information, finding solutions for build errors
For tracking security release information, finding solutions for build errors
...
@@ -193,4 +244,3 @@ are due to a bug in GCC which has been reported to GCC and will become fixed
...
@@ -193,4 +244,3 @@ are due to a bug in GCC which has been reported to GCC and will become fixed
eventually:
eventually:
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:300 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:300 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:496 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)
E array-bounds /??PKGBUILDDIR??/strings/decimal.c:496 (arm64, armel, armhf, i386, mips, mipsel, powerpc, ppc64el, sparc)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment