Introduction to Vala

Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C.



Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

Package Information

Vala Dependencies





dbus-1.14.10 (Required for the tests), libxslt-1.1.38 (Required for generating the documentation), help2man, jing, and weasyprint

Installation of Vala

At first, fix an issue causing vapigen to crash building some packages (for example NetworkManager):

sed -e "/next_pos =/s/$/ \
        char buf[16]; \
        Memory.copy (buf, next_pos, \
        (end - next_pos >= buf.length ? buf.length - 1 : end - next_pos));/" \
    -e 's/(string) next_pos/(string) buf/' \
    -i vala/valamarkupreader.vala

Install Vala by running the following commands:

./configure --prefix=/usr &&
make bootstrap

To test the results, issue: make check.

Now, as the root user:

make install

Command Explanations

bootstrap: This make target forces the building system to build the package twice and use the vala executable produced in the first build to regenerate the .c files from the .vala files if needed. Since the vala executable is not installed yet, this is necessary for really fixing the crash because the fix has modified a .vala file.

--disable-valadoc: This option is required if Graphviz-9.0.0 is not installed.


Installed Programs: vala, vala-0.56, valac, valadoc, vala-gen-introspect, and vapigen (symlinks); valac-0.56, valadoc-0.56, vala-gen-introspect-0.56, and vapigen-0.56
Installed Library: and
Installed Directories: /usr/include/vala-0.56, /usr/include/valadoc-0.56, /usr/lib/vala-0.56, /usr/lib/valadoc-0.56, /usr/share/vala, /usr/share/vala-0.56, /usr/share/valadoc-0.56, and /usr/share/devhelp/books/vala-0.56

Short Descriptions


is a compiler that translates Vala source code into C source and header files


is a documentation generator for generating API documentation from Vala source code based on libvala


generates a GI file for GObject and GLib based packages


is an utility which generates Vala API (VAPI) files from GI files

contains the Vala API functions