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