/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
1
Managing the Bazaar PPA
2
=======================
3
4
See also: `Bazaar Developer Document Catalog <index.html>`_.
5
6
7
Background
8
----------
9
10
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
11
process.  These packages are hosted in a few `Personal Package Archives (PPA)`__ on
12
Launchpad.
13
14
  __ https://help.launchpad.net/PPAQuickStart
15
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
16
As of June 2010, there are three PPAs:
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
17
18
<https://launchpad.net/~bzr/+archive>
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
19
    Final released versions and updates.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
20
5380.3.1 by Martin Pool
Slight updates for ppas: new bzr/proposed archive, and list of active distroseries for easy reference
21
<https://launchpad.net/~bzr/+archive/proposed>
22
    Proposed uploads to move into ~bzr, awaiting testing.
23
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
24
<https://launchpad.net/~bzr-beta-ppa/+archive>
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
25
    Beta releases.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
26
3749.2.1 by Martin Pool
Updated PPA documentation
27
<https://launchpad.net/~bzr-nightly-ppa/+archive>
28
    Automatic nightly builds from trunk.
29
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
30
We build a distinct package for each distrorelease.  
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
31
If you upload a release-specific version, you should add a suffix to the
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
32
package version, e.g. ``bzr.1.3-1~bazaar1~dapper1``.
33
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
34
Dapper uses the ``python-support`` framework and later distributions use
35
``python-central``.  This has little effect on everyday packaging but does
36
mean that some of the control files are quite different.
37
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
38
Every package is first uploaded into the beta ppa.  For final release
39
versions it is also copied to the main PPA.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
40
3749.2.2 by Martin Pool
typo
41
The packaging information is kept in branches of bzr on Launchpad, named
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
42
like
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
43
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
44
or
3749.2.1 by Martin Pool
Updated PPA documentation
45
<lp:~bzr/bzr/packaging-hardy>.  These branches are intended to be used
46
with the ``bzr-builddeb`` plugin.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
47
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
48
**You should almost always upload to the beta ppa first** and then either 
49
upload again or copy the packages into the release ppa.  That reduces the 
50
risk of breaking the main archive from which people get bzr updates.
51
5380.3.1 by Martin Pool
Slight updates for ppas: new bzr/proposed archive, and list of active distroseries for easy reference
52
53
Supported releases
54
------------------
55
56
We build packages for every supported Ubuntu release
57
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
58
when the release passes end-of-life because all users should
59
have upgraded by then.  
60
61
As of August 2010, the following releases are supported:
62
63
* Maverick 
64
* Lucid LTS
65
* Karmic
66
* Jaunty (support ends October 2010)
67
* Hardy LTS
68
* Dapper LTS (supported but no longer updated for new releases)
69
70
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
71
Preconditions
72
-------------
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
73
74
* You must have a Launchpad account and be a member of the teams
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
75
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
76
77
* You must have a GPG key registered to your Launchpad account.
78
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
79
On reasonably recent versions of Ubuntu you no longer need special dput
80
configuration, because you can just say ::
81
5380.3.1 by Martin Pool
Slight updates for ppas: new bzr/proposed archive, and list of active distroseries for easy reference
82
  dput ppa:bzr/proposed <source.changes
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
83
  
84
85
However, you may still want to add these lines to ``~/.dput.cf`` prevent 
86
inadvertently attempting to upload into Ubuntu or Debian, which will
87
give a somewhat unclear error::
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
88
89
    [DEFAULT]
90
    default_host_main = notspecified
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
91
3749.2.1 by Martin Pool
Updated PPA documentation
92
* Configure ``bzr-builddeb`` to sign the package, which is required for
93
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
94
95
      [BUILDDEB]
96
      builder = dpkg-buildpackage -rfakeroot
97
      source-builder= dpkg-buildpackage -rfakeroot -S -sa
98
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
99
* You need a Ubuntu (or probably Debian) machine, and ::
100
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
101
    sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils
102
103
  Please update this document if you encounter unmet dependencies or find a
4009.1.2 by Vincent Ladeuil
Fixed as per Matt, Jelmer and John reviews.
104
  shorter way to express them.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
105
3749.2.1 by Martin Pool
Updated PPA documentation
106
* You will also want to have the `bzr-builddeb`_ plugin installed, which
107
  depends on `bzrtools`_.
