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