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