1 DESCRIPTION = "Cynara service with client libraries"
2 HOMEPAGE = "http://nohomepage.org"
3 SECTION = "Security/Application Privilege"
11 inherit manifest autotools-brokensep
16 #PROVIDES by libcynara-creds-socket
17 PROVIDES += "libcynara-creds-socket"
20 #PROVIDES by cynara-tests
21 PROVIDES += "cynara-tests"
24 #PROVIDES by libcynara-client
25 PROVIDES += "libcynara-client"
28 #PROVIDES by libcynara-creds-dbus
29 PROVIDES += "libcynara-creds-dbus"
35 #PROVIDES by cynara-dev
36 PROVIDES += "cynara-dev"
43 #PROVIDES by libcynara-commons
44 PROVIDES += "libcynara-commons"
47 #PROVIDES by libcynara-admin
48 PROVIDES += "libcynara-admin"
51 #PROVIDES by libcynara-creds-commons
52 PROVIDES += "libcynara-creds-commons"
55 #PROVIDES by cynara-db-migration
56 PROVIDES += "cynara-db-migration"
59 #PROVIDES by libcynara-agent
60 PROVIDES += "libcynara-agent"
63 #PROVIDES by libcynara-session
64 PROVIDES += "libcynara-session"
68 #RDEPENDS of cynara (${PN})
69 RDEPENDS_${PN} += "systemd"
70 RDEPENDS_${PN} += "default-ac-domains"
71 RDEPENDS_${PN} += "cynara-db-migration"
72 RDEPENDS_${PN} += "smack"
73 RDEPENDS_${PN} += "shadow"
75 #RDEPENDS of libcynara-client (lib${PN}-client)
76 RDEPENDS_lib${PN}-client += "cynara"
78 #RDEPENDS of libcynara-creds-dbus (lib${PN}-creds-dbus)
79 RDEPENDS_lib${PN}-creds-dbus += "dbus"
81 #RDEPENDS of cynara-dev (${PN}-dev)
82 RDEPENDS_${PN}-dev += "systemd"
83 RDEPENDS_${PN}-dev += "libcynara-client"
84 RDEPENDS_${PN}-dev += "dbus"
85 RDEPENDS_${PN}-dev += "libcynara-creds-dbus"
86 RDEPENDS_${PN}-dev += "libcynara-creds-commons"
87 RDEPENDS_${PN}-dev += "libcynara-commons"
88 RDEPENDS_${PN}-dev += "libcynara-admin"
89 RDEPENDS_${PN}-dev += "libcynara-creds-socket"
90 RDEPENDS_${PN}-dev += "libcynara-agent"
91 RDEPENDS_${PN}-dev += "libcynara-session"
93 #RDEPENDS of libcynara-admin (lib${PN}-admin)
94 RDEPENDS_lib${PN}-admin += "cynara"
96 #RDEPENDS of libcynara-agent (lib${PN}-agent)
97 RDEPENDS_lib${PN}-agent += "cynara"
101 #DEPENDS of cynara-tests
103 #DEPENDS of libcynara-creds-dbus
109 DEPENDS += "pkgconfig(gmock)"
113 chmod -Rf a+rX,u+w,g-w,o-w ${S}
115 cp -a ${S}/packaging/cynara.manifest .
116 cp -a ${S}/packaging/libcynara-client.manifest .
117 cp -a ${S}/packaging/libcynara-admin.manifest .
118 cp -a ${S}/packaging/cynara-tests.manifest .
119 cp -a ${S}/packaging/libcynara-agent.manifest .
120 cp -a ${S}/packaging/libcynara-commons.manifest .
121 cp -a ${S}/packaging/libcynara-creds-commons.manifest .
122 cp -a ${S}/packaging/libcynara-creds-dbus.manifest .
123 cp -a ${S}/packaging/libcynara-creds-socket.manifest .
124 cp -a ${S}/packaging/libcynara-session.manifest .
125 cp -a ${S}/packaging/cynara-db-migration.manifest .
126 cp -a ${S}/packaging/cyad.manifest .
132 bb.build.exec_func('do_prep', d)
143 LD_AS_NEEDED=1; export LD_AS_NEEDED ;
147 export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"${localstatedir}/cynara/\\\" \
148 -DCYNARA_LIB_PATH=\\\"${prefix}/lib/cynara/\\\" \
149 -DCYNARA_TESTS_DIR=\\\"${prefix}/share/cynara/tests/\\\" \
150 -DCYNARA_CONFIGURATION_DIR=\\\"${sysconfdir}/cynara/\\\""
151 export LDFLAGS+="-Wl,--rpath=${prefix}/lib"
155 -DCMAKE_VERBOSE_MAKEFILE=ON \
156 -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
157 -DCMAKE_INSTALL_LIBDIR:PATH=${prefix}/lib \
158 -DINCLUDE_INSTALL_DIR:PATH=${prefix}/include \
159 -DLIB_INSTALL_DIR:PATH=${prefix}/lib \
160 -DSYSCONF_INSTALL_DIR:PATH=${sysconfdir} \
161 -DSHARE_INSTALL_PREFIX:PATH=${prefix}/share \
162 -DCMAKE_SKIP_RPATH:BOOL=ON \
163 -DBUILD_SHARED_LIBS:BOOL=ON \
164 -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
167 -DCMAKE_BUILD_TYPE=RELEASE \
168 -DCMAKE_VERBOSE_MAKEFILE=ON
176 export RPM_BUILD_ROOT=${D}
189 BINDIR=${prefix}/bin \
191 rm -f ${D}${infodir}/dir
192 find ${D} -regex ".*\.la$" | xargs rm -f --
193 find ${D} -regex ".*\.a$" | xargs rm -f --
195 mkdir -p ${D}/${sysconfdir}/cynara/
196 cp ./conf/creds.conf ${D}/${sysconfdir}/cynara//creds.conf
198 mkdir -p ${D}/usr/lib/systemd/system/sockets.target.wants
199 mkdir -p ${D}/${localstatedir}/cynara/
200 mkdir -p ${D}${prefix}/share/cynara/tests//empty_db
201 mkdir -p ${D}${prefix}/lib/cynara//plugin/client
202 mkdir -p ${D}${prefix}/lib/cynara//plugin/service
204 cp -a db* ${D}${prefix}/share/cynara/tests/
205 ln -s ../cynara.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
206 ln -s ../cynara-admin.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
207 ln -s ../cynara-agent.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket
212 pkg_preinst_${PN}() {
215 id -g cynara > /dev/null 2>&1
216 if [ $? -eq 1 ]; then
217 groupadd cynara -r > /dev/null 2>&1
219 id -u cynara > /dev/null 2>&1
220 if [ $? -eq 1 ]; then
221 useradd -d /var/lib/empty -s /sbin/nologin -r -g cynara cynara > /dev/null 2>&1
223 if [ $1 -gt 1 ] ; then
224 OLDVERSION="$(rpm -q --qf '%{version}' cynara)"
225 $D${prefix}/sbin/cynara/cynara-db-migration.sh upgrade -f ${OLDVERSION} -t 0.5.0
227 $D${prefix}/sbin/cynara/cynara-db-migration.sh install -t 0.5.0
232 pkg_postinst_libcynara-agent() {
235 [ "x$D" == "x" ] && ldconfig
238 pkg_postinst_${PN}() {
241 ### Add file capabilities if needed
242 ### setcap/getcap binary are useful. To use them you must install libcap and libcap-tools packages
243 ### In such case uncomment Requires with those packages
244 systemctl daemon-reload
246 systemctl enable cynara.service
248 chsmack -a System ${localstatedir}/cynara/
249 systemctl restart cynara.service
253 pkg_postinst_libcynara-creds-socket() {
256 [ "x$D" == "x" ] && ldconfig
259 pkg_postinst_libcynara-client() {
262 [ "x$D" == "x" ] && ldconfig
265 pkg_postinst_libcynara-creds-dbus() {
268 [ "x$D" == "x" ] && ldconfig
271 pkg_postinst_libcynara-session() {
274 [ "x$D" == "x" ] && ldconfig
277 pkg_postinst_libcynara-admin() {
280 [ "x$D" == "x" ] && ldconfig
283 pkg_postinst_libcynara-creds-commons() {
286 [ "x$D" == "x" ] && ldconfig
289 pkg_postinst_libcynara-commons() {
292 [ "x$D" == "x" ] && ldconfig
300 systemctl stop cynara.service
305 pkg_postrm_libcynara-creds-commons() {
308 [ "x$D" == "x" ] && ldconfig
311 pkg_postrm_libcynara-creds-socket() {
314 [ "x$D" == "x" ] && ldconfig
317 pkg_postrm_libcynara-agent() {
320 [ "x$D" == "x" ] && ldconfig
323 pkg_postrm_libcynara-admin() {
326 [ "x$D" == "x" ] && ldconfig
333 $D${prefix}/sbin/cynara/cynara-db-migration.sh uninstall -f 0.5.0
334 userdel -r cynara > /dev/null 2>&1
335 groupdel cynara > /dev/null 2>&1
336 systemctl daemon-reload
341 pkg_postrm_libcynara-creds-dbus() {
344 [ "x$D" == "x" ] && ldconfig
347 pkg_postrm_libcynara-session() {
350 [ "x$D" == "x" ] && ldconfig
353 pkg_postrm_libcynara-client() {
356 [ "x$D" == "x" ] && ldconfig
359 pkg_postrm_libcynara-commons() {
362 [ "x$D" == "x" ] && ldconfig
365 PACKAGES = "${PN}-dbg ${PN}-doc ${PN}-locale"
366 PACKAGES += " cynara-tests "
367 PACKAGES += " libcynara-client "
368 PACKAGES += " libcynara-creds-dbus "
369 PACKAGES += " cynara-db-migration "
370 PACKAGES += " cynara-dev "
372 PACKAGES += " cynara "
373 PACKAGES += " libcynara-commons "
374 PACKAGES += " libcynara-admin "
375 PACKAGES += " libcynara-creds-commons "
376 PACKAGES += " libcynara-creds-socket "
377 PACKAGES += " libcynara-agent "
378 PACKAGES += " libcynara-session "
380 cynara-tests_files = ""
381 cynara-tests_files += "/usr/bin/cynara-tests"
382 cynara-tests_files += "${prefix}/share/cynara/tests/db*/*"
383 cynara-tests_files += "%attr(755,root,root) ${prefix}/share/cynara/tests/empty_db"
384 MANIFESTFILES_${PN}-tests = "cynara-tests.manifest"
385 DIRFILES_${PN}-tests = ""
386 DIRFILES_${PN}-tests += "%attr(755,root,root) ${prefix}/share/cynara/tests/empty_db"
388 libcynara-client_files = ""
389 libcynara-client_files += "${prefix}/lib/libcynara-client.so.*"
390 libcynara-client_files += "${prefix}/lib/libcynara-client-async.so.*"
391 libcynara-client_files += "${prefix}/lib/libcynara-client-commons.so.*"
392 libcynara-client_files += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/client"
393 MANIFESTFILES_lib${PN}-client = "libcynara-client.manifest"
394 DIRFILES_lib${PN}-client = ""
395 DIRFILES_lib${PN}-client += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/client"
397 libcynara-creds-dbus_files = ""
398 libcynara-creds-dbus_files += "${prefix}/lib/libcynara-creds-dbus.so.*"
399 MANIFESTFILES_lib${PN}-creds-dbus = "libcynara-creds-dbus.manifest"
401 cynara-db-migration_files = ""
402 cynara-db-migration_files += "${prefix}/sbin/cynara/cynara-db-migration.sh"
403 MANIFESTFILES_${PN}-db-migration = "cynara-db-migration.manifest"
405 cynara-dev_files = ""
406 cynara-dev_files += "${prefix}/include/cynara/*.h"
407 cynara-dev_files += "${prefix}/include/cynara/log/*.h"
408 cynara-dev_files += "${prefix}/include/cynara/plugin/*.h"
409 cynara-dev_files += "${prefix}/include/cynara/types/*.h"
410 cynara-dev_files += "${prefix}/lib/pkgconfig/*.pc"
411 cynara-dev_files += "${prefix}/lib/*.so"
414 cyad_files += "${prefix}/sbin/cyad"
415 MANIFESTFILES_cyad = "cyad.manifest"
418 cynara_files += "/usr/bin/cynara"
419 cynara_files += "/usr/lib/systemd/system/cynara.service"
420 cynara_files += "/usr/lib/systemd/system/cynara.target"
421 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara.socket"
422 cynara_files += "/usr/lib/systemd/system/cynara.socket"
423 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket"
424 cynara_files += "/usr/lib/systemd/system/cynara-admin.socket"
425 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket"
426 cynara_files += "/usr/lib/systemd/system/cynara-agent.socket"
427 cynara_files += "%attr(700,cynara,cynara) ${localstatedir}/cynara/"
428 cynara_files += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/service"
429 MANIFESTFILES_${PN} = "cynara.manifest"
431 DIRFILES_${PN} += "%attr(700,cynara,cynara) ${localstatedir}/cynara/"
432 DIRFILES_${PN} += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/service"
434 libcynara-commons_files = ""
435 libcynara-commons_files += "${prefix}/lib/libcynara-commons.so.*"
436 libcynara-commons_files += "${prefix}/lib/libcynara-storage.so.*"
437 MANIFESTFILES_lib${PN}-commons = "libcynara-commons.manifest"
439 libcynara-admin_files = ""
440 libcynara-admin_files += "${prefix}/lib/libcynara-admin.so.*"
441 MANIFESTFILES_lib${PN}-admin = "libcynara-admin.manifest"
443 libcynara-creds-commons_files = ""
444 libcynara-creds-commons_files += "${prefix}/lib/libcynara-creds-commons.so.*"
445 libcynara-creds-commons_files += "${sysconfdir}/cynara/creds.conf"
446 MANIFESTFILES_lib${PN}-creds-commons = "libcynara-creds-commons.manifest"
448 libcynara-creds-socket_files = ""
449 libcynara-creds-socket_files += "${prefix}/lib/libcynara-creds-socket.so.*"
450 MANIFESTFILES_lib${PN}-creds-socket = "libcynara-creds-socket.manifest"
452 libcynara-agent_files = ""
453 libcynara-agent_files += "${prefix}/lib/libcynara-agent.so.*"
454 MANIFESTFILES_lib${PN}-agent = "libcynara-agent.manifest"
456 libcynara-session_files = ""
457 libcynara-session_files += "${prefix}/lib/libcynara-session.so.*"
458 MANIFESTFILES_lib${PN}-session = "libcynara-session.manifest"
460 FILES_${PN}-tests = "${cynara-tests_files}"
461 FILES_lib${PN}-client = "${libcynara-client_files}"
462 FILES_lib${PN}-creds-dbus = "${libcynara-creds-dbus_files}"
463 FILES_${PN}-db-migration = "${cynara-db-migration_files}"
464 FILES_${PN}-dev = "${cynara-dev_files}"
465 FILES_cyad = "${cyad_files}"
466 FILES_${PN} = "${cynara_files}"
467 FILES_lib${PN}-commons = "${libcynara-commons_files}"
468 FILES_lib${PN}-admin = "${libcynara-admin_files}"
469 FILES_lib${PN}-creds-commons = "${libcynara-creds-commons_files}"
470 FILES_lib${PN}-creds-socket = "${libcynara-creds-socket_files}"
471 FILES_lib${PN}-agent = "${libcynara-agent_files}"
472 FILES_lib${PN}-session = "${libcynara-session_files}"
474 PKG_cynara-tests= "cynara-tests"
475 PKG_libcynara-client= "libcynara-client"
476 PKG_libcynara-creds-dbus= "libcynara-creds-dbus"
477 PKG_cynara-db-migration= "cynara-db-migration"
478 PKG_cynara-dev= "cynara-dev"
481 PKG_libcynara-commons= "libcynara-commons"
482 PKG_libcynara-admin= "libcynara-admin"
483 PKG_libcynara-creds-commons= "libcynara-creds-commons"
484 PKG_libcynara-creds-socket= "libcynara-creds-socket"
485 PKG_libcynara-agent= "libcynara-agent"
486 PKG_libcynara-session= "libcynara-session"
488 require cynara-extraconf.inc