Add user cynara and fix post install
[scm/bb/meta-tizen.git] / meta-tizen-common-base / recipes-security / cynara / cynara.inc
1 DESCRIPTION = "Cynara service with client libraries"
2 HOMEPAGE = "http://nohomepage.org"
3 SECTION = "Security/Application Privilege"
4 LICENSE = "Apache-2.0"
5 PV = "0.6.1"
6
7 SRC_URI = ""
8
9 S = "${WORKDIR}/git"
10
11 inherit manifest autotools-brokensep useradd systemd
12
13 BBCLASSEXTEND = ""
14 PROVIDES = ""
15
16 SYSTEMD_SERVICE_${PN} = "cynara.service"
17
18 CXXFLAGS_prepend = " -DCYNARA_STATE_PATH='\"${localstatedir}/cynara/\"' -DCYNARA_LIB_PATH='\"${prefix}/lib/cynara/\"' -DCYNARA_TESTS_DIR='\"${prefix}/share/cynara/tests/\"' -DCYNARA_CONFIGURATION_DIR='\"${sysconfdir}/cynara/\"' -DCYNARA_VERSION='\"0.6.1\"'"
19
20 USERADD_PACKAGES = "cynara"
21
22 USERADD_PARAM_${PN} = "   -u 9996 -d /var/lib/empty -s /sbin/nologin -r cynara"
23
24 #PROVIDES by libcynara-creds-socket
25 PROVIDES += "libcynara-creds-socket"
26
27
28 #PROVIDES by cynara-tests
29 PROVIDES += "cynara-tests"
30
31
32 #PROVIDES by libcynara-client
33 PROVIDES += "libcynara-client"
34
35
36 #PROVIDES by libcynara-creds-dbus
37 PROVIDES += "libcynara-creds-dbus"
38
39
40 #PROVIDES by cynara
41
42
43 #PROVIDES by cynara-dev
44 PROVIDES += "cynara-dev"
45
46
47 #PROVIDES by cyad
48 PROVIDES += "cyad"
49
50
51 #PROVIDES by libcynara-commons
52 PROVIDES += "libcynara-commons"
53
54
55 #PROVIDES by libcynara-admin
56 PROVIDES += "libcynara-admin"
57
58
59 #PROVIDES by libcynara-creds-commons
60 PROVIDES += "libcynara-creds-commons"
61
62
63 #PROVIDES by cynara-db-migration
64 PROVIDES += "cynara-db-migration"
65
66
67 #PROVIDES by libcynara-agent
68 PROVIDES += "libcynara-agent"
69
70
71 #PROVIDES by libcynara-session
72 PROVIDES += "libcynara-session"
73
74
75 RDEPENDS = ""
76 #RDEPENDS of cynara (${PN})
77 RDEPENDS_${PN} += "systemd"
78 RDEPENDS_${PN} += "default-ac-domains"
79 RDEPENDS_${PN} += "cynara-db-migration"
80 RDEPENDS_${PN} += "smack"
81 RDEPENDS_${PN} += "shadow"
82
83 #RDEPENDS of libcynara-client (lib${PN}-client)
84 RDEPENDS_lib${PN}-client += "cynara"
85
86 #RDEPENDS of libcynara-creds-dbus (lib${PN}-creds-dbus)
87 RDEPENDS_lib${PN}-creds-dbus += "dbus"
88
89 #RDEPENDS of cynara-dev (${PN}-dev)
90 RDEPENDS_${PN}-dev += "systemd"
91 RDEPENDS_${PN}-dev += "libcynara-client"
92 RDEPENDS_${PN}-dev += "dbus"
93 RDEPENDS_${PN}-dev += "libcynara-creds-dbus"
94 RDEPENDS_${PN}-dev += "libcynara-creds-commons"
95 RDEPENDS_${PN}-dev += "libcynara-commons"
96 RDEPENDS_${PN}-dev += "libcynara-admin"
97 RDEPENDS_${PN}-dev += "libcynara-creds-socket"
98 RDEPENDS_${PN}-dev += "libcynara-agent"
99 RDEPENDS_${PN}-dev += "libcynara-session"
100
101 #RDEPENDS of libcynara-admin (lib${PN}-admin)
102 RDEPENDS_lib${PN}-admin += "cynara"
103
104 #RDEPENDS of libcynara-agent (lib${PN}-agent)
105 RDEPENDS_lib${PN}-agent += "cynara"
106
107
108 DEPENDS = ""
109 #DEPENDS of cynara-tests
110 #DEPENDS of cynara
111 #DEPENDS of libcynara-creds-dbus
112 DEPENDS += "systemd"
113 inherit tizen_cmake
114 DEPENDS += "zip"
115 DEPENDS += "dbus"
116 inherit pkgconfig
117 DEPENDS += "gmock"
118 DEPENDS += "gtest"
119
120 CFLAGS_prepend = "-I ${S}/include "
121
122
123 do_prep() {
124  cd ${S}
125  chmod -Rf a+rX,u+w,g-w,o-w ${S}
126  #setup -q
127  cp -a ${S}/packaging/cynara.manifest .
128  cp -a ${S}/packaging/libcynara-client.manifest .
129  cp -a ${S}/packaging/libcynara-admin.manifest .
130  cp -a ${S}/packaging/cynara-tests.manifest .
131  cp -a ${S}/packaging/libcynara-agent.manifest .
132  cp -a ${S}/packaging/libcynara-commons.manifest .
133  cp -a ${S}/packaging/libcynara-creds-commons.manifest .
134  cp -a ${S}/packaging/libcynara-creds-dbus.manifest .
135  cp -a ${S}/packaging/libcynara-creds-socket.manifest .
136  cp -a ${S}/packaging/libcynara-session.manifest .
137  cp -a ${S}/packaging/cynara-db-migration.manifest .
138  cp -a ${S}/packaging/cyad.manifest .
139  cp -a ${S}/packaging/cynara-db-chsgen.manifest .
140  cp -a test/db/db* .
141  
142  
143 }
144 do_patch_append() {
145     bb.build.exec_func('do_prep', d)
146 }
147
148 do_configure() {
149 }
150
151 do_compile() {
152  cd ${S}
153  LANG=C
154  export LANG
155  unset DISPLAY
156  LD_AS_NEEDED=1; export LD_AS_NEEDED ;
157  
158  
159  
160  export CXXFLAGS="$CXXFLAGS -DCYNARA_STATE_PATH=\\\"${localstatedir}/cynara/\\\" \
161                             -DCYNARA_LIB_PATH=\\\"${prefix}/lib/cynara/\\\" \
162                             -DCYNARA_TESTS_DIR=\\\"${prefix}/share/cynara/tests/\\\" \
163                             -DCYNARA_CONFIGURATION_DIR=\\\"${sysconfdir}/cynara/\\\" \
164                             -DCYNARA_VERSION=\\\"${PV}\\\""
165
166
167  export LDFLAGS="${LDFLAGS} -Wl,--rpath=${prefix}/lib "
168  
169  
170    cmake \
171          -DCMAKE_VERBOSE_MAKEFILE=ON \
172          -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
173          -DCMAKE_INSTALL_LIBDIR:PATH=${prefix}/lib \
174          -DINCLUDE_INSTALL_DIR:PATH=${prefix}/include \
175          -DLIB_INSTALL_DIR:PATH=${prefix}/lib \
176          -DSYSCONF_INSTALL_DIR:PATH=${sysconfdir} \
177          -DSHARE_INSTALL_PREFIX:PATH=${prefix}/share \
178          -DCMAKE_SKIP_RPATH:BOOL=ON \
179          -DBUILD_SHARED_LIBS:BOOL=ON \
180          -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain.cmake \
181          ${EXTRA_OECMAKE} . \
182          -DBUILD_TESTS=OFF \
183          -DCMAKE_BUILD_TYPE=RELEASE \
184          -DCMAKE_VERBOSE_MAKEFILE=ON \
185          -DDB_FILES_SMACK_LABEL="System"
186          
187 oe_runmake
188  
189  
190  
191 }
192
193 do_install() {
194  export RPM_BUILD_ROOT=${D}
195  cd ${S}
196  LANG=C
197  export LANG
198  unset DISPLAY
199  rm -rf ${D}
200  mkdir -p ${D}
201  
202  rm -rf ${D}
203  
204    oe_runmake \
205          DESTDIR=${D} \
206          INSTALL_ROOT=${D} \
207          BINDIR=${prefix}/bin \
208    install  
209    rm -f ${D}${infodir}/dir 
210    find ${D} -regex ".*\.la$" | xargs rm -f -- 
211    find ${D} -regex ".*\.a$" | xargs rm -f --
212  
213  mkdir -p ${D}/${sysconfdir}/cynara/
214  cp ./conf/creds.conf ${D}/${sysconfdir}/cynara//creds.conf
215  
216  mkdir -p ${D}/usr/lib/systemd/system/sockets.target.wants
217  mkdir -p ${D}/${localstatedir}/cynara/
218  mkdir -p ${D}${prefix}/share/cynara/tests//empty_db
219  mkdir -p ${D}${prefix}/lib/cynara//plugin/client
220  mkdir -p ${D}${prefix}/lib/cynara//plugin/service
221  
222  cp -a db* ${D}${prefix}/share/cynara/tests/
223  ln -s ../cynara.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara.socket
224  ln -s ../cynara-admin.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket
225  ln -s ../cynara-agent.socket ${D}/usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket
226  
227  
228 }
229
230 pkg_preinst_${PN}() {
231     #!/bin/sh -e
232
233     [ "x$D" != "x" ] && exit 1
234
235     if [ $1 -gt 1 ] ; then
236         OLDVERSION="$(rpm -q --qf '%{version}' cynara)"
237         sh $D${prefix}/sbin/cynara-db-migration upgrade -f 0.0.0 -t ${PV}
238     else
239         sh $D${prefix}/sbin/cynara-db-migration install -t ${PV}
240     fi
241
242 }
243
244 pkg_postinst_libcynara-agent() {
245     #!/bin/sh -e
246
247     [ "x$D" == "x" ] && ldconfig
248 }
249
250 pkg_postinst_${PN}() {
251     #!/bin/sh -e
252
253     chsmack -a System ${localstatedir}/cynara/
254
255
256 }
257
258 pkg_postinst_libcynara-creds-socket() {
259     #!/bin/sh -e
260
261     [ "x$D" == "x" ] && ldconfig
262 }
263
264 pkg_postinst_libcynara-client() {
265     #!/bin/sh -e
266
267     [ "x$D" == "x" ] && ldconfig
268 }
269
270 pkg_postinst_libcynara-creds-dbus() {
271     #!/bin/sh -e
272
273     [ "x$D" == "x" ] && ldconfig
274 }
275
276 pkg_postinst_libcynara-session() {
277     #!/bin/sh -e
278
279     [ "x$D" == "x" ] && ldconfig
280 }
281
282 pkg_postinst_libcynara-admin() {
283     #!/bin/sh -e
284
285     [ "x$D" == "x" ] && ldconfig
286 }
287
288 pkg_postinst_libcynara-creds-commons() {
289     #!/bin/sh -e
290
291     [ "x$D" == "x" ] && ldconfig
292 }
293
294 pkg_postinst_libcynara-commons() {
295     #!/bin/sh -e
296
297     [ "x$D" == "x" ] && ldconfig
298 }
299
300 pkg_prerm_${PN}() {
301     #!/bin/sh -e
302
303     if [ $1 = 0 ]; then
304         # unistall
305         systemctl stop cynara.service
306     fi
307
308 }
309
310 pkg_postrm_libcynara-creds-commons() {
311     #!/bin/sh -e
312
313     [ "x$D" == "x" ] && ldconfig
314 }
315
316 pkg_postrm_libcynara-creds-socket() {
317     #!/bin/sh -e
318
319     [ "x$D" == "x" ] && ldconfig
320 }
321
322 pkg_postrm_libcynara-agent() {
323     #!/bin/sh -e
324
325     [ "x$D" == "x" ] && ldconfig
326 }
327
328 pkg_postrm_libcynara-admin() {
329     #!/bin/sh -e
330
331     [ "x$D" == "x" ] && ldconfig
332 }
333
334 pkg_postrm_${PN}() {
335     #!/bin/sh -e
336
337     if [ $1 == 0 ]; then
338         $D${prefix}/sbin/cynara/cynara-db-migration uninstall -f ${PV}
339         userdel -r cynara > /dev/null 2>&1
340         groupdel cynara > /dev/null 2>&1
341         systemctl daemon-reload
342     fi
343
344 }
345
346 pkg_postrm_libcynara-creds-dbus() {
347     #!/bin/sh -e
348
349     [ "x$D" == "x" ] && ldconfig
350 }
351
352 pkg_postrm_libcynara-session() {
353     #!/bin/sh -e
354
355     [ "x$D" == "x" ] && ldconfig
356 }
357
358 pkg_postrm_libcynara-client() {
359     #!/bin/sh -e
360
361     [ "x$D" == "x" ] && ldconfig
362 }
363
364 pkg_postrm_libcynara-commons() {
365     #!/bin/sh -e
366
367     [ "x$D" == "x" ] && ldconfig
368 }
369
370 PACKAGES = "${PN}-dbg ${PN}-doc ${PN}-locale"
371 PACKAGES += " cynara-tests "
372 PACKAGES += " libcynara-client "
373 PACKAGES += " libcynara-creds-dbus "
374 PACKAGES += " cynara-db-migration "
375 PACKAGES += " cynara-dev "
376 PACKAGES += " cyad "
377 PACKAGES += " cynara "
378 PACKAGES += " libcynara-commons "
379 PACKAGES += " libcynara-admin "
380 PACKAGES += " libcynara-creds-commons "
381 PACKAGES += " libcynara-creds-socket "
382 PACKAGES += " libcynara-agent "
383 PACKAGES += " libcynara-session "
384
385 cynara-tests_files = ""
386 cynara-tests_files += "/usr/bin/cynara-tests"
387 cynara-tests_files += "/usr/bin/cynara-db-migration-tests"
388 cynara-tests_files += "${prefix}/share/cynara/tests/db*/*"
389 cynara-tests_files += "%attr(755,root,root) ${prefix}/share/cynara/tests/empty_db"
390 MANIFESTFILES_${PN}-tests = "cynara-tests.manifest"
391 DIRFILES_${PN}-tests = ""
392 DIRFILES_${PN}-tests += "%attr(755,root,root) ${prefix}/share/cynara/tests/empty_db"
393
394 libcynara-client_files = ""
395 libcynara-client_files += "${prefix}/lib/libcynara-client.so.*"
396 libcynara-client_files += "${prefix}/lib/libcynara-client-async.so.*"
397 libcynara-client_files += "${prefix}/lib/libcynara-client-commons.so.*"
398 libcynara-client_files += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/client"
399 MANIFESTFILES_lib${PN}-client = "libcynara-client.manifest"
400 DIRFILES_lib${PN}-client = ""
401 DIRFILES_lib${PN}-client += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/client"
402
403 libcynara-creds-dbus_files = ""
404 libcynara-creds-dbus_files += "${prefix}/lib/libcynara-creds-dbus.so.*"
405 MANIFESTFILES_lib${PN}-creds-dbus = "libcynara-creds-dbus.manifest"
406
407 cynara-db-migration_files = ""
408 cynara-db-migration_files += "${prefix}/sbin/cynara-db-migration"
409 cynara-db-migration_files += "${prefix}/sbin/cynara-db-chsgen"
410 MANIFESTFILES_${PN}-db-migration = "cynara-db-migration.manifest"
411
412 cynara-dev_files = ""
413 cynara-dev_files += "${prefix}/include/cynara/*.h"
414 cynara-dev_files += "${prefix}/include/cynara/log/*.h"
415 cynara-dev_files += "${prefix}/include/cynara/plugin/*.h"
416 cynara-dev_files += "${prefix}/include/cynara/types/*.h"
417 cynara-dev_files += "${prefix}/lib/pkgconfig/*.pc"
418 cynara-dev_files += "${prefix}/lib/*.so"
419
420 cyad_files = ""
421 cyad_files += "${prefix}/sbin/cyad"
422 MANIFESTFILES_cyad = "cyad.manifest"
423
424 cynara_files = ""
425 cynara_files += "/usr/bin/cynara"
426 cynara_files += "/usr/lib/systemd/system/cynara.service"
427 cynara_files += "/usr/lib/systemd/system/cynara.target"
428 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara.socket"
429 cynara_files += "/usr/lib/systemd/system/cynara.socket"
430 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara-admin.socket"
431 cynara_files += "/usr/lib/systemd/system/cynara-admin.socket"
432 cynara_files += "/usr/lib/systemd/system/sockets.target.wants/cynara-agent.socket"
433 cynara_files += "/usr/lib/systemd/system/cynara-agent.socket"
434 cynara_files += "%attr(700,cynara,cynara) ${localstatedir}/cynara/"
435 cynara_files += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/service"
436 MANIFESTFILES_${PN} = "cynara.manifest"
437 DIRFILES_${PN} = ""
438 DIRFILES_${PN} += "%attr(700,cynara,cynara) ${localstatedir}/cynara/"
439 DIRFILES_${PN} += "%attr(755,cynara,cynara) ${prefix}/lib/cynara/plugin/service"
440
441 libcynara-commons_files = ""
442 libcynara-commons_files += "${prefix}/lib/libcynara-commons.so.*"
443 libcynara-commons_files += "${prefix}/lib/libcynara-storage.so.*"
444 MANIFESTFILES_lib${PN}-commons = "libcynara-commons.manifest"
445
446 libcynara-admin_files = ""
447 libcynara-admin_files += "${prefix}/lib/libcynara-admin.so.*"
448 MANIFESTFILES_lib${PN}-admin = "libcynara-admin.manifest"
449
450 libcynara-creds-commons_files = ""
451 libcynara-creds-commons_files += "${prefix}/lib/libcynara-creds-commons.so.*"
452 libcynara-creds-commons_files += "${sysconfdir}/cynara/creds.conf"
453 MANIFESTFILES_lib${PN}-creds-commons = "libcynara-creds-commons.manifest"
454
455 libcynara-creds-socket_files = ""
456 libcynara-creds-socket_files += "${prefix}/lib/libcynara-creds-socket.so.*"
457 MANIFESTFILES_lib${PN}-creds-socket = "libcynara-creds-socket.manifest"
458
459 libcynara-agent_files = ""
460 libcynara-agent_files += "${prefix}/lib/libcynara-agent.so.*"
461 MANIFESTFILES_lib${PN}-agent = "libcynara-agent.manifest"
462
463 libcynara-session_files = ""
464 libcynara-session_files += "${prefix}/lib/libcynara-session.so.*"
465 MANIFESTFILES_lib${PN}-session = "libcynara-session.manifest"
466
467 FILES_${PN}-tests = "${cynara-tests_files}"
468 FILES_lib${PN}-client = "${libcynara-client_files}"
469 FILES_lib${PN}-creds-dbus = "${libcynara-creds-dbus_files}"
470 FILES_${PN}-db-migration = "${cynara-db-migration_files}"
471 FILES_${PN}-dev = "${cynara-dev_files}"
472 FILES_cyad = "${cyad_files}"
473 FILES_${PN} = "${cynara_files}"
474 FILES_lib${PN}-commons = "${libcynara-commons_files}"
475 FILES_lib${PN}-admin = "${libcynara-admin_files}"
476 FILES_lib${PN}-creds-commons = "${libcynara-creds-commons_files}"
477 FILES_lib${PN}-creds-socket = "${libcynara-creds-socket_files}"
478 FILES_lib${PN}-agent = "${libcynara-agent_files}"
479 FILES_lib${PN}-session = "${libcynara-session_files}"
480
481 PKG_cynara-tests= "cynara-tests"
482 PKG_libcynara-client= "libcynara-client"
483 PKG_libcynara-creds-dbus= "libcynara-creds-dbus"
484 PKG_cynara-db-migration= "cynara-db-migration"
485 PKG_cynara-dev= "cynara-dev"
486 PKG_cyad= "cyad"
487 PKG_cynara= "cynara"
488 PKG_libcynara-commons= "libcynara-commons"
489 PKG_libcynara-admin= "libcynara-admin"
490 PKG_libcynara-creds-commons= "libcynara-creds-commons"
491 PKG_libcynara-creds-socket= "libcynara-creds-socket"
492 PKG_libcynara-agent= "libcynara-agent"
493 PKG_libcynara-session= "libcynara-session"
494
495 require cynara-extraconf.inc
496