Getting started - darktable-org/darktable GitHub Wiki
If you are here, the first step you'll need is to be able to build and test darktable.
Building & testing using SCBI
The SCBI tool (Setup Config Build Install) is a tool that can manage and build software from source. It can configure, build and install it. The nice feature is that this tool is hybrid (can handle fully automated build and at the same time fully configurable from the command line). It handles user's checkout which one very important feature one developing and testing software.
The documentation of the latest release is here.
The documentation is important as there is lot of features in SCBI that are out of the scope of this simple quick start guide.
And scbi usage can be displayed using standard command:
$ scbi --help
But let's have a little quick start guide here targeted at darktable.
First install the tool:
$ git clone https://github.com/TurboGit/scbi
$ cd scbi
$ make
It will add a binary in $HOME/bin (add it to your PATH) and plug-ins to build sofwares in ~/.config/scbi.
The builds will be done into a sandbox located in:
SCBI_BDIR $HOME/dev/builds
The user's checkout (discussed later) will be checked in:
SCBI_GIT_REPO $HOME/dev/repositories/git
The default build plan is named default:
SCBI_PLAN default
You can change settings above if you like. Create a user's environment file $HOME/.scbi-env
:
$ cat $HOME/.scbi-env
SCBI_BDIR=$HOME/dev/builds
SCBI_GIT_REPO=$HOME/dev/git
SCBI_PLAN=default
Working on darktable master
Building
Then building darktable with a proper exiv2 version to support CR3 can be done simply by calling:
$ scbi --deps --update c-darktable
- --deps : to build dependencies
- --update : to update the repository
- c-darktable : the name of the plug-in found in ~/.config/scbi
If some packages are missing scbi will list them and you need to install them before restarting the command above.
When done, exiv2 v0.27.5 will be built and darktable will be linked against libavif
.
The installation will be done in /opt/darktable
by default because of the rule (prefix) in the plug-in, you can skip the installation with:
$ scbi --deps --update --no-install c-darktable
Or you can change the installation directory with --prefix
:
$ scbi --prefix=/some/other/path --deps --update c-darktable
Running
To run darktable from the sandbox with all dependencies:
$ scbi shell --run="darktable" c-darktable
Working on darktable releases
Building
We build the 3.6.1 release using the tag release-3.6.1 and we build using the variant v36 to force the build into a separate directory in the sandbox letting untouched the master build done just above.
$ scbi --deps c-darktable/v36:release-3.6.1
Running
Then to run darktable 3.6.1 directly from the sandbox for testing:
$ scbi shell --run="darktable" c-darktable/v36
Working on darktable with user's checkout
Building
During development you will change darktable sources. For this the setup is easy:
- clone darktable Git repository into $SCBI_GIT_REPO
- got to $SCBI_GIT_REPO/darktable
- edit sources, fix bug...
Then building using this user's checkout instead of the in-sandbox checkout just do:
$ scbi --deps --no-install c-darktable:dev
Note the :dev
here which is a special version for user's checkout.
Running
And you can run this version using as before:
$ scbi shell --run="darktable" c-darktable
That's all for this quick start guide. More information into the User's Manual.