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 Requires: default-ac-domains
15 Requires(pre): pwdutils
17 Requires(postun): pwdutils
20 BuildRequires: pkgconfig(libsystemd-daemon)
21 BuildRequires: pkgconfig(libsystemd-journal)
24 %global user_name %{name}
25 %global group_name %{name}
27 %global state_path %{_localstatedir}/%{name}/
29 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
31 %if %{?build_type} == "DEBUG"
33 BuildRequires: pkgconfig(libunwind)
38 service, client libraries (libcynara-client, libcynara-admin)
39 and tests (cynara-tests)
41 #######################################################
42 %package -n libcynara-client
43 Summary: Cynara - client library
44 Requires: cynara = %{version}-%{release}
46 %description -n libcynara-client
47 client library for checking policies
49 %package -n libcynara-client-devel
50 Summary: Cynara - client library (devel)
51 Requires: libcynara-client = %{version}-%{release}
52 Requires: libcynara-client-commons-devel = %{version}-%{release}
54 %description -n libcynara-client-devel
55 client library (devel) for checking policies
57 #######################################################
58 %package -n libcynara-client-commons
59 Summary: Cynara - client commons library
60 Requires: cynara = %{version}-%{release}
62 %description -n libcynara-client-commons
63 client commons library with common functionalities
65 %package -n libcynara-client-commons-devel
66 Summary: Cynara - client commons library (devel)
67 Requires: libcynara-client-commons = %{version}-%{release}
69 %description -n libcynara-client-commons-devel
70 client commons library (devel) with common functionalities
72 #######################################################
73 %package -n libcynara-admin
74 Summary: Cynara - admin client library
75 Requires: cynara = %{version}-%{release}
77 %description -n libcynara-admin
78 admin client library for setting, listing and removing policies
80 %package -n libcynara-admin-devel
81 Summary: Cynara - admin client library (devel)
82 Requires: libcynara-admin = %{version}-%{release}
84 %description -n libcynara-admin-devel
85 admin client library (devel) for setting, listing and removing policies
87 #######################################################
88 %package -n libcynara-commons
89 Summary: Cynara - cynara commons library
90 Requires: cynara = %{version}-%{release}
92 %description -n libcynara-commons
93 cynara common library with common functionalities
95 %package -n libcynara-commons-devel
96 Summary: Cynara - cynara commons library (devel)
97 Requires: libcynara-commons = %{version}-%{release}
99 %description -n libcynara-commons-devel
100 cynara common library (devel) with common functionalities
102 #######################################################
103 %package -n cynara-tests
104 Summary: Cynara - cynara test binaries
105 BuildRequires: pkgconfig(gmock)
107 %description -n cynara-tests
110 #######################################################
112 %package -n cynara-devel
113 Summary: Cynara service (devel)
114 Requires: cynara = %{version}-%{release}
116 %description -n cynara-devel
117 service (devel version)
121 cp -a %{SOURCE1001} .
122 cp -a %{SOURCE1002} .
123 cp -a %{SOURCE1003} .
124 cp -a %{SOURCE1004} .
125 cp -a %{SOURCE1005} .
126 cp -a %{SOURCE1006} .
129 %if 0%{?sec_build_binary_debug_enable}
130 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
131 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
132 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
135 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\""
136 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
138 %cmake . -DVERSION=%{version} \
139 -DCMAKE_BUILD_TYPE=%{?build_type} \
140 -DCMAKE_VERBOSE_MAKEFILE=ON
141 make %{?jobs:-j%jobs}
148 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
149 mkdir -p %{buildroot}/%{state_path}
150 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
151 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
154 id -g %{group_name} > /dev/null 2>&1
155 if [ $? -eq 1 ]; then
156 groupadd %{group_name} -r > /dev/null 2>&1
159 id -u %{user_name} > /dev/null 2>&1
160 if [ $? -eq 1 ]; then
161 useradd -m %{user_name} -r > /dev/null 2>&1
165 ### Add file capabilities if needed
166 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
167 ### In such case uncomment Requires with those packages
169 systemctl daemon-reload
172 systemctl enable %{name}.service
175 chsmack -a System %{state_path}
177 systemctl restart %{name}.service
182 systemctl stop cynara.service
187 userdel -r %{user_name} > /dev/null 2>&1
188 groupdel %{user_name} > /dev/null 2>&1
189 systemctl daemon-reload
192 %post -n libcynara-client -p /sbin/ldconfig
194 %postun -n libcynara-client -p /sbin/ldconfig
196 %post -n libcynara-client-commons -p /sbin/ldconfig
198 %postun -n libcynara-client-commons -p /sbin/ldconfig
200 %post -n libcynara-admin -p /sbin/ldconfig
202 %postun -n libcynara-admin -p /sbin/ldconfig
204 %post -n libcynara-commons -p /sbin/ldconfig
206 %postun -n libcynara-commons -p /sbin/ldconfig
208 %post -n libcynara-client-devel -p /sbin/ldconfig
210 %postun -n libcynara-client-devel -p /sbin/ldconfig
212 %post -n libcynara-client-commons-devel -p /sbin/ldconfig
214 %postun -n libcynara-client-commons-devel -p /sbin/ldconfig
216 %post -n libcynara-admin-devel -p /sbin/ldconfig
218 %postun -n libcynara-admin-devel -p /sbin/ldconfig
220 %post -n libcynara-commons-devel -p /sbin/ldconfig
222 %postun -n libcynara-commons-devel -p /sbin/ldconfig
225 %manifest cynara.manifest
227 %attr(755,root,root) /usr/bin/cynara
228 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
229 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
230 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
231 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
232 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
233 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
234 %dir %attr(700,cynara,cynara) %{state_path}
236 %files -n libcynara-client
237 %manifest libcynara-client.manifest
239 %defattr(-,root,root,-)
240 %{_libdir}/libcynara-client.so.*
242 %files -n libcynara-client-devel
243 %defattr(-,root,root,-)
244 %{_includedir}/cynara/cynara-client.h
245 %{_libdir}/pkgconfig/cynara-client.pc
246 %{_libdir}/libcynara-client.so
248 %files -n libcynara-client-commons
249 %manifest libcynara-client-commons.manifest
251 %{_libdir}/libcynara-client-commons.so.*
253 %files -n libcynara-client-commons-devel
254 %{_includedir}/cynara/cynara-client-error.h
255 %{_libdir}/libcynara-client-commons.so
257 %files -n libcynara-admin
258 %manifest libcynara-admin.manifest
260 %defattr(-,root,root,-)
261 %{_libdir}/libcynara-admin.so.*
263 %files -n libcynara-admin-devel
264 %defattr(-,root,root,-)
265 %{_includedir}/cynara/cynara-admin.h
266 %{_includedir}/cynara/cynara-admin-error.h
267 %{_libdir}/libcynara-admin.so
268 %{_libdir}/pkgconfig/cynara-admin.pc
270 %files -n libcynara-commons
271 %manifest libcynara-commons.manifest
273 %{_libdir}/libcynara-commons.so.*
275 %files -n libcynara-commons-devel
276 %{_libdir}/libcynara-commons.so
278 %files -n cynara-tests
279 %manifest cynara-tests.manifest
280 %attr(755,root,root) /usr/bin/cynara-tests