Building gsignond

GSignond uses the standard GNU build system, using autoconf for package configuration and resolving portability issues, automake for building makefiles that comply with the GNU Coding Standards, and libtool for building shared libraries on multiple platforms. The normal sequence for compiling and installing gsignond from distribution tarballs is thus:


        ./configure
        make
        make install
      

If you have obtained the source code directly from git repository, execute the ./autogen.sh script before the steps above.

The standard options provided by GNU autoconf may be passed to the configure script. Please see the autoconf documentation or run ./configure --help 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 GNU make.

  • 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.

Extra Configuration Options

In addition to the normal options, the configure script supports these additional arguments:

--enable-debug 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.

--enable-sql-log Turns on SQL statement logging. For this, also --enable-debug must be used.

--enable-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.

--enable-keychain=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.

--enable-storagedir=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

Building distribution packages

Instead of running make install to install gsignond into a system location it is possible to build distribution-specific packages. dists/ directory in the source tree contains a number of package confuguration files, and to use them also a distribution tarball is needed. If you are building from a git tree, use make dist to create such a tarball.