5. Working on a Package¶
Once you have the source package branch in a shared repository, you’ll want to create additional branches for the fixes or other work you plan to do. You’ll want to base your branch off the package source branch for the distro release that you plan to upload to. Usually this is the current development release, but it may be older releases if you’re backporting to an SRU for example.
5.1. Branching for a change¶
The first thing to do is to make sure your source package branch is up-to-date. It will be if you just checked it out, otherwise do this:
$ cd tomboy.dev
$ bzr pull
Any updates to the package that have uploaded since your checkout will now be pulled in. You do not want to make changes to this branch. Instead, create a branch that will contain just the changes you’re going to make. Let’s say you want to fix bug 12345 for the Tomboy project. When you’re in the shared repository you previously created for Tomboy, you can create your bug fix branch like this:
$ bzr branch tomboy.dev bug-12345
$ cd bug-12345
Now you can do all my work in the bug-12345
directory. You make changes
there as necessary, committing as you go along. This is just like doing any
kind of software development with Bazaar. You can make intermediate commits
as often as you like, and when your changes are finished, you will use the
standard dch
command (from the devscripts
package):
$ dch -i
This will drop you in an editor to add an entry to the debian/changelog file.
When you added your debian/changelog
entry, you should have included a bug
fix tag that indicated which Launchpad bug issue you’re fixing. The format of
this textual tag is pretty strict: LP: #12345
. The space between the
:
and the #
is required and of course you should use the actual bug
number that you’re fixing. Your debian/changelog
entry might look something
like:
tomboy (1.12.0-1ubuntu3) trusty; urgency=low
* Don't fubar the frobnicator. (LP: #12345)
-- Bob Dobbs <subgenius@example.com> Mon, 10 Sep 2013 16:10:01 -0500
Commit with the normal:
bzr commit
A hook in bzr-builddeb will use the debian/changelog text as the commit message and set the tag to mark bug #12345 as fixed.
This only works with bzr-builddeb 2.7.5 and bzr 2.4, for older versions use
debcommit
.
5.2. Building the package¶
Along the way, you’ll want to build your branch so that you can test it to make sure it does actually fix the bug.
In order to build the package you can use the bzr builddeb
command from
the bzr-builddeb
package. You can build a source package with:
$ bzr builddeb -S
(bd
is an alias for builddeb
.) You can leave the package unsigned by
appending -- -uc -us
to the command.
It is also possible to use your normal tools, as long as they are able to strip the .bzr directories from the package, e.g.:
$ debuild -i -I
If you ever see an error related to trying to build a native package without a
tarball, check to see if there is a .bzr-builddeb/default.conf
file
erroneously specifying the package as native. If the changelog version has a
dash in it, then it’s not a native package, so remove the configuration file.
Note that while bzr builddeb
has a --native
switch, it does not have a
--no-native
switch.
Once you’ve got the source package, you can build it as normal with
pbuilder-dist
(or pbuilder
or sbuild).