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 Requires: default-ac-domains
14 BuildRequires: pkgconfig(libsystemd-daemon)
15 BuildRequires: pkgconfig(libsystemd-journal)
18 %global user_name %{name}
19 %global group_name %{name}
21 %global state_path %{_localstatedir}/%{name}/
23 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
25 %if %{?build_type} == "DEBUG"
27 BuildRequires: pkgconfig(libunwind)
32 service and client libraries (libcynara-client, libcynara-admin)
34 #######################################################
35 %package -n libcynara-client
36 Summary: Cynara - client library
37 Requires: cynara = %{version}-%{release}
38 Requires(post): /sbin/ldconfig
39 Requires(postun): /sbin/ldconfig
41 %description -n libcynara-client
42 client library for checking policies
44 %package -n libcynara-client-devel
45 Summary: Cynara - client library (devel)
46 Requires: libcynara-client = %{version}-%{release}
48 %description -n libcynara-client-devel
49 client library (devel) for checking policies
51 #######################################################
52 %package -n libcynara-admin
53 Summary: Cynara - admin client library
54 Requires: cynara = %{version}-%{release}
55 Requires(post): /sbin/ldconfig
56 Requires(postun): /sbin/ldconfig
58 %description -n libcynara-admin
59 admin client library for setting, listing and removing policies
61 %package -n libcynara-admin-devel
62 Summary: Cynara - admin client library (devel)
63 Requires: libcynara-admin = %{version}-%{release}
65 %description -n libcynara-admin-devel
66 admin client library (devel) for setting, listing and removing policies
68 #######################################################
69 %package -n cynara-devel
70 Summary: Cynara service (devel)
71 Requires: cynara = %{version}-%{release}
73 %description -n cynara-devel
74 service (devel version)
83 %if 0%{?sec_build_binary_debug_enable}
84 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
85 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
86 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
89 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\""
90 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
92 %cmake . -DVERSION=%{version} \
93 -DCMAKE_BUILD_TYPE=%{?build_type} \
94 -DCMAKE_VERBOSE_MAKEFILE=ON
102 mkdir -p %{buildroot}/usr/lib/systemd/system/sockets.target.wants
103 mkdir -p %{buildroot}/%{state_path}
104 ln -s ../cynara.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
105 ln -s ../cynara-admin.socket %{buildroot}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
108 id -g %{group_name} > /dev/null 2>&1
109 if [ $? -eq 1 ]; then
110 groupadd %{group_name} -r > /dev/null 2>&1
113 id -u %{user_name} > /dev/null 2>&1
114 if [ $? -eq 1 ]; then
115 useradd -m %{user_name} -r > /dev/null 2>&1
119 ### Add file capabilities if needed
120 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
121 ### In such case uncomment Requires with those packages
123 systemctl daemon-reload
126 systemctl enable %{name}.service
129 chsmack -a System %{state_path}
131 systemctl restart %{name}.service
138 systemctl stop cynara.service
143 userdel -r %{user_name} > /dev/null 2>&1
144 groupdel %{user_name} > /dev/null 2>&1
145 systemctl daemon-reload
150 %post -n libcynara-client -p /sbin/ldconfig
152 %postun -n libcynara-client -p /sbin/ldconfig
154 %post -n libcynara-admin -p /sbin/ldconfig
156 %postun -n libcynara-admin -p /sbin/ldconfig
158 %post -n libcynara-client-devel -p /sbin/ldconfig
160 %postun -n libcynara-client-devel -p /sbin/ldconfig
162 %post -n libcynara-admin-devel -p /sbin/ldconfig
164 %postun -n libcynara-admin-devel -p /sbin/ldconfig
167 %manifest cynara.manifest
169 %attr(755,root,root) /usr/bin/cynara
170 %{_libdir}/libcynara-commons.so*
171 %attr(-,root,root) /usr/lib/systemd/system/cynara.service
172 %attr(-,root,root) /usr/lib/systemd/system/cynara.target
173 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara.socket
174 %attr(-,root,root) /usr/lib/systemd/system/cynara.socket
175 %attr(-,root,root) /usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
176 %attr(-,root,root) /usr/lib/systemd/system/cynara-admin.socket
177 %dir %attr(700,cynara,cynara) %{state_path}
179 %files -n libcynara-client
180 %manifest libcynara-client.manifest
182 %defattr(-,root,root,-)
183 %{_libdir}/libcynara-client.so.*
185 %files -n libcynara-client-devel
186 %defattr(-,root,root,-)
187 %{_includedir}/cynara/cynara-client.h
188 %{_libdir}/pkgconfig/cynara-client.pc
189 %{_libdir}/libcynara-client.so
191 %files -n libcynara-admin
192 %manifest libcynara-admin.manifest
194 %defattr(-,root,root,-)
195 %{_libdir}/libcynara-admin.so.*
197 %files -n libcynara-admin-devel
198 %defattr(-,root,root,-)
199 %{_includedir}/cynara/cynara-admin.h
200 %{_libdir}/libcynara-admin.so
201 %{_libdir}/pkgconfig/cynara-admin.pc