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