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 Requires: default-ac-domains
16 BuildRequires: pkgconfig(libsystemd-daemon)
17 BuildRequires: pkgconfig(libsystemd-journal)
20 %global user_name %{name}
21 %global group_name %{name}
23 %global state_path %{_localstatedir}/%{name}/
25 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
27 %if %{?build_type} == "DEBUG"
29 BuildRequires: pkgconfig(libunwind)
34 service and client libraries (libcynara-client, libcynara-client-async, libcynara-admin)
35 and tests (cynara-tests)
37 #######################################################
38 %package -n libcynara-client
39 Summary: Cynara - client library
40 Requires: cynara = %{version}-%{release}
41 Requires(post): /sbin/ldconfig
42 Requires(postun): /sbin/ldconfig
44 %description -n libcynara-client
45 client library for checking policies
47 %package -n libcynara-client-devel
48 Summary: Cynara - client library (devel)
49 Requires: libcynara-client = %{version}-%{release}
51 %description -n libcynara-client-devel
52 client library (devel) for checking policies
54 #######################################################
55 %package -n libcynara-client-async
56 Summary: Cynara - asynchronous client library
57 Requires: cynara = %{version}-%{release}
58 Requires(post): /sbin/ldconfig
59 Requires(postun): /sbin/ldconfig
61 %description -n libcynara-client-async
62 asynchronous client library for checking policies
64 %package -n libcynara-client-async-devel
65 Summary: Cynara - asynchronous client library (devel)
66 Requires: libcynara-client-async = %{version}-%{release}
68 %description -n libcynara-client-async-devel
69 asynchronous client library (devel) for checking policies
71 #######################################################
72 %package -n libcynara-admin
73 Summary: Cynara - admin client library
74 Requires: cynara = %{version}-%{release}
75 Requires(post): /sbin/ldconfig
76 Requires(postun): /sbin/ldconfig
78 %description -n libcynara-admin
79 admin client library for setting, listing and removing policies
81 %package -n libcynara-admin-devel
82 Summary: Cynara - admin client library (devel)
83 Requires: libcynara-admin = %{version}-%{release}
85 %description -n libcynara-admin-devel
86 admin client library (devel) for setting, listing and removing policies
88 #######################################################
89 %package -n cynara-tests
90 Summary: Cynara - cynara test binaries
91 BuildRequires: pkgconfig(gmock)
93 %description -n cynara-tests
96 #######################################################
98 %package -n cynara-devel
99 Summary: Cynara service (devel)
100 Requires: cynara = %{version}-%{release}
102 %description -n cynara-devel
103 service (devel version)
107 cp -a %{SOURCE1001} .
108 cp -a %{SOURCE1002} .
109 cp -a %{SOURCE1003} .
110 cp -a %{SOURCE1004} .
111 cp -a %{SOURCE1005} .
114 %if 0%{?sec_build_binary_debug_enable}
115 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
116 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
117 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
120 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\""
121 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
123 %cmake . -DVERSION=%{version} \
124 -DCMAKE_BUILD_TYPE=%{?build_type} \
125 -DCMAKE_VERBOSE_MAKEFILE=ON
126 make %{?jobs:-j%jobs}
133 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
134 mkdir -p %{buildroot}/%{state_path}
135 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
136 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
139 id -g %{group_name} > /dev/null 2>&1
140 if [ $? -eq 1 ]; then
141 groupadd %{group_name} -r > /dev/null 2>&1
144 id -u %{user_name} > /dev/null 2>&1
145 if [ $? -eq 1 ]; then
146 useradd -m %{user_name} -r > /dev/null 2>&1
150 ### Add file capabilities if needed
151 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
152 ### In such case uncomment Requires with those packages
154 systemctl daemon-reload
157 systemctl enable %{name}.service
160 chsmack -a System %{state_path}
162 systemctl restart %{name}.service
169 systemctl stop cynara.service
174 userdel -r %{user_name} > /dev/null 2>&1
175 groupdel %{user_name} > /dev/null 2>&1
176 systemctl daemon-reload
181 %post -n libcynara-client -p /sbin/ldconfig
183 %postun -n libcynara-client -p /sbin/ldconfig
185 %post -n libcynara-client-async -p /sbin/ldconfig
187 %postun -n libcynara-client-async -p /sbin/ldconfig
189 %post -n libcynara-admin -p /sbin/ldconfig
191 %postun -n libcynara-admin -p /sbin/ldconfig
193 %post -n libcynara-client-devel -p /sbin/ldconfig
195 %postun -n libcynara-client-devel -p /sbin/ldconfig
197 %post -n libcynara-client-async-devel -p /sbin/ldconfig
199 %postun -n libcynara-client-async-devel -p /sbin/ldconfig
201 %post -n libcynara-admin-devel -p /sbin/ldconfig
203 %postun -n libcynara-admin-devel -p /sbin/ldconfig
206 %manifest cynara.manifest
208 %attr(755,root,root) /usr/bin/cynara
209 %{_libdir}/libcynara-commons.so*
210 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
211 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
212 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
213 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
214 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
215 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
216 %dir %attr(700,cynara,cynara) %{state_path}
218 %files -n libcynara-client
219 %manifest libcynara-client.manifest
221 %defattr(-,root,root,-)
222 %{_libdir}/libcynara-client.so.*
224 %files -n libcynara-client-devel
225 %defattr(-,root,root,-)
226 %{_includedir}/cynara/cynara-client.h
227 %{_libdir}/pkgconfig/cynara-client.pc
228 %{_libdir}/libcynara-client.so
230 %files -n libcynara-client-async
231 %manifest libcynara-client-async.manifest
233 %defattr(-,root,root,-)
234 %{_libdir}/libcynara-client-async.so.*
236 %files -n libcynara-client-async-devel
237 %defattr(-,root,root,-)
238 %{_includedir}/cynara/cynara-client-async.h
239 %{_libdir}/pkgconfig/cynara-client-async.pc
240 %{_libdir}/libcynara-client-async.so
242 %files -n libcynara-admin
243 %manifest libcynara-admin.manifest
245 %defattr(-,root,root,-)
246 %{_libdir}/libcynara-admin.so.*
248 %files -n libcynara-admin-devel
249 %defattr(-,root,root,-)
250 %{_includedir}/cynara/cynara-admin.h
251 %{_libdir}/libcynara-admin.so
252 %{_libdir}/pkgconfig/cynara-admin.pc
254 %files -n cynara-tests
255 %manifest cynara-tests.manifest
256 %attr(755,root,root) /usr/bin/cynara-tests