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