~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/ppa.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-04-08 06:17:41 UTC
  • mfrom: (4797.33.16 apport)
  • Revision ID: pqm@pqm.ubuntu.com-20100408061741-m7vl6z97vu33riv7
(robertc) Make sure ExecutablePath and InterpreterPath are set in
        Apport. (Martin Pool, James Westby, lp:528114)

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
 
14
14
  __ https://help.launchpad.net/PPAQuickStart
15
15
 
16
 
As of June 2008, there are two PPAs:
 
16
As of June 2008, there are three PPAs:
17
17
 
18
18
<https://launchpad.net/~bzr/+archive>
19
19
    Final released versions.
20
20
 
21
21
<https://launchpad.net/~bzr-beta-ppa/+archive>
22
 
    Releases and release candidates.    
 
22
    Releases and release candidates.
 
23
 
 
24
<https://launchpad.net/~bzr-nightly-ppa/+archive>
 
25
    Automatic nightly builds from trunk.
23
26
 
24
27
We build packages for every supported Ubuntu release
25
28
<https://wiki.ubuntu.com/Releases>.  Packages need no longer be updated
34
37
Every package is first uploaded into the beta ppa.  For final release
35
38
versions it is also copied to the main PPA.
36
39
 
37
 
The ``debian/`` directory containing the packaging information is kept in
38
 
branches on Launchpad, named like 
 
40
The packaging information is kept in branches of bzr on Launchpad, named
 
41
like
39
42
<https://code.launchpad.net/~bzr/bzr/packaging-hardy>.
40
43
or
41
 
<lp:~bzr/bzr/packaging-hardy>.
 
44
<lp:~bzr/bzr/packaging-hardy>.  These branches are intended to be used
 
45
with the ``bzr-builddeb`` plugin.
42
46
 
43
47
Preconditions
44
48
-------------
45
 
  
46
 
* You must have a Launchpad account and be a member of the teams 
 
49
 
 
50
* You must have a Launchpad account and be a member of the teams
47
51
  that own these PPAs (``~bzr``, ``~bzr-beta-ppa``).
48
52
 
49
53
* You must have a GPG key registered to your Launchpad account.
71
75
 
72
76
    [DEFAULT]
73
77
    default_host_main = notspecified
74
 
  
 
78
 
 
79
* Configure ``bzr-builddeb`` to sign the package, which is required for
 
80
  Launchpad to build it.  Put this in ``~/.bazaar/builddeb.conf`` ::
 
81
 
 
82
      [BUILDDEB]
 
83
      builder = dpkg-buildpackage -rfakeroot
 
84
      source-builder= dpkg-buildpackage -rfakeroot -S -sa
 
85
 
75
86
* You need a Ubuntu (or probably Debian) machine, and ::
76
87
 
77
 
    sudo apt-get install build-essential devscripts dput quilt patch
78
 
 
79
 
* You will also want to have the ``bzr-builddeb`` plugin installed.
 
88
    sudo apt-get install build-essential devscripts dput quilt patch libcrypt-ssleay-perl debhelper cdbs python-docutils
 
89
 
 
90
  Please update this document if you encounter unmet dependencies or find a
 
91
  shorter way to express them.
 
92
 
 
93
* You will also want to have the `bzr-builddeb`_ plugin installed, which
 
94
  depends on `bzrtools`_.
 
95
 
 
96
.. _`bzr-builddeb`: http://launchpad.net/bzr-builddeb
 
97
.. _`bzrtools`: http://launchpad.net/bzrtools
80
98
 
81
99
 
82
100
Packaging Bazaar
89
107
release packages is as simple as::
90
108
 
91
109
  cd ~/dev/bzr/releases/packaging
92
 
  export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
 
110
  export VERSION="1.17~rc1-1~bazaar1"
 
111
  export PACKAGE="bzr"
 
112
  export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
93
113
  ~/dev/bzr/bzr.dev/tools/packaging/update-packaging-branches.sh
94
 
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
95
 
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages
96
 
  dput bzr-beta-ppa build-area/bzr_1.6~beta3~bazaar1*.changes
 
114
  ~/dev/bzr/bzr.dev/tools/packaging/update-changelogs.sh
 
115
  ~/dev/bzr/bzr.dev/tools/packaging/update-control.sh 1.16 1.17 1.18
 
116
  ~/dev/bzr/bzr.dev/tools/packaging/build-packages.sh
 
117
  dput bzr-beta-ppa ${PACKAGE}_$VERSION*.changes
 
118
 
 
119
Rinse and repeat for all the plugins by changing VERSION and PACKAGE.
97
120
 
