Rename cynara-client-error.h to cynara-error.h
[platform/core/security/cynara.git] / packaging / cynara.spec
1 Name:       cynara
2 Summary:    Cynara service with client libraries
3 Version:    0.3.0
4 Release:    1
5 Group:      Security/Access Control
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001:    cynara.manifest
9 Source1002:    libcynara-client.manifest
10 Source1003:    libcynara-client-async.manifest
11 Source1004:    libcynara-admin.manifest
12 Source1005:    cynara-tests.manifest
13 Source1006:    libcynara-client-commons.manifest
14 Source1007:    libcynara-commons.manifest
15 Source1008:    libcynara-creds-commons.manifest
16 Source1009:    libcynara-creds-dbus.manifest
17 Source1010:    libcynara-creds-socket.manifest
18 Source1011:    libcynara-session.manifest
19 Source1012:    libcynara-storage.manifest
20 Requires:      default-ac-domains
21 Requires(pre): pwdutils
22 Requires(post):   smack
23 Requires(postun): pwdutils
24 BuildRequires: cmake
25 BuildRequires: zip
26 BuildRequires: pkgconfig(libsystemd-daemon)
27 BuildRequires: pkgconfig(libsystemd-journal)
28 %{?systemd_requires}
29
30 %global user_name %{name}
31 %global group_name %{name}
32
33 %global state_path %{_localstatedir}/%{name}/
34 %global tests_dir %{_datarootdir}/%{name}/tests
35
36 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
37
38 %if %{?build_type} == "DEBUG"
39
40 BuildRequires: libdw-devel
41 BuildRequires: pkgconfig(libunwind)
42
43 %endif
44
45 %description
46 service, client libraries (libcynara-client, libcynara-client-async, libcynara-admin),
47 helper libraries (libcynara-session, libcynara-creds-common, libcynara-creds-dbus,
48 libcynara-creds-socket)
49 and tests (cynara-tests)
50
51 #######################################################
52 %package -n libcynara-client
53 Summary:    Cynara - client library
54 Requires:   cynara = %{version}-%{release}
55
56 %description -n libcynara-client
57 client library for checking policies
58
59 %package -n libcynara-client-devel
60 Summary:    Cynara - client library (devel)
61 Requires:   libcynara-client = %{version}-%{release}
62 Requires:   libcynara-client-commons-devel = %{version}-%{release}
63
64 %description -n libcynara-client-devel
65 client library (devel) for checking policies
66
67 #######################################################
68 %package -n libcynara-client-async
69 Summary:    Cynara - asynchronous client library
70 Requires:   cynara = %{version}-%{release}
71
72 %description -n libcynara-client-async
73 asynchronous client library for checking policies
74
75 %package -n libcynara-client-async-devel
76 Summary:    Cynara - asynchronous client library (devel)
77 Requires:   libcynara-client-async = %{version}-%{release}
78 Requires:   libcynara-client-commons-devel = %{version}-%{release}
79
80 %description -n libcynara-client-async-devel
81 asynchronous client library (devel) for checking policies
82
83 #######################################################
84 %package -n libcynara-client-commons
85 Summary:    Cynara - client commons library
86 Requires:   cynara = %{version}-%{release}
87
88 %description -n libcynara-client-commons
89 client commons library with common functionalities
90
91 %package -n libcynara-client-commons-devel
92 Summary:    Cynara - client commons library (devel)
93 Requires:   libcynara-client-commons = %{version}-%{release}
94
95 %description -n libcynara-client-commons-devel
96 client commons library (devel) with common functionalities
97
98 #######################################################
99 %package -n libcynara-admin
100 Summary:    Cynara - admin client library
101 Requires:   cynara = %{version}-%{release}
102
103 %description -n libcynara-admin
104 admin client library for setting, listing and removing policies
105
106 %package -n libcynara-admin-devel
107 Summary:    Cynara - admin client library (devel)
108 Requires:   libcynara-admin = %{version}-%{release}
109 Requires:   libcynara-commons-devel = %{version}-%{release}
110
111 %description -n libcynara-admin-devel
112 admin client library (devel) for setting, listing and removing policies
113
114 #######################################################
115 %package -n libcynara-storage
116 Summary:    Cynara - storage
117 Requires:   cynara = %{version}-%{release}
118
119 %description -n libcynara-storage
120 cynara common storage library with common storage functionalities
121
122 %package -n libcynara-storage-devel
123 Summary:    Cynara - storage-devel
124 Requires:   cynara = %{version}-%{release}
125
126 %description -n libcynara-storage-devel
127 cynara common storage library (devel) with common storage functionalities
128
129 #######################################################
130 %package -n libcynara-commons
131 Summary:    Cynara - cynara commons library
132 Requires:   cynara = %{version}-%{release}
133
134 %description -n libcynara-commons
135 cynara common library with common functionalities
136
137 %package -n libcynara-commons-devel
138 Summary:    Cynara - cynara commons library (devel)
139 Requires:   libcynara-commons = %{version}-%{release}
140
141 %description -n libcynara-commons-devel
142 cynara common library (devel) with common functionalities
143
144 #######################################################
145 %package -n libcynara-plugin-devel
146 Summary:    Cynara - cynara plugin library (devel)
147 Requires:   libcynara-commons-devel = %{version}-%{release}
148
149 %description -n libcynara-plugin-devel
150 cynara plugin library (devel) with plugin definitions
151
152 #######################################################
153 %package -n libcynara-creds-commons
154 Summary:    Base library for cynara credentials helpers
155
156 %description -n libcynara-creds-commons
157 Base library for cynara credentials helpers
158
159 %package -n libcynara-creds-commons-devel
160 Summary:    Base library for cynara credentials helpers (devel)
161 Requires:   libcynara-creds-commons = %{version}-%{release}
162 Requires:   libcynara-client-commons-devel = %{version}-%{release}
163
164 %description -n libcynara-creds-commons-devel
165 Base library for cynara credentials helpers (devel)
166
167 #######################################################
168 %package -n libcynara-creds-dbus
169 Summary:    Cynara credentials helpers library for dbus clients
170 BuildRequires: pkgconfig(dbus-1)
171 Requires:   dbus
172
173 %description -n libcynara-creds-dbus
174 Cynara credentials helpers library for dbus clients
175
176 %package -n libcynara-creds-dbus-devel
177 Summary:    Cynara credentials helpers library for dbus clients (devel)
178 Requires:   libcynara-creds-dbus = %{version}-%{release}
179 Requires:   libcynara-creds-commons-devel = %{version}-%{release}
180
181 %description -n libcynara-creds-dbus-devel
182 Cynara credentials helpers library for dbus clients (devel)
183
184 #######################################################
185 %package -n libcynara-creds-socket
186 Summary:    Cynara credentials helpers library for socket clients
187
188 %description -n libcynara-creds-socket
189 Cynara credentials helpers library for socket clients
190
191 %package -n libcynara-creds-socket-devel
192 Summary:    Cynara credentials helpers library for socket clients (devel)
193 Requires:   libcynara-creds-socket = %{version}-%{release}
194 Requires:   libcynara-creds-commons-devel = %{version}-%{release}
195
196 %description -n libcynara-creds-socket-devel
197 Cynara credentials helpers library for socket clients (devel)
198
199 #######################################################
200 %package -n libcynara-session
201 Summary:    Cynara helper client session string creation library
202
203 %description -n libcynara-session
204 Cynara helper client session string creation library
205
206 %package -n libcynara-session-devel
207 Summary:    Cynara helper client session string creation library (devel)
208 Requires:   libcynara-session = %{version}-%{release}
209
210 %description -n libcynara-session-devel
211 Cynara helper client session string creation library (devel)
212
213 #######################################################
214 %package -n cynara-tests
215 Summary:    Cynara - cynara test binaries
216 BuildRequires: pkgconfig(gmock)
217
218 %description -n cynara-tests
219 Cynara tests
220
221 #######################################################
222
223 %package -n cynara-devel
224 Summary:    Cynara service (devel)
225 Requires:   cynara = %{version}-%{release}
226
227 %description -n cynara-devel
228 service (devel version)
229
230 %prep
231 %setup -q
232 cp -a %{SOURCE1001} .
233 cp -a %{SOURCE1002} .
234 cp -a %{SOURCE1003} .
235 cp -a %{SOURCE1004} .
236 cp -a %{SOURCE1005} .
237 cp -a %{SOURCE1006} .
238 cp -a %{SOURCE1007} .
239 cp -a %{SOURCE1008} .
240 cp -a %{SOURCE1009} .
241 cp -a %{SOURCE1010} .
242 cp -a %{SOURCE1011} .
243 cp -a %{SOURCE1012} .
244 cp -a test/db/db* .
245
246 %build
247 %if 0%{?sec_build_binary_debug_enable}
248 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
249 %endif
250
251 %if %{?build_type} == "DEBUG"
252 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
253 %endif
254
255 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\" \
256                            -DCYNARA_TESTS_DIR=\\\"%{tests_dir}\\\""
257 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
258
259 %cmake . \
260         -DBUILD_TESTS=ON \
261         -DCMAKE_BUILD_TYPE=%{?build_type} \
262         -DCMAKE_VERBOSE_MAKEFILE=ON
263 make %{?jobs:-j%jobs}
264
265 %install
266
267 rm -rf %{buildroot}
268 %make_install
269
270 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
271 mkdir -p %{buildroot}/%{state_path}
272 mkdir -p %{buildroot}/%{tests_dir}
273 cp -a db* %{buildroot}/%{tests_dir}
274 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
275 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
276
277 %pre
278 id -g %{group_name} > /dev/null 2>&1
279 if [ $? -eq 1 ]; then
280     groupadd %{group_name} -r > /dev/null 2>&1
281 fi
282
283 id -u %{user_name} > /dev/null 2>&1
284 if [ $? -eq 1 ]; then
285     useradd -d /var/lib/empty -s /sbin/nologin -r -g %{group_name} %{user_name} > /dev/null 2>&1
286 fi
287
288 %post
289 ### Add file capabilities if needed
290 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
291 ### In such case uncomment Requires with those packages
292
293 systemctl daemon-reload
294
295 if [ $1 = 1 ]; then
296     systemctl enable %{name}.service
297 fi
298
299 chsmack -a System %{state_path}
300
301 systemctl restart %{name}.service
302
303 %preun
304 if [ $1 = 0 ]; then
305     # unistall
306     systemctl stop cynara.service
307 fi
308
309 %postun
310 if [ $1 = 0 ]; then
311     userdel -r %{user_name} > /dev/null 2>&1
312     groupdel %{user_name} > /dev/null 2>&1
313     systemctl daemon-reload
314 fi
315
316 %post -n libcynara-client -p /sbin/ldconfig
317
318 %postun -n libcynara-client -p /sbin/ldconfig
319
320 %post -n libcynara-client-async -p /sbin/ldconfig
321
322 %postun -n libcynara-client-async -p /sbin/ldconfig
323
324 %post -n libcynara-client-commons -p /sbin/ldconfig
325
326 %postun -n libcynara-client-commons -p /sbin/ldconfig
327
328 %post -n libcynara-admin -p /sbin/ldconfig
329
330 %postun -n libcynara-admin -p /sbin/ldconfig
331
332 %post -n libcynara-storage -p /sbin/ldconfig
333
334 %postun -n libcynara-storage -p /sbin/ldconfig
335
336 %post -n libcynara-storage-devel -p /sbin/ldconfig
337
338 %postun -n libcynara-storage-devel -p /sbin/ldconfig
339
340 %post -n libcynara-commons -p /sbin/ldconfig
341
342 %postun -n libcynara-commons -p /sbin/ldconfig
343
344 %post -n libcynara-client-devel -p /sbin/ldconfig
345
346 %postun -n libcynara-client-devel -p /sbin/ldconfig
347
348 %post -n libcynara-client-async-devel -p /sbin/ldconfig
349
350 %postun -n libcynara-client-async-devel -p /sbin/ldconfig
351
352 %post -n libcynara-client-commons-devel -p /sbin/ldconfig
353
354 %postun -n libcynara-client-commons-devel -p /sbin/ldconfig
355
356 %post -n libcynara-admin-devel -p /sbin/ldconfig
357
358 %postun -n libcynara-admin-devel -p /sbin/ldconfig
359
360 %post -n libcynara-commons-devel -p /sbin/ldconfig
361
362 %postun -n libcynara-commons-devel -p /sbin/ldconfig
363
364 %post -n libcynara-creds-commons -p /sbin/ldconfig
365
366 %postun -n libcynara-creds-commons -p /sbin/ldconfig
367
368 %post -n libcynara-creds-commons-devel -p /sbin/ldconfig
369
370 %postun -n libcynara-creds-commons-devel -p /sbin/ldconfig
371
372 %post -n libcynara-creds-dbus -p /sbin/ldconfig
373
374 %postun -n libcynara-creds-dbus -p /sbin/ldconfig
375
376 %post -n libcynara-creds-dbus-devel -p /sbin/ldconfig
377
378 %postun -n libcynara-creds-dbus-devel -p /sbin/ldconfig
379
380 %post -n libcynara-creds-socket -p /sbin/ldconfig
381
382 %postun -n libcynara-creds-socket -p /sbin/ldconfig
383
384 %post -n libcynara-creds-socket-devel -p /sbin/ldconfig
385
386 %postun -n libcynara-creds-socket-devel -p /sbin/ldconfig
387
388 %post -n libcynara-session -p /sbin/ldconfig
389
390 %postun -n libcynara-session -p /sbin/ldconfig
391
392 %post -n libcynara-session-devel -p /sbin/ldconfig
393
394 %postun -n libcynara-session-devel -p /sbin/ldconfig
395
396 %files -n cynara
397 %manifest cynara.manifest
398 %license LICENSE
399 %attr(755,root,root) /usr/bin/cynara
400 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
401 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
402 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
403 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
404 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
405 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
406 %dir %attr(700,cynara,cynara) %{state_path}
407
408 %files -n libcynara-client
409 %manifest libcynara-client.manifest
410 %license LICENSE
411 %{_libdir}/libcynara-client.so.*
412
413 %files -n libcynara-client-devel
414 %{_includedir}/cynara/cynara-client.h
415 %{_libdir}/pkgconfig/cynara-client.pc
416 %{_libdir}/libcynara-client.so
417
418 %files -n libcynara-client-async
419 %manifest libcynara-client-async.manifest
420 %license LICENSE
421 %{_libdir}/libcynara-client-async.so.*
422
423 %files -n libcynara-client-async-devel
424 %{_includedir}/cynara/cynara-client-async.h
425 %{_libdir}/pkgconfig/cynara-client-async.pc
426 %{_libdir}/libcynara-client-async.so
427
428 %files -n libcynara-client-commons
429 %manifest libcynara-client-commons.manifest
430 %license LICENSE
431 %{_libdir}/libcynara-client-commons.so.*
432
433 %files -n libcynara-client-commons-devel
434 %{_includedir}/cynara/cynara-error.h
435 %{_libdir}/libcynara-client-commons.so
436
437 %files -n libcynara-admin
438 %manifest libcynara-admin.manifest
439 %license LICENSE
440 %{_libdir}/libcynara-admin.so.*
441
442 %files -n libcynara-admin-devel
443 %{_includedir}/cynara/cynara-admin.h
444 %{_includedir}/cynara/cynara-admin-types.h
445 %{_libdir}/libcynara-admin.so
446 %{_libdir}/pkgconfig/cynara-admin.pc
447
448 %files -n libcynara-storage
449 %manifest libcynara-storage.manifest
450 %license LICENSE
451 %{_libdir}/libcynara-storage.so.*
452
453 %files -n libcynara-storage-devel
454 %{_libdir}/libcynara-storage.so
455
456 %files -n libcynara-commons
457 %manifest libcynara-commons.manifest
458 %license LICENSE
459 %{_libdir}/libcynara-commons.so.*
460
461 %files -n libcynara-commons-devel
462 %{_includedir}/cynara/types/PolicyResult.h
463 %{_includedir}/cynara/types/PolicyType.h
464 %{_libdir}/libcynara-commons.so
465
466 %files -n libcynara-plugin-devel
467 %{_includedir}/cynara/cynara-plugin.h
468 %{_libdir}/pkgconfig/cynara-plugin.pc
469
470 %files -n cynara-tests
471 %manifest cynara-tests.manifest
472 %attr(755,root,root) /usr/bin/cynara-tests
473 %attr(755,root,root) %{tests_dir}/db*/*
474
475 %files -n libcynara-creds-commons
476 %manifest libcynara-creds-commons.manifest
477 %license LICENSE
478 %{_libdir}/libcynara-creds-commons.so.*
479
480 %files -n libcynara-creds-commons-devel
481 %{_includedir}/cynara/cynara-creds-commons.h
482 %{_libdir}/libcynara-creds-commons.so
483 %{_libdir}/pkgconfig/cynara-creds-commons.pc
484
485 %files -n libcynara-creds-dbus
486 %manifest libcynara-creds-dbus.manifest
487 %license LICENSE
488 %{_libdir}/libcynara-creds-dbus.so.*
489
490 %files -n libcynara-creds-dbus-devel
491 %{_includedir}/cynara/cynara-creds-dbus.h
492 %{_libdir}/libcynara-creds-dbus.so
493 %{_libdir}/pkgconfig/cynara-creds-dbus.pc
494
495 %files -n libcynara-creds-socket
496 %manifest libcynara-creds-socket.manifest
497 %license LICENSE
498 %{_libdir}/libcynara-creds-socket.so.*
499
500 %files -n libcynara-creds-socket-devel
501 %{_includedir}/cynara/cynara-creds-socket.h
502 %{_libdir}/libcynara-creds-socket.so
503 %{_libdir}/pkgconfig/cynara-creds-socket.pc
504
505 %files -n libcynara-session
506 %manifest libcynara-session.manifest
507 %license LICENSE
508 %{_libdir}/libcynara-session.so.*
509
510 %files -n libcynara-session-devel
511 %{_includedir}/cynara/cynara-session.h
512 %{_libdir}/libcynara-session.so
513 %{_libdir}/pkgconfig/cynara-session.pc