LinuxCommandLibrary

kdesrc-build

Build KDE software from source code

TLDR

Initialize kdesrc-build

$ kdesrc-build --initial-setup
copy

Compile a KDE component and its dependencies from source
$ kdesrc-build [component_name]
copy

Compile a component without updating its local code and without compiling its dependencies
$ kdesrc-build --no-src --no-include-dependencies [component_name]
copy

Refresh the build directories before compiling
$ kdesrc-build --refresh-build [component_name]
copy

Resume compilation from a specific dependency
$ kdesrc-build --resume-from [dependency_component] [component_name]
copy

Run a component with a specified executable name
$ kdesrc-build --run --exec [executable_name] [component_name]
copy

Build all configured components
$ kdesrc-build
copy

Use system libraries in place of a component if it fails to build
$ kdesrc-build --no-stop-on-failure [component_name]
copy

SYNOPSIS

kdesrc-build [options] [module1 [module2 ...]]

PARAMETERS

--help
    Display help and exit

--version
    Show version information

--rcfile <FILE>
    Use alternate config file

--include-dependencies
    Build dependencies of specified modules

--network-test
    Test Git access before building

--no-src
    Skip source fetching

--no-build
    Skip compilation

--no-install
    Skip installation

--resume
    Resume from last failure point

--start-at <MODULE>
    Start building from specified module

--stop-at <MODULE>
    Stop after specified module

--prefix <DIR>
    Set installation prefix

--install-mode <MODE>
    Set mode: user, system, or prefix

--verbose
    Increase output verbosity

--debug
    Enable debug logging

--list-changes
    Show changes since last build

--jobs <N>
    Set parallel build jobs (default from config)

DESCRIPTION

kdesrc-build is a powerful Perl-based tool designed to simplify the process of building KDE Plasma and related software from source code on Linux systems.

It automates key steps including downloading source from KDE's Git repositories, resolving module dependencies, configuring with CMake, compiling, and installing. Users configure it via a ~/.kdesrc-buildrc file, specifying repositories, platforms (e.g., master, stable), modules to build, and installation options like prefix or fakeroot.

Ideal for developers wanting the latest KDE features or custom builds, it supports parallel builds, resuming interrupted sessions, and selective module building. It handles complex inter-dependencies across hundreds of modules, ensuring correct build order. Built-in features like change logs (--list-changes) and network tests aid troubleshooting.

While flexible, it requires prerequisites like Git, Perl, CMake, and compilers. It's actively maintained within KDE's developer tools ecosystem.

CAVEATS

Requires Perl, Git, CMake, compilers; builds are time-intensive and disk-heavy. Config file mandatory for full use. System installs need root/sudo.

CONFIGURATION

Edit ~/.kdesrc-buildrc for modules, repos, and options like make-options -j$(nproc).

EXAMPLE USAGE

kdesrc-build plasma-desktop --include-dependencies
Builds Plasma Desktop and deps.

HISTORY

Originally developed by Michael Pyne in 2007 for KDE4; evolved for Plasma frameworks. Maintained in KDE's kdesrc-build Git repo, with regular updates for new Qt/KF versions.

SEE ALSO

git(1), cmake(1), make(1)

Copied to clipboard