Remove not needed %defattr from cynara.spec
[platform/core/security/cynara.git] / packaging / cynara.spec
1 Name:       cynara
2 Summary:    Cynara service with client libraries
3 Version:    0.2.2
4 Release:    1
5 Group:      Security/Access Control
6 License:    Apache-2.0
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
16 Requires(post):   smack
17 Requires(postun): pwdutils
18 BuildRequires: cmake
19 BuildRequires: zip
20 BuildRequires: pkgconfig(libsystemd-daemon)
21 BuildRequires: pkgconfig(libsystemd-journal)
22 %{?systemd_requires}
23
24 %global user_name %{name}
25 %global group_name %{name}
26
27 %global state_path %{_localstatedir}/%{name}/
28
29 %global build_type %{?build_type:%build_type}%{!?build_type:RELEASE}
30
31 %if %{?build_type} == "DEBUG"
32
33 BuildRequires: pkgconfig(libunwind)
34
35 %endif
36
37 %description
38 service, client libraries (libcynara-client, libcynara-admin)
39 and tests (cynara-tests)
40
41 #######################################################
42 %package -n libcynara-client
43 Summary:    Cynara - client library
44 Requires:   cynara = %{version}-%{release}
45
46 %description -n libcynara-client
47 client library for checking policies
48
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}
53
54 %description -n libcynara-client-devel
55 client library (devel) for checking policies
56
57 #######################################################
58 %package -n libcynara-client-commons
59 Summary:    Cynara - client commons library
60 Requires:   cynara = %{version}-%{release}
61
62 %description -n libcynara-client-commons
63 client commons library with common functionalities
64
65 %package -n libcynara-client-commons-devel
66 Summary:    Cynara - client commons library (devel)
67 Requires:   libcynara-client-commons = %{version}-%{release}
68
69 %description -n libcynara-client-commons-devel
70 client commons library (devel) with common functionalities
71
72 #######################################################
73 %package -n libcynara-admin
74 Summary:    Cynara - admin client library
75 Requires:   cynara = %{version}-%{release}
76
77 %description -n libcynara-admin
78 admin client library for setting, listing and removing policies
79
80 %package -n libcynara-admin-devel
81 Summary:    Cynara - admin client library (devel)
82 Requires:   libcynara-admin = %{version}-%{release}
83
84 %description -n libcynara-admin-devel
85 admin client library (devel) for setting, listing and removing policies
86
87 #######################################################
88 %package -n libcynara-commons
89 Summary:    Cynara - cynara commons library
90 Requires:   cynara = %{version}-%{release}
91
92 %description -n libcynara-commons
93 cynara common library with common functionalities
94
95 %package -n libcynara-commons-devel
96 Summary:    Cynara - cynara commons library (devel)
97 Requires:   libcynara-commons = %{version}-%{release}
98
99 %description -n libcynara-commons-devel
100 cynara common library (devel) with common functionalities
101
102 #######################################################
103 %package -n cynara-tests
104 Summary:    Cynara - cynara test binaries
105 BuildRequires: pkgconfig(gmock)
106
107 %description -n cynara-tests
108 Cynara tests
109
110 #######################################################
111
112 %package -n cynara-devel
113 Summary:    Cynara service (devel)
114 Requires:   cynara = %{version}-%{release}
115
116 %description -n cynara-devel
117 service (devel version)
118
119 %prep
120 %setup -q
121 cp -a %{SOURCE1001} .
122 cp -a %{SOURCE1002} .
123 cp -a %{SOURCE1003} .
124 cp -a %{SOURCE1004} .
125 cp -a %{SOURCE1005} .
126 cp -a %{SOURCE1006} .
127
128 %build
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"
133 %endif
134
135 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"%{state_path}\\\""
136 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
137
138 %cmake . -DVERSION=%{version} \
139         -DCMAKE_BUILD_TYPE=%{?build_type} \
140         -DCMAKE_VERBOSE_MAKEFILE=ON
141 make %{?jobs:-j%jobs}
142
143 %install
144
145 rm -rf %{buildroot}
146 %make_install
147
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
152
153 %pre
154 id -g %{group_name} > /dev/null 2>&1
155 if [ $? -eq 1 ]; then
156     groupadd %{group_name} -r > /dev/null 2>&1
157 fi
158
159 id -u %{user_name} > /dev/null 2>&1
160 if [ $? -eq 1 ]; then
161     useradd -m %{user_name} -r > /dev/null 2>&1
162 fi
163
164 %post
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
168
169 systemctl daemon-reload
170
171 if [ $1 = 1 ]; then
172     systemctl enable %{name}.service
173 fi
174
175 chsmack -a System %{state_path}
176
177 systemctl restart %{name}.service
178
179 %preun
180 if [ $1 = 0 ]; then
181     # unistall
182     systemctl stop cynara.service
183 fi
184
185 %postun
186 if [ $1 = 0 ]; then
187     userdel -r %{user_name} > /dev/null 2>&1
188     groupdel %{user_name} > /dev/null 2>&1
189     systemctl daemon-reload
190 fi
191
192 %post -n libcynara-client -p /sbin/ldconfig
193
194 %postun -n libcynara-client -p /sbin/ldconfig
195
196 %post -n libcynara-client-commons -p /sbin/ldconfig
197
198 %postun -n libcynara-client-commons -p /sbin/ldconfig
199
200 %post -n libcynara-admin -p /sbin/ldconfig
201
202 %postun -n libcynara-admin -p /sbin/ldconfig
203
204 %post -n libcynara-commons -p /sbin/ldconfig
205
206 %postun -n libcynara-commons -p /sbin/ldconfig
207
208 %post -n libcynara-client-devel -p /sbin/ldconfig
209
210 %postun -n libcynara-client-devel -p /sbin/ldconfig
211
212 %post -n libcynara-client-commons-devel -p /sbin/ldconfig
213
214 %postun -n libcynara-client-commons-devel -p /sbin/ldconfig
215
216 %post -n libcynara-admin-devel -p /sbin/ldconfig
217
218 %postun -n libcynara-admin-devel -p /sbin/ldconfig
219
220 %post -n libcynara-commons-devel -p /sbin/ldconfig
221
222 %postun -n libcynara-commons-devel -p /sbin/ldconfig
223
224 %files -n cynara
225 %manifest cynara.manifest
226 %license LICENSE
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}
235
236 %files -n libcynara-client
237 %manifest libcynara-client.manifest
238 %license LICENSE
239 %{_libdir}/libcynara-client.so.*
240
241 %files -n libcynara-client-devel
242 %{_includedir}/cynara/cynara-client.h
243 %{_libdir}/pkgconfig/cynara-client.pc
244 %{_libdir}/libcynara-client.so
245
246 %files -n libcynara-client-commons
247 %manifest libcynara-client-commons.manifest
248 %license LICENSE
249 %{_libdir}/libcynara-client-commons.so.*
250
251 %files -n libcynara-client-commons-devel
252 %{_includedir}/cynara/cynara-client-error.h
253 %{_libdir}/libcynara-client-commons.so
254
255 %files -n libcynara-admin
256 %manifest libcynara-admin.manifest
257 %license LICENSE
258 %{_libdir}/libcynara-admin.so.*
259
260 %files -n libcynara-admin-devel
261 %{_includedir}/cynara/cynara-admin.h
262 %{_includedir}/cynara/cynara-admin-error.h
263 %{_libdir}/libcynara-admin.so
264 %{_libdir}/pkgconfig/cynara-admin.pc
265
266 %files -n libcynara-commons
267 %manifest libcynara-commons.manifest
268 %license LICENSE
269 %{_libdir}/libcynara-commons.so.*
270
271 %files -n libcynara-commons-devel
272 %{_libdir}/libcynara-commons.so
273
274 %files -n cynara-tests
275 %manifest cynara-tests.manifest
276 %attr(755,root,root) /usr/bin/cynara-tests