
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 command line with a separate command, which is useful for Sudo.
install
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.
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team