Release version 0.10.1
[platform/core/appfw/alarm-manager.git] / packaging / alarm-manager.spec
1 Name:       alarm-manager
2 Summary:    Alarm library
3 Version:    0.10.1
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 Source6:    alarm-session-agent@.service
14 Source7:    alarm-session-agent@.socket
15 Source1001: alarm-server.manifest
16 Source1002: alarm-lib.manifest
17 BuildRequires: cmake
18 BuildRequires: pkgconfig(glib-2.0)
19 BuildRequires: pkgconfig(dlog)
20 BuildRequires: pkgconfig(aul)
21 BuildRequires: pkgconfig(bundle)
22 BuildRequires: pkgconfig(sqlite3)
23 BuildRequires: pkgconfig(vconf)
24 BuildRequires: pkgconfig(appsvc)
25 BuildRequires: pkgconfig(pkgmgr-info)
26 BuildRequires: pkgconfig(pkgmgr)
27 BuildRequires: pkgconfig(gio-2.0)
28 BuildRequires: pkgconfig(gio-unix-2.0)
29 BuildRequires: pkgconfig(capi-system-device)
30 BuildRequires: pkgconfig(libtzplatform-config)
31 BuildRequires: pkgconfig(libsystemd)
32 BuildRequires: pkgconfig(eventsystem)
33 BuildRequires: pkgconfig(notification)
34 BuildRequires: python-xml
35 BuildRequires: pkgconfig(capi-system-info)
36 BuildRequires: pkgconfig(cert-svc-vcore)
37 BuildRequires: pkgconfig(cynara-client)
38 BuildRequires: pkgconfig(cynara-session)
39 BuildRequires: pkgconfig(cynara-creds-gdbus)
40
41 %if 0%{?gcov:1}
42 BuildRequires:  lcov
43 BuildRequires:  zip
44 %endif
45
46 %define gtests 0
47
48 %if 0%{?gtests: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 # unittests
114 #################################################
115 %package unittests
116 Summary:    GTest for alarm manager library
117 Group:      Development/Libraries
118 Requires:   %{name}
119
120 %description unittests
121 GTest for alarm-manager library
122
123
124 #################################################
125 # gcov
126 #################################################
127 %if 0%{?gcov:1}
128 %package gcov
129 Summary:    Alarm library (gcov)
130 Group:      Application Framework/Testing
131
132 %description gcov
133 Alarm library gcov objects
134 %endif
135
136
137 %prep
138 %setup -q
139 cp %{SOURCE1001} ./
140 cp %{SOURCE1002} ./
141
142
143 %build
144 %if 0%{?gcov:1}
145 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
146 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
147 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
148 export LDFLAGS+=" -lgcov"
149 %endif
150
151 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
152
153 %define appfw_feature_alarm_manager_module_log 1
154 %if 0%{?appfw_feature_alarm_manager_module_log}
155         _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG=ON
156 %endif
157
158 %cmake . -DOBS=1 \
159         -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
160         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
161         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
162         -D_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG:BOOL=${_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG} \
163         -DALARM_CONF_DIR=%{_datadir}/alarm-manager \
164         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
165
166 make %{?jobs:-j%jobs}
167
168 %if 0%{?gcov:1}
169 mkdir -p gcov-obj
170 find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
171 %endif
172
173 %install
174 rm -rf %{buildroot}
175 %make_install
176
177 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
178 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
179 mkdir -p %{buildroot}%{_unitdir}/user-sockets@.target.wants
180 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
181 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
182 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
183 install -m 0644 %SOURCE6 %{buildroot}%{_unitdir}/alarm-session-agent@.service
184 install -m 0644 %SOURCE7 %{buildroot}%{_unitdir}/alarm-session-agent@.socket
185 ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
186 ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
187 ln -sf ../alarm-session-agent@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
188 mkdir -p %{buildroot}%{_tmpfilesdir}
189 install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
190 mkdir -p %{buildroot}%{_libdir}/udev/rules.d
191 install -m 0644 %SOURCE5 %{buildroot}%{_libdir}/udev/rules.d
192 mkdir -p %{buildroot}%{logdir}
193
194 %if 0%{?gcov:1}
195 mkdir -p %{buildroot}%{_datadir}/gcov/obj
196 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
197 %endif
198
199 %check
200 (cd unittest && LD_LIBRARY_PATH=../lib ctest -V)
201 %if 0%{?gcov:1}
202 lcov -c --ignore-errors graph --no-external -q -d . -o alarm-manager.info
203 genhtml alarm-manager.info -o alarm-manager.out
204 zip -r alarm-manager.zip alarm-manager.out
205 install -m 0644 alarm-manager.zip %{buildroot}%{_datadir}/gcov/
206 %endif
207
208 %post -p /sbin/ldconfig
209
210 %postun -p /sbin/ldconfig
211
212 %post -n alarm-server
213
214 %post -n libalarm
215 /sbin/ldconfig
216
217 %postun -n libalarm
218 /sbin/ldconfig
219
220 %posttrans -n alarm-server
221 if [ -e /etc/config/model-config.xml ]; then
222         grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
223         if [ $? -eq 0 ]; then
224                 rm %{_libdir}/udev/rules.d/99-rtc.rules
225         fi
226 fi
227
228 %files -n alarm-server
229 %manifest alarm-server.manifest
230 %{_bindir}/alarm*
231 %attr(0644,root,root) %{_unitdir}/alarm-server.service
232 %{_unitdir}/multi-user.target.wants/alarm-server.service
233 %{_unitdir_user}/alarm-session-agent.service
234 %{_unitdir_user}/alarm-session-agent.socket
235 %{_unitdir}/alarm-session-agent@.service
236 %{_unitdir}/alarm-session-agent@.socket
237 %{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
238 %{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
239 %attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
240 %config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
241 %{_tmpfilesdir}/alarm-manager.conf
242 %{_libdir}/udev/rules.d/99-rtc.rules
243 %license LICENSE
244 %if 0%{?appfw_feature_alarm_manager_module_log}
245 %attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
246 %attr(0755,app_fw,app_fw) %{logdir}
247 %endif
248
249 %files -n libalarm
250 %manifest alarm-lib.manifest
251 %{_libdir}/libalarm.so.*
252 %license LICENSE
253
254 %files -n libalarm-devel
255 %{_includedir}/*.h
256 %{_libdir}/pkgconfig/*.pc
257 %{_libdir}/*.so
258
259 %files -n alarm-config-all-service-permitted
260 %{_datadir}/alarm-manager/alarm-config-all-service-permitted
261
262 %files -n alarm-config-platform-service-permitted
263 %{_datadir}/alarm-manager/alarm-config-platform-service-permitted
264
265 %files -n alarm-config-service-restricted
266 %{_datadir}/alarm-manager/alarm-config-service-restricted
267
268 #%if 0%{?gtests:1}
269 #%files unittests
270 #%{_bindir}/gtest*
271 #%endif
272
273 #################################################
274 # gcov
275 #################################################
276 %if 0%{?gcov:1}
277 %files gcov
278 %{_datadir}/gcov/*
279 %endif