Release version 0.12.19
[platform/core/appfw/alarm-manager.git] / packaging / alarm-manager.spec
1 Name:       alarm-manager
2 Summary:    Alarm library
3 Version:    0.12.19
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 BuildRequires:  zip
46 %endif
47
48 %if 0%{?gcov:1}
49 BuildRequires: pkgconfig(gmock)
50 %endif
51 Requires(post): /sbin/ldconfig
52 Requires(postun): /sbin/ldconfig
53
54 %define logdir /var/log/appfw/alarmmgr_log
55
56 %description
57 Alarm Server and devel libraries
58
59
60 %package -n alarm-server
61 Summary:    Alarm server
62 Group:      Development/Libraries
63
64 %description -n alarm-server
65 Alarm Server, manages alarms
66
67
68 %package -n libalarm
69 Summary:    Alarm server libraries
70 Group:      Development/Libraries
71 Requires:   alarm-server = %{version}-%{release}
72
73 %description -n libalarm
74 Alarm server libraries for client
75
76
77 %package -n libalarm-devel
78 Summary:    Alarm server libraries (devel)
79 Group:      Development/Libraries
80 Requires:   libalarm = %{version}-%{release}
81
82 %description -n libalarm-devel
83 Alarm server libraries development package (devel)
84
85
86 %package -n alarm-config-all-service-permitted
87 Summary:    Configuration for permitting all service applications
88 Group:      Development/Libraries
89 Requires:   libalarm = %{version}-%{release}
90
91 %description -n alarm-config-all-service-permitted
92 A configuration file package for permitting all service applications
93
94
95 %package -n alarm-config-platform-service-permitted
96 Summary:    Configuration for permitting platform service applications
97 Group:      Development/Libraries
98 Requires:   libalarm = %{version}-%{release}
99
100 %description -n alarm-config-platform-service-permitted
101 A configuration file package for permitting all service applications that have been platform certified
102
103
104 %package -n alarm-config-service-restricted
105 Summary:    Configuration for restricting service applications
106 Group:      Development/Libraries
107 Requires:   libalarm = %{version}-%{release}
108
109 %description -n alarm-config-service-restricted
110 A configuration file package for restricting service applications
111
112 #################################################
113 # plugin
114 #################################################
115 %package -n alarm-server-plugin
116 Summary:    Alarm server plugin libraries
117 License:    apache-2.0
118 Group:      Development/Libraries
119 Requires:   alarm-server-plugin = %{version}-%{release}
120
121 %description -n alarm-server-plugin
122 A plugin package for alarm-server
123
124
125 #################################################
126 # unittests
127 #################################################
128 %package unittests
129 Summary:    GTest for alarm manager library
130 Group:      Development/Libraries
131 Requires:   %{name}
132
133 %description unittests
134 GTest for alarm-manager library
135
136
137 #################################################
138 # gcov
139 #################################################
140 %if 0%{?gcov:1}
141 %package gcov
142 Summary:    Alarm library (gcov)
143 Group:      Application Framework/Testing
144
145 %description gcov
146 Alarm library gcov objects
147 %endif
148
149
150 %prep
151 %setup -q
152 cp %{SOURCE1001} ./
153 cp %{SOURCE1002} ./
154 cp %{SOURCE1003} ./
155
156 %build
157 %if 0%{?gcov:1}
158 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
159 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
160 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
161 export LDFLAGS+=" -lgcov"
162 %endif
163
164 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
165
166 %define appfw_feature_alarm_manager_module_log 1
167 %if 0%{?appfw_feature_alarm_manager_module_log}
168         _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG=ON
169 %endif
170
171 %cmake . -DOBS=1 \
172         -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
173         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
174         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
175         -D_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG:BOOL=${_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG} \
176         -DALARM_CONF_DIR=%{_datadir}/alarm-manager \
177         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
178
179 make %{?jobs:-j%jobs}
180
181 %if 0%{?gcov:1}
182 mkdir -p gcov-obj
183 find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
184 %endif
185
186 %install
187 rm -rf %{buildroot}
188 %make_install
189
190 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
191 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
192 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
193 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
194 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
195 ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
196 ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
197 mkdir -p %{buildroot}%{_tmpfilesdir}
198 install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
199 mkdir -p %{buildroot}/usr/lib/udev/rules.d
200 install -m 0644 %SOURCE5 %{buildroot}/usr/lib/udev/rules.d
201 mkdir -p %{buildroot}%{logdir}
202
203 %if 0%{?gcov:1}
204 mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name}
205 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name}
206 %endif
207
208 %check
209 export LD_LIBRARY_PATH=../lib
210 ctest -V
211 %if 0%{?gcov:1}
212 lcov -c --ignore-errors graph --no-external -q -d . -o alarm-manager.info
213 genhtml alarm-manager.info -o alarm-manager.out
214 zip -r alarm-manager.zip alarm-manager.out
215 install -m 0644 alarm-manager.zip %{buildroot}%{_datadir}/gcov/
216 %endif
217
218 %post -p /sbin/ldconfig
219
220 %postun -p /sbin/ldconfig
221
222 %post -n alarm-server
223
224 %post -n libalarm
225 /sbin/ldconfig
226
227 %postun -n libalarm
228 /sbin/ldconfig
229
230 %posttrans -n alarm-server
231 if [ -e /etc/config/model-config.xml ]; then
232         grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
233         if [ $? -eq 0 ]; then
234                 rm /usr/lib/udev/rules.d/99-rtc.rules
235         fi
236 fi
237
238 %files -n alarm-server
239 %manifest alarm-server.manifest
240 %{_bindir}/alarm*
241 %attr(0644,root,root) %{_unitdir}/alarm-server.service
242 %{_unitdir}/multi-user.target.wants/alarm-server.service
243 %{_unitdir_user}/alarm-session-agent.service
244 %{_unitdir_user}/alarm-session-agent.socket
245 %{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
246 %attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
247 %license LICENSE
248 %config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
249 %{_tmpfilesdir}/alarm-manager.conf
250 /usr/lib/udev/rules.d/99-rtc.rules
251 %if 0%{?appfw_feature_alarm_manager_module_log}
252 %attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
253 %attr(0755,app_fw,app_fw) %{logdir}
254 %endif
255
256 %files -n libalarm
257 %manifest alarm-lib.manifest
258 %{_libdir}/libalarm.so.*
259 %license LICENSE
260
261 %files -n libalarm-devel
262 %{_includedir}/*.h
263 %{_libdir}/pkgconfig/*.pc
264 %{_libdir}/*.so
265
266 %files -n alarm-config-all-service-permitted
267 %{_datadir}/alarm-manager/alarm-config-all-service-permitted
268
269 %files -n alarm-config-platform-service-permitted
270 %{_datadir}/alarm-manager/alarm-config-platform-service-permitted
271
272 %files -n alarm-config-service-restricted
273 %{_datadir}/alarm-manager/alarm-config-service-restricted
274
275 #################################################
276 # plugin
277 #################################################
278 %files -n alarm-server-plugin
279 %manifest alarm-server-plugin.manifest
280 %{_libdir}/libalarm-server-plugin.so
281 %license LICENSE
282
283 #################################################
284 # unittests
285 #################################################
286 %files unittests
287 %{_bindir}/gtest*
288
289 #################################################
290 # gcov
291 #################################################
292 %if 0%{?gcov:1}
293 %files gcov
294 %{_datadir}/gcov/*
295 %endif