Debian and Ubuntu Support
Overview
Tahoe-LAFS is provided as a .deb
package in current Debian (>= stretch) and Ubuntu (>= lucid) releases. Before official packages were added, the Tahoe
source tree provided support for building unofficial packages for a variety
of popular Debian/Ubuntu versions. The project also ran buildbots to create
.debs
of current trunk for ease of testing.
As of version 1.9, the source tree no longer provides these tools. To
construct a .deb
from current trunk, your best bet is to apply the current
Debian diff from the latest upstream package and invoke the debian/rules
as usual. Debian’s standard apt-get
tool can be used to fetch the current
source package (including the Debian-specific diff): run
“apt-get source tahoe-lafs
”. That will fetch three files: the .dsc
control file, the main Tahoe tarball, and the Debian-specific
.debian.tar.gz
file. Just unpack the .debian.tar.gz
file inside
your Tahoe source tree, modify the version number in debian/changelog
,
then run “fakeroot ./debian/rules binary
”, and a new .deb
will be
placed in the parent directory.
Dependency Packages
Tahoe depends upon a number of additional libraries. When building Tahoe from
source, any dependencies that are not already present in the environment will
be downloaded (via pip
and easy_install
) and installed in the
virtualenv.
The .deb
packages, of course, rely solely upon other .deb
packages.
For reference, here is a list of the debian package names that provide Tahoe’s
dependencies as of the 1.14.0 release:
python
python-zfec
python-foolscap
python-openssl (needed by foolscap)
python-twisted
python-nevow
python-mock
python-cryptography
python-simplejson
python-setuptools
python-support (for Debian-specific install-time tools)
When building your own Debian packages, a convenient way to get all these
dependencies installed is to first install the official “tahoe-lafs” package,
then uninstall it, leaving the dependencies behind. You may also find it
useful to run “apt-get build-dep tahoe-lafs
” to make sure all the usual
build-essential tools are installed.