syslog-ng.inc 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. SUMMARY = "Alternative system logger daemon"
  2. DESCRIPTION = "syslog-ng, as the name shows, is a syslogd replacement, \
  3. but with new functionality for the new generation. The original syslogd \
  4. allows messages only to be sorted based on priority/facility pairs; \
  5. syslog-ng adds the possibility to filter based on message contents using \
  6. regular expressions. The new configuration scheme is intuitive and powerful. \
  7. Forwarding logs over TCP and remembering all forwarding hops makes it \
  8. ideal for firewalled environments. \
  9. "
  10. HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
  11. LICENSE = "GPLv2 & LGPLv2.1"
  12. LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
  13. # util-linux added to get libuuid
  14. DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native"
  15. # We expect the recipe to add anything specific for that version to these defaults.
  16. #
  17. SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.tar.gz \
  18. file://syslog-ng.conf.systemd \
  19. file://syslog-ng.conf.sysvinit \
  20. file://initscript \
  21. file://volatiles.03_syslog-ng \
  22. file://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
  23. "
  24. UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
  25. inherit autotools gettext systemd pkgconfig update-rc.d multilib_header
  26. EXTRA_OECONF = " \
  27. --enable-dynamic-linking \
  28. --disable-sub-streams \
  29. --disable-pacct \
  30. --localstatedir=${localstatedir}/lib/${BPN} \
  31. --sysconfdir=${sysconfdir}/${BPN} \
  32. --with-module-dir=${libdir}/${BPN} \
  33. --with-sysroot=${STAGING_DIR_HOST} \
  34. --without-mongoc --disable-mongodb \
  35. --with-librabbitmq-client=no \
  36. --disable-python \
  37. --disable-java --disable-java-modules \
  38. --with-pidfile-dir=${localstatedir}/run/${BPN} \
  39. ${CONFIG_TLS} \
  40. "
  41. CONFIG_TLS = "--enable-thread-tls"
  42. CONFIG_TLS_arm = "${@oe.utils.conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
  43. PACKAGECONFIG ??= " \
  44. ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
  45. "
  46. PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
  47. PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
  48. PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
  49. PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
  50. PACKAGECONFIG[libnet] = "--enable-libnet --with-libnet=${STAGING_BINDIR_CROSS},--disable-libnet,libnet,"
  51. PACKAGECONFIG[http] = "--enable-http,--disable-http,curl,"
  52. PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
  53. PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
  54. PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
  55. PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
  56. PACKAGECONFIG[native] = "--enable-native,--disable-native,,"
  57. do_configure_prepend() {
  58. olddir=$(pwd)
  59. cd ${AUTOTOOLS_SCRIPT_PATH}
  60. ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed."
  61. cd $olddir
  62. }
  63. do_install_append() {
  64. install -d ${D}${sysconfdir}/${BPN}
  65. install -d ${D}${sysconfdir}/init.d
  66. install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
  67. install -d ${D}${sysconfdir}/default/volatiles/
  68. install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
  69. install -d ${D}${sysconfdir}/tmpfiles.d/
  70. install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
  71. install -d ${D}${localstatedir}/lib/${BPN}
  72. # Remove /var/run as it is created on startup
  73. rm -rf ${D}${localstatedir}/run
  74. # support for systemd
  75. if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
  76. install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
  77. install -d ${D}${systemd_unitdir}/system/
  78. install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
  79. install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
  80. sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
  81. sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
  82. sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
  83. install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
  84. ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
  85. else
  86. install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
  87. fi
  88. oe_multilib_header syslog-ng/syslog-ng-config.h
  89. }
  90. FILES_${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
  91. RDEPENDS_${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
  92. FILES_${PN}-jconf += " \
  93. ${datadir}/${BPN}/include/scl/cim \
  94. ${datadir}/${BPN}/include/scl/elasticsearch \
  95. ${datadir}/${BPN}/include/scl/ewmm \
  96. ${datadir}/${BPN}/include/scl/graylog2 \
  97. ${datadir}/${BPN}/include/scl/loggly \
  98. ${datadir}/${BPN}/include/scl/logmatic \
  99. "
  100. # This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
  101. PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
  102. RPROVIDES_${PN}-dbg += "${PN}-libs-dbg"
  103. FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
  104. FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
  105. FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
  106. FILES_${PN} += "${systemd_unitdir}/system/*.service"
  107. INSANE_SKIP_${PN}-libs = "dev-so"
  108. RDEPENDS_${PN} += "${PN}-libs"
  109. CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
  110. RCONFLICTS_${PN} = "busybox-syslog sysklogd rsyslog"
  111. RCONFLICTS_${PN}-libs = "busybox-syslog sysklogd rsyslog"
  112. RPROVIDES_${PN} += "${PN}-systemd"
  113. RREPLACES_${PN} += "${PN}-systemd"
  114. RCONFLICTS_${PN} += "${PN}-systemd"
  115. SYSTEMD_SERVICE_${PN} = "${BPN}@.service"
  116. INITSCRIPT_NAME = "syslog"
  117. INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."