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