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