Installation¶
This document describes the compilation and installation process. Most of that work is automated with Meson, a build tool written in Python.
Packages¶
Packages for RPM and Debian based Linux distributions will be provided for stable releases so that the framework can easily be installed in a container or production environment.
Fedora¶
RPM packages for Fedora (21, 22 and rawhide) are available from the arteymix/valum-framework Copr repository.
dnf copr enable arteymix/valum-framework
The valum package contains the shared library and valum-devel contains all that is necessary to build an application.
dnf install valum valum-devel
Nix¶
nix-shell -p valum
Dependencies¶
The following dependencies are minimal to build the framework under Ubuntu 12.04 LTS and should be satisfied by most recent Linux distributions.
| Package | Version |
|---|---|
| vala | >=0.26 |
| python | >=3.4 |
| meson | >=0.31 |
| ninja | >=1.5.1 |
| glib-2.0 | >=2.32 |
| gio-2.0 | >=2.32 |
| gio-unix-2.0 | >=2.32 |
| gthread-2.0 | >=2.32 |
| libsoup-2.4 | >=2.38 |
Recent dependencies will enable more advanced features:
| Package | Version | Feature |
|---|---|---|
| gio-2.0 | >=2.34 | CGI server uses the command line stdin which can be provided by DBus |
| gio-2.0 | >=2.40 | CLI arguments parsing |
| gio-2.0 | >=2.44 | write_head_async in Response |
| libsoup-2.4 | >=2.48 | new server API |
| libsoup-2.4 | >=2.50 | uses Soup.ClientContext.steal_connection directly |
You can also install additional dependencies to build the examples, you will
have to specify the --enable-examples flag during the configure step.
| Package | Description |
|---|---|
| json-glib-1.0 | JSON library |
| libmemcached | client for memcached cache storage |
| libluajit | embed a Lua VM |
Download the sources¶
You may either clone the whole git repository or download one of our releases from GitHub:
git clone git://github.com/valum-framework/valum.git && cd valum
The master branch is a development trunk and is not guaranteed to be very
stable. It is always a better idea to checkout the latest tagged release.
Build¶
mkdir build && cd build
meson ..
ninja # or 'ninja-build' on some distribution
Install¶
Installing the build files is optional and if you omit that step, make sure
that LD_LIBRARY_PATH points to the build folder where the shared
library has been generated.
sudo ninja install
The installation is usually prefixed by /usr/local, which is generally not
in the dynamic library path. You have to export the LD_LIBRARY_PATH
environment variable for it to work.
export LD_LIBRARY_PATH=/usr/local/lib64 # just lib on 32-bit systems
Run the tests¶
ninja test
If any of them fail, please open an issue on GitHub so that we can tackle the bug.