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