3. ubuntu-dev-tools: Tools for Ubuntu developers¶
ubuntu-dev-tools
package is a collection of 30 tools created for making
packaging work much easier for Ubuntu developers. It’s similar in scope to
Debian devscripts
package.
3.1. Setting up packaging environment¶
setup-packaging-environment
command allows to interactively set up packaging
environment, including setting environment variables, installing required packages
and ensuring that required repositories are enabled.
3.2. Environment variables¶
3.2.1. Introducing yourself¶
ubuntu-dev-tools
configurations can be set using environment variables. It’s
used for example in changelogs. For example, to set e-mail address (and full
name), use UBUMAIL
variable. It overrides the DEBEMAIL
and DEBFULLNAME
variables used by devscripts
. To learn ubuntu-dev-tools
about you, open
~/.bashrc in text editor and add something like this:
export UBUMAIL="Marcin Mikołajczak <marcin@example.org>"
Now, save this file and restart your terminal or use source ~/.bashrc
.
3.2.2. Changing preferred builder¶
Default builder is specified by UBUNTUTOOLS_BUILDER
variable. To set
between pbuilder (default), pbuilder-dist, and sbuild, change this variable.
Example:
export UBUNTUTOOLS_BUILDER=sbuild
Save file and restart terminal.
You can also check whether to update the builder every time before building, by
changing UBUNTUTOOLS_UPDATE_BUILDER
from no
(default) to yes
.
3.3. Downloading source packages¶
ubuntu-dev-tools
comes with pull-lp-source
command, allowing to download
source packages from Launchpad. Its usage is simple. To download latest source
package for ubuntu-settings, use:
$ pull-lp-source ubuntu-settings
You can also specify release from which you want to download source or specify
version of source package. -d
option allows to download source package without
extracting. A slightly more complex example would look like this:
$ pull-lp-source brisk-menu 0.5.0-1 -d
pull-debian-source
package allows to do the same for Debian source packages.
It has similar syntax.
3.4. Backporting packages¶
ubuntu-dev-tools
provides backportpackage
allowing us to backport a
package from specified release of Ubuntu or Debian. For example, to backport
bzr
package from latest development release for your installed Ubuntu version,
simply:
$ backportpackage -w . bzr
This command allows to use more options. To specify Ubuntu release for which you
are going to backport a package, use -d dest
or --destination=DEST
parameter, where DEST
is Ubuntu release, for example xenial
. You can
specify more than one destination. In turn, -s SOURCE
and --source=SOURCE
specifies the Ubuntu or Debian release from which you are going to backport
a package. -w DIR
and --workdir=DIR
specifies directory, where package
files will be downloaded, unpacked and built. By default, it will create temporary
directory that will be automatically deleted. -U
or --update
allows to
update build environment before building package. -u
or --upload
allows to
upload package after building (for example to PPAs) using dput
.
3.5. Requesting backports¶
requestbackport
command makes creating backports through Launchpad bugs much
easier. It creates testing checklist that will be included in the bug. For
example, to request backporting libqt5webkit5 from latest development branch to
current stable release (without optional parameters):
$ requestbackport libqt5webkit5
You should fulfill the checklist if you have already tested the backport.
Additional options allows to specify destination of backport and its source, by
using -d DEST
or --destination=DEST
and s SRC
or --source=SRC
.
3.6. Other simple commands¶
ubuntu-dev-tools
also includes small utilities allowing to do simple tasks
like checking whether .iso file is an Ubuntu installation media.
3.6.1. ubuntu-iso
¶
To do this, use ubuntu-iso <pathtoiso>
, for example:
$ ubuntu-iso ~/Downloads/ubuntu.iso
3.6.2. bitesize
¶
“Bitesize” tag is used on Launchpad to describe tasks that are suitable for
begineers who want to contribute to one of the projects. bitesize
command
allows to add “bitesize” tag to Launchpad bug with just simple command, by
providing its number, like:
$ bitesize 1735410
3.6.3. 404main
¶
404main
allows to check whether all of package build dependencies are included
in main repository of specified Ubuntu distribution. Example:
$ 404main libqt5webkit5 xenial
If any of the required packages isn’t part of Ubuntu main repository, you can check whether the package fulfill Ubuntu main inclusion requirements and request it.
3.6.4. Further reading¶
ubuntu-dev-tools
manpages are covering more about usage of this package.