refactoring build script for Gtest
[platform/core/appfw/alarm-manager.git] / packaging / alarm-manager.spec
1 Name:       alarm-manager
2 Summary:    Alarm library
3 Version:    0.7.11
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 %define gtests 1
42
43 %if 0%{?gtests:1}
44 BuildRequires: pkgconfig(gmock)
45 %endif
46 Requires(post): /sbin/ldconfig
47 Requires(postun): /sbin/ldconfig
48
49 %description
50 Alarm Server and devel libraries
51
52
53 %package -n alarm-server
54 Summary:    Alarm server
55 Group:      Development/Libraries
56
57 %description -n alarm-server
58 Alarm Server, manages alarms
59
60
61 %package -n libalarm
62 Summary:    Alarm server libraries
63 Group:      Development/Libraries
64 Requires:   alarm-server = %{version}-%{release}
65
66 %description -n libalarm
67 Alarm server libraries for client
68
69
70 %package -n libalarm-devel
71 Summary:    Alarm server libraries (devel)
72 Group:      Development/Libraries
73 Requires:   libalarm = %{version}-%{release}
74
75 %description -n libalarm-devel
76 Alarm server libraries development package (devel)
77
78
79 %package -n alarm-config-all-service-permitted
80 Summary:    Configuration for permitting all service applications
81 Group:      Development/Libraries
82 Requires:   libalarm = %{version}-%{release}
83
84 %description -n alarm-config-all-service-permitted
85 A configuration file package for permitting all service applications
86
87
88 %package -n alarm-config-platform-service-permitted
89 Summary:    Configuration for permitting platform service applications
90 Group:      Development/Libraries
91 Requires:   libalarm = %{version}-%{release}
92
93 %description -n alarm-config-platform-service-permitted
94 A configuration file package for permitting all service applications that have been platform certified
95
96
97 %package -n alarm-config-service-restricted
98 Summary:    Configuration for restricting service applications
99 Group:      Development/Libraries
100 Requires:   libalarm = %{version}-%{release}
101
102 %description -n alarm-config-service-restricted
103 A configuration file package for restricting service applications
104
105
106 %prep
107 %setup -q
108 cp %{SOURCE1001} ./
109 cp %{SOURCE1002} ./
110
111
112 %build
113 %if 0%{?gcov:1}
114 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
115 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
116 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
117 export LDFLAGS+=" -lgcov"
118 %endif
119
120 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
121
122 %define appfw_feature_alarm_manager_module_log 1
123 %if 0%{?appfw_feature_alarm_manager_module_log}
124         _APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG=ON
125 %endif
126
127 %cmake . -DOBS=1 \
128         -DFULLVER=%{version} -DMAJORVER=${MAJORVER} \
129         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
130         -DTZ_SYS_ETC=%{TZ_SYS_ETC} \
131         -D_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG:BOOL=${_APPFW_FEATURE_ALARM_MANAGER_MODULE_LOG} \
132         -DALARM_CONF_DIR=%{_datadir}/alarm-manager \
133         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
134         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
135
136 make %{?jobs:-j%jobs}
137
138
139 %install
140 rm -rf %{buildroot}
141 %make_install
142
143 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
144 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
145 mkdir -p %{buildroot}%{_unitdir}/user-sockets@.target.wants
146 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/alarm-server.service
147 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir_user}/alarm-session-agent.service
148 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir_user}/alarm-session-agent.socket
149 install -m 0644 %SOURCE6 %{buildroot}%{_unitdir}/alarm-session-agent@.service
150 install -m 0644 %SOURCE7 %{buildroot}%{_unitdir}/alarm-session-agent@.socket
151 ln -s ../alarm-server.service %{buildroot}%{_unitdir}/multi-user.target.wants/alarm-server.service
152 ln -sf ../alarm-session-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
153 ln -sf ../alarm-session-agent@.socket %{buildroot}%{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
154 mkdir -p %{buildroot}%{_tmpfilesdir}
155 install -m 0644 %SOURCE4 %{buildroot}%{_tmpfilesdir}/alarm-manager.conf
156 mkdir -p %{buildroot}%{_libdir}/udev/rules.d
157 install -m 0644 %SOURCE5 %{buildroot}%{_libdir}/udev/rules.d
158
159 %check
160 (cd unittest && LD_LIBRARY_PATH=../lib ctest -V)
161
162 %post -p /sbin/ldconfig
163
164 %postun -p /sbin/ldconfig
165
166 %post -n alarm-server
167
168 %post -n libalarm
169 /sbin/ldconfig
170
171 %postun -n libalarm
172 /sbin/ldconfig
173
174 %posttrans -n alarm-server
175 if [ -e /etc/config/model-config.xml ]; then
176         grep "feature\/profile.*tv" /etc/config/model-config.xml > /dev/null
177         if [ $? -eq 0 ]; then
178                 rm %{_libdir}/udev/rules.d/99-rtc.rules
179         fi
180 fi
181
182 %files -n alarm-server
183 %manifest alarm-server.manifest
184 %{_bindir}/alarm*
185 %attr(0644,root,root) %{_unitdir}/alarm-server.service
186 %{_unitdir}/multi-user.target.wants/alarm-server.service
187 %{_unitdir_user}/alarm-session-agent.service
188 %{_unitdir_user}/alarm-session-agent.socket
189 %{_unitdir}/alarm-session-agent@.service
190 %{_unitdir}/alarm-session-agent@.socket
191 %{_unitdir_user}/sockets.target.wants/alarm-session-agent.socket
192 %{_unitdir}/user-sockets@.target.wants/alarm-session-agent@.socket
193 %attr(0644,root,root) %{_datadir}/dbus-1/system-services/org.tizen.alarm.manager.service
194 %config %{_sysconfdir}/dbus-1/system.d/alarm-service.conf
195 %{_tmpfilesdir}/alarm-manager.conf
196 %{_libdir}/udev/rules.d/99-rtc.rules
197 %license LICENSE
198 %if 0%{?appfw_feature_alarm_manager_module_log}
199 %attr(0755,root,root) %{TZ_SYS_ETC}/dump.d/module.d/alarmmgr_log_dump.sh
200 %endif
201 %if 0%{?gtests:1}
202         %{_bindir}/gtest*
203 %endif
204
205
206 %files -n libalarm
207 %manifest alarm-lib.manifest
208 %{_libdir}/libalarm.so.*
209 %license LICENSE
210
211 %files -n libalarm-devel
212 %{_includedir}/*.h
213 %{_libdir}/pkgconfig/*.pc
214 %{_libdir}/*.so
215
216 %files -n alarm-config-all-service-permitted
217 %{_datadir}/alarm-manager/alarm-config-all-service-permitted
218
219 %files -n alarm-config-platform-service-permitted
220 %{_datadir}/alarm-manager/alarm-config-platform-service-permitted
221
222 %files -n alarm-config-service-restricted
223 %{_datadir}/alarm-manager/alarm-config-service-restricted