108
109
.. _`bzr-builddeb`: http://launchpad.net/bzr-builddeb
110
.. _`bzrtools`: http://launchpad.net/bzrtools
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
111
112
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
113
Packaging Bazaar
114
----------------
115
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
116
Overview of packaging with builddeb
117
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118
119
* First update the oldest supported branch, using ``bzr merge-upstream``.
120
121
* Run ``bzr builddeb -S -- -sa`` to build a source package, then put 
5336.1.2 by Martin Pool
Clarify -S and -sa builddeb flags
122
  that into the ppa.  
123
  
124
  (``-S`` says to make a source-only upload, which is
125
  required for Launchpad's builders.  ``--sa`` says to include the
126
  ``.orig.tgz`` even if this doesn't seem to be the first upload for an
127
  upstream release: this is often needed when rebuilding something that's
128
  previously been uploaded to Debian or Ubuntu or into a different PPA.)
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
129
130
* Now merge across that change into each supported branch with a 
131
  simple ``bzr merge``.
132
  
133
Locally testing builds
134
~~~~~~~~~~~~~~~~~~~~~~
135
136
It may be useful to locally test builds inside pbuilder.  You may want to 
137
use the script from <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=255165> 
138
to wrap it.
139
140
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
141
Short form
142
~~~~~~~~~~
143
144
For people who have already set up everything they need, building the
145
release packages is as simple as::
146
147
  cd ~/dev/bzr/releases/packaging
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
148
  export VERSION="1.17~rc1-1~bazaar1"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
149
  export PACKAGE="bzr"
4380.1.4 by John Ferlito
update ubuntu versions
150
  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
151
  ~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
152
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
153
  ~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
154
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
4380.1.8 by John Ferlito
Update versions
155
  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
156
157
Rinse and repeat for all the plugins by changing VERSION and PACKAGE.
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
158
159
Long Form
160
~~~~~~~~~
161
162
#. You will end up checking out a separate directory for each supported
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
163
   release. Such as ``~/dev/bzr/releases/packaging/hardy``. In each of these
4009.1.2 by Vincent Ladeuil
Fixed as per Matt, Jelmer and John reviews.
164
   branches, you will produce the package for the release.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
165
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
166
   The scripts will also create the branches and produce packages for
167
   bzrtools and bzr-svn.
168
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
169
#. Decide on the final version number.  It should be of this form::
170
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
171
     bzr-1.17~rc1-1~bazaar1~hardy1
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
172
3749.2.1 by Martin Pool
Updated PPA documentation
173
   **Note:** There are three hyphen-separated parts: the *package name*,
174
   the *upstream version*, and the *packaging version*.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
175
176
   **Caution:** Upstream betas or release candidates must insert a tilde
177
   to make them sort before the final release, like this:
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
178
   ``bzr-1.17~rc1-1~bazaar1~hardy1``.
3641.4.2 by Martin Albisetti
More fixes to address jam's comments. Made all bzr versions in the examples the same.
179
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
180
   Final releases will use a release string of the form:
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
181
   ``bzr-1.17-1~bazaar1~hardy1``
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
182
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
183
   Set this base of this up as a usable environment variable::
184
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
185
      export VERSION="1.17~rc1-1~bazaar1"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
186
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
187
#. Export the distroreleases that you will be packaging for::
188
4380.1.4 by John Ferlito
update ubuntu versions
189
      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
190
191
#. Export the program you are packaging::
192
193
      export PACKAGE="bzr"
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
194
195
#. Checkout (or update) the packaging branch for each supported release::
196
197
      bzr co lp:~bzr/bzr/packaging-hardy
198
199
   There is a script available to help::
200
201
      tools/packaging/update-packaging-branches.sh
202
203
#. The ``bzr-builddeb`` step will download the original tarball if you do
3749.2.1 by Martin Pool
Updated PPA documentation
204
   not already have it, putting it into a ``tarballs`` directory.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
205
206
#. For Bazaar plugins, change the ``debian/control`` file to express a
207
   dependency on the correct version of ``bzr``.
208
209
   For bzrtools this is typically::
210
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
211
      Build-Depends-Indep: bzr (>= 1.17~), rsync
212
      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
213
4380.1.8 by John Ferlito
Update versions
214
   There is a helper script which will update the control file and commit it
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
215
   for all of your ``$UBUNTU_RELEASES``. It is available as::
216
217
    tools/packaging/update-control.sh
218
4380.1.8 by John Ferlito
Update versions
219
   You must supply the versions as arguments as follows
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
220
   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
