Release version 0.10.2
[platform/core/appfw/alarm-manager.git] / packaging / alarm-manager.spec
1 Name:       alarm-manager
2 Summary:    Alarm library
3 Version:    0.10.2
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 Requires(post): /sbin/ldconfig
16 Requires(postun): /sbin/ldconfig
17
18 BuildRequires: cmake
19 BuildRequires: pkgconfig(glib-2.0)
20 BuildRequires: pkgconfig(dlog)
21 BuildRequires: pkgconfig(aul)
22 BuildRequires: pkgconfig(bundle)
23 BuildRequires: pkgconfig(sqlite3)
24 BuildRequires: pkgconfig(vconf)
25 BuildRequires: pkgconfig(appsvc)
26 BuildRequires: pkgconfig(pkgmgr-info)
27 BuildRequires: pkgconfig(pkgmgr)
28 BuildRequires: pkgconfig(gio-2.0)
29 BuildRequires: pkgconfig(gio-unix-2.0)
30 BuildRequires: pkgconfig(capi-system-device)
31 BuildRequires: pkgconfig(libtzplatform-config)
32 BuildRequires: pkgconfig(libsystemd)
33 BuildRequires: pkgconfig(eventsystem)
34 BuildRequires: pkgconfig(notification)
35 BuildRequires: python-xml
36 BuildRequires: pkgconfig(capi-system-info)
37 BuildRequires: pkgconfig(cert-svc-vcore)
38 BuildRequires: pkgconfig(cynara-client)
39 BuildRequires: pkgconfig(cynara-session)
40 BuildRequires: pkgconfig(cynara-creds-gdbus)
41
42 %if 0%{?gcov:1}
43 BuildRequires:  lcov
44 BuildRequires:  zip
45 %endif
46
47 %define gtests 0
48
49 %if 0%{?gtests:1}
50 BuildRequires: pkgconfig(gmock)
51 %endif
52 Requires(post): /sbin/ldconfig
53 Requires(postun): /sbin/ldconfig
54
55 %define logdir /var/log/appfw/alarmmgr_log
56
57 %description
58 Alarm Server and devel libraries
59
60
61 %package -n alarm-server
62 Summary:    Alarm server
63 Group:      Development/Libraries
64
65 %description -n alarm-server
66 Alarm Server, manages alarms
67
68
69 %package -n libalarm
70 Summary:    Alarm server libraries
71 Group:      Development/Libraries
72 Requires:   alarm-server = %{version}-%{release}
73
74 %description -n libalarm
75 Alarm server libraries for client
76
77
78 %package -n libalarm-devel
79 Summary:    Alarm server libraries (devel)
80 Group:      Development/Libraries
81 Requires:   libalarm = %{version}-%{release}
82
83 %description -n libalarm-devel
84 Alarm server libraries development package (devel)
85
86
87 %package -n alarm-config-all-service-permitted
88 Summary:    Configuration for permitting all service applications
89 Group:      Development/Libraries
90 Requires:   libalarm = %{version}-%{release}
91
92 %description -n alarm-config-all-service-permitted
93 A configuration file package for permitting all service applications
94
95
96 %package -n alarm-config-platform-service-permitted
97 Summary:    Configuration for permitting platform service applications
98 Group:      Development/Libraries
99 Requires:   libalarm = %{version}-%{release}
100
101 %description -n alarm-config-platform-service-permitted
102 A configuration file package for permitting all service applications that have been platform certified
103
104
105 %package -n alarm-config-service-restricted
106 Summary:    Configuration for restricting service applications
107 Group:      Development/Libraries
108 Requires:   libalarm = %{version}-%{release}
109
110 %description -n alarm-config-service-restricted
111 A configuration file package for restricting service applications
112
113 #################################################
114 # unittests
115 #################################################
116 %package unittests
117 Summary:    GTest for alarm manager library
118 Group:      Development/Libraries
119 Requires:   %{name}
120
121 %description unittests
122 GTest for alarm-manager library
123
124
125 #################################################
126 # gcov
127 #################################################
128 %if 0%{?gcov:1}
129 %package gcov
130 Summary:    Alarm library (gcov)
131 Group:      Application Framework/Testing
132
133 %description gcov
134 Alarm library gcov objects
135 %endif
136
137
138 %prep
139 %setup -q
140 cp %{SOURCE1001} ./
141 cp %{SOURCE1002} ./
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 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
180 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
181 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
182 ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
183 ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
184 mkdir -p %{buildroot}%{_tmpfilesdir}
185 install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
186 mkdir -p %{buildroot}%{_libdir}/udev/rules.d
187 install -m 0644 %SOURCE5 %{buildroot}%{_libdir}/udev/rules.d
188 mkdir -p %{buildroot}%{logdir}
189
190 %if 0%{?gcov:1}
191 mkdir -p %{buildroot}%{_datadir}/gcov/obj
192 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
193 %endif
194
195 %check
196 (cd unittest && LD_LIBRARY_PATH=../lib ctest -V)
197 %if 0%{?gcov:1}
198 lcov -c --ignore-errors graph --no-external -q -d . -o alarm-manager.info
199 genhtml alarm-manager.info -o alarm-manager.out
200 zip -r alarm-manager.zip alarm-manager.out
201 install -m 0644 alarm-manager.zip %{buildroot}%{_datadir}/gcov/
202 %endif
203
204 %post -p /sbin/ldconfig
205
206 %postun -p /sbin/ldconfig
207
208 %post -n alarm-server
209
210 %post -n libalarm
211 /sbin/ldconfig
212
213 %postun -n libalarm
214 /sbin/ldconfig
215
216 %posttrans -n alarm-server
217 if [ -e /etc/config/model-config.xml ]; then
218         grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
219         if [ $? -eq 0 ]; then
220                 rm %{_libdir}/udev/rules.d/99-rtc.rules
221         fi
222 fi
223
224 %files -n alarm-server
225 %manifest alarm-server.manifest
226 %{_bindir}/alarm*
227 %attr(0644,root,root) %{_unitdir}/alarm-server.service
228 %{_unitdir}/multi-user.target.wants/alarm-server.service
229 %{_unitdir_user}/alarm-session-agent.service
230 %{_unitdir_user}/alarm-session-agent.socket
231 %{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
232 %attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
233 %license LICENSE
234 %config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
235 %{_tmpfilesdir}/alarm-manager.conf
236 %{_libdir}/udev/rules.d/99-rtc.rules
237 %if 0%{?appfw_feature_alarm_manager_module_log}
238 %attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
239 %attr(0755,app_fw,app_fw) %{logdir}
240 %endif
241
242 %files -n libalarm
243 %manifest alarm-lib.manifest
244 %{_libdir}/libalarm.so.*
245 %license LICENSE
246
247 %files -n libalarm-devel
248 %{_includedir}/*.h
249 %{_libdir}/pkgconfig/*.pc
250 %{_libdir}/*.so
251
252 %files -n alarm-config-all-service-permitted
253 %{_datadir}/alarm-manager/alarm-config-all-service-permitted
254
255 %files -n alarm-config-platform-service-permitted
256 %{_datadir}/alarm-manager/alarm-config-platform-service-permitted
257
258 %files -n alarm-config-service-restricted
259 %{_datadir}/alarm-manager/alarm-config-service-restricted
260
261 #%if 0%{?gtests:1}
262 #%files unittests
263 #%{_bindir}/gtest*
264 #%endif
265
266 #################################################
267 # gcov
268 #################################################
269 %if 0%{?gcov:1}
270 %files gcov
271 %{_datadir}/gcov/*
272 %endif