262
262
back into pqm for bzr.dev.
265
Updating the PPA for a new release
266
----------------------------------
268
We build Ubuntu ``.deb`` packages for Bazaar as an important part of the release
269
process. These packages are hosted in a few `Personal Package Archives (PPA)`__ on
272
__ https://help.launchpad.net/PPAQuickStart
274
As of June 2008, there are actually two PPAs:
276
<https://launchpad.net/~bzr/+archive>
277
Final released versions.
279
<https://launchpad.net/~bzr-beta-ppa/+archive>
280
Releases and release candidates.
282
We build packages for every supported Ubuntu release
283
<https://wiki.ubuntu.com/Releases>. Packages need no longer be updated
284
when the release passes end-of-life because all users should
285
updated by then. (As of May 2009, Edgy Eft is no longer supported.)
287
The ``debian/`` directory containing the packaging information is kept in
288
branches on Launchpad, named like
289
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
291
Preconditions for building these packages:
293
* You must have a Launchpad account and be a member of the `~bzr`__ team
295
__ https://edge.launchpad.net/~bzr/+members>
297
* You must have a GPG key registered to your Launchpad account.
299
* Configure ``dput`` to upload to our PPA with this section in your
303
fqdn = ppa.launchpad.net
305
incoming = ~bzr-beta-ppa/ubuntu
307
allow_unsigned_uploads = 0
310
fqdn = ppa.launchpad.net
312
incoming = ~bzr/ubuntu
314
allow_unsigned_uploads = 0
316
You may also want to add these lines to prevent inadvertently attempting
317
to upload into Ubuntu or Debian, which will give a somewhat unclear
321
default_host_main = notspecified
324
fqdn = SPECIFY.A.PPA.NAME
326
* You need a Ubuntu (or probably Debian) machine, and ::
328
sudo apt-get install build-essential devscripts dput quilt patch
330
Here is the process; there are some steps which should be automated in
333
#. You will need a working directory for each supported release, such as
334
``~/bzr/Packaging/hardy``
336
#. Download the official tarball of the release to e.g. ``~/bzr/Releases``
338
#. Copy the original tarball into your per-disto directory, then untar
341
cp -l ~/bzr/Releases/bzr-1.3.tar.gz bzr_1.3.orig.tar.gz
342
tar xfvz bzr_1.3.orig.tar.gz
344
The bzrtools extracted directory does not contain a version number
345
and must be renamed::
347
mv bzrtools bzrtools-1.3.0
349
#. Change into that directory and check out the packaging branch::
353
bzr+ssh://bazaar.launchpad.net/~bzr/bzr/packaging-hardy \
356
#. For Bazaar plugins, change the ``debian/control`` file to express a
357
dependency on the correct version of ``bzr``.
359
For bzrtools this is typically::
361
Build-Depends-Indep: bzr (>= 1.3~), rsync
362
Depends: ${python:Depends}, bzr (>= 1.3~), bzr (<< 1.4~), patch
364
#. Make a new ``debian/changelog`` entry for the new release,
365
either by using ``dch`` or just editing the file::
367
dch -v '1.3-1~bazaar1' -D hardy
369
dch will default to the distro you're working in and this isn't checked
370
against the version number (which is just our conversion), so make sure
373
**Caution:** Release candidates must insert a tilde to make them sort
374
before the final release, like this: ``bzr-1.4~rc2-1~bazaar1``.
376
Make sure you have the correct email address for yourself, version
377
number, and distribution. It should look something like this::
379
bzr (1.3-1~bazaar1) hardy; urgency=low
381
* New upstream release.
383
-- John Sample <sample@example.com> Mon, 31 Mar 2008 12:36:27 +1100
385
If you need to upload the package again to fix a problem, normally you
386
should increment the last number in the version number, following the
387
distro name. Make sure not to omit the initial ``-1``, and make sure
388
that the distro name in the version is consistent with the target name
389
outside the parenthesis.
391
#. Commit these changes into the packaging branch::
393
bzr ci -m '1.3-1~bazaar1: New upstream release.' debian
395
#. Build a source package::
399
This will create a ``.changes`` file in the per-distro directory,
400
and should invoke gpg to sign it with your key.
401
Check that file is reasonable: it should be uploading to the intended
402
distribution, have a .orig file included, and the right version number.
404
#. Upload into the appropriate PPA, either ``bzr-ppa`` or
407
dput bzr-ppa ../bzr__1.3-1\~bazaar1\_source.changes
409
#. Copy the uploaded package over to other Ubuntu releases, taking advantage
410
of Launchpad's Copy Package feature <https://launchpad.net/~bzr/+archive/+copy-packages>
412
**Note:** The packaging dependencies may vary between different distro series.
413
As of bzr 1.5, Dapper uses ``python-support`` and later distributions use
415
If you upload a release-specific version, you should add a ~release1 to
416
the package version, for example:: bzr.1.3-1~bazaar1~dapper1
418
#. You should soon get an "upload accepted" mail from Launchpad, which
419
means that your package is waiting to be built. You can then track its
420
progress in <https://launchpad.net/~bzr/+archive> and
421
<https://launchpad.net/~bzr/+archive/+builds>.
423
If you add all the bzr PPAs to your ``sources.list`` then you can see a
424
summary of current package versions with::
426
apt-cache madison bzr
268
* `Packaging into the bzr PPA <ppa.html>`_ to make and publish Ubuntu
429
272
vim: filetype=rst textwidth=74 ai shiftwidth=4