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