Release version 0.12.28
[platform/core/appfw/alarm-manager.git] / packaging / alarm-manager.spec
1 Name:       alarm-manager
2 Summary:    Alarm library
3 Version:    0.12.28
4 Release:    1
5 Group:      System/Libraries
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:    alarm-server.service
9 Source2:    alarm-session-agent.service
10 Source3:    alarm-session-agent.socket
11 Source4:    alarm-manager.conf
12 Source5:    99-rtc.rules
13 Source1001: alarm-server.manifest
14 Source1002: alarm-lib.manifest
15 Source1003: alarm-server-plugin.manifest
16 Requires(post): /sbin/ldconfig
17 Requires(postun): /sbin/ldconfig
18
19 BuildRequires: cmake
20 BuildRequires: pkgconfig(glib-2.0)
21 BuildRequires: pkgconfig(dlog)
22 BuildRequires: pkgconfig(aul)
23 BuildRequires: pkgconfig(bundle)
24 BuildRequires: pkgconfig(sqlite3)
25 BuildRequires: pkgconfig(vconf)
26 BuildRequires: pkgconfig(appsvc)
27 BuildRequires: pkgconfig(pkgmgr-info)
28 BuildRequires: pkgconfig(pkgmgr)
29 BuildRequires: pkgconfig(gio-2.0)
30 BuildRequires: pkgconfig(gio-unix-2.0)
31 BuildRequires: pkgconfig(capi-system-device)
32 BuildRequires: pkgconfig(libtzplatform-config)
33 BuildRequires: pkgconfig(libsystemd)
34 BuildRequires: pkgconfig(eventsystem)
35 BuildRequires: pkgconfig(notification)
36 BuildRequires: python-xml
37 BuildRequires: pkgconfig(cert-svc-vcore)
38 BuildRequires: pkgconfig(cynara-client)
39 BuildRequires: pkgconfig(cynara-session)
40 BuildRequires: pkgconfig(cynara-creds-gdbus)
41 BuildRequires: pkgconfig(gmock)
42
43 %if 0%{?gcov:1}
44 BuildRequires:  lcov
45 %endif
46
47 %if 0%{?gcov:1}
48 BuildRequires: pkgconfig(gmock)
49 %endif
50 Requires(post): /sbin/ldconfig
51 Requires(postun): /sbin/ldconfig
52
53 %define logdir /var/log/appfw/alarmmgr_log
54
55 %description
56 Alarm Server and devel libraries
57
58
59 %package -n alarm-server
60 Summary:    Alarm server
61 Group:      Development/Libraries
62
63 %description -n alarm-server
64 Alarm Server, manages alarms
65
66
67 %package -n libalarm
68 Summary:    Alarm server libraries
69 Group:      Development/Libraries
70 Requires:   alarm-server = %{version}-%{release}
71
72 %description -n libalarm
73 Alarm server libraries for client
74
75
76 %package -n libalarm-devel
77 Summary:    Alarm server libraries (devel)
78 Group:      Development/Libraries
79 Requires:   libalarm = %{version}-%{release}
80
81 %description -n libalarm-devel
82 Alarm server libraries development package (devel)
83
84
85 %package -n alarm-config-all-service-permitted
86 Summary:    Configuration for permitting all service applications
87 Group:      Development/Libraries
88 Requires:   libalarm = %{version}-%{release}
89
90 %description -n alarm-config-all-service-permitted
91 A configuration file package for permitting all service applications
92
93
94 %package -n alarm-config-platform-service-permitted
95 Summary:    Configuration for permitting platform service applications
96 Group:      Development/Libraries
97 Requires:   libalarm = %{version}-%{release}
98
99 %description -n alarm-config-platform-service-permitted
100 A configuration file package for permitting all service applications that have been platform certified
101
102
103 %package -n alarm-config-service-restricted
104 Summary:    Configuration for restricting service applications
105 Group:      Development/Libraries
106 Requires:   libalarm = %{version}-%{release}
107
108 %description -n alarm-config-service-restricted
109 A configuration file package for restricting service applications
110
111 #################################################
112 # plugin
113 #################################################
114 %package -n alarm-server-plugin
115 Summary:    Alarm server plugin libraries
116 License:    apache-2.0
117 Group:      Development/Libraries
118 Requires:   alarm-server-plugin = %{version}-%{release}
119
120 %description -n alarm-server-plugin
121 A plugin package for alarm-server
122
123
124 #################################################
125 # unittests
126 #################################################
127 %package unittests
128 Summary:    GTest for alarm manager library
129 Group:      Development/Libraries
130 Requires:   %{name}
131
132 %description unittests
133 GTest for alarm-manager library
134
135
136 #################################################
137 # gcov
138 #################################################
139 %if 0%{?gcov:1}
140 %package gcov
141 Summary:    Alarm library (gcov)
142 Group:      Application Framework/Testing
143
144 %description gcov
145 Alarm library gcov objects
146 %endif
147
148
149 %prep
150 %setup -q
151 cp %{SOURCE1001} ./
152 cp %{SOURCE1002} ./
153 cp %{SOURCE1003} ./
154
155 %build
156 %if 0%{?gcov:1}
157 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
158 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
159 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
160 export LDFLAGS+=" -lgcov"
161 %endif
162
163 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
164
165 %define appfw_feature_alarm_manager_module_log 1
166 %if 0%{?appfw_feature_alarm_manager_module_log}
167         _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG=ON
168 %endif
169
170 %cmake . -DOBS=1 \
171         -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
172         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
173         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
174         -D_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG:BOOL=${_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG} \
175         -DALARM_CONF_DIR=%{_datadir}/alarm-manager \
176         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
177
178 make %{?jobs:-j%jobs}
179
180 %install
181 rm -rf %{buildroot}
182 %make_install
183
184 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
185 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
186 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
187 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
188 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
189 ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
190 ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
191 mkdir -p %{buildroot}%{_tmpfilesdir}
192 install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
193 mkdir -p %{buildroot}/usr/lib/udev/rules.d
194 install -m 0644 %SOURCE5 %{buildroot}/usr/lib/udev/rules.d
195 mkdir -p %{buildroot}%{logdir}
196
197 %if 0%{?gcov:1}
198 builddir=$(basename $PWD)
199 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
200 mkdir -p "$gcno_obj_dir"
201 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
202 %endif
203
204 #################################################
205 # generate unittest automation script
206 #################################################
207 cat << EOF > run-unittest.sh
208 #!/bin/bash
209 setup() {
210     echo "setup start"
211 }
212
213 test_main() {
214     echo "test_main start"
215     /usr/bin/gtest-alarmmgr
216 }
217
218 teardown() {
219     echo "teardown start"
220 }
221
222 main() {
223     setup
224     test_main
225     teardown
226 }
227
228 main "$@"
229 EOF
230
231 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
232 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
233
234 %check
235 export LD_LIBRARY_PATH=../lib
236 ctest -V
237 %if 0%{?gcov:1}
238 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
239 genhtml %{name}.info -o out --legend --show-details
240 %endif
241
242 %post -p /sbin/ldconfig
243
244 %postun -p /sbin/ldconfig
245
246 %post -n alarm-server
247
248 %post -n libalarm
249 /sbin/ldconfig
250
251 %postun -n libalarm
252 /sbin/ldconfig
253
254 %posttrans -n alarm-server
255 if [ -e /etc/config/model-config.xml ]; then
256         grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
257         if [ $? -eq 0 ]; then
258                 rm /usr/lib/udev/rules.d/99-rtc.rules
259         fi
260 fi
261
262 %files -n alarm-server
263 %manifest alarm-server.manifest
264 %{_bindir}/alarm*
265 %attr(0644,root,root) %{_unitdir}/alarm-server.service
266 %{_unitdir}/multi-user.target.wants/alarm-server.service
267 %{_unitdir_user}/alarm-session-agent.service
268 %{_unitdir_user}/alarm-session-agent.socket
269 %{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
270 %attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
271 %license LICENSE
272 %config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
273 %{_tmpfilesdir}/alarm-manager.conf
274 /usr/lib/udev/rules.d/99-rtc.rules
275 %if 0%{?appfw_feature_alarm_manager_module_log}
276 %attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
277 %attr(0755,app_fw,app_fw) %{logdir}
278 %endif
279
280 %files -n libalarm
281 %manifest alarm-lib.manifest
282 %{_libdir}/libalarm.so.*
283 %license LICENSE
284
285 %files -n libalarm-devel
286 %{_includedir}/*.h
287 %{_libdir}/pkgconfig/*.pc
288 %{_libdir}/*.so
289
290 %files -n alarm-config-all-service-permitted
291 %{_datadir}/alarm-manager/alarm-config-all-service-permitted
292
293 %files -n alarm-config-platform-service-permitted
294 %{_datadir}/alarm-manager/alarm-config-platform-service-permitted
295
296 %files -n alarm-config-service-restricted
297 %{_datadir}/alarm-manager/alarm-config-service-restricted
298
299 #################################################
300 # plugin
301 #################################################
302 %files -n alarm-server-plugin
303 %manifest alarm-server-plugin.manifest
304 %{_libdir}/libalarm-server-plugin.so
305 %license LICENSE
306
307 #################################################
308 # unittests
309 #################################################
310 %files unittests
311 %{_bindir}/gtest*
312 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
313
314 #################################################
315 # gcov
316 #################################################
317 %if 0%{?gcov:1}
318 %files gcov
319 %{_datadir}/gcov/*
320 %endif