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