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