Script Features
Prev
Next

Chapter 3. Script Features

Feature Overview

Kdesvn-build features include:

  • For developers: Supports building the API documentation for a module. Note that this only works for KDE 3 modules when not using the Unsermake script.

  • Supports output message levels ranging from being very quiet to a full debug level.

  • Kdesvn-build can, with the assistance of the Kdesvn-build website and the KDE FTP server (FTP since Kdesvn-build 1.4), allow for speedy checkouts of some modules. If the module you are checking out has already been packaged at the website, then Kdesvn-build will download the snapshot and prepare it for use on your computer.

    This is faster for you, and helps to ease the load on the kde.org anonymous Subversion servers.

  • Another speedup is provided by starting the build process for a module as soon as the source code for that module has been downloaded. (Available since version 1.6)

  • Has excellent support for the qt-copy module, including optionally applying bugfix and optimization patches to the qt-copy module.

  • Kdesvn-build has colorized output.

  • Kdesvn-build does not require a GUI present to operate. So, you can build KDE without needing an alternate graphical environment.

  • Supports setting default options for all modules (such as the compilation settings or the configuration options). Such options can normally be changed for specific modules as well.

    Also, Kdesvn-build will add standard flags as appropriate to save you the trouble and possible errors from typing them yourself.

  • Kdesvn-build can checkout a specific branch or tag of a module. You can also ensure that a specific revision is checked out of a module.

  • Kdesvn-build can automatically switch a source directory to checkout from a different repository, branch, or tag. This happens automatically when you change an option that changes what the repository URL should be, but you must use the --svn-only option to let Kdesvn-build know that it is acceptable to perform the switch.

  • Kdesvn-build can checkout only portions of a module, for those situations where you only need one program from a large module.

  • For developers: Kdesvn-build will remind you if you use svn+ssh:// but ssh-agent is not running, as this will lead to repeated password requests from SSH.

  • Can e-mail reports of errors to a user.

  • Can delete the build directory of a module after its installation to save space at the expense of future compilation time.

  • The locations for the directories used by Kdesvn-build are configurable (even per module).

  • Can use Sudo, or a different user-specified command to install modules so that Kdesvn-build does not need to be run as the super user.

  • Kdesvn-build runs with reduced priority by default to allow you to still use your computer while Kdesvn-build is working.

  • Has support for using KDE's Subversion tags and branches.

  • Kdesvn-build will use a set of techniques to try and guarantee a successful build.

  • There is support for resuming a build from a given module. You can even ignore some modules temporarily for a given build.

  • Kdesvn-build can quickly perform a partial build of a module directly from the command line, when you only need to update part of a module.

  • Kdesvn-build will automatically download and create the required /admin directory for a module if it is not downloaded from Subversion the first time for some reason. This only applies to KDE 3 modules, as /admin is not required for qt-copy or KDE 4 modules.

  • Kdesvn-build will show the progress of your build when using Unsermake and CMake, and will always time the build process so you know after the fact how long it took.

  • Automatically tries to rebuild modules that were using incremental make, which is prone to failure after certain kinds of commits.

  • Comes built-in with a sane set of default options appropriate for building a base KDE single-user installation from the anonymous Subversion repository.

  • Comes with Unsermake support.

  • Tilde-expansion for your configuration options. For example, you can specify:

    qtdir ~/kdesvn/build/qt-copy

  • Automatically sets up a build system, with the source directory not the same as the build directory, in order to keep the source directory pristine.

  • You can specify global options to apply to every module to check out, and you can specify options to apply to individual modules as well.

  • Since the autotools sometimes get out of sync with changes to the source tree, you can force a rebuild of a module by creating a file called .refresh-me in the build directory of the module in question, or by running Kdesvn-build with the --refresh-build option.

  • You can specify various environment values to be used during the build, including KDEDIR, QTDIR, DO_NOT_COMPILE, and CXXFLAGS.

  • Command logging. Logs are dated and numbered so that you always have a log of a script run. Also, a special symlink called latest is created to always point to the most recent log entry in the log directory.

  • If you are using a user build of KDE instead of a system build (for which you must be root to install), you can use the script to install for you. I haven not audited this code, and it makes ample use of the system() call, so I would not recommend running it as root at this point.

  • You can use make-install-prefix to prefix the make install command line with a separate command, which is useful for Sudo.

  • You can check out only a portion of a KDE Subversion module. For example, you could check out only the taglib from kdesupport, or only K3B from extragear/multimedia. The script will automatically pull in kde-common if necessary to make the build work.

  • You can “pretend” to do the operations. If you pass --pretend or -p on the command line, the script will give a very verbose description of the commands it is about to execute, without actually executing it.

Prev
Next
Contents


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team