Do not wait for complete event when uninstall app
[platform/upstream/csr-framework.git] / packaging / csr-framework.spec
1 Summary: A general purpose content screening and reputation solution
2 Name: csr-framework
3 Version: 2.0.0
4 Release: 0
5 Source: %{name}-%{version}.tar.gz
6 License: Apache-2.0 and BSL-1.0
7 Group: Security/Service
8 URL: http://tizen.org
9 BuildRequires: cmake
10 BuildRequires: pkgconfig(dlog)
11 BuildRequires: pkgconfig(libsystemd-daemon)
12 BuildRequires: pkgconfig(vconf)
13 BuildRequires: pkgconfig(elementary)
14 BuildRequires: pkgconfig(sqlite3)
15 BuildRequires: pkgconfig(pkgmgr)
16 BuildRequires: pkgconfig(libsmack)
17 Requires:      lib%{name}-common = %{version}-%{release}
18 %{?systemd_requires}
19
20 %description
21 General purpose content screening and reputation solution. Can scan
22 file contents and checking url to prevent malicious items.
23
24 %global service_user                 system
25 %global service_group                system
26 %global service_name                 csr
27 %global bin_dir                      %{_bindir}
28 %global sbin_dir                     /sbin
29 %global ro_data_dir                  %{_datadir}
30 %global rw_data_dir                  /opt/share
31 %global ro_db_dir                    %{ro_data_dir}/%{service_name}/dbspace
32 %global rw_db_dir                    %{rw_data_dir}/%{service_name}/dbspace
33 %global sample_engine_ro_res_dir     %{ro_data_dir}/%{service_name}/engine
34 %global sample_engine_rw_working_dir %{rw_data_dir}/%{service_name}/engine
35 %global sample_engine_dir            %{_libdir}
36 %global test_dir                     %{rw_data_dir}/%{service_name}-test
37
38 %package -n lib%{name}-common
39 Summary: Common library package for %{name}
40 License: Apache-2.0
41 Group:   Security/Libraries
42 Requires: %{sbin_dir}/ldconfig
43
44 %description -n lib%{name}-common
45 csr-framework common library package.
46
47 %package -n lib%{name}-client
48 Summary: Client library package for %{name}
49 License: Apache-2.0
50 Group:   Security/Libraries
51 BuildRequires: pkgconfig(capi-base-common)
52 Requires: %{name} = %{version}-%{release}
53 Requires: %{sbin_dir}/ldconfig
54
55 %description -n lib%{name}-client
56 csr-framework client library package.
57
58 %package devel
59 Summary: Development files for %{name}
60 LICENSE: Apache-2.0
61 Group:   Security/Development
62 BuildRequires: pkgconfig(capi-base-common)
63 Requires:      %{name} = %{version}-%{release}
64
65 %description devel
66 csr-framework development files including headers and pkgconfig file.
67
68 %package engine-devel
69 Summary: Development files for %{name} engine
70 LICENSE: Apache-2.0
71 Group:   Security/Development
72
73 %description engine-devel
74 csr-framework engine development files including headers and pkgconfig file.
75
76 %package test
77 Summary: test program for %{name}
78 License: Apache-2.0 and BSL-1.0
79 Group:   Security/Testing
80 BuildRequires: boost-devel
81 BuildRequires: pkgconfig(pkgmgr-info)
82 BuildRequires: pkgconfig(glib-2.0)
83 Requires:      %{name} = %{version}
84
85 %description test
86 test program of csr-framework
87
88 %prep
89 %setup -q
90
91 %build
92
93 # define build architecture
94 %ifarch %{ix86}
95 %define test_target emulator
96 %else
97 %define test_target target
98 %endif
99
100 %cmake . \
101     -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
102     -DCMAKE_VERBOSE_MAKEFILE=ON \
103     -DCMAKE_INSTALL_PREFIX=%{_prefix} \
104     -DSERVICE_USER=%{service_user} \
105     -DSERVICE_GROUP=%{service_group} \
106     -DSERVICE_NAME=%{service_name} \
107     -DVERSION=%{version} \
108     -DINCLUDE_INSTALL_DIR:PATH=%{_includedir} \
109     -DBIN_DIR:PATH=%{bin_dir} \
110     -DSYSTEMD_UNIT_DIR=%{_unitdir} \
111     -DSYSTEMD_UNIT_USER_DIR=%{_unitdir_user} \
112     -DRO_DBSPACE:PATH=%{ro_db_dir} \
113     -DRW_DBSPACE:PATH=%{rw_db_dir} \
114     -DSAMPLE_ENGINE_RO_RES_DIR:PATH=%{sample_engine_ro_res_dir} \
115     -DSAMPLE_ENGINE_RW_WORKING_DIR:PATH=%{sample_engine_rw_working_dir} \
116     -DSAMPLE_ENGINE_DIR:PATH=%{sample_engine_dir} \
117     -DTEST_TARGET=%{test_target} \
118     -DTEST_DIR:PATH=%{test_dir}
119
120 make %{?jobs:-j%jobs}
121
122 %install
123 %make_install
124 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
125 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
126 ln -s ../%{service_name}.service %{buildroot}%{_unitdir}/multi-user.target.wants/%{service_name}.service
127 ln -s ../%{service_name}-cs.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{service_name}-cs.socket
128 ln -s ../%{service_name}-wp.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{service_name}-wp.socket
129 ln -s ../%{service_name}-admin.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{service_name}-admin.socket
130 ln -s ../%{service_name}-popup.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{service_name}-popup.socket
131
132 mkdir -p %{buildroot}%{ro_data_dir}/license
133 cp LICENSE %{buildroot}%{ro_data_dir}/license/%{name}
134 cp LICENSE.BSL-1.0 %{buildroot}%{ro_data_dir}/license/%{name}.BSL-1.0
135 cp LICENSE %{buildroot}%{ro_data_dir}/license/lib%{name}-client
136 cp LICENSE %{buildroot}%{ro_data_dir}/license/lib%{name}-common
137 cp LICENSE %{buildroot}%{ro_data_dir}/license/%{name}-test
138 cp LICENSE.BSL-1.0 %{buildroot}%{ro_data_dir}/license/%{name}-test.BSL-1.0
139
140 mkdir -p %{buildroot}%{ro_db_dir}
141 mkdir -p %{buildroot}%{rw_db_dir}
142 mkdir -p %{buildroot}%{sample_engine_ro_res_dir}
143 cp data/scripts/*.sql %{buildroot}%{ro_db_dir}
144
145 %post
146 systemctl daemon-reload
147 if [ $1 = 1 ]; then
148     systemctl start %{service_name}-cs.socket
149     systemctl start %{service_name}-wp.socket
150     systemctl start %{service_name}-admin.socket
151     systemctl start %{service_name}-popup.socket
152     systemctl start %{service_name}.service
153 fi
154
155 if [ $1 = 2 ]; then
156     systemctl restart %{service_name}-cs.socket
157     systemctl restart %{service_name}-wp.socket
158     systemctl restart %{service_name}-admin.socket
159     systemctl restart %{service_name}-popup.socket
160     systemctl restart %{service_name}.service
161 fi
162
163 %preun
164 if [ $1 = 0 ]; then
165     systemctl stop %{service_name}.service
166     systemctl stop %{service_name}-cs.socket
167     systemctl stop %{service_name}-wp.socket
168     systemctl stop %{service_name}-admin.socket
169     systemctl stop %{service_name}-popup.socket
170 fi
171
172 %postun
173 if [ $1 = 0 ]; then
174     systemctl daemon-reload
175 fi
176
177 %post -n lib%{name}-common -p %{sbin_dir}/ldconfig
178 %post -n lib%{name}-client -p %{sbin_dir}/ldconfig
179 %postun -n lib%{name}-common -p %{sbin_dir}/ldconfig
180 %postun -n lib%{name}-client -p %{sbin_dir}/ldconfig
181
182 %files
183 %defattr(-,root,root,-)
184 %manifest %{service_name}.manifest
185 %{ro_data_dir}/license/%{name}
186 %{ro_data_dir}/license/%{name}.BSL-1.0
187 %{bin_dir}/%{service_name}-server
188 %{bin_dir}/%{service_name}-popup
189 %{_unitdir}/multi-user.target.wants/%{service_name}.service
190 %{_unitdir}/%{service_name}.service
191 %{_unitdir}/%{service_name}-popup.service
192 %{_unitdir}/sockets.target.wants/%{service_name}-cs.socket
193 %{_unitdir}/sockets.target.wants/%{service_name}-wp.socket
194 %{_unitdir}/sockets.target.wants/%{service_name}-admin.socket
195 %{_unitdir}/sockets.target.wants/%{service_name}-popup.socket
196 %{_unitdir}/%{service_name}-cs.socket
197 %{_unitdir}/%{service_name}-wp.socket
198 %{_unitdir}/%{service_name}-admin.socket
199 %{_unitdir}/%{service_name}-popup.socket
200
201 %dir %{ro_data_dir}/%{service_name}
202 %dir %attr(-, %{service_user}, %{service_group}) %{rw_data_dir}/%{service_name}
203 %dir %{ro_db_dir}
204 %dir %attr(-, %{service_user}, %{service_group}) %{rw_db_dir}
205 %attr(444, %{service_user}, %{service_group}) %{ro_db_dir}/*.sql
206
207 # sample engine related files
208 %dir %{sample_engine_dir}
209 %dir %{sample_engine_ro_res_dir}
210 %dir %attr(775, %{service_user}, %{service_group}) %{sample_engine_rw_working_dir}
211 %{sample_engine_dir}/lib%{service_name}-cs-engine.so
212 %{sample_engine_dir}/lib%{service_name}-wp-engine.so
213 %attr(-, %{service_user}, %{service_group}) %{sample_engine_rw_working_dir}/*
214
215 %files -n lib%{name}-common
216 %defattr(-,root,root,-)
217 %manifest %{service_name}-common.manifest
218 %{ro_data_dir}/license/lib%{name}-common
219 %{_libdir}/lib%{service_name}-common.so.*
220
221 %files -n lib%{name}-client
222 %defattr(-,root,root,-)
223 %manifest %{service_name}-client.manifest
224 %{ro_data_dir}/license/lib%{name}-client
225 %{_libdir}/lib%{service_name}-client.so.*
226
227 %files devel
228 %defattr(-,root,root,-)
229 %{_includedir}/csr/content-screening.h
230 %{_includedir}/csr/content-screening-types.h
231 %{_includedir}/csr/web-protection.h
232 %{_includedir}/csr/web-protection-types.h
233 %{_includedir}/csr/error.h
234 %{_includedir}/csr/engine-manager.h
235 %{_libdir}/pkgconfig/%{service_name}.pc
236 %{_libdir}/lib%{service_name}-client.so
237 %{_libdir}/lib%{service_name}-common.so
238
239 %files engine-devel
240 %defattr(-,root,root,-)
241 %{_includedir}/csre/content-screening-engine-info.h
242 %{_includedir}/csre/content-screening.h
243 %{_includedir}/csre/content-screening-types.h
244 %{_includedir}/csre/error.h
245 %{_includedir}/csre/web-protection-engine-info.h
246 %{_includedir}/csre/web-protection.h
247 %{_includedir}/csre/web-protection-types.h
248 %{_libdir}/pkgconfig/%{service_name}-engine.pc
249
250 %files test
251 %defattr(-,root,root,-)
252 %manifest %{service_name}-test.manifest
253 %{ro_data_dir}/license/%{name}-test
254 %{ro_data_dir}/license/%{name}-test.BSL-1.0
255 %{_libdir}/lib%{service_name}-test-common.so
256 %attr(-, %{service_user}, %{service_group}) %{bin_dir}/%{service_name}-test
257 %attr(-, %{service_user}, %{service_group}) %{bin_dir}/%{service_name}-internal-test
258 %attr(-, %{service_user}, %{service_group}) %{bin_dir}/%{service_name}-popup-test
259 %attr(-, %{service_user}, %{service_group}) %{bin_dir}/%{service_name}-threadpool-test
260 # test resources
261 %dir %attr(-, %{service_user}, %{service_group}) %{test_dir}
262 %attr(-, %{service_user}, %{service_group}) %{test_dir}/*