Build requirements for packaging SCons
To build SCons you need to have Python version 2.7 or later installed, as well as its developer package named
python-dev under Debian. You'll also need the setuptools, named
Full builds, including all docs
However, if you want to build the docs as well, it will be more complicated. You'll need some extra packages:
You need to have the Python binding for either
lxml installed. For rendering PDF documents, you'll need a program like
jw available in your system-wide
$PATH. Creating the EPUB output files of the UserGuide and the MAN page, both depend on the Ghostscript executable
gs for creating the front cover image.
fop requires Java but is easily installed via
apt-get on Debian/Ubuntu.
jw is available for Debian/Ubuntu as part of the
docbook-utils package. You'll also need
epydoc in the
See also DeveloperGuide/Documentation for further details.
In the SCons source tree you can also find the script
bin/scons_dev_master.py, which can be used to setup your current environment for special development tasks. Calling it with:
python bin/scons_dev_master.py build
should automatically install the required packages, as mentioned above.
Problem: recent Debian distros
A problem exists for the Windows installer that gets created during the bootstrap.py process. Under more recent Debian distributions, e.g. Ubuntu Linux 14.04, the required "wininst.exe" files aren't included in the "python" packages anymore. That's because they are binary files without a source. But they are needed when the distutils try to create the installer, and the build stops with an error like:
error: [Errno 2] No such file or directory: '/usr/lib/python2.7/distutils/command/wininst-6.0.exe', /usr/lib/python2.7/distutils/command/wininst-6.0.exe not included in the Debian packages.
Against this, you can either download a standard Python source archive from http://www.python.org and extract the "*.exe" files from its folder
Lib/distutils/command, or you simply grab the following archive:
. Then copy the "*.exe" files to the
distutils/command folder of your local Python installation, e.g.