rsyslog_8.2006.0.bb 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. SUMMARY = "Rsyslog is an enhanced multi-threaded syslogd"
  2. DESCRIPTION = "\
  3. Rsyslog is an enhanced syslogd supporting, among others, MySQL,\
  4. PostgreSQL, failover log destinations, syslog/tcp, fine grain\
  5. output format control, high precision timestamps, queued operations\
  6. and the ability to filter on any message part. It is quite\
  7. compatible to stock sysklogd and can be used as a drop-in replacement.\
  8. Its advanced features make it suitable for enterprise-class,\
  9. encryption protected syslog relay chains while at the same time being\
  10. very easy to setup for the novice user."
  11. DEPENDS = "zlib libestr libfastjson bison-native flex-native liblogging"
  12. HOMEPAGE = "http://www.rsyslog.com/"
  13. LICENSE = "GPLv3 & LGPLv3 & Apache-2.0"
  14. LIC_FILES_CHKSUM = "file://COPYING;md5=51d9635e646fb75e1b74c074f788e973 \
  15. file://COPYING.LESSER;md5=cb7903f1e5c39ae838209e130dca270a \
  16. file://COPYING.ASL20;md5=052f8a09206615ab07326ff8ce2d9d32\
  17. "
  18. SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.tar.gz \
  19. file://initscript \
  20. file://rsyslog.conf \
  21. file://rsyslog.logrotate \
  22. file://use-pkgconfig-to-check-libgcrypt.patch \
  23. file://run-ptest \
  24. "
  25. SRC_URI_append_libc-musl = " \
  26. file://0001-Include-sys-time-h.patch \
  27. "
  28. SRC_URI[md5sum] = "33de768941953ceeca9d1a437b47891b"
  29. SRC_URI[sha256sum] = "d9589e64866f2fdc5636af4cae9d60ebf1e3257bb84b81ee953ede6a05878e97"
  30. UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases"
  31. UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
  32. inherit autotools pkgconfig systemd update-rc.d ptest
  33. EXTRA_OECONF += "--disable-generate-man-pages ap_cv_atomic_builtins=yes"
  34. EXTRA_OECONF += "--enable-imfile-tests"
  35. EXTRA_OECONF_remove_mipsarch = "ap_cv_atomic_builtins=yes"
  36. EXTRA_OECONF_remove_powerpc = "ap_cv_atomic_builtins=yes"
  37. EXTRA_OECONF_remove_riscv32 = "ap_cv_atomic_builtins=yes"
  38. # first line is default yes in configure
  39. PACKAGECONFIG ??= " \
  40. rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
  41. fmhttp imdiag gnutls imfile \
  42. ${@bb.utils.filter('DISTRO_FEATURES', 'snmp systemd', d)} \
  43. ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'testbench relp ${VALGRIND}', '', d)} \
  44. "
  45. # default yes in configure
  46. PACKAGECONFIG[relp] = "--enable-relp,--disable-relp,librelp,"
  47. PACKAGECONFIG[rsyslogd] = "--enable-rsyslogd,--disable-rsyslogd,,"
  48. PACKAGECONFIG[rsyslogrt] = "--enable-rsyslogrt,--disable-rsyslogrt,,"
  49. PACKAGECONFIG[fmhttp] = "--enable-fmhttp,--disable-fmhttp,curl,"
  50. PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,,"
  51. PACKAGECONFIG[klog] = "--enable-klog,--disable-klog,,"
  52. PACKAGECONFIG[regexp] = "--enable-regexp,--disable-regexp,,"
  53. PACKAGECONFIG[uuid] = "--enable-uuid,--disable-uuid,util-linux,"
  54. PACKAGECONFIG[libgcrypt] = "--enable-libgcrypt,--disable-libgcrypt,libgcrypt,"
  55. PACKAGECONFIG[testbench] = "--enable-testbench --enable-omstdout,--disable-testbench --disable-omstdout,,"
  56. # default no in configure
  57. PACKAGECONFIG[debug] = "--enable-debug,--disable-debug,,"
  58. PACKAGECONFIG[imdiag] = "--enable-imdiag,--disable-imdiag,,"
  59. PACKAGECONFIG[imfile] = "--enable-imfile,--disable-imfile,,"
  60. PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp,"
  61. PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
  62. PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
  63. PACKAGECONFIG[imjournal] = "--enable-imjournal,--disable-imjournal,"
  64. PACKAGECONFIG[mmjsonparse] = "--enable-mmjsonparse,--disable-mmjsonparse,"
  65. PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5,"
  66. PACKAGECONFIG[postgresql] = "--enable-pgsql,--disable-pgsql,postgresql,"
  67. PACKAGECONFIG[libdbi] = "--enable-libdbi,--disable-libdbi,libdbi,"
  68. PACKAGECONFIG[mail] = "--enable-mail,--disable-mail,,"
  69. PACKAGECONFIG[valgrind] = ",--without-valgrind-testbench,valgrind,"
  70. do_configure_prepend() {
  71. sed -i -e 's|python |python3 |g' ${S}/tests/*.sh
  72. sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/*.py
  73. sed -i -e 's|/usr/bin/env python|/usr/bin/env python3|g' ${S}/tests/testsuites/*.py
  74. }
  75. TESTDIR = "tests"
  76. do_compile_ptest() {
  77. echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${TESTDIR}/Makefile
  78. oe_runmake -C ${TESTDIR} buildtest-TESTS
  79. }
  80. do_install_ptest() {
  81. # install the tests
  82. cp -rf ${S}/${TESTDIR} ${D}${PTEST_PATH}
  83. cp -rf ${B}/${TESTDIR} ${D}${PTEST_PATH}
  84. # do NOT need to rebuild Makefile itself
  85. sed -i 's/^Makefile:.*$/Makefile:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
  86. # do NOT need to rebuild $(check_PROGRAMS)
  87. sed -i 's/^check-TESTS:.*$/check-TESTS:/' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
  88. # fix the srcdir, top_srcdir
  89. sed -i 's,^\(srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
  90. sed -i 's,^\(top_srcdir = \).*,\1${PTEST_PATH}/tests,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
  91. # fix the abs_top_builddir
  92. sed -i 's,^\(abs_top_builddir = \).*,\1${PTEST_PATH}/,' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
  93. # install test-driver
  94. install -m 644 ${S}/test-driver ${D}${PTEST_PATH}
  95. # install necessary links
  96. install -d ${D}${PTEST_PATH}/tools
  97. ln -sf ${sbindir}/rsyslogd ${D}${PTEST_PATH}/tools/rsyslogd
  98. install -d ${D}${PTEST_PATH}/runtime
  99. install -d ${D}${PTEST_PATH}/runtime/.libs
  100. (
  101. cd ${D}/${libdir}/rsyslog
  102. allso="*.so"
  103. for i in $allso; do
  104. ln -sf ${libdir}/rsyslog/$i ${D}${PTEST_PATH}/runtime/.libs/$i
  105. done
  106. )
  107. # fix the module load path with runtime/.libs
  108. find ${D}${PTEST_PATH}/${TESTDIR} -name "*.conf" -o -name "*.sh" -o -name "*.c" | xargs \
  109. sed -i -e 's:../plugins/.*/.libs/:../runtime/.libs/:g'
  110. # fix the python3 path for tests/set-envar
  111. sed -i -e s:${HOSTTOOLS_DIR}:${bindir}:g ${D}${PTEST_PATH}/tests/set-envvars
  112. }
  113. do_install_append() {
  114. install -d "${D}${sysconfdir}/init.d"
  115. install -d "${D}${sysconfdir}/logrotate.d"
  116. install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
  117. install -m 644 ${WORKDIR}/rsyslog.conf ${D}${sysconfdir}/rsyslog.conf
  118. install -m 644 ${WORKDIR}/rsyslog.logrotate ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
  119. sed -i -e "s#@BINDIR@#${bindir}#g" ${D}${sysconfdir}/logrotate.d/logrotate.rsyslog
  120. if ${@bb.utils.contains('PACKAGECONFIG', 'imjournal', 'true', 'false', d)}; then
  121. install -d 0755 ${D}${sysconfdir}/rsyslog.d
  122. echo '$ModLoad imjournal' >> ${D}${sysconfdir}/rsyslog.d/imjournal.conf
  123. fi
  124. if ${@bb.utils.contains('PACKAGECONFIG', 'mmjsonparse', 'true', 'false', d)}; then
  125. install -d 0755 ${D}${sysconfdir}/rsyslog.d
  126. echo '$ModLoad mmjsonparse' >> ${D}${sysconfdir}/rsyslog.d/mmjsonparse.conf
  127. fi
  128. if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
  129. sed -i -e "s#;Requires=syslog.socket#Requires=syslog.socket#g" ${D}${systemd_system_unitdir}/rsyslog.service
  130. sed -i -e "s#;Alias=syslog.service#Alias=syslog.service#g" ${D}${systemd_system_unitdir}/rsyslog.service
  131. fi
  132. }
  133. FILES_${PN} += "${bindir}"
  134. INITSCRIPT_NAME = "syslog"
  135. INITSCRIPT_PARAMS = "defaults"
  136. CONFFILES_${PN} = "${sysconfdir}/rsyslog.conf"
  137. RCONFLICTS_${PN} = "busybox-syslog sysklogd syslog-ng"
  138. RPROVIDES_${PN} += "${PN}-systemd"
  139. RREPLACES_${PN} += "${PN}-systemd"
  140. RCONFLICTS_${PN} += "${PN}-systemd"
  141. SYSTEMD_SERVICE_${PN} = "${BPN}.service"
  142. RDEPENDS_${PN} += "logrotate"
  143. # for rsyslog-ptest
  144. VALGRIND = "valgrind"
  145. # valgrind supports armv7 and above
  146. VALGRIND_armv4 = ''
  147. VALGRIND_armv5 = ''
  148. VALGRIND_armv6 = ''
  149. # X32 isn't supported by valgrind at this time
  150. VALGRIND_linux-gnux32 = ''
  151. VALGRIND_linux-muslx32 = ''
  152. # Disable for some MIPS variants
  153. VALGRIND_mipsarchr6 = ''
  154. VALGRIND_linux-gnun32 = ''
  155. # Disable for powerpc64 with musl
  156. VALGRIND_libc-musl_powerpc64 = ''
  157. VALGRIND_libc-musl_powerpc64le = ''
  158. # RISC-V support for valgrind is not there yet
  159. VALGRIND_riscv64 = ""
  160. VALGRIND_riscv32 = ""
  161. RDEPENDS_${PN}-ptest += "\
  162. make diffutils gzip bash gawk coreutils procps \
  163. libgcc python3-core python3-io \
  164. "
  165. RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}"