kdesvn-build is a Perl script that can download and build KDE for you from the KDE Subversion source repository.
It includes many features to make the experience as easy as possible. It is also highly customizable, although all of the options have a sane default for those that don't like twiddling knobs. ;);) Some of the features of kdesvn-build include:
- Automatically checks out or updates modules from Subversion as appropriate.
- Supports "global" options that apply to every module, but can be overridden on a per module basis.
- Has support for checking out specific branches of a module.
- Shows the estimated progress of the build when possible, and shows the amount of time taken for a module.
- kdesvn-build tries very hard to build a module successfully. It will even go so far as to automatically re-run the process starting from make -f Makefile.cvs.
- Can resume from a previous failed run.
- kdesvn-build has excellent support for Unsermake, the improved automake replacement. It will even automatically download if for you if necessary.
- The configuration file will expand tilde (~)(~) to your home directory where appropriate, so you can use shell-style paths.
- Automatically sets up a so-called srcdir != builddir arrangement to keep the source directory clean.
- Command logging. Logs are dated and numbered so that you always have a log of a script run. A special symlink called latest is created in the log directory that points to the logs from the last run.
- You can checkout only a portion of a module if you'd like. For example, you could checkout only taglib from kdesupport. The admin directory from kde-common is imported automatically if necessary.
- "Pretend" mode. You can see what steps kdesvn-build would perform without actually changing anything.
kdesvn-build is currently maintained in the KDE kdesdk module, under the scripts subdirectory. The documentation (Docbook and manpage) was written by Carlos Leonhard Woelz.
Changes in 0.97:
- KDE SVN Trunk revision: 431712
- Fix Perl warning due to PKG_CONFIG_PATH not being set (fix by dfaure).
- Man page is included in the kdesdk module, thanks to Carlos Leon Woelz.
- --config-cache is no longer in the default configure flags.
- Don't redirect stderr to the log when running the subversion client, that usually just hangs the script. (Bug 107182 http://bugs.kde.org/show_bug.cgi?id=107182)
- Add a few config file options: - branch, to build a module from the given branch. Doesn't work on every module (but works on most). - tag, to build a module from a given tag. Also doesn't work on every module (but works on most). - override-url, to allow you to choose the EXACT URL to download the module from. - disable-agent-check, see below.
- A few minor polish changes by Thiago Macieira.
- If unsermake is already checked out and manual-update is set for kdenonbeta, kdesvn-build will forgo the auto-update of unsermake. This means you may have to manually update unsermake if you use this feature, but this is useful if you are constantly using kdesvn-build to update.
- Killed the auto-switch feature. If you change your svn-server it's probably easier just to delete the sources and have kdesvn-build check them back out.
- If you're downloading using svn+ssh:/ and kdesvn-build detects that you're using ssh-agent, kdesvn-build will then make sure the ssh agent is actually managing some identities before it performs the update. This is to prevent kdesvn-build asking for your passphrase 14 gazillion times (via ssh) when you forgot to run ssh-add.