221
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
222
    tools/packaging/update-control.sh 1.16 1.17 1.18
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
223
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
224
#. Make a new ``debian/changelog`` entry for the new release,
225
   either by using ``dch`` or just editing the file::
226
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
227
      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
228
229
   dch will default to the distro you're working in and this isn't checked
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
230
   against the version number (which is just our convention), so make sure
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
231
   to specify it.
232
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
233
   Make sure you have the correct email address for yourself (you may need
4009.1.2 by Vincent Ladeuil
Fixed as per Matt, Jelmer and John reviews.
234
   export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
235
   distribution.  It should look something like this::
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
236
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
237
       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
238
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
239
        * New upstream release.
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
240
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
241
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
242
243
   If you need to upload the package again to fix a problem, normally you
244
   should increment the last number in the version number, following the
245
   distro name.  Make sure not to omit the initial ``-1``, and make sure
246
   that the distro name in the version is consistent with the target name
247
   outside the parenthesis.
248
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
249
   You will also want to commit these changes into the packaging branch.
250
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
251
   There is a helper script which will build all the packages
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
252
   for all of your ``$UBUNTU_RELEASES``. It is available as::
253
254
      tools/packaging/update-changelogs.sh
255
256
#. Build the source packages::
257
258
      cd packaging-$DISTRO; bzr builddeb -S
259
3749.2.1 by Martin Pool
Updated PPA documentation
260
   This will create a ``.changes`` file.  If you didn't configure builddeb
261
   to automatically sign them, you can use ::
262
263
      debsign -m$UID *.changes
264
265
   where ``$UID`` is the gpg key you want to use to sign the changes.
266
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
267
   There is a helper script which will build the package
268
   for all of your ``$UBUNTU_RELEASES``. It is available as::
269
270
      tools/packaging/build-packages.sh
271
3641.4.1 by Martin Albisetti
Tweaks to the PPA docs to remove recommendation to use Launchpad's copy feature, and other small changes
272
#. Upload into the beta PPA for each release::
273
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
274
     dput bzr-beta-ppa bzr*1.17-1*.changes
3641.4.1 by Martin Albisetti
Tweaks to the PPA docs to remove recommendation to use Launchpad's copy feature, and other small changes
275
276
#. For final release versions, also copy it into the ``~bzr`` PPA::
277
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
278
     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
279
280
   Alternatively, you can use Launchpad's "copy" feature to copy the
281
   packages between repositories.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
282
283
#. You should soon get an "upload accepted" mail from Launchpad, which
284
   means that your package is waiting to be built.  You can then track its
285
   progress in <https://launchpad.net/~bzr-beta-ppa/+archive> and
286
   <https://launchpad.net/~bzr-beta-ppa/+archive/+builds>.
287
288
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
289
Packaging bzr-svn
290
~~~~~~~~~~~~~~~~~
291
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
292
bzr-svn uses a packaging branch that contains both the source
3960.4.1 by Jelmer Vernooij
Remove unnecessary commands for building bzr-svn.
293
(including any changes against upstream) and the ``debian/`` directory.
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
294
295
To build bzr-svn:
296
297
#. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
298
4380.1.2 by John Ferlito
Fix typo and bzr-svn branch name in ppa.txt
299
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
4380.1.8 by John Ferlito
Update versions
300
3870.1.2 by Martin Pool
Note about merging bzr-svn from jelmer's branch
301
   This should bring in both upstream and packaging changes for the new
302
   release, and it's updated as part of the bzr-svn release process.
303
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
304
   It's quite possible you will need to resolve some conflicts.
305
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
306
#. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
307
308
#. Run ``bzr builddeb --source``
309
310
   bzr-builddeb will automatically check out the appropriate tag from the
311
   main branch of bzr-svn, build, and package it.
312
313
#. ``dput bzr-beta-ppa ../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes``
314
315
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
316
Monitoring the contents of PPAs
317
-------------------------------
318
319
If you add all the bzr PPAs to your ``sources.list`` then you can see a
320
summary of current package versions with::
321
322
  apt-cache madison bzr
5336.1.1 by Martin Pool
Slightly improved docs about ppa packaging
323
  
324
  
325
  
326
Packaging dependencies
327
----------------------
328
329
Some of our updates to bzr in previous releases require backports of our
330
dependencies.  Specific branches holding these backports:
331
332
 * ``lp:~bzr/ubuntu/dapper/configobj/dapper-backport``
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
333
334
335
..
336
   vim: filetype=rst textwidth=74 ai shiftwidth=4