8d03e3e6ca40fde0c8a76e34141736707edc9ff0
[platform/core/messaging/email-service.git] / packaging / email-service.spec
1 Name:       email-service
2 Summary:    E-mail Framework Middleware package
3 Version:    0.10.5
4 Release:    1
5 Group:      System/Libraries
6 License:    TBD
7 Source0:    %{name}-%{version}.tar.gz
8 Requires: connman
9 Requires(post):    /sbin/ldconfig
10 Requires(post):    /usr/bin/sqlite3
11 Requires(post):    /usr/bin/vconftool
12 Requires(postun):  /sbin/ldconfig
13 BuildRequires:  cmake
14 BuildRequires:  pkgconfig(glib-2.0)
15 BuildRequires:  pkgconfig(gthread-2.0)
16 BuildRequires:  pkgconfig(aul)
17 BuildRequires:  pkgconfig(vconf)
18 BuildRequires:  pkgconfig(heynoti)
19 BuildRequires:  pkgconfig(dlog)
20 BuildRequires:  pkgconfig(db-util)
21 BuildRequires:  pkgconfig(dbus-1)
22 BuildRequires:  pkgconfig(dbus-glib-1)
23 BuildRequires:  pkgconfig(contacts-service)
24 BuildRequires:  pkgconfig(uw-imap-toolkit)
25 BuildRequires:  pkgconfig(drm-client)
26 BuildRequires:  pkgconfig(openssl)
27 BuildRequires:  pkgconfig(alarm-service)
28 BuildRequires:  pkgconfig(mm-player)
29 BuildRequires:  pkgconfig(mm-session)
30 BuildRequires:  pkgconfig(devman_haptic)
31 BuildRequires:  pkgconfig(secure-storage)
32 BuildRequires:  pkgconfig(notification)
33 BuildRequires:  pkgconfig(accounts-svc)
34 BuildRequires:  pkgconfig(capi-base-common)
35 BuildRequires:  pkgconfig(libcurl)
36 BuildRequires:  pkgconfig(libxml-2.0)
37 BuildRequires:  pkgconfig(gconf-2.0)
38 BuildRequires:  pkgconfig(cert-svc)
39 BuildRequires:  pkgconfig(connman)
40
41
42 BuildRoot:  %{_tmppath}/%{name}-%{version}-build
43
44 %description
45 E-mail Framework Middleware Library/Binary package
46
47
48 %package devel
49 Summary:    E-mail Framework Middleware Development package
50 Group:      Development/Libraries
51 Requires:   %{name} = %{version}-%{release}
52
53 %description devel
54 E-mail Framework Middleware Development package
55
56
57 %prep
58 %setup -q
59
60 %build
61
62 export CFLAGS="${CFLAGS} -fPIC -Wall -g -fvisibility=hidden"
63 export CXXFLAGS="${CXXFLAGS} -fPIC -Wall -g -fvisibility=hidden"
64 export LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--rpath=%{_prefix}/lib -Wl,--as-needed"
65
66 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix}
67
68 # Call make instruction with smp support
69 #make %{?jobs:-j%jobs}
70 make
71
72 %install
73 %make_install
74
75 %clean
76 rm -rf %{buildroot}
77
78 %post
79 /sbin/ldconfig
80
81
82 #################################################################
83 # Add preset account information
84 #################################################################
85 echo "[EMAIL-SERVICE] Start adding preset account information..." 
86
87 ################################################################################################
88
89 # for default mail slot szie
90 vconftool set -t int    db/private/email-service/slot_size "100"        -g 6514
91
92 # for latest mail id
93 vconftool set -t int    db/private/email-service/latest_mail_id "0"     -g 6514
94
95 # for default account id
96 vconftool set -t int    db/private/email-service/default_account_id "0" -g 6514
97
98
99 #################################################################
100 # Set executin script
101 #################################################################
102 echo "[EMAIL-SERVICE] Set executing script ..."
103 EMAIL_SERVICE_EXEC_SCRIPT=/etc/rc.d/init.d/email-service
104 EMAIL_SERVICE_BOOT_SCRIPT=/etc/rc.d/rc3.d/S70email-service
105 EMAIL_SERVICE_FASTBOOT_SCRIPT=/etc/rc.d/rc5.d/S70email-service
106 echo '#!/bin/sh' > ${EMAIL_SERVICE_EXEC_SCRIPT}
107 echo '/usr/bin/email-service &' >> ${EMAIL_SERVICE_EXEC_SCRIPT} 
108 chmod 755 ${EMAIL_SERVICE_EXEC_SCRIPT}
109 rm -rf ${EMAIL_SERVICE_BOOT_SCRIPT}
110 rm -rf ${EMAIL_SERVICE_FASTBOOT_SCRIPT}
111 ln -s ${EMAIL_SERVICE_EXEC_SCRIPT} ${EMAIL_SERVICE_BOOT_SCRIPT} 
112 ln -s ${EMAIL_SERVICE_EXEC_SCRIPT} ${EMAIL_SERVICE_FASTBOOT_SCRIPT}
113 echo "[EMAIL-SERVICE] Finish executing script ..."
114
115 #################################################################
116 # Create DB file and tables.
117 #################################################################
118 echo "[EMAIL-SERVICE] Creating Email Tables ..."
119 sqlite3 /opt/dbspace/.email-service.db 'PRAGMA journal_mode = PERSIST;
120 CREATE TABLE mail_account_tbl 
121
122         account_id                               INTEGER PRIMARY KEY,
123         account_name                             VARCHAR(51),
124         logo_icon_path                           VARCHAR(256),
125         user_data                                BLOB,
126         user_data_length                         INTEGER,
127         account_svc_id                           INTEGER,
128         sync_status                              INTEGER,
129         sync_disabled                            INTEGER,
130         default_mail_slot_size                   INTEGER,
131         user_display_name                        VARCHAR(31),
132         user_email_address                       VARCHAR(129),
133         reply_to_address                         VARCHAR(129),
134         return_address                           VARCHAR(129),
135         incoming_server_type                     INTEGER,
136         incoming_server_address                  VARCHAR(51),
137         incoming_server_port_number              INTEGER,
138         incoming_server_user_name                VARCHAR(51),
139         incoming_server_password                 VARCHAR(51),
140         incoming_server_secure_connection        INTEGER,
141         retrieval_mode                           INTEGER,
142         keep_mails_on_pop_server_after_download  INTEGER,
143         check_interval                           INTEGER,
144         auto_download_size                       INTEGER,
145         outgoing_server_type                     INTEGER,
146         outgoing_server_address                  VARCHAR(51),
147         outgoing_server_port_number              INTEGER,
148         outgoing_server_user_name                VARCHAR(51),
149         outgoing_server_password                 VARCHAR(51),
150         outgoing_server_secure_connection        INTEGER,
151         outgoing_server_need_authentication      INTEGER,
152         outgoing_server_use_same_authenticator   INTEGER,
153         priority                                 INTEGER,
154         keep_local_copy                          INTEGER,
155         req_delivery_receipt                     INTEGER,
156         req_read_receipt                         INTEGER,
157         download_limit                           INTEGER,
158         block_address                            INTEGER,
159         block_subject                            INTEGER,
160         display_name_from                        VARCHAR(256),
161         reply_with_body                          INTEGER,
162         forward_with_files                       INTEGER,
163         add_myname_card                          INTEGER,
164         add_signature                            INTEGER,
165         signature                                VARCHAR(256),
166         add_my_address_to_bcc                    INTEGER,
167         pop_before_smtp                          INTEGER,
168         incoming_server_requires_apop            INTEGER,
169         smime_type                               INTEGER,
170         certificate_path                         VARCHAR(256),
171         cipher_type                              INTEGER,
172         digest_type                              INTEGER
173 );
174
175 CREATE TABLE mail_attachment_tbl 
176
177         attachment_id                            INTEGER PRIMARY KEY,
178         attachment_name                          VARCHAR(257),
179         attachment_path                          VARCHAR(257),
180         attachment_size                          INTEGER,
181         mail_id                                  INTEGER,
182         account_id                               INTEGER,
183         mailbox_id                               INTEGER,
184         attachment_save_status                   INTEGER,
185         attachment_drm_type                      INTEGER,
186         attachment_drm_method                    INTEGER,
187         attachment_inline_content_status         INTEGER,
188         attachment_mime_type                     VARCHAR(257)
189 );
190
191 CREATE TABLE mail_box_tbl 
192 (    
193         mailbox_id                       INTEGER PRIMARY KEY,
194         account_id                       INTEGER,
195         local_yn                         INTEGER,
196         mailbox_name                     VARCHAR(256),    
197         mailbox_type                     INTEGER,    
198         alias                            VARCHAR(256),    
199         sync_with_server_yn              INTEGER,    
200         modifiable_yn                    INTEGER,    
201         total_mail_count_on_server       INTEGER,
202         has_archived_mails               INTEGER,    
203         mail_slot_size                   INTEGER,
204         last_sync_time                   DATETIME
205 );
206
207 CREATE TABLE mail_read_mail_uid_tbl          
208 (    
209         account_id                       INTEGER ,
210         mailbox_id                       INTEGER ,
211         local_uid                        INTEGER ,
212         mailbox_name                     VARCHAR(256) ,
213         s_uid                            VARCHAR(129) ,
214         data1                            INTEGER ,
215         data2                            VARCHAR(257) ,
216         flag                             INTEGER ,
217         idx_num                          INTEGER PRIMARY KEY
218 );
219
220 CREATE TABLE mail_rule_tbl          
221 (    
222         account_id                       INTEGER ,
223         rule_id                          INTEGER PRIMARY KEY,
224         type                             INTEGER ,
225         value                            VARCHAR(257)  ,
226         action_type                      INTEGER ,
227         target_mailbox_id                INTEGER ,
228         flag1                            INTEGER ,
229         flag2                            INTEGER    
230 );
231
232 CREATE TABLE mail_tbl
233 (
234         mail_id                          INTEGER PRIMARY KEY,
235         account_id                       INTEGER,
236         mailbox_id                       INTEGER,
237         mailbox_name                     VARCHAR(129),
238         mailbox_type                     INTEGER,
239         subject                          TEXT,
240         date_time                        DATETIME,
241         server_mail_status               INTEGER,
242         server_mailbox_name              VARCHAR(129),
243         server_mail_id                   VARCHAR(129),
244         message_id                       VARCHAR(257),
245         reference_mail_id                INTEGER,
246         full_address_from                TEXT,
247         full_address_reply               TEXT,
248         full_address_to                  TEXT,
249         full_address_cc                  TEXT,
250         full_address_bcc                 TEXT,
251         full_address_return              TEXT,
252         email_address_sender             TEXT collation user1,
253         email_address_recipient          TEXT collation user1,
254         alias_sender                     TEXT,
255         alias_recipient                  TEXT,
256         body_download_status             INTEGER,
257         file_path_plain                  VARCHAR(257),
258         file_path_html                   VARCHAR(257),
259         file_path_mime_entity            VARCHAR(257),
260         mail_size                        INTEGER,
261         flags_seen_field                 BOOLEAN,
262         flags_deleted_field              BOOLEAN,
263         flags_flagged_field              BOOLEAN,
264         flags_answered_field             BOOLEAN,
265         flags_recent_field               BOOLEAN,
266         flags_draft_field                BOOLEAN,
267         flags_forwarded_field            BOOLEAN,
268         DRM_status                       INTEGER,
269         priority                         INTEGER,
270         save_status                      INTEGER,
271         lock_status                      INTEGER,
272         report_status                    INTEGER,
273         attachment_count                 INTEGER,
274         inline_content_count             INTEGER,
275         thread_id                        INTEGER,
276         thread_item_count                INTEGER,
277         preview_text                     TEXT, 
278         meeting_request_status           INTEGER,
279         message_class                    INTEGER,
280         digest_type                      INTEGER,
281         smime_type                       INTEGER,
282         FOREIGN KEY(account_id)          REFERENCES mail_account_tbl(account_id)
283 );
284
285 CREATE TABLE mail_meeting_tbl
286 (
287         mail_id                          INTEGER PRIMARY KEY,
288         account_id                       INTEGER,
289         mailbox_id                       INTEGER,
290         meeting_response                 INTEGER,
291         start_time                       INTEGER,
292         end_time                         INTEGER,
293         location                         TEXT ,
294         global_object_id                 TEXT ,
295         offset                           INTEGER,
296         standard_name                    TEXT ,
297         standard_time_start_date         INTEGER,
298         standard_bias                    INTEGER,
299         daylight_name                    TEXT ,
300         daylight_time_start_date         INTEGER,
301         daylight_bias                    INTEGER
302 );
303
304 CREATE TABLE mail_local_activity_tbl  
305 (  
306         activity_id                      INTEGER,
307         account_id                       INTEGER,
308         mail_id                          INTEGER,
309         activity_type                    INTEGER, 
310         server_mailid                    VARCHAR(129),
311         src_mbox                         VARCHAR(129),
312         dest_mbox                        VARCHAR(129) 
313 );
314
315 CREATE TABLE mail_certificate_tbl 
316
317         certificate_id              INTEGER,
318         issue_year                  INTEGER,
319         issue_month                 INTEGER,
320         issue_day                   INTEGER,
321         expiration_year             INTEGER,
322         expiration_month            INTEGER,
323         expiration_day              INTEGER,
324         issue_organization_name     VARCHAR(256),
325         email_address               VARCHAR(129),
326         subject_str                 VARCHAR(256),
327         filepath                    VARCHAR(256),
328         password                    VARCHAR(51)
329 );
330
331
332 CREATE UNIQUE INDEX mail_account_idx1 ON mail_account_tbl (account_id);
333 CREATE UNIQUE INDEX mail_attachment_idx1 ON mail_attachment_tbl (mail_id, attachment_id);
334 CREATE UNIQUE INDEX mail_box_idx1 ON mail_box_tbl (mailbox_id);
335 CREATE UNIQUE INDEX mail_idx1 ON mail_tbl (mail_id, account_id);
336 CREATE UNIQUE INDEX mail_read_mail_uid_idx1 ON mail_read_mail_uid_tbl (account_id, mailbox_id, local_uid, mailbox_name, s_uid);
337 CREATE UNIQUE INDEX mail_meeting_idx1 ON mail_meeting_tbl (mail_id);
338 CREATE INDEX mail_idx_date_time ON mail_tbl (date_time);
339 CREATE INDEX mail_idx_thread_item_count ON mail_tbl (thread_item_count);
340 '
341
342 echo "[EMAIL-SERVICE] Finish Creating Email Tables."
343
344
345 #################################################################
346 # Change file permission
347 #################################################################
348 #echo "[EMAIL-SERVICE] Start setting permission ..."
349 # 1. libraries
350
351 # 2. executables
352
353 # 3. DB files
354 chmod 644 /opt/dbspace/.email-service.db                                   
355 chmod 644 /opt/dbspace/.email-service.db-journal       
356
357 %postun -p /sbin/ldconfig
358
359 %files
360 %manifest email-service.manifest
361 %exclude /usr/bin/email-test-app
362 %{_libdir}/lib*.so.*
363 %{_bindir}/email-service
364 /opt/data/email/res/*
365
366
367 %files devel
368 %{_includedir}/email-service/*.h
369 %{_libdir}/lib*.so
370 %{_libdir}/pkgconfig/*.pc
371
372