GSignond uses meson, a python-based build system to generate its libraries and executables. The normal sequence for compiling and installing gsignond from distribution tarballs is thus:
meson build --prefix=/usr
cd build
ninja
sudo ninja install
Please see the meson documentation or run meson configure in the build directory for information about the standard options.
Before you can compile GSignond, you need to have various other tools and libraries installed on your system. The two tools needed during the build process are pkg-config and meson.
pkg-config
is a tool for tracking the compilation flags needed for
libraries that are used by the GSignond. (For each
library, a small .pc
text file is
installed in a standard location that contains the compilation
flags needed for that library along with version number
information.)
GSignond depends on a number of other libraries.
The GLib library is the development framework that GSignond is built on.
The SQLite library provides a database implementation that GSignond is using for storing data.
The check library provides a unit testing framework. It is needed only if you would like to run unit tests with make check.
For building Tizen extension module that integrates gsignond into the Tizen platform, the libsmack and ecryptfs are required. They are not needed otherwise.
For building Desktop extension module that integrates gsignond into the desktop keyring, the libsecret-1 is required. It is not needed otherwise.
In addition to the normal options, the meson configure command supports these additional arguments:
-Ddebug=true
.
Turns on debugging support. This enables unit tests and allows setting
environment variables to influence the runtime behaviour of GSignond
(see GSignondConfig and
GSignondAccessControlManager).
Also, the daemon will exit in case of critical errors.
-Dsql_log=true
.
Turns on SQL statement logging. For this, also
-Ddebug
must be used.
-Dbus_type=dbus-type
.
Sets the way in which GSignond is using DBus to communicate with
the client library. dbus-type
can be one of
'p2p'
which is the default and recommended
value. GSignond will use direct connection over a UNIX domain socket
with the client library without involving the DBus daemon.
'session'
which will use the session bus.
This is not recommended to use because session bus isn't secure
against eavesdropping, but it can be used for debugging purposes,
as it allows the use of standard tools such as
dbus-monitor, d-feet and
so on.
'system'
which will use the system bus.
Can be used on a single-user systems, but 'p2p' is preferred.
-Dkeychain=sysctx
.
Sets the system security context of keychain UI process as returned by
the default
-Dstoragedir=path
.
Sets the base path for user specific storage directories where
database files will be located as utilised by
/var/db