blob: d8448bc322d994cd074b0dc42e19f8147989e304 (
plain)
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
92
93
94
95
96
97
98
99
100
|
Transitioning to a New Upstream Version in a Nutshell
=====================================================
TL;DR: We're more or less using the `gbp import-orig` workflow.
Prerequisites
-------------
* Having the zsh upstream git repo configured as a git remote named
`upstream-repo`. If that's not the case, `dpt import-orig` will
create that remote automatically. You can also use `dpt
upstream-repo` to create that git remote semi-automatically. Both
commands take the upstream git repo URL from
`debian/upstream/metadata`.
* Having the package `git-buildpackage` installed for the `gbp`
command.
* Having the package `devscripts` installed for the `uscan` command
(used by `gbp` and `dpt`).
* Optionally: Having the package `pkg-perl-tools` installed for the
`dpt` command, which partially is a convenience wrapper around `gbp`.
Workflow
--------
When upstream releases a new version, we should follow these steps:
### Donwloading, Importing and Merging the New Upstream Tar-Ball
... and verifying its PGP signature.
% gbp import-orig --uscan
or
% dpt import-orig
(`dpt import-orig` implies `--uscan`, but will also call `dch`, so
you'll need to amend that instead of creating it in the next step. Or
undo it)
### Create a debian/changelog entry for the new upstream release
Use `gbp dch` as a base and then remove all lines which are not
debian-specific and which do not relate to a Debian bug report. Add
Debian bug report references (`Closes: #nnnnnn`) as necessary.
Use the tagged upstream commit and the merge commit where the upstream
release was merged into the debian branch as referred commit ids.
Example:
* [9dbde9e,bf8b7f7] Import new upstream release candidate X.Y-test-Z
+ [dc2bfeee] Have V07pcre fail if PCRE was enabled by configure
(config.modules) but failed to load for any reason. (Closes: #909114)
[ Axel Beckert ]
* [abcd1234] Some debian-specific change generated by gbp dch from
the git commit message.
Commit it as follows:
% git add debian/changelog
% git commit -m "Update debian/changelog for new upstream release" -m "Gbp-Dch: Ignore"
### Remove all quilt patches which are applied upstream
All patches applied (or fixed otherwise) upstream should be removed
from `debian/patches` directory and the `debian/patches/series` file.
Example:
% quilt push -a
% quilt pop -a
% git rm debian/patches/cherry*
% $EDITOR debian/patches/series
% git add debian/patches
% quilt push -a
% quilt pop -a
% git commit -m "Remove all patches applied upstream"
### Update `debian/NEWS`
Review the upstream `NEWS` file and the list of compatibilities in the upstream
`README` file (starts at line 33) and add them to `debian/NEWS`:
% less NEWS
% less +33 README
% dch --news
% git commit -m "Add NEWS based on incompatibilities listed in upstream's README." -m "Gbp-Dch: Ignore"
### After a build, restore what the clean target removed
Use any of these three commands:
% debian/rules restore-cleaned-files
% make -f debian/rules restore-cleaned-files
% git status --porcelain | egrep '^ D ' | cut -c4- | xargs --no-run-if-empty git checkout
|