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-admin.manifest
11 Source1004: cynara-tests.manifest
12 Source1005: libcynara-client-commons.manifest
13 Source1006: libcynara-commons.manifest
14 Source1007: libcynara-creds-commons.manifest
15 Source1008: libcynara-creds-dbus.manifest
16 Source1009: libcynara-creds-socket.manifest
17 Source1010: libcynara-session.manifest
18 Requires: default-ac-domains
19 Requires(pre): pwdutils
21 Requires(postun): pwdutils
24 BuildRequires: pkgconfig(libsystemd-daemon)
25 BuildRequires: pkgconfig(libsystemd-journal)
28 %global user_name %{name}
29 %global group_name %{name}
31 %global state_path %{_localstatedir}/%{name}/
33 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
35 %if %{?build_type} == "DEBUG"
37 BuildRequires: pkgconfig(libunwind)
42 service, client libraries (libcynara-client, libcynara-admin),
43 helper libraries (libcynara-session, libcynara-creds-common, libcynara-creds-dbus,
44 libcynara-creds-socket)
45 and tests (cynara-tests)
47 #######################################################
48 %package -n libcynara-client
49 Summary: Cynara - client library
50 Requires: cynara = %{version}-%{release}
52 %description -n libcynara-client
53 client library for checking policies
55 %package -n libcynara-client-devel
56 Summary: Cynara - client library (devel)
57 Requires: libcynara-client = %{version}-%{release}
58 Requires: libcynara-client-commons-devel = %{version}-%{release}
60 %description -n libcynara-client-devel
61 client library (devel) for checking policies
63 #######################################################
64 %package -n libcynara-client-commons
65 Summary: Cynara - client commons library
66 Requires: cynara = %{version}-%{release}
68 %description -n libcynara-client-commons
69 client commons library with common functionalities
71 %package -n libcynara-client-commons-devel
72 Summary: Cynara - client commons library (devel)
73 Requires: libcynara-client-commons = %{version}-%{release}
75 %description -n libcynara-client-commons-devel
76 client commons library (devel) with common functionalities
78 #######################################################
79 %package -n libcynara-admin
80 Summary: Cynara - admin client library
81 Requires: cynara = %{version}-%{release}
83 %description -n libcynara-admin
84 admin client library for setting, listing and removing policies
86 %package -n libcynara-admin-devel
87 Summary: Cynara - admin client library (devel)
88 Requires: libcynara-admin = %{version}-%{release}
90 %description -n libcynara-admin-devel
91 admin client library (devel) for setting, listing and removing policies
93 #######################################################
94 %package -n libcynara-commons
95 Summary: Cynara - cynara commons library
96 Requires: cynara = %{version}-%{release}
98 %description -n libcynara-commons
99 cynara common library with common functionalities
101 %package -n libcynara-commons-devel
102 Summary: Cynara - cynara commons library (devel)
103 Requires: libcynara-commons = %{version}-%{release}
105 %description -n libcynara-commons-devel
106 cynara common library (devel) with common functionalities
108 #######################################################
109 %package -n libcynara-creds-commons
110 Summary: Base library for cynara credentials helpers
112 %description -n libcynara-creds-commons
113 Base library for cynara credentials helpers
115 %package -n libcynara-creds-commons-devel
116 Summary: Base library for cynara credentials helpers (devel)
117 Requires: libcynara-creds-commons = %{version}-%{release}
118 Requires: libcynara-client-commons-devel = %{version}-%{release}
120 %description -n libcynara-creds-commons-devel
121 Base library for cynara credentials helpers (devel)
123 #######################################################
124 %package -n libcynara-creds-dbus
125 Summary: Cynara credentials helpers library for dbus clients
126 BuildRequires: pkgconfig(dbus-1)
129 %description -n libcynara-creds-dbus
130 Cynara credentials helpers library for dbus clients
132 %package -n libcynara-creds-dbus-devel
133 Summary: Cynara credentials helpers library for dbus clients (devel)
134 Requires: libcynara-creds-dbus = %{version}-%{release}
136 %description -n libcynara-creds-dbus-devel
137 Cynara credentials helpers library for dbus clients (devel)
139 #######################################################
140 %package -n libcynara-creds-socket
141 Summary: Cynara credentials helpers library for socket clients
143 %description -n libcynara-creds-socket
144 Cynara credentials helpers library for socket clients
146 %package -n libcynara-creds-socket-devel
147 Summary: Cynara credentials helpers library for socket clients (devel)
148 Requires: libcynara-creds-socket = %{version}-%{release}
150 %description -n libcynara-creds-socket-devel
151 Cynara credentials helpers library for socket clients (devel)
153 #######################################################
154 %package -n libcynara-session
155 Summary: Cynara helper client session string creation library
157 %description -n libcynara-session
158 Cynara helper client session string creation library
160 %package -n libcynara-session-devel
161 Summary: Cynara helper client session string creation library (devel)
162 Requires: libcynara-session = %{version}-%{release}
164 %description -n libcynara-session-devel
165 Cynara helper client session string creation library (devel)
167 #######################################################
168 %package -n cynara-tests
169 Summary: Cynara - cynara test binaries
170 BuildRequires: pkgconfig(gmock)
172 %description -n cynara-tests
175 #######################################################
177 %package -n cynara-devel
178 Summary: Cynara service (devel)
179 Requires: cynara = %{version}-%{release}
181 %description -n cynara-devel
182 service (devel version)
186 cp -a %{SOURCE1001} .
187 cp -a %{SOURCE1002} .
188 cp -a %{SOURCE1003} .
189 cp -a %{SOURCE1004} .
190 cp -a %{SOURCE1005} .
191 cp -a %{SOURCE1006} .
192 cp -a %{SOURCE1007} .
193 cp -a %{SOURCE1008} .
194 cp -a %{SOURCE1009} .
195 cp -a %{SOURCE1010} .
198 %if 0%{?sec_build_binary_debug_enable}
199 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
202 %if %{?build_type} == "DEBUG"
203 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
206 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\""
207 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
210 -DCMAKE_BUILD_TYPE=%{?build_type} \
211 -DCMAKE_VERBOSE_MAKEFILE=ON
212 make %{?jobs:-j%jobs}
219 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
220 mkdir -p %{buildroot}/%{state_path}
221 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
222 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
225 id -g %{group_name} > /dev/null 2>&1
226 if [ $? -eq 1 ]; then
227 groupadd %{group_name} -r > /dev/null 2>&1
230 id -u %{user_name} > /dev/null 2>&1
231 if [ $? -eq 1 ]; then
232 useradd -m %{user_name} -r > /dev/null 2>&1
236 ### Add file capabilities if needed
237 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
238 ### In such case uncomment Requires with those packages
240 systemctl daemon-reload
243 systemctl enable %{name}.service
246 chsmack -a System %{state_path}
248 systemctl restart %{name}.service
253 systemctl stop cynara.service
258 userdel -r %{user_name} > /dev/null 2>&1
259 groupdel %{user_name} > /dev/null 2>&1
260 systemctl daemon-reload
263 %post -n libcynara-client -p /sbin/ldconfig
265 %postun -n libcynara-client -p /sbin/ldconfig
267 %post -n libcynara-client-commons -p /sbin/ldconfig
269 %postun -n libcynara-client-commons -p /sbin/ldconfig
271 %post -n libcynara-admin -p /sbin/ldconfig
273 %postun -n libcynara-admin -p /sbin/ldconfig
275 %post -n libcynara-commons -p /sbin/ldconfig
277 %postun -n libcynara-commons -p /sbin/ldconfig
279 %post -n libcynara-client-devel -p /sbin/ldconfig
281 %postun -n libcynara-client-devel -p /sbin/ldconfig
283 %post -n libcynara-client-commons-devel -p /sbin/ldconfig
285 %postun -n libcynara-client-commons-devel -p /sbin/ldconfig
287 %post -n libcynara-admin-devel -p /sbin/ldconfig
289 %postun -n libcynara-admin-devel -p /sbin/ldconfig
291 %post -n libcynara-commons-devel -p /sbin/ldconfig
293 %postun -n libcynara-commons-devel -p /sbin/ldconfig
295 %post -n libcynara-creds-commons -p /sbin/ldconfig
297 %postun -n libcynara-creds-commons -p /sbin/ldconfig
299 %post -n libcynara-creds-commons-devel -p /sbin/ldconfig
301 %postun -n libcynara-creds-commons-devel -p /sbin/ldconfig
303 %post -n libcynara-creds-dbus -p /sbin/ldconfig
305 %postun -n libcynara-creds-dbus -p /sbin/ldconfig
307 %post -n libcynara-creds-dbus-devel -p /sbin/ldconfig
309 %postun -n libcynara-creds-dbus-devel -p /sbin/ldconfig
311 %post -n libcynara-creds-socket -p /sbin/ldconfig
313 %postun -n libcynara-creds-socket -p /sbin/ldconfig
315 %post -n libcynara-creds-socket-devel -p /sbin/ldconfig
317 %postun -n libcynara-creds-socket-devel -p /sbin/ldconfig
319 %post -n libcynara-session -p /sbin/ldconfig
321 %postun -n libcynara-session -p /sbin/ldconfig
323 %post -n libcynara-session-devel -p /sbin/ldconfig
325 %postun -n libcynara-session-devel -p /sbin/ldconfig
328 %manifest cynara.manifest
330 %attr(755,root,root) /usr/bin/cynara
331 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
332 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
333 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
334 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
335 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
336 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
337 %dir %attr(700,cynara,cynara) %{state_path}
339 %files -n libcynara-client
340 %manifest libcynara-client.manifest
342 %{_libdir}/libcynara-client.so.*
344 %files -n libcynara-client-devel
345 %{_includedir}/cynara/cynara-client.h
346 %{_libdir}/pkgconfig/cynara-client.pc
347 %{_libdir}/libcynara-client.so
349 %files -n libcynara-client-commons
350 %manifest libcynara-client-commons.manifest
352 %{_libdir}/libcynara-client-commons.so.*
354 %files -n libcynara-client-commons-devel
355 %{_includedir}/cynara/cynara-client-error.h
356 %{_libdir}/libcynara-client-commons.so
358 %files -n libcynara-admin
359 %manifest libcynara-admin.manifest
361 %{_libdir}/libcynara-admin.so.*
363 %files -n libcynara-admin-devel
364 %{_includedir}/cynara/cynara-admin.h
365 %{_includedir}/cynara/cynara-admin-error.h
366 %{_libdir}/libcynara-admin.so
367 %{_libdir}/pkgconfig/cynara-admin.pc
369 %files -n libcynara-commons
370 %manifest libcynara-commons.manifest
372 %{_libdir}/libcynara-commons.so.*
374 %files -n libcynara-commons-devel
375 %{_libdir}/libcynara-commons.so
377 %files -n cynara-tests
378 %manifest cynara-tests.manifest
379 %attr(755,root,root) /usr/bin/cynara-tests
381 %files -n libcynara-creds-commons
382 %manifest libcynara-creds-commons.manifest
384 %{_libdir}/libcynara-creds-commons.so.*
386 %files -n libcynara-creds-commons-devel
387 %{_includedir}/cynara/cynara-creds-commons.h
388 %{_libdir}/libcynara-creds-commons.so
389 %{_libdir}/pkgconfig/cynara-creds-commons.pc
391 %files -n libcynara-creds-dbus
392 %manifest libcynara-creds-dbus.manifest
394 %{_libdir}/libcynara-creds-dbus.so.*
396 %files -n libcynara-creds-dbus-devel
397 %{_includedir}/cynara/cynara-creds-dbus.h
398 %{_libdir}/libcynara-creds-dbus.so
399 %{_libdir}/pkgconfig/cynara-creds-dbus.pc
401 %files -n libcynara-creds-socket
402 %manifest libcynara-creds-socket.manifest
404 %{_libdir}/libcynara-creds-socket.so.*
406 %files -n libcynara-creds-socket-devel
407 %{_includedir}/cynara/cynara-creds-socket.h
408 %{_libdir}/libcynara-creds-socket.so
409 %{_libdir}/pkgconfig/cynara-creds-socket.pc
411 %files -n libcynara-session
412 %manifest libcynara-session.manifest
414 %{_libdir}/libcynara-session.so.*
416 %files -n libcynara-session-devel
417 %{_includedir}/cynara/cynara-session.h
418 %{_libdir}/libcynara-session.so
419 %{_libdir}/pkgconfig/cynara-session.pc