kdecvs-build is a Perl script to try and make the process of downloading and building KDE from CVS as easy as possible.
Here are some key features of "kdecvs build":
· Automatically checks out modules from CVS or updates from CVS, as appropriate.
· Support for checking out specific branches of CVS modules.
· Times the build process for modules.
· Will automatically try to rebuild modules that were using incremental make, which is prone to failure after certain kinds of CVS commits.
· Can resume a previous script, or start the build process from a particular module.
· Much better support for qt-copy than 0.4x.
· Can create a .cvsrc automatically if you forget to. .cvspass still isn't automatically created.
· Unsermake support.
· Tilde-expansion for your configuration options. For example, you can specify:
· qtdir ~/kdecvs/qt-copy
· Configurable build and logging directories
· Automatically sets up a build system, with the source directory not the same as the build directory, in order to keep the CVS download directory pristine. The exception is qt-copy, which isn't designed to be built like that (unless you'd like to test use-qt-builddir-hack).
· 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 CVS 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 kdecvs-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.
· Includes CVS over SSH support. The script CANNOT access your private key if it is password protected, so using ssh-agent is recommended.
· 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're 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't 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 CVS module. For example, you could check out only taglib from kdesupport, or only K3B from kdeextragear-1. 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.
· Can log output of all commands to a file in $KDECVSDIR/log.
· Find the fastest KDE CVS mirror. There isn't even a list shipped with the script at this point.
· Brush your teeth. You should remember to do that yourself.
· The script probably isn't bug-free. Sorry.
What's New in This Release:
· Add KDE-specific directory to pkg-config search path, so that digikam will build without any special help.
· Added option manual-update, which prevents a module from updating, building, and installing unless it is specified on the command line.
· Don't warn when specifying modules on the command line along with the --install option.