Building gsignond

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.

Dependencies

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.

Extra Configuration Options

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 GSignondAccessControlManager. This value becomes written to the gsignond.conf in addition to being encoded as default value through config.h.

-Dstoragedir=path Sets the base path for user specific storage directories where database files will be located as utilised by GSignondStorageManager. Default location is /var/db