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