98
121
Long Form
99
122
~~~~~~~~~
100
123
 
101
124
#. You will end up checking out a separate directory for each supported
102
 
   release. Such as ``~/dev/bzr/releases/packaging/hardy``
 
125
   release. Such as ``~/dev/bzr/releases/packaging/hardy``. In each of these
 
126
   branches, you will produce the package for the release.
 
127
 
 
128
   The scripts will also create the branches and produce packages for
 
129
   bzrtools and bzr-svn.
103
130
 
104
131
#. Decide on the final version number.  It should be of this form::
105
132
 
106
 
     bzr-1.6~beta3-1~bazaar1~hardy1
 
133
     bzr-1.17~rc1-1~bazaar1~hardy1
107
134
 
108
 
   There are three hyphen-separated parts: the *package name*, the *upstream
109
 
   version*, and the *packaging version*.
 
135
   **Note:** There are three hyphen-separated parts: the *package name*,
 
136
   the *upstream version*, and the *packaging version*.
110
137
 
111
138
   **Caution:** Upstream betas or release candidates must insert a tilde
112
139
   to make them sort before the final release, like this:
113
 
   ``bzr-1.6~beta3-1~bazaar1~hardy1``.
 
140
   ``bzr-1.17~rc1-1~bazaar1~hardy1``.
114
141
 
115
142
   Final releases will use a release string of the form:
116
 
   ``bzr-1.6-1~bazaar1~hardy1``
 
143
   ``bzr-1.17-1~bazaar1~hardy1``
 
144
 
 
145
   Set this base of this up as a usable environment variable::
 
146
 
 
147
      export VERSION="1.17~rc1-1~bazaar1"
117
148
 
118
149
#. Export the distroreleases that you will be packaging for::
119
150
 
120
 
      export UBUNTU_RELEASES="dapper feisty gutsy hardy intrepid"
 
151
      export UBUNTU_RELEASES="dapper hardy intrepid jaunty karmic"
 
152
 
 
153
#. Export the program you are packaging::
 
154
 
 
155
      export PACKAGE="bzr"
121
156
 
122
157
#. Checkout (or update) the packaging branch for each supported release::
123
158
 
128
163
      tools/packaging/update-packaging-branches.sh
129
164
 
130
165
#. The ``bzr-builddeb`` step will download the original tarball if you do
131
 
   not already have it. Putting it into a ``tarballs`` directory.
 
166
   not already have it, putting it into a ``tarballs`` directory.
132
167
 
133
168
#. For Bazaar plugins, change the ``debian/control`` file to express a
134
169
   dependency on the correct version of ``bzr``.
135
170
 
136
171
   For bzrtools this is typically::
137
172
 
138
 
      Build-Depends-Indep: bzr (>= 1.6~), rsync
139
 
      Depends: ${python:Depends}, bzr (>= 1.6~), bzr (<< 1.7~), patch
 
173
      Build-Depends-Indep: bzr (>= 1.17~), rsync
 
174
      Depends: ${python:Depends}, bzr (>= 1.17~), bzr (<< 1.18~), patch
 
175
 
 
176
   There is a helper script which will update the control file and commit it
 
177
   for all of your ``$UBUNTU_RELEASES``. It is available as::
 
178
 
 
179
    tools/packaging/update-control.sh
 
180
 
 
181
   You must supply the versions as arguments as follows
 
182
   OLD_VERSION CURRENT_VERSION NEXT_VERSION, such as::
 
183
 
 
184
    tools/packaging/update-control.sh 1.16 1.17 1.18
140
185
 
141
186
#. Make a new ``debian/changelog`` entry for the new release,
142
187
   either by using ``dch`` or just editing the file::
143
188
 
144
 
      dch -v '1.6~beta3-1~bazaar1~hardy1' -D hardy
 
189
      dch -v '1.17~rc1-1~bazaar1~hardy1' -D hardy
145
190
 
146
191
   dch will default to the distro you're working in and this isn't checked
147
 
   against the version number (which is just our convention), so make sure 
 
192
   against the version number (which is just our convention), so make sure
148
193
   to specify it.
149
194
 
150
 
   Make sure you have the correct email address for yourself, version
151
 
   number, and distribution.  It should look something like this::
152
 
 
153
 
       bzr (1.6~beta3-1~bazaar1~hardy1) hardy; urgency=low
154
 
     
 
195
   Make sure you have the correct email address for yourself (you may need
 
196
   export DEBEMAIL=`bzr whoami` if it isn't already set), version number, and
 
197
   distribution.  It should look something like this::
 
198
 
 
199
       bzr (1.17~rc1-1~bazaar1~hardy1) hardy; urgency=low
 
200
 
155
201
        * New upstream release.
156
 
     
 
202
 
157
203
       -- John Sample <sample@example.com>  Mon, 31 Mar 2008 12:36:27 +1100
158
204
 
159
205
   If you need to upload the package again to fix a problem, normally you
164
210
 
165
211
   You will also want to commit these changes into the packaging branch.
166
212
 
167
 
   There is a helper script which will update the changelog and commit it
 
213
   There is a helper script which will build all the packages
168
214
   for all of your ``$UBUNTU_RELEASES``. It is available as::
169
215
 
170
216
      tools/packaging/update-changelogs.sh
171
217
 
172
 
   You must supply the release string, such as::
173
 
 
174
 
      tools/packaging/update-changelogs.sh 1.6~beta3-1~bazaar1
175
 
 
176
 
   It will automatically append the distro numbering on the end.
177
 
 
178
218
#. Build the source packages::
179
219
 
180
220
      cd packaging-$DISTRO; bzr builddeb -S
181
221
 
182
 
   This will create a ``.changes`` file in ``build-area``. You will need
183
 
   to sign it with::
184
 
 
185
 
      debsign -m$UID build-area/*.changes
186
 
 
187
 
   Where ``$UID`` is the gpg key you want to use to sign the changes.
188
 
   Alternatively, you can configure ``~/.bazaar/builddeb.conf`` with::
189
 
 
190
 
      [BUILDDEB]
191
 
      builder = dpkg-buildpackage -rfakeroot
192
 
      source-builder= dpkg-buildpackage -rfakeroot -S -sa
193
 
 
194
 
   Which tells ``bzr builddeb`` to automatically sign the package with the
195
 
   key associated with the user who created the changelog entry.
196
 
     
 
222
   This will create a ``.changes`` file.  If you didn't configure builddeb
 
223
   to automatically sign them, you can use ::
 
224
 
 
225
      debsign -m$UID *.changes
 
226
 
 
227
   where ``$UID`` is the gpg key you want to use to sign the changes.
 
228
 
 
229
   There is a helper script which will build the package
 
230
   for all of your ``$UBUNTU_RELEASES``. It is available as::
 
231
 
 
232
      tools/packaging/build-packages.sh
 
233
 
197
234
#. Upload into the beta PPA for each release::
198
235
 
199
 
     dput bzr-beta-ppa build-area/*.changes
 
236
     dput bzr-beta-ppa bzr*1.17-1*.changes
200
237
 
201
238
#. For final release versions, also copy it into the ``~bzr`` PPA::
202
239
 
203
 
     dput bzr-ppa ../bzr__1.6-1\~bazaar1\~hardy1\_source.changes
 
240
     dput bzr-ppa ../bzr_1.17-1\~bazaar1\~hardy1\_source.changes
204
241
 
205
242
   Alternatively, you can use Launchpad's "copy" feature to copy the
206
243
   packages between repositories.
211
248
   <https://launchpad.net/~bzr-beta-ppa/+archive/+builds>.
212
249
 
213
250
 
 
251
Packaging bzr-svn
 
252
~~~~~~~~~~~~~~~~~
 
253
 
 
254
bzr-svn uses a packaging branch that contains both the source
 
255
(including any changes against upstream) and the ``debian/`` directory.
 
256
 
 
257
To build bzr-svn:
 
258
 
 
259
#. Get a checkout of ``lp:~bzr/bzr-svn/hardy-ppa/``
 
260
 
 
261
#. Merge from ``http://bzr.debian.org/pkg-bazaar/bzr-svn/unstable/``
 
262
 
 
263
   This should bring in both upstream and packaging changes for the new
 
264
   release, and it's updated as part of the bzr-svn release process.
 
265
 
 
266
   It's quite possible you will need to resolve some conflicts.
 
267
 
 
268
#. Run ``dch -v 0.4.15-1~bazaar1-hardy1 -D hardy`` or similar
 
269
 
 
270
#. Run ``bzr builddeb --source``
 
271
 
 
272
   bzr-builddeb will automatically check out the appropriate tag from the
 
273
   main branch of bzr-svn, build, and package it.
 
274
 
 
275
#. ``dput bzr-beta-ppa ../bzr-svn_0.4.15-1~bazaar1~hardy1_source.changes``
 
276
 
 
277
 
214
278
Monitoring the contents of PPAs
215
279
-------------------------------
216
280