As with most things Debian building a package from source is generally
quite easy but this, of course, is only the case if you know how to do it.
This guide will show you how to get the source for a package and build it
on your local machine.

Generally speaking there is no reason to build a package locally - the
speed improvements that you can achieve are almost always minimal and generally
non-existant. You might want to pass in a few different flag but most
configuration can normally also be done with the compiled package. In fact one
of the few reasons to build your own package is so that you can use a package
that is currently stalled entering unstable because it doesn't compile on
one platform. In my case I know that Eclipse compiles on my platform but for
some reason it is failing in the auto-builder which is stopping the latest
release from entering unstable.

Update Your Sources List

The first thing you need to do is update your sources list so that it includes
a deb-src entry. Generally it is best to just copy your main deb entry and make
it deb-src instead. You will need to run an atp-get update after adding the source entry.

Install Commonly Required Package Building Tools

Most (perhaps all) packages will require the following packages to be installed
in order for the build to succeed (note if the build includes compiling code you
will also need the relevent compiler and tools): dpkg-dev,build-essential, fakeroot.

Get the Package Source

Get the source for the package you want to build with apt-get source package-name
where package-name is the name of the package. This will get three files: the latest version of
the source for the given package (which might not match the version of the binary package
in the binary repository) which will end in orig.tar.gz, a file containing diffs (ending in
.diff.gz) and a Debian rules file (ending in .dsc). If save these files in the current directory
and unpack the source. To keep things neat and tidy it's best to perform this procedure in
an empty build directory - simply create one if you don't already have one.

Note: diff.gz might not be included if the file is native to Debian.

Get Dependencies

Most packages rely on other packages to function and sometimes build correctly.
To make the process of gathering and installing dependencies easier apt-get has a
build-dep function. Simply run "apt-get build-dep package-name" to get all the
required build dependencies for the given package.

Build the Package

cd into the package source directory and run "debian/rules binary" or if you
aren't root "fakeroot debian/rules binary". Sit back and wait for the package to
be built - this can take a very long time for a big package.