Ubuntu PPAs are located here: https://launchpad.net/~isc
Currently we have PPAs for BIND ESV (f.e. BIND 9.11), BIND Stable (f.e. BIND 9.12, then BIND 9.14) and BIND Dev (BIND 9.13, 9.15, ...).
The packaging is using Git Build Package, for extensive info, please see: https://wiki.debian.org/DanielKahnGillmor/preferred_packaging and the gbp documentation.
The sources for Debian packages are hosted at the official Debian repository located at https://salsa.debian.org/dns-team/bind9.git (for BIND 9.10, 9.11 and 9.12) and https://salsa.debian.org/dns-team/bind.git (for BIND 9.13+).
To gain access to the Git repository, first create account here: https://signup.salsa.debian.org/ and then ask one of the existing maintainers to give you access to the repository (or the whole dns-team).
Updating the packages
The update if fairly simple if you know gbp, but for a quick TL;DR, do:
- Enter the directory with gbp repository:
$ cd bind9
- Import the new tarball using uscan
$ gbp import-orig --uscan gbp:info: Launching uscan... uscan: Newest version of bind on remote site is 9.13.6, local version is 9.13.5 uscan: => Newer package available from https://ftp.isc.org/isc/bind9/9.13.6/bind-9.13.6.tar.gz gpgv: Signature made Fri 08 Feb 2019 05:39:31 AM UTC gpgv: using RSA key BE0E9748B718253A28BB89FFF1B11BF05CF02E57 gpgv: Good signature from "Internet Systems Consortium, Inc. (Signing key, 2017-2018) <firstname.lastname@example.org>" gpgv: Signature made Fri 08 Feb 2019 05:39:32 AM UTC gpgv: using RSA key 156890685EA0DF6A1371EF2017CC5DB1F0088407 gpgv: Can't check signature: No public key uscan warn: OpenPGP signature did not verify. gbp:info: Using uscan downloaded tarball ../bind-9.13.6.tar.gz What is the upstream version? [9.13.6] # <<< Hit ENTER here gbp:info: Importing '../bind-9.13.6.tar.gz' to branch 'upstream' (filtering out ['.gitignore'])... gbp:info: Source package is bind gbp:info: Upstream version is 9.13.6 gbp:info: Replacing upstream source on 'master' gbp:info: Successfully imported version 9.13.6 of ../bind-9.13.6.tar.gz
- Rebase the patches for new release
$ gbp pq rebase gbp:info: No pq branch found, importing patches gbp:info: Trying to apply patches at '6e3038736612a13aedc58bd6f94745209771b7b8' gbp:warning: Patch skip-rtld-deepbind-for-dyndb.diff failed to apply, retrying with whitespace fixup gbp:error: Failed to apply '/home/ondrej/Projects/pkg-dns/bind/debian/patches/skip-rtld-deepbind-for-dyndb.diff': Error running git apply: error: patch failed: lib/dns/dyndb.c:133 error: lib/dns/dyndb.c: patch does not apply gbp:error: Couldn't apply patches
- If it fails, do it manually using quilt (<<< This is the only step really requiring manual intervention >>>)
$ while quilt push; do quilt refresh; done Applying patch debian/patches/07_multiarch.diff patching file isc-config.sh.in Now at patch debian/patches/07_multiarch.diff Refreshed patch debian/patches/07_multiarch.diff Applying patch debian/patches/25_library_paths.diff patching file lib/dns/Makefile.in patching file lib/irs/Makefile.in patching file lib/isc/Makefile.in Hunk #1 succeeded at 107 (offset -2 lines). Hunk #2 succeeded at 133 (offset -2 lines). patching file lib/isccc/Makefile.in Hunk #2 succeeded at 64 (offset -2 lines). Hunk #3 succeeded at 82 (offset -2 lines). patching file lib/isccfg/Makefile.in Now at patch debian/patches/25_library_paths.diff Refreshed patch debian/patches/25_library_paths.diff Applying patch debian/patches/33_resource_missing_include.diff patching file lib/isc/unix/resource.c Now at patch debian/patches/33_resource_missing_include.diff Refreshed patch debian/patches/33_resource_missing_include.diff Applying patch debian/patches/75_ctxstart_no_sighandling.diff patching file lib/isc/unix/app.c Hunk #1 succeeded at 149 (offset -3 lines). Now at patch debian/patches/75_ctxstart_no_sighandling.diff Refreshed patch debian/patches/75_ctxstart_no_sighandling.diff Applying patch debian/patches/80_reproducible_build.diff patching file lib/dns/gen.c Now at patch debian/patches/80_reproducible_build.diff Refreshed patch debian/patches/80_reproducible_build.diff Applying patch debian/patches/Add_--install-layout=deb_to_setup.py_call.patch patching file bin/python/Makefile.in Now at patch debian/patches/Add_--install-layout=deb_to_setup.py_call.patch Refreshed patch debian/patches/Add_--install-layout=deb_to_setup.py_call.patch Applying patch debian/patches/skip-rtld-deepbind-for-dyndb.diff patching file lib/dns/dyndb.c Hunk #1 FAILED at 133. 1 out of 1 hunk FAILED -- rejects in file lib/dns/dyndb.c Patch debian/patches/skip-rtld-deepbind-for-dyndb.diff does not apply (enforce with -f)
- Now enforce the patch and fix it or drop it if no longer needed
$ quilt push -f Applying patch debian/patches/skip-rtld-deepbind-for-dyndb.diff patching file lib/dns/dyndb.c Hunk #1 FAILED at 133. 1 out of 1 hunk FAILED -- saving rejects to file lib/dns/dyndb.c.rej Applied patch debian/patches/skip-rtld-deepbind-for-dyndb.diff (forced; needs refresh) $ emacs lib/dns/dyndb.c.rej lib/dns/dyndb.c $ quilt refresh Refreshed patch debian/patches/skip-rtld-deepbind-for-dyndb.diff
- Rinse and repeat until done:
$ while quilt push; do quilt refresh; done File series fully applied, ends at patch debian/patches/skip-rtld-deepbind-for-dyndb.diff
- Add the fixed patches to the repository and rebase then using
$ git commit -a -F - debian/patches << EOF Rebase patches for BIND 9.13.6 Gbp-Dch: ignore EOF [master b78ec65c3] Rebase patches for BIND 9.13.6 Date: Mon Feb 18 08:48:46 2019 +0000 7 files changed, 30 insertions(+), 52 deletions(-) $ gbp pq rebase gbp:info: No pq branch found, importing patches gbp:info: Trying to apply patches at 'b2d43c35ead0462861d3c994d1c30b146e6594a8' gbp:info: 7 patches listed in 'debian/patches/series' imported on 'patch-queue/master' gbp:info: Switching to 'patch-queue/master' Current branch patch-queue/master is up to date. $ gbp pq export gbp:info: On 'patch-queue/master', switching to 'master' gbp:info: Generating patches from git (master..patch-queue/master) $ git commit --amend -a -F - debian/patches << EOF Rebase patches for BIND 9.13.6 Gbp-Dch: ignore EOF [master caeea7f26] Rebase patches for BIND 9.13.6 Date: Mon Feb 18 08:48:46 2019 +0000 3 files changed, 11 insertions(+), 11 deletions(-)
- Update and commit the changelog (this will start editor):
$ gbp dch -R -a -c gbp:info: Changelog last touched at '5a7c095dc9d5463323dbb19108e38c86cb33c16d' gbp:info: Changelog committed for version 1:9.13.6-1
- Optionally, use a snapshot changelog (and use
gbp dch -R -a -cwhen finished):
$ gbp dch -S -a -c gbp:info: Changelog last touched at '5a7c095dc9d5463323dbb19108e38c86cb33c16d' gbp:info: Changelog 1:9.13.6-1~1.gbpcaeea7 (snapshot #1) prepared up to caeea7f gbp:info: Changelog committed for version 1:9.13.6-1~1.gbpcaeea7
- Build the package using debuild in the local system:
$ gbp buildpackage --git-export-dir=/tmp/build --git-builder=debuild
- When you confirmed the package builds, you can actually push the works to the repository and trigger the rebuilds for Ubuntu PPA and Debian DPA (https://bind.debian.net/bind/)