3eaacf56158da0e1277f7470a87f914c43da0842
[platform/core/messaging/msg-service.git] / packaging / msg-service.spec
1 Name:           msg-service
2 Version:        1.0.10
3 Release:        2
4 License:        Apache-2.0
5 Summary:        Messaging Framework Library
6 Group:          System/Libraries
7 Source0:        %{name}-%{version}.tar.gz
8 Source1:        msg-server.service
9 Source2:        msg-server.socket
10 Source3:        msg-server.asan.conf
11
12 Requires(post): /usr/bin/sqlite3
13 Requires(post): /sbin/ldconfig
14 Requires(postun): /sbin/ldconfig
15 Requires(post): systemd
16 Requires(postun): systemd
17 Requires: acl
18 Requires: security-config
19 BuildRequires: boost-devel
20 BuildRequires: cmake
21 BuildRequires: pkgconfig(alarm-service)
22 BuildRequires: pkgconfig(aul)
23 BuildRequires: pkgconfig(bundle)
24 BuildRequires: pkgconfig(capi-media-image-util)
25 BuildRequires: pkgconfig(capi-media-metadata-extractor)
26 BuildRequires: pkgconfig(capi-media-thumbnail-util)
27 BuildRequires: pkgconfig(capi-network-connection)
28 BuildRequires: pkgconfig(capi-system-device)
29 BuildRequires: pkgconfig(capi-system-info)
30 BuildRequires: pkgconfig(capi-telephony)
31 BuildRequires: pkgconfig(contacts-service2)
32 BuildRequires: pkgconfig(cynara-client)
33 BuildRequires: pkgconfig(cynara-creds-commons)
34 BuildRequires: pkgconfig(cynara-creds-socket)
35 BuildRequires: pkgconfig(cynara-session)
36 BuildRequires: pkgconfig(deviced)
37 BuildRequires: pkgconfig(dlog)
38 BuildRequires: pkgconfig(dpm)
39 BuildRequires: pkgconfig(eventsystem)
40 BuildRequires: pkgconfig(gio-2.0)
41 BuildRequires: pkgconfig(icu-uc)
42 BuildRequires: pkgconfig(json-glib-1.0)
43 BuildRequires: pkgconfig(lbs-dbus)
44 BuildRequires: pkgconfig(libcurl)
45 BuildRequires: pkgconfig(libsmack)
46 BuildRequires: pkgconfig(libsystemd)
47 BuildRequires: pkgconfig(libtzplatform-config)
48 BuildRequires: pkgconfig(libxml-2.0)
49 BuildRequires: pkgconfig(libwbxml2)
50 BuildRequires: pkgconfig(motion)
51 BuildRequires: pkgconfig(phonenumber-utils)
52 BuildRequires: pkgconfig(sqlite3)
53 BuildRequires: pkgconfig(tapi)
54 BuildRequires: pkgconfig(vconf)
55 # Below BuildRequires-statements are only for msg-manager
56 BuildRequires: gettext-tools
57 BuildRequires: hash-signer
58 BuildRequires: pkgconfig(badge)
59 BuildRequires: pkgconfig(callmgr_client)
60 BuildRequires: pkgconfig(capi-appfw-event)
61 BuildRequires: pkgconfig(capi-appfw-package-manager)
62 BuildRequires: pkgconfig(capi-appfw-service-application)
63 BuildRequires: pkgconfig(capi-media-player)
64 BuildRequires: pkgconfig(capi-media-sound-manager)
65 BuildRequires: pkgconfig(capi-media-recorder)
66 BuildRequires: pkgconfig(feedback)
67 BuildRequires: pkgconfig(notification)
68
69 %if 0%{?gcov:1}
70 BuildRequires:  lcov
71 %endif
72
73 %description
74 Description: Messaging Framework Library
75
76 %package devel
77 License:        Apache-2.0
78 Summary:        Messaging Framework Library (development)
79 Requires:       %{name} = %{version}-%{release}
80 Group:          Development/Libraries
81
82 %description devel
83 Description: Messaging Framework Library (development)
84
85 %package -n sms-plugin
86 License:        Apache-2.0
87 Summary:        SMS plugin library
88 Requires:       %{name} = %{version}-%{release}
89 Group:          System/Libraries
90 Requires(post): /sbin/ldconfig
91 Requires(postun): /sbin/ldconfig
92
93 %description -n sms-plugin
94 Description: SMS plugin library
95
96 %package -n mms-plugin
97 License:        Apache-2.0
98 Summary:        MMS plugin library
99 Requires:       %{name} = %{version}-%{release}
100 Group:          System/Libraries
101 Requires(post): /sbin/ldconfig
102 Requires(postun): /sbin/ldconfig
103
104 %description -n mms-plugin
105 Description: MMS plugin library
106
107 %package -n msg-manager
108 License:        Apache-2.0
109 Summary:        Message manager application
110 Requires:       %{name} = %{version}-%{release}
111 Group:          Applications/Messaging
112
113 %description -n msg-manager
114 Description: Message manager application
115
116 %define APP_PKGNAME     org.tizen.msg-manager
117 %define APP_PREFIX      %{TZ_SYS_RO_APP}/%{APP_PKGNAME}
118 %define APP_RESDIR      %{APP_PREFIX}/res
119 %define APP_LOCALEDIR   %{APP_RESDIR}/locale
120
121 %ifarch i586
122 %define i586_option     "-D_TIZEN_I586_ENABLED:BOOL=ON"
123 %else
124 %define i586_option     "-D_TIZEN_I586_ENABLED:BOOL=OFF"
125 %endif
126
127 #################################################
128 # gcov
129 #################################################
130 %if 0%{?gcov:1}
131 %package gcov
132 Summary:    Messaging Framework library (gcov)
133 Group:      Service Framework/Testing
134 %description gcov
135 gcov objects for coverage test
136 %endif
137
138 %prep
139 %setup -q
140
141 %build
142 %if 0%{?gcov:1}
143 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
144 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
145 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
146 export LDFLAGS+=" -lgcov"
147 %endif
148 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
149                 -DLIB_INSTALL_DIR=%{_libdir} \
150                 -DAPP_MANIFESTDIR=%{TZ_SYS_RO_PACKAGES}   \
151                 -DAPP_BINDIR=%{APP_PREFIX}/bin   \
152                 -DAPP_LOCALEDIR=%{APP_RESDIR}/locale \
153                 -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP \
154                 -DTZ_SYS_GLOBALUSER_DATA=%TZ_SYS_GLOBALUSER_DATA \
155                 -DTZ_SYS_GLOBALUSER_DB=%TZ_SYS_GLOBALUSER_DB \
156                 -DTZ_SYS_HOME=%TZ_SYS_HOME \
157                 -DTZ_SYS_BIN=%TZ_SYS_BIN \
158                 %{i586_option}
159
160 make %{?jobs:-j%jobs}
161 %if 0%{?gcov:1}
162 mkdir -p gcov-obj
163 find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
164 %endif
165
166 %install
167 rm -rf %{buildroot}
168 mkdir -p %{buildroot}/etc/config
169
170 %make_install
171
172 %if 0%{?gcov:1}
173 mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name}
174 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name}
175 %endif
176
177 %define tizen_sign 1
178 %define tizen_sign_base %{APP_PREFIX}
179 %define tizen_sign_level platform
180 %define tizen_author_sign 1
181 %define tizen_dist_sign 1
182
183 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
184 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/msg-server.service
185 %install_service multi-user.target.wants msg-server.service
186
187 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
188 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/msg-server.socket
189 %install_service sockets.target.wants msg-server.socket
190 %if "%{asan}" == "1"
191 mkdir -p %{buildroot}%{_unitdir}/msg-server.service.d
192 install -m 644 %SOURCE3 %{buildroot}%{_unitdir}/msg-server.service.d/msg-server.asan.conf
193 %endif
194
195 mkdir -p %{buildroot}%{TZ_SYS_GLOBALUSER_DB}
196 sqlite3 %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db "PRAGMA journal_mode = PERSIST;"
197 sqlite3 %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db < %{buildroot}/usr/share/msg-service/msg-service-db.sql
198
199 rm %{buildroot}/usr/share/msg-service/msg-service-db.sql
200 rm %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
201 touch %{buildroot}%{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
202
203 %post -n sms-plugin -p /sbin/ldconfig
204 %post -n mms-plugin -p /sbin/ldconfig
205
206 %post
207 /sbin/ldconfig
208
209 chmod 640 %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
210 chmod 640 %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
211
212 mkdir -p -m 770 %{TZ_SYS_GLOBALUSER_DATA}/msg-service
213 mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
214 mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
215 mkdir -p -m 770 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
216 mkdir -p -m 750 %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
217
218 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
219 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
220 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service
221 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
222 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
223 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
224 chown messaging:priv_message_read %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
225
226 chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata
227 chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata
228 chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
229 chmod g+s %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails
230
231 chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db
232 chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db-journal
233 chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/
234 chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata -t
235 chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/smildata -t
236 chsmack -a "System::Run" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata -t
237 chsmack -a "System::Shared" %{TZ_SYS_GLOBALUSER_DATA}/msg-service/msgdata/thumbnails -t
238
239 #Multi group to ipcdata directory
240 chmod o= %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
241 setfacl -m group:priv_message_write:rw %{TZ_SYS_GLOBALUSER_DATA}/msg-service/ipcdata
242
243
244 %postun -p /sbin/ldconfig
245
246 %postun -n sms-plugin -p /sbin/ldconfig
247 %postun -n mms-plugin -p /sbin/ldconfig
248
249 %files
250 %manifest msg-service.manifest
251 %license LICENSE.APLv2
252 %config(noreplace) %{TZ_SYS_GLOBALUSER_DB}/.msg_service.db*
253 %{_bindir}/msg-server
254 %{_libdir}/libmsg_plugin_manager.so
255 %{_libdir}/libmsg_mapi.so.*
256 %{_libdir}/libmsg_framework_handler.so
257 %{_libdir}/libmsg_transaction_manager.so
258 %{_libdir}/libmsg_utils.so
259 %{_libdir}/libmsg_externals.so
260 %{_libdir}/libmsg_transaction_proxy.so
261 %{_libdir}/libmsg_vobject.so
262 %{_unitdir}/msg-server.service
263 %{_unitdir}/multi-user.target.wants/msg-server.service
264 %{_unitdir}/msg-server.socket
265 %{_unitdir}/sockets.target.wants/msg-server.socket
266 %if "%{asan}" == "1"
267 %{_unitdir}/msg-server.service.d/msg-server.asan.conf
268 %endif
269
270 %files devel
271 %license LICENSE.APLv2
272 %{_libdir}/libmsg_mapi.so
273 %{_libdir}/pkgconfig/msg-service.pc
274 %{_includedir}/msg-service/*
275
276 %files -n sms-plugin
277 %manifest sms-plugin.manifest
278 %license LICENSE.APLv2
279 %{_libdir}/libmsg_sms_plugin.so
280
281 %files -n mms-plugin
282 %manifest mms-plugin.manifest
283 %license LICENSE.APLv2
284 %{_libdir}/libmsg_mms_plugin.so
285
286 %files -n msg-manager
287 %manifest msg-manager.manifest
288 %license LICENSE.APLv2
289 %{APP_PREFIX}/bin/msg-manager
290 %{TZ_SYS_RO_PACKAGES}/*.xml
291 %{APP_PREFIX}/author-signature.xml
292 %{APP_PREFIX}/signature1.xml
293 %{APP_RESDIR}/*
294
295 %if 0%{?gcov:1}
296 %files gcov
297 %{_datadir}/gcov/obj/*
298 %endif
299
300 %changelog