From c17ab088bad2ad0dd23fe31724f2788e0f3f074a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Otto=20Kek=C3=A4l=C3=A4inen?= Date: Fri, 31 Aug 2018 12:05:27 +0300 Subject: [PATCH] Update README.Contributor based on recent feedback --- debian/README.Contributor | 58 +++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/debian/README.Contributor b/debian/README.Contributor index 8ac53eddc..d3538ba3f 100644 --- a/debian/README.Contributor +++ b/debian/README.Contributor @@ -17,19 +17,20 @@ Install the tool used to manage and build the source ## Getting the source -The official Debian package source is available at - * git://git.debian.org/git/pkg-mysql/mariadb-10.1.git - * (browseable at http://git.debian.org/?p=pkg-mysql/mariadb-10.1.git +The official Debian package source is hosted on the Debian Gitlab server under +the MariaDB/MySQL packaging team at https://salsa.debian.org/mariadb-team/. You +are welcome to fork it and make merge requests. -However, git.debian.org does not provide any kind of pull request or gerrit -work-flow, so it is recommended to fork the Github mirror available at - * https://github.com/ottok/mariadb-10.1 +To get the latest official Debian packaging source of mariadb-10.1, clone the +source repository with all relevant branches (master, upstream, pristine-tar) to +your local environment using _git-buildpackage_: + gbp clone --pristine-tar https://salsa.debian.org/mariadb-team/mariadb-10.1.git -Once you have a fork at Github, clone the source repository with all relevant -branches (master, upstream, pristine-tar) to your local environment - gbp clone --pristine-tar git@github.com:{username}/mariadb-10.1.git +If you have your own fork and SSH keys set up on Salsa, you can run: + gbp clone --pristine-tar git@salsa.debian.org:/mariadb-10.1.git -Clone needs to be run only once. On later runs you can refresh your clone with + +The clone needs to be run only once. On later runs you can refresh your clone with relevant branches using gbp pull --pristine-tar --force @@ -40,9 +41,12 @@ Build binaries, run testsuite and build Debian packages with gbp buildpackage On the first run git-buildpackage will complain if some of the build dependencies -defined in debian/control is missing. Simply install those packages and run the +defined in debian/control are missing. Simply install those packages and run the build again. +A quick command to install all dependencies: + sudo mk-build-deps -r -i debian/control -t "apt-get -y -o Debug::pkgProblemResolver=yes --no-install-recommends" + If the build fails, the easiest way to clean up before a new run is git clean -fdx && git reset --hard @@ -66,18 +70,20 @@ The repository has the following branch layout: * pristine-tar - contains extra delta needed to re-create the original tarballs with the exactly same SHA-1 hash as the original tarballs by upstream * master - packaging for Debian Sid (unstable) - * jessie - release branch for Debian Jessie - * ubuntu-15.04 - release branch for Ubuntu 15.04 + * jessie - release branch for Debian 8 (jessie) + * stretch - release branch for Debian 9 (stretch) + * ubuntu-16.04 - release branch for Ubuntu 16.04 (xenial) + * ubuntu-18.04 - release branch for Ubuntu 18.04 (bionic) All new features and also bugfixes are done only in the master branch. The release branches for Debian and Ubuntu are only used for security updates. -To prepare the Github pull request, create a bugfix branch from master with: +To prepare the Salsa pull request, create a bugfix branch from master with: git checkout -b fix-example-name After this you can develop with all the usual git commit and push commands -until you have in your fork at Github the desired change and you are ready -to open the pull request. +until you have in your fork at Salsa the desired change and you are ready +to open the merge request. ### Notes about how to make changes in the proper way @@ -97,6 +103,24 @@ then you need to create a patch file using the same pattern as the patches found in debian/patches and activated by a line in debian/patches/series Do not bundle in you commit any changes to debian/changelog. The correct changelog -entries will be created later by the maintainer using git-dch. +entries will be created later by the maintainer using git-dch in an automated fashion. For an example of a patch adding commit see https://github.com/ottok/mariadb-10.0/commit/8d2a7c909 + +# Using Docker + +First make a working directory for the build artefacts. Inside that directory +clone the repository. Then start a Docker session using whatever Debian/Ubuntu +image you want with the command: + docker run -it -v ${PWD}:/build -w /build debian:sid bash + +This will start a session, where you are as the root user in the path /build +inside the Docker container. Here you can cd into the source directory, install +dependencies and start the build. Note that when you exit the session, +everything will be lost apart from the files you had inside the mounted volume +in /build. + +# Using sbuild + +If you prefer sbuild, you can build with something like: + gbp buildpackage --git-builder=sbuild -A -v -d unstable -- GitLab