1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
This package is maintained using `git` and `git-buildpackage`. The repository
is kept on Debian Salsa: https://salsa.debian.org/debian/ntpsec
Branches
--------
The branches are named per [DEP-14] with the default packaging branch being
`debian/unstable` (rather than `debian/latest`).
The `master` branch is upstream's `master` branch.
The `pristine-tar` branch is used by the `pristine-tar` utility. It contains
the data (besides that in the `upstream/latest` branch) necessary to exactly
reconstruct the binary (repacked) orig tarball.
The `upstream/latest` branch contains the unpacked contents of the (repacked)
orig tarball. It is branched off the `master` branch, so the delta from
`master` (at the branch point) to `upstream/latest` contains generated files
that exist in the tarball but not in the upstream repository. This includes
the unpacked version of `waf`, which is the difference between the upstream
release tarball and the repacked orig tarball.
[DEP-14]: https://dep-team.pages.debian.net/deps/dep14/
Patches
-------
Patches are stored "unapplied". Specifically, they are in `quilt` format in
the `debian/patches` directory.
Git Hooks
---------
A .git/hooks/pre-commit script like this will ensure that `wrap-and-sort` is
run before each commit, to keep things sorted and minimize diffs:
#!/bin/sh
wrap-and-sort --wrap-always --trailing-comma
New Upstream Release
--------------------
Upstream uses `waf`, so the orig tarball has to be repacked. For a generic
discussion of why, see: https://wiki.debian.org/UnpackWaf
Here is how to handle a new upstream version (e.g. 1.1.8):
If you do not already have an `upstream` remote, add it:
git remote add upstream https://gitlab.com/NTPsec/ntpsec.git
Fetch the new upstream tag, merge to `master`, and push:
git fetch upstream
git checkout master
git merge NTPsec_1_1_8
git push origin master NTPsec_1_1_8
Switch back to the packaging branch:
git checkout debian/unstable
Import the orig tarball, which `uscan` will repack using `debian/repack-waf`:
# uscan must be run separately, instead of using gbp import-orig --uscan,
# because gbp needs to use the repacked +dfsg tarball instead of the
# unmodified tarball downloaded by uscan.
uscan --download-version 1.1.8
gbp import-orig --upstream-vcs-tag=NTPsec_1_1_8 \
../ntpsec_1.1.8+dfsg.orig.tar.xz
Update version in `debian/changelog` to e.g. `1.1.8+dfsg-1+git`. Add an
entry for "New upstream version". If someone has filed a bug asking for the
new upstream version, close that with that changelog entry. As items under
that entry, list the relevant changes from upstream's `NEWS.adoc` and the git
history (e.g. `git log NTPsec_1_1_7..NTPsec_1_1_8`).
Remove patches which were applied upstream: delete the file(s) and remove them
from `debian/patches/series`. Refresh Debian patches as needed: Step through
them with `quilt push`. If the patch applies cleanly, move to the next one.
If the patch applies with fuzz, refresh it with `quilt refresh`. If the patch
fails to apply, force it with `quilt push -f`, manually merge the changes from
the `.rej` file(s), and then refresh it. For any patches that were refreshed,
edit the patch file in `debian/patches` and set the `Last-Update` field to the
current date.
Once the package builds, push it:
gbp push
# Since the changelog will use UNRELEASED, `gbp push` will not push the
# debian/unstable branch, so push it directly using git:
git push
|