/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
21
<https://launchpad.net/~bzr-beta-ppa/+archive>
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
22
    Beta releases.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
23
3749.2.1 by Martin Pool
Updated PPA documentation
24
<https://launchpad.net/~bzr-nightly-ppa/+archive>
25
    Automatic nightly builds from trunk.
26
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
27
We build packages for every supported Ubuntu release
28
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
29
when the release passes end-of-life because all users should
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
30
have upgraded by then.  
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
31
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
32
We build a distinct package for each distrorelease.  
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
33
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
34
package version, e.g. ``bzr.1.3-1~bazaar1~dapper1``.
35
5325.2.1 by Martin Pool
Small updates to PPA packaging instructions
36
Dapper uses the ``python-support`` framework and later distributions use
37
``python-central``.  This has little effect on everyday packaging but does
38
mean that some of the control files are quite different.
39
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
40
Every package is first uploaded into the beta ppa.  For final release
41
versions it is also copied to the main PPA.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
42
3749.2.2 by Martin Pool
typo
43
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
44
like
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
45
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
46
or
3749.2.1 by Martin Pool
Updated PPA documentation
47
<lp:~bzr/bzr/packaging-hardy>.  These branches are intended to be used
48
with the ``bzr-builddeb`` plugin.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
49
50
Preconditions
51
-------------
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
52
53
* 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
54
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
55
56
* You must have a GPG key registered to your Launchpad account.
57
58
* Configure ``dput`` to upload to our PPA with this section in your
59
  ``~/.dput.cf``::
60
61
    [bzr-beta-ppa]
62
    fqdn = ppa.launchpad.net
63
    method = ftp
64
    incoming = ~bzr-beta-ppa/ubuntu
65
    login = anonymous
66
    allow_unsigned_uploads = 0
67
68
    [bzr-ppa]
69
    fqdn = ppa.launchpad.net
70
    method = ftp
71
    incoming = ~bzr/ubuntu
72
    login = anonymous
73
    allow_unsigned_uploads = 0
74
75
  You may also want to add these lines to prevent inadvertently attempting
76
  to upload into Ubuntu or Debian, which will give a somewhat unclear
77
  error::
78
79
    [DEFAULT]
80
    default_host_main = notspecified
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
81
3749.2.1 by Martin Pool
Updated PPA documentation
82
* Configure ``bzr-builddeb`` to sign the package, which is required for
83
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
84
85
      [BUILDDEB]
86
      builder = dpkg-buildpackage -rfakeroot
87
      source-builder= dpkg-buildpackage -rfakeroot -S -sa
88
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
89
* You need a Ubuntu (or probably Debian) machine, and ::
90
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
91
    sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils
92
93
  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.
94
  shorter way to express them.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
95
3749.2.1 by Martin Pool
Updated PPA documentation
96
* You will also want to have the `bzr-builddeb`_ plugin installed, which
97
  depends on `bzrtools`_.
98
99
.. _`bzr-builddeb`: http://launchpad.net/bzr-builddeb
100
.. _`bzrtools`: http://launchpad.net/bzrtools
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
101
102
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
103
Packaging Bazaar
104
----------------
105
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
106
Short form
107
~~~~~~~~~~
108
109
For people who have already set up everything they need, building the
110
release packages is as simple as::
111
112
  cd ~/dev/bzr/releases/packaging
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
113
  export VERSION="1.17~rc1-1~bazaar1"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
114
  export PACKAGE="bzr"
4380.1.4 by John Ferlito
update ubuntu versions
115
  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
116
  ~/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
117
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
118
  ~/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
119
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
4380.1.8 by John Ferlito
Update versions
120
  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
121
122
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.
123
124
Long Form
125
~~~~~~~~~
126
127
#. You will end up checking out a separate directory for each supported
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
128
   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.
129
   branches, you will produce the package for the release.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
130
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
131
   The scripts will also create the branches and produce packages for
132
   bzrtools and bzr-svn.
133
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
134
#. Decide on the final version number.  It should be of this form::
135
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
136
     bzr-1.17~rc1-1~bazaar1~hardy1
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
137
3749.2.1 by Martin Pool
Updated PPA documentation
138
   **Note:** There are three hyphen-separated parts: the *package name*,
139
   the *upstream version*, and the *packaging version*.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
140
141
   **Caution:** Upstream betas or release candidates must insert a tilde
142
   to make them sort before the final release, like this:
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
143
   ``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.
144
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
145
   Final releases will use a release string of the form:
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
146
   ``bzr-1.17-1~bazaar1~hardy1``
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
147
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
148
   Set this base of this up as a usable environment variable::
149
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
150
      export VERSION="1.17~rc1-1~bazaar1"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
151
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
152
#. Export the distroreleases that you will be packaging for::
153
4380.1.4 by John Ferlito
update ubuntu versions
154
      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
155
156
#. Export the program you are packaging::
157
158
      export PACKAGE="bzr"
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
159
160
#. Checkout (or update) the packaging branch for each supported release::
161
162
      bzr co lp:~bzr/bzr/packaging-hardy
163
164
   There is a script available to help::
165
166
      tools/packaging/update-packaging-branches.sh
167
168
#. The ``bzr-builddeb`` step will download the original tarball if you do
3749.2.1 by Martin Pool
Updated PPA documentation
169
   not already have it, putting it into a ``tarballs`` directory.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
170
171
#. For Bazaar plugins, change the ``debian/control`` file to express a
172
   dependency on the correct version of ``bzr``.
173
174
   For bzrtools this is typically::
175
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
176
      Build-Depends-Indep: bzr (>= 1.17~), rsync
177
      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
178
4380.1.8 by John Ferlito
Update versions
179
   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
180
   for all of your ``$UBUNTU_RELEASES``. It is available as::
181
182
    tools/packaging/update-control.sh
183
4380.1.8 by John Ferlito
Update versions
184
   You must supply the versions as arguments as follows
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
185
   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
186
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
187
    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
188
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
189
#. Make a new ``debian/changelog`` entry for the new release,
190
   either by using ``dch`` or just editing the file::
191
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
192
      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
193
194
   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
195
   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
196
   to specify it.
197
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
198
   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.
199
   export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
4009.1.1 by Vincent Ladeuil
Ppa newcomer updates.
200
   distribution.  It should look something like this::
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
201
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
202
       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
203
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
204
        * New upstream release.
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
205
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
206
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
207
208
   If you need to upload the package again to fix a problem, normally you
209
   should increment the last number in the version number, following the
210
   distro name.  Make sure not to omit the initial ``-1``, and make sure
211
   that the distro name in the version is consistent with the target name
212
   outside the parenthesis.
213
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
214
   You will also want to commit these changes into the packaging branch.
215
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
216
   There is a helper script which will build all the packages
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
217
   for all of your ``$UBUNTU_RELEASES``. It is available as::
218
219
      tools/packaging/update-changelogs.sh
220
221
#. Build the source packages::
222
223
      cd packaging-$DISTRO; bzr builddeb -S
224
3749.2.1 by Martin Pool
Updated PPA documentation
225
   This will create a ``.changes`` file.  If you didn't configure builddeb
226
   to automatically sign them, you can use ::
227
228
      debsign -m$UID *.changes
229
230
   where ``$UID`` is the gpg key you want to use to sign the changes.
231
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
232
   There is a helper script which will build the package
233
   for all of your ``$UBUNTU_RELEASES``. It is available as::
234
235
      tools/packaging/build-packages.sh
236
3641.4.1 by Martin Albisetti
Tweaks to the PPA docs to remove recommendation to use Launchpad's copy feature, and other small changes
237
#. Upload into the beta PPA for each release::
238
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
239
     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
240
241
#. For final release versions, also copy it into the ``~bzr`` PPA::
242
4665.4.2 by John Ferlito
update version numbers in ppa.txt examples
243
     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
3649.4.1 by John Arbash Meinel
Merge in Lukáš's helper scripts.
244
245
   Alternatively, you can use Launchpad's "copy" feature to copy the
246
   packages between repositories.
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
247
248
#. You should soon get an "upload accepted" mail from Launchpad, which
249
   means that your package is waiting to be built.  You can then track its
250
   progress in <https://launchpad.net/~bzr-beta-ppa/+archive> and
251
   <https://launchpad.net/~bzr-beta-ppa/+archive/+builds>.
252
253
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
254
Packaging bzr-svn
255
~~~~~~~~~~~~~~~~~
256
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
257
bzr-svn uses a packaging branch that contains both the source
3960.4.1 by Jelmer Vernooij
Remove unnecessary commands for building bzr-svn.
258
(including any changes against upstream) and the ``debian/`` directory.
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
259
260
To build bzr-svn:
261
262
#. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
263
4380.1.2 by John Ferlito
Fix typo and bzr-svn branch name in ppa.txt
264
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
4380.1.8 by John Ferlito
Update versions
265
3870.1.2 by Martin Pool
Note about merging bzr-svn from jelmer's branch
266
   This should bring in both upstream and packaging changes for the new
267
   release, and it's updated as part of the bzr-svn release process.
268
4380.1.1 by John Ferlito
Update packaging scripts to make deployment a bit easier
269
   It's quite possible you will need to resolve some conflicts.
270
3870.1.1 by Martin Pool
Add some notes on ppa packaging of bzr-svn
271
#. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
272
273
#. Run ``bzr builddeb --source``
274
275
   bzr-builddeb will automatically check out the appropriate tag from the
276
   main branch of bzr-svn, build, and package it.
277
278
#. ``dput bzr-beta-ppa ../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes``
279
280
3549.3.1 by Martin Pool
Updated instructions in packaging into the PPA
281
Monitoring the contents of PPAs
282
-------------------------------
283
284
If you add all the bzr PPAs to your ``sources.list`` then you can see a
285
summary of current package versions with::
286
287
  apt-cache madison bzr
288
289
290
..
291
   vim: filetype=rst textwidth=74 ai shiftwidth=4