2 Summary: Cynara service with client libraries
5 Group: Security/Application Privilege
7 Source0: %{name}-%{version}.tar.gz
8 Source1000: %{name}-rpmlintrc
9 Source1001: cynara.manifest
10 Source1002: libcynara-client.manifest
11 Source1003: libcynara-admin.manifest
12 Source1004: cynara-tests.manifest
13 Source1005: libcynara-agent.manifest
14 Source1006: libcynara-commons.manifest
15 Source1007: libcynara-creds-commons.manifest
16 Source1008: libcynara-creds-dbus.manifest
17 Source1009: libcynara-creds-socket.manifest
18 Source1010: libcynara-session.manifest
19 Source1011: cynara-db-migration.manifest
20 Source1012: cyad.manifest
21 Requires: default-ac-domains
22 Requires(pre): pwdutils
23 Requires(pre): cynara-db-migration >= %{version}-%{release}
25 Requires(postun): pwdutils
26 Requires(postun): cynara-db-migration >= %{version}-%{release}
29 BuildRequires: pkgconfig(libsystemd-daemon)
30 BuildRequires: pkgconfig(libsystemd-journal)
33 %global user_name %{name}
34 %global group_name %{name}
36 %global state_path %{_localstatedir}/%{name}/
37 %global lib_path %{_libdir}/%{name}/
38 %global tests_dir %{_datarootdir}/%{name}/tests/
39 %global conf_path %{_sysconfdir}/%{name}/
41 %if !%{defined build_type}
42 %define build_type RELEASE
45 %if %{?build_type} == "DEBUG"
47 BuildRequires: libdw-devel
48 BuildRequires: pkgconfig(libunwind)
53 service, client libraries (libcynara-client, libcynara-admin),
54 agent library, helper libraries (libcynara-session, libcynara-creds-common, libcynara-creds-dbus,
55 libcynara-creds-socket) and tests (cynara-tests)
58 Summary: Cynara development files
59 Requires: libcynara-admin = %{version}-%{release}
60 Requires: libcynara-agent = %{version}-%{release}
61 Requires: libcynara-client = %{version}-%{release}
62 Requires: libcynara-commons = %{version}-%{release}
63 Requires: libcynara-creds-commons = %{version}-%{release}
64 Requires: libcynara-creds-dbus = %{version}-%{release}
65 Requires: libcynara-creds-socket = %{version}-%{release}
66 Requires: libcynara-session = %{version}-%{release}
67 Requires: pkgconfig(dbus-1)
68 Obsoletes: libcynara-admin-devel
69 Obsoletes: libcynara-agent-devel
70 Obsoletes: libcynara-client-async-devel
71 Obsoletes: libcynara-client-commons-devel
72 Obsoletes: libcynara-client-devel
73 Obsoletes: libcynara-commons-devel
74 Obsoletes: libcynara-creds-commons-devel
75 Obsoletes: libcynara-creds-dbus-devel
76 Obsoletes: libcynara-creds-socket-devel
77 Obsoletes: libcynara-plugin-devel
78 Obsoletes: libcynara-session-devel
79 Obsoletes: libcynara-storage-devel
82 Cynara development files
85 Summary: Cynara - cynara test binaries
86 BuildRequires: pkgconfig(gmock)
91 %package -n libcynara-client
92 Summary: Cynara - client libraries
93 Requires: cynara = %{version}-%{release}
94 Obsoletes: libcynara-client-commons
95 Obsoletes: libcynara-client-async
97 %description -n libcynara-client
98 Client libraries for checking policies: synchronous and asynchronous
100 %package -n libcynara-admin
101 Summary: Cynara - admin client library
102 Requires: cynara = %{version}-%{release}
104 %description -n libcynara-admin
105 admin client library for setting, listing and removing policies
107 %package -n libcynara-agent
108 Summary: Cynara - agent client library
109 Requires: cynara = %{version}-%{release}
111 %description -n libcynara-agent
112 agent client library for communication with cynara service and plugins
114 %package -n libcynara-commons
115 Summary: Cynara - cynara commons library
116 Obsoletes: libcynara-storage
118 %description -n libcynara-commons
119 cynara common library with common functionalities
121 %package -n libcynara-creds-commons
122 Summary: Base library for cynara credentials helpers
124 %description -n libcynara-creds-commons
125 Base library for cynara credentials helpers
127 %package -n libcynara-creds-dbus
128 Summary: Cynara credentials helpers library for dbus clients
129 BuildRequires: pkgconfig(dbus-1)
132 %description -n libcynara-creds-dbus
133 Cynara credentials helpers library for dbus clients
135 %package -n libcynara-creds-socket
136 Summary: Cynara credentials helpers library for socket clients
138 %description -n libcynara-creds-socket
139 Cynara credentials helpers library for socket clients
141 %package -n libcynara-session
142 Summary: Cynara helper client session string creation library
144 %description -n libcynara-session
145 Cynara helper client session string creation library
147 %package -n cynara-db-migration
148 Summary: Migration tools for Cynara's database
150 %description -n cynara-db-migration
151 Migration tools for Cynara's database
154 Summary: Cynara's command-line tool
157 Command-line tool to manage Cynara's database
161 cp -a %{SOURCE1001} .
162 cp -a %{SOURCE1002} .
163 cp -a %{SOURCE1003} .
164 cp -a %{SOURCE1004} .
165 cp -a %{SOURCE1005} .
166 cp -a %{SOURCE1006} .
167 cp -a %{SOURCE1007} .
168 cp -a %{SOURCE1008} .
169 cp -a %{SOURCE1009} .
170 cp -a %{SOURCE1010} .
171 cp -a %{SOURCE1011} .
172 cp -a %{SOURCE1012} .
176 %if 0%{?sec_build_binary_debug_enable}
177 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
180 %if %{?build_type} == "DEBUG"
181 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
184 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\" \
185 -DCYNARA_LIB_PATH=\\\"%{lib_path}\\\" \
186 -DCYNARA_TESTS_DIR=\\\"%{tests_dir}\\\" \
187 -DCYNARA_CONFIGURATION_DIR=\\\"%{conf_path}\\\""
188 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
192 -DCMAKE_BUILD_TYPE=%{?build_type} \
193 -DCMAKE_VERBOSE_MAKEFILE=ON
194 make %{?jobs:-j%jobs}
200 mkdir -p %{buildroot}/%{conf_path}
201 cp ./conf/creds.conf %{buildroot}/%{conf_path}/creds.conf
203 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
204 mkdir -p %{buildroot}/%{state_path}
205 mkdir -p %{buildroot}/%{tests_dir}/empty_db
206 mkdir -p %{buildroot}/%{lib_path}/plugin/client
207 mkdir -p %{buildroot}/%{lib_path}/plugin/service
209 cp -a db* %{buildroot}/%{tests_dir}
210 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
211 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
212 ln -s ../cynara-agent.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket
215 id -g %{group_name} > /dev/null 2>&1
216 if [ $? -eq 1 ]; then
217 groupadd %{group_name} -r > /dev/null 2>&1
220 id -u %{user_name} > /dev/null 2>&1
221 if [ $? -eq 1 ]; then
222 useradd -d /var/lib/empty -s /sbin/nologin -r -g %{group_name} %{user_name} > /dev/null 2>&1
225 if [ $1 -gt 1 ] ; then
226 OLDVERSION="$(rpm -q --qf '%%{version}' %{name})"
227 %{_sbindir}/cynara/cynara-db-migration.sh upgrade -f ${OLDVERSION} -t %{version}
229 %{_sbindir}/cynara/cynara-db-migration.sh install -t %{version}
233 ### Add file capabilities if needed
234 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
235 ### In such case uncomment Requires with those packages
237 systemctl daemon-reload
240 systemctl enable %{name}.service
243 chsmack -a System %{state_path}
245 systemctl restart %{name}.service
250 systemctl stop cynara.service
255 %{_sbindir}/cynara/cynara-db-migration.sh uninstall -f %{version}
256 userdel -r %{user_name} > /dev/null 2>&1
257 groupdel %{user_name} > /dev/null 2>&1
258 systemctl daemon-reload
261 %post -n libcynara-client -p /sbin/ldconfig
263 %postun -n libcynara-client -p /sbin/ldconfig
265 %post -n libcynara-admin -p /sbin/ldconfig
267 %postun -n libcynara-admin -p /sbin/ldconfig
269 %post -n libcynara-agent -p /sbin/ldconfig
271 %postun -n libcynara-agent -p /sbin/ldconfig
273 %post -n libcynara-commons -p /sbin/ldconfig
275 %postun -n libcynara-commons -p /sbin/ldconfig
277 %post -n libcynara-creds-commons -p /sbin/ldconfig
279 %postun -n libcynara-creds-commons -p /sbin/ldconfig
281 %post -n libcynara-creds-dbus -p /sbin/ldconfig
283 %postun -n libcynara-creds-dbus -p /sbin/ldconfig
285 %post -n libcynara-creds-socket -p /sbin/ldconfig
287 %postun -n libcynara-creds-socket -p /sbin/ldconfig
289 %post -n libcynara-session -p /sbin/ldconfig
291 %postun -n libcynara-session -p /sbin/ldconfig
294 %manifest cynara.manifest
296 %attr(755,root,root) /usr/bin/cynara
297 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
298 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
299 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
300 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
301 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
302 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
303 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket
304 %attr(-,root,root) /usr/lib/systemd/system/cynara-agent.socket
305 %dir %attr(700,cynara,cynara) %{state_path}
306 %dir %attr(755,cynara,cynara) %{lib_path}/plugin/service
308 %files -n cynara-devel
309 %{_includedir}/cynara/*.h
310 %{_includedir}/cynara/plugin/*.h
311 %{_includedir}/cynara/types/*.h
312 %{_libdir}/pkgconfig/*.pc
315 %files -n cynara-tests
316 %manifest cynara-tests.manifest
317 %attr(755,root,root) /usr/bin/cynara-tests
318 %attr(755,root,root) %{tests_dir}/db*/*
319 %dir %attr(755,root,root) %{tests_dir}/empty_db
321 %files -n libcynara-client
322 %manifest libcynara-client.manifest
324 %{_libdir}/libcynara-client.so.*
325 %{_libdir}/libcynara-client-async.so.*
326 %{_libdir}/libcynara-client-commons.so.*
327 %dir %attr(755,cynara,cynara) %{lib_path}/plugin/client
329 %files -n libcynara-admin
330 %manifest libcynara-admin.manifest
332 %{_libdir}/libcynara-admin.so.*
334 %files -n libcynara-agent
335 %manifest libcynara-agent.manifest
337 %{_libdir}/libcynara-agent.so.*
339 %files -n libcynara-commons
340 %manifest libcynara-commons.manifest
342 %{_libdir}/libcynara-commons.so.*
343 %{_libdir}/libcynara-storage.so.*
345 %files -n libcynara-creds-commons
346 %manifest libcynara-creds-commons.manifest
348 %{_libdir}/libcynara-creds-commons.so.*
349 %{conf_path}creds.conf
351 %files -n libcynara-creds-dbus
352 %manifest libcynara-creds-dbus.manifest
354 %{_libdir}/libcynara-creds-dbus.so.*
356 %files -n libcynara-creds-socket
357 %manifest libcynara-creds-socket.manifest
359 %{_libdir}/libcynara-creds-socket.so.*
361 %files -n libcynara-session
362 %manifest libcynara-session.manifest
364 %{_libdir}/libcynara-session.so.*
366 %files -n cynara-db-migration
367 %manifest cynara-db-migration.manifest
368 %attr(700,root,root) %{_sbindir}/cynara/cynara-db-migration.sh
371 %manifest cyad.manifest
372 %attr(700,root,root) %{_sbindir}/cyad