Build dependencies

Build dependency types

Every build of a recipe by boulder will create an entirely new root, with only the absolute minimum support dependencies in place. In order to build most software, you will need to add to the builddeps key in stone.yml. Luckily, our tooling supports more than one kind of dep.

Note that Serpent OS packages are also capable of storing providers that make the following kinds of dependencies work.

$name - standard deps

Simply listing a name will create a dependency on that package name. This is discouraged as automatically resolved providers offer a far more resilient system.

builddeps:
    - some-package

binary() - Standard binaries

Got a hard requirement for an executable in /usr/bin, such as grep ?

builddeps:
    - binary(grep)

sysbinary() - System binaries

Need an executable only found in /usr/sbin ?

builddeps:
    - sysbinary(mount)

pkgconfig() - PkgConfig / pkgconf

Trivially map package names to standard pkgconfig names (.pc files):

builddeps:
    - pkgconfig(ncurses)
    - pkgconfig(zlib)

pkgconfig32() - 32-bit PkgConf

Much like pkgconfig - specifically designed for .pc files installed to /usr/lib32/pkgconfig in 32-bit builds:

builddeps:
    - pkgconfig32(x11)

cmake() - CMake modules

Work with many C++/CMake builds much more easily by using the CMake module names

builddeps:
    - cmake(Qt5OpenGL)