2 Summary: Cynara service with client libraries
5 Group: Security/Access Control
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
23 Requires(postun): pwdutils
26 BuildRequires: pkgconfig(libsystemd-daemon)
27 BuildRequires: pkgconfig(libsystemd-journal)
30 %global user_name %{name}
31 %global group_name %{name}
33 %global state_path %{_localstatedir}/%{name}/
34 %global tests_dir %{_datarootdir}/%{name}/tests
36 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
38 %if %{?build_type} == "DEBUG"
40 BuildRequires: libdw-devel
41 BuildRequires: pkgconfig(libunwind)
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)
51 #######################################################
52 %package -n libcynara-client
53 Summary: Cynara - client library
54 Requires: cynara = %{version}-%{release}
56 %description -n libcynara-client
57 client library for checking policies
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}
64 %description -n libcynara-client-devel
65 client library (devel) for checking policies
67 #######################################################
68 %package -n libcynara-client-async
69 Summary: Cynara - asynchronous client library
70 Requires: cynara = %{version}-%{release}
72 %description -n libcynara-client-async
73 asynchronous client library for checking policies
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}
80 %description -n libcynara-client-async-devel
81 asynchronous client library (devel) for checking policies
83 #######################################################
84 %package -n libcynara-client-commons
85 Summary: Cynara - client commons library
86 Requires: cynara = %{version}-%{release}
88 %description -n libcynara-client-commons
89 client commons library with common functionalities
91 %package -n libcynara-client-commons-devel
92 Summary: Cynara - client commons library (devel)
93 Requires: libcynara-client-commons = %{version}-%{release}
95 %description -n libcynara-client-commons-devel
96 client commons library (devel) with common functionalities
98 #######################################################
99 %package -n libcynara-admin
100 Summary: Cynara - admin client library
101 Requires: cynara = %{version}-%{release}
103 %description -n libcynara-admin
104 admin client library for setting, listing and removing policies
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}
111 %description -n libcynara-admin-devel
112 admin client library (devel) for setting, listing and removing policies
114 #######################################################
115 %package -n libcynara-storage
116 Summary: Cynara - storage
117 Requires: cynara = %{version}-%{release}
119 %description -n libcynara-storage
120 cynara common storage library with common storage functionalities
122 %package -n libcynara-storage-devel
123 Summary: Cynara - storage-devel
124 Requires: cynara = %{version}-%{release}
126 %description -n libcynara-storage-devel
127 cynara common storage library (devel) with common storage functionalities
129 #######################################################
130 %package -n libcynara-commons
131 Summary: Cynara - cynara commons library
132 Requires: cynara = %{version}-%{release}
134 %description -n libcynara-commons
135 cynara common library with common functionalities
137 %package -n libcynara-commons-devel
138 Summary: Cynara - cynara commons library (devel)
139 Requires: libcynara-commons = %{version}-%{release}
141 %description -n libcynara-commons-devel
142 cynara common library (devel) with common functionalities
144 #######################################################
145 %package -n libcynara-plugin-devel
146 Summary: Cynara - cynara plugin library (devel)
147 Requires: libcynara-commons-devel = %{version}-%{release}
149 %description -n libcynara-plugin-devel
150 cynara plugin library (devel) with plugin definitions
152 #######################################################
153 %package -n libcynara-creds-commons
154 Summary: Base library for cynara credentials helpers
156 %description -n libcynara-creds-commons
157 Base library for cynara credentials helpers
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}
164 %description -n libcynara-creds-commons-devel
165 Base library for cynara credentials helpers (devel)
167 #######################################################
168 %package -n libcynara-creds-dbus
169 Summary: Cynara credentials helpers library for dbus clients
170 BuildRequires: pkgconfig(dbus-1)
173 %description -n libcynara-creds-dbus
174 Cynara credentials helpers library for dbus clients
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}
181 %description -n libcynara-creds-dbus-devel
182 Cynara credentials helpers library for dbus clients (devel)
184 #######################################################
185 %package -n libcynara-creds-socket
186 Summary: Cynara credentials helpers library for socket clients
188 %description -n libcynara-creds-socket
189 Cynara credentials helpers library for socket clients
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}
196 %description -n libcynara-creds-socket-devel
197 Cynara credentials helpers library for socket clients (devel)
199 #######################################################
200 %package -n libcynara-session
201 Summary: Cynara helper client session string creation library
203 %description -n libcynara-session
204 Cynara helper client session string creation library
206 %package -n libcynara-session-devel
207 Summary: Cynara helper client session string creation library (devel)
208 Requires: libcynara-session = %{version}-%{release}
210 %description -n libcynara-session-devel
211 Cynara helper client session string creation library (devel)
213 #######################################################
214 %package -n cynara-tests
215 Summary: Cynara - cynara test binaries
216 BuildRequires: pkgconfig(gmock)
218 %description -n cynara-tests
221 #######################################################
223 %package -n cynara-devel
224 Summary: Cynara service (devel)
225 Requires: cynara = %{version}-%{release}
227 %description -n cynara-devel
228 service (devel version)
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} .
247 %if 0%{?sec_build_binary_debug_enable}
248 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
251 %if %{?build_type} == "DEBUG"
252 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
255 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\" \
256 -DCYNARA_TESTS_DIR=\\\"%{tests_dir}\\\""
257 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
261 -DCMAKE_BUILD_TYPE=%{?build_type} \
262 -DCMAKE_VERBOSE_MAKEFILE=ON
263 make %{?jobs:-j%jobs}
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
278 id -g %{group_name} > /dev/null 2>&1
279 if [ $? -eq 1 ]; then
280 groupadd %{group_name} -r > /dev/null 2>&1
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
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
293 systemctl daemon-reload
296 systemctl enable %{name}.service
299 chsmack -a System %{state_path}
301 systemctl restart %{name}.service
306 systemctl stop cynara.service
311 userdel -r %{user_name} > /dev/null 2>&1
312 groupdel %{user_name} > /dev/null 2>&1
313 systemctl daemon-reload
316 %post -n libcynara-client -p /sbin/ldconfig
318 %postun -n libcynara-client -p /sbin/ldconfig
320 %post -n libcynara-client-async -p /sbin/ldconfig
322 %postun -n libcynara-client-async -p /sbin/ldconfig
324 %post -n libcynara-client-commons -p /sbin/ldconfig
326 %postun -n libcynara-client-commons -p /sbin/ldconfig
328 %post -n libcynara-admin -p /sbin/ldconfig
330 %postun -n libcynara-admin -p /sbin/ldconfig
332 %post -n libcynara-storage -p /sbin/ldconfig
334 %postun -n libcynara-storage -p /sbin/ldconfig
336 %post -n libcynara-storage-devel -p /sbin/ldconfig
338 %postun -n libcynara-storage-devel -p /sbin/ldconfig
340 %post -n libcynara-commons -p /sbin/ldconfig
342 %postun -n libcynara-commons -p /sbin/ldconfig
344 %post -n libcynara-client-devel -p /sbin/ldconfig
346 %postun -n libcynara-client-devel -p /sbin/ldconfig
348 %post -n libcynara-client-async-devel -p /sbin/ldconfig
350 %postun -n libcynara-client-async-devel -p /sbin/ldconfig
352 %post -n libcynara-client-commons-devel -p /sbin/ldconfig
354 %postun -n libcynara-client-commons-devel -p /sbin/ldconfig
356 %post -n libcynara-admin-devel -p /sbin/ldconfig
358 %postun -n libcynara-admin-devel -p /sbin/ldconfig
360 %post -n libcynara-commons-devel -p /sbin/ldconfig
362 %postun -n libcynara-commons-devel -p /sbin/ldconfig
364 %post -n libcynara-creds-commons -p /sbin/ldconfig
366 %postun -n libcynara-creds-commons -p /sbin/ldconfig
368 %post -n libcynara-creds-commons-devel -p /sbin/ldconfig
370 %postun -n libcynara-creds-commons-devel -p /sbin/ldconfig
372 %post -n libcynara-creds-dbus -p /sbin/ldconfig
374 %postun -n libcynara-creds-dbus -p /sbin/ldconfig
376 %post -n libcynara-creds-dbus-devel -p /sbin/ldconfig
378 %postun -n libcynara-creds-dbus-devel -p /sbin/ldconfig
380 %post -n libcynara-creds-socket -p /sbin/ldconfig
382 %postun -n libcynara-creds-socket -p /sbin/ldconfig
384 %post -n libcynara-creds-socket-devel -p /sbin/ldconfig
386 %postun -n libcynara-creds-socket-devel -p /sbin/ldconfig
388 %post -n libcynara-session -p /sbin/ldconfig
390 %postun -n libcynara-session -p /sbin/ldconfig
392 %post -n libcynara-session-devel -p /sbin/ldconfig
394 %postun -n libcynara-session-devel -p /sbin/ldconfig
397 %manifest cynara.manifest
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}
408 %files -n libcynara-client
409 %manifest libcynara-client.manifest
411 %{_libdir}/libcynara-client.so.*
413 %files -n libcynara-client-devel
414 %{_includedir}/cynara/cynara-client.h
415 %{_libdir}/pkgconfig/cynara-client.pc
416 %{_libdir}/libcynara-client.so
418 %files -n libcynara-client-async
419 %manifest libcynara-client-async.manifest
421 %{_libdir}/libcynara-client-async.so.*
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
428 %files -n libcynara-client-commons
429 %manifest libcynara-client-commons.manifest
431 %{_libdir}/libcynara-client-commons.so.*
433 %files -n libcynara-client-commons-devel
434 %{_includedir}/cynara/cynara-error.h
435 %{_libdir}/libcynara-client-commons.so
437 %files -n libcynara-admin
438 %manifest libcynara-admin.manifest
440 %{_libdir}/libcynara-admin.so.*
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
448 %files -n libcynara-storage
449 %manifest libcynara-storage.manifest
451 %{_libdir}/libcynara-storage.so.*
453 %files -n libcynara-storage-devel
454 %{_libdir}/libcynara-storage.so
456 %files -n libcynara-commons
457 %manifest libcynara-commons.manifest
459 %{_libdir}/libcynara-commons.so.*
461 %files -n libcynara-commons-devel
462 %{_includedir}/cynara/types/PolicyResult.h
463 %{_includedir}/cynara/types/PolicyType.h
464 %{_libdir}/libcynara-commons.so
466 %files -n libcynara-plugin-devel
467 %{_includedir}/cynara/cynara-plugin.h
468 %{_libdir}/pkgconfig/cynara-plugin.pc
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*/*
475 %files -n libcynara-creds-commons
476 %manifest libcynara-creds-commons.manifest
478 %{_libdir}/libcynara-creds-commons.so.*
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
485 %files -n libcynara-creds-dbus
486 %manifest libcynara-creds-dbus.manifest
488 %{_libdir}/libcynara-creds-dbus.so.*
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
495 %files -n libcynara-creds-socket
496 %manifest libcynara-creds-socket.manifest
498 %{_libdir}/libcynara-creds-socket.so.*
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
505 %files -n libcynara-session
506 %manifest libcynara-session.manifest
508 %{_libdir}/libcynara-session.so.*
510 %files -n libcynara-session-devel
511 %{_includedir}/cynara/cynara-session.h
512 %{_libdir}/libcynara-session.so
513 %{_libdir}/pkgconfig/cynara-session.pc