Update to upstream 1.0.1
[profile/ivi/gsignond.git] / docs / html / gsignond-building.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>gsignond API Reference Manual: Building and installing the gsignond daemon</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7 <link rel="home" href="index.html" title="gsignond API Reference Manual">
8 <link rel="up" href="ch01.html" title="GSignond building and installation">
9 <link rel="prev" href="ch01.html" title="GSignond building and installation">
10 <link rel="next" href="ch02.html" title="GSignond configuration">
11 <meta name="generator" content="GTK-Doc V1.20 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="10"><tr valign="middle">
16 <td width="100%" align="left" class="shortcuts"></td>
17 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
18 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
19 <td><a accesskey="p" href="ch01.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
20 <td><a accesskey="n" href="ch02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
21 </tr></table>
22 <div class="refentry">
23 <a name="gsignond-building"></a><div class="titlepage"></div>
24 <div class="refsect1">
25 <a name="building"></a><h2>Building gsignond</h2>
26 <p>
27       GSignond uses the standard GNU build system,
28       using <span class="application">autoconf</span> for package
29       configuration and resolving portability issues,
30       <span class="application">automake</span> for building makefiles
31       that comply with the GNU Coding Standards, and
32       <span class="application">libtool</span> for building shared
33       libraries on multiple platforms.  The normal sequence for
34       compiling and installing gsignond from distribution tarballs is thus:
35
36       </p>
37 <div class="literallayout"><p><br>
38         <strong class="userinput"><code>./configure</code></strong><br>
39         <strong class="userinput"><code>make</code></strong><br>
40         <strong class="userinput"><code>make install</code></strong><br>
41       </p></div>
42 <p>
43       
44       If you have obtained the source code directly from git repository,
45       execute the <span class="command"><strong>./autogen.sh</strong></span> script 
46       before the steps above.
47     </p>
48 <p>
49       The standard options provided by <span class="application">GNU
50       autoconf</span> may be passed to the
51       <span class="command"><strong>configure</strong></span> script.  Please see the
52       <span class="application">autoconf</span> documentation or run
53       <span class="command"><strong>./configure --help</strong></span> for information about
54       the standard options.
55     </p>
56 </div>
57 <div class="refsect1">
58 <a name="dependencies"></a><h2>Dependencies</h2>
59 <p>
60       Before you can compile GSignond, you need to have
61       various other tools and libraries installed on your
62       system. The two tools needed during the build process
63       are <span class="command"><strong>pkg-config</strong></span> and
64       <a class="ulink" href="http://www.gnu.org/software/make" target="_top">GNU make</a>.
65     </p>
66 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
67           <a class="ulink" href="http://www.freedesktop.org/software/pkgconfig/" target="_top">pkg-config</a>
68           is a tool for tracking the compilation flags needed for
69           libraries that are used by the GSignond. (For each
70           library, a small <code class="literal">.pc</code> text file is
71           installed in a standard location that contains the compilation
72           flags needed for that library along with version number
73           information.) 
74         </p></li></ul></div>
75 <p>
76       GSignond depends on a number of other libraries.
77     </p>
78 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
79 <li class="listitem"><p>
80             The <a class="ulink" href="https://developer.gnome.org/glib/" target="_top">GLib
81             library</a> is the development framework that GSignond is built on.
82         </p></li>
83 <li class="listitem"><p>
84             The <a class="ulink" href="http://www.sqlite.org/" target="_top">SQLite library</a>
85             provides a database implementation that GSignond is using for
86             storing data.
87         </p></li>
88 <li class="listitem"><p>
89             The <a class="ulink" href="http://check.sourceforge.net/" target="_top">check library</a>
90             provides a unit testing framework. It is needed only if you would
91             like to run unit tests with <span class="command"><strong>make check</strong></span>.
92         </p></li>
93 <li class="listitem"><p>
94             For building Tizen extension module that integrates gsignond into
95             the Tizen platform, the 
96             <a class="ulink" href="http://schaufler-ca.com/" target="_top">libsmack</a> and 
97             <a class="ulink" href="http://ecryptfs.org/" target="_top">ecryptfs</a> are required. 
98             They are not needed otherwise.
99         </p></li>
100 </ul></div>
101 </div>
102 <div class="refsect1">
103 <a name="extra-configuration-options"></a><h2>Extra Configuration Options</h2>
104 <p>
105       In addition to the normal options, the
106       <span class="command"><strong>configure</strong></span> script supports these additional arguments:
107     </p>
108 <p><b><code class="systemitem">--enable-debug</code>. </b>
109         Turns on debugging support. This enables unit tests and allows setting 
110         environment variables to influence the runtime behaviour of GSignond
111         (see <a class="link" href="GSignondConfig.html" title="GSignondConfig">GSignondConfig</a> and
112         <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">GSignondAccessControlManager</a>).
113         Also, the daemon will exit in case of critical errors.
114       </p>
115 <p><b><code class="systemitem">--enable-sql-log</code>. </b>
116           Turns on SQL statement logging. For this, also 
117           <code class="systemitem">--enable-debug</code> must be used.
118       </p>
119 <p><b><code class="systemitem">--enable-dbus-type=dbus-type</code>. </b>
120           Sets the way in which GSignond is using DBus to communicate with 
121           the client library. <code class="systemitem">dbus-type</code> can be one of
122         </p>
123 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
124 <li class="listitem"><p>
125               <code class="systemitem">'p2p'</code> which is the default and recommended
126               value. GSignond will use direct connection over a UNIX domain socket
127               with the client library without involving the DBus daemon.
128             </p></li>
129 <li class="listitem"><p>
130               <code class="systemitem">'session'</code> which will use the session bus.
131               This is not recommended to use because session bus isn't secure
132               against eavesdropping, but it can be used for debugging purposes,
133               as it allows the use of standard tools such as
134               <span class="command"><strong>dbus-monitor</strong></span>, <span class="command"><strong>d-feet</strong></span> and
135               so on.
136             </p></li>
137 <li class="listitem"><p>
138               <code class="systemitem">'system'</code> which will use the system bus.
139               Can be used on a single-user systems, but 'p2p' is preferred.
140             </p></li>
141 </ul></div>
142 <p>
143       </p>
144 <p><b><code class="systemitem">--enable-keychain=sysctx</code>. </b>
145             Sets the system security context of keychain UI process as returned by
146             the default <a class="link" href="GSignondAccessControlManager.html" title="GSignondAccessControlManager">
147             GSignondAccessControlManager</a>. This value becomes written to the
148             gsignond.conf in addition to being encoded as default value
149             through config.h.
150         </p>
151 <p><b><code class="systemitem">--enable-storagedir=path</code>. </b>
152             Sets the base path for user specific storage directories where
153             database files will be located as utilised by 
154             <a class="link" href="GSignondStorageManager.html" title="GSignondStorageManager">
155             GSignondStorageManager</a>.
156             Default location is <code class="filename">/var/db</code>
157         </p>
158 </div>
159 <div class="refsect1">
160 <a name="building-packages"></a><h2>Building distribution packages</h2>
161 <p>
162         Instead of running <span class="command"><strong>make install</strong></span> to install gsignond
163         into a system location it is possible to build distribution-specific
164         packages. <code class="filename">dists/</code> directory in the source tree
165         contains a number of package confuguration files, and to use them also
166         a distribution tarball is needed. If you are building from a git tree,
167         use <span class="command"><strong>make dist</strong></span> to create such a tarball.
168     </p>
169 </div>
170 </div>
171 <div class="footer">
172 <hr>
173           Generated by GTK-Doc V1.20</div>
174 </body>
175 </html>