blob: 4584944150ace47591062120c6e4227837cd2c32 [file] [log] [blame]
Andrew Geissler9aee5002022-03-30 16:27:02 +00001SUMMARY = "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"
Patrick Williamsb58112e2024-03-07 11:16:36 -060013LIC_FILES_CHKSUM = "file://COPYING;md5=924958cefc9f7de3e0b818832b8a1cec"
Andrew Geissler9aee5002022-03-30 16:27:02 +000014
15# util-linux added to get libuuid
Patrick Williamsb58112e2024-03-07 11:16:36 -060016DEPENDS = "libpcre flex glib-2.0 openssl util-linux bison-native curl"
Andrew Geissler9aee5002022-03-30 16:27:02 +000017
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 \
Andrew Geisslerfc113ea2023-03-31 09:59:46 -050025 file://0001-Fix-buildpaths-warning.patch \
Patrick Williams44b3caf2024-04-12 16:51:14 -050026 file://0001-macros-guard-ipv6-code-with-SYSLOG_NG_ENABLE_IPV6.patch \
Andrew Geissler9aee5002022-03-30 16:27:02 +000027"
Patrick Williams864cc432023-02-09 14:54:44 -060028SRC_URI:append:powerpc64le = " file://0001-plugin.c-workaround-powerpc64le-segfaults-error.patch"
Andrew Geissler9aee5002022-03-30 16:27:02 +000029
Patrick Williamsb58112e2024-03-07 11:16:36 -060030SRC_URI[sha256sum] = "b69e3360dfb96a754a4e1cbead4daef37128b1152a23572356db4ab64a475d4f"
Andrew Geissler9aee5002022-03-30 16:27:02 +000031
32UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
33
Patrick Williams73bd93f2024-02-20 08:07:48 -060034CVE_STATUS[CVE-2022-38725] = "cpe-incorrect: cve-check wrongly matches cpe:2.3:a:oneidentity:syslog-ng:*:*:*:*:premium:*:*:* < 7.0.32"
35
Andrew Geissler9aee5002022-03-30 16:27:02 +000036inherit autotools gettext systemd pkgconfig update-rc.d multilib_header
37
38EXTRA_OECONF = " \
39 --enable-dynamic-linking \
40 --disable-sub-streams \
41 --disable-pacct \
42 --localstatedir=${localstatedir}/lib/${BPN} \
43 --sysconfdir=${sysconfdir}/${BPN} \
44 --with-module-dir=${libdir}/${BPN} \
45 --with-sysroot=${STAGING_DIR_HOST} \
46 --without-mongoc --disable-mongodb \
47 --with-librabbitmq-client=no \
48 --disable-python \
49 --disable-java --disable-java-modules \
50 --with-pidfile-dir=${localstatedir}/run/${BPN} \
51"
52
53PACKAGECONFIG ??= " \
54 ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)} \
55"
56PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
57PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_unitdir}/system/,--disable-systemd --without-systemdsystemunitdir,systemd,"
58PACKAGECONFIG[linux-caps] = "--enable-linux-caps,--disable-linux-caps,libcap,"
59PACKAGECONFIG[dbi] = "--enable-sql,--disable-sql,libdbi,"
60PACKAGECONFIG[spoof-source] = "--enable-spoof-source --with-libnet=${STAGING_BINDIR_CROSS},--disable-spoof-source,libnet,"
61PACKAGECONFIG[http] = "--enable-http,--disable-http,curl,"
62PACKAGECONFIG[smtp] = "--enable-smtp --with-libesmtp=${STAGING_LIBDIR},--disable-smtp,libesmtp,"
63PACKAGECONFIG[json] = "--enable-json,--disable-json,json-c,"
64PACKAGECONFIG[tcp-wrapper] = "--enable-tcp-wrapper,--disable-tcp-wrapper,tcp-wrappers,"
65PACKAGECONFIG[geoip] = "--enable-geoip,--disable-geoip,geoip,"
66PACKAGECONFIG[native] = "--enable-native,--disable-native,,"
67
68do_configure:prepend() {
69 olddir=$(pwd)
70 cd ${AUTOTOOLS_SCRIPT_PATH}
71
72 ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} -I ${S}/m4 ${ACLOCALEXTRAPATH} || die "extra autoreconf execution failed."
73
74 cd $olddir
75}
76
77do_install:append() {
78 install -d ${D}${sysconfdir}/${BPN}
79 install -d ${D}${sysconfdir}/init.d
80 install -m 755 ${WORKDIR}/initscript ${D}${sysconfdir}/init.d/syslog
81
82 install -d ${D}${sysconfdir}/default/volatiles/
83 install -m 644 ${WORKDIR}/volatiles.03_syslog-ng ${D}${sysconfdir}/default/volatiles/03_syslog-ng
84 install -d ${D}${sysconfdir}/tmpfiles.d/
85 install -m 644 ${WORKDIR}/syslog-ng-tmp.conf ${D}${sysconfdir}/tmpfiles.d/syslog-ng.conf
86
87 install -d ${D}${localstatedir}/lib/${BPN}
88 # Remove /var/run as it is created on startup
89 rm -rf ${D}${localstatedir}/run
90
Patrick Williams8e7b46e2023-05-01 14:19:06 -050091 # it causes install conflict when multilib enabled
92 # since python support is disabled, not deliver it
93 rm -f ${D}${bindir}/syslog-ng-update-virtualenv
94
Andrew Geissler9aee5002022-03-30 16:27:02 +000095 # support for systemd
96 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
97 install -m 644 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
98
99 install -d ${D}${systemd_unitdir}/system/
100 install -m 644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
101 install -m 644 ${S}/contrib/systemd/${BPN}@default ${D}${sysconfdir}/default/${BPN}@default
102
103 sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
104 sed -i -e 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
105 sed -i -e 's,@BASEBINDIR@,${base_bindir},g' ${D}${systemd_unitdir}/system/${BPN}@.service ${D}${sysconfdir}/default/${BPN}@default
106
107 install -d ${D}${systemd_unitdir}/system/multi-user.target.wants
108 ln -sf ../${BPN}@.service ${D}${systemd_unitdir}/system/multi-user.target.wants/${BPN}@default.service
109 else
110 install -m 644 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
111 fi
112
113 oe_multilib_header syslog-ng/syslog-ng-config.h
114}
115
116FILES:${PN} += "${datadir}/include/scl/ ${datadir}/xsd ${datadir}/tools ${systemd_unitdir}/system/multi-user.target.wants/*"
117RDEPENDS:${PN} += "gawk ${@bb.utils.contains('PACKAGECONFIG','json','${PN}-jconf','',d)}"
118
119FILES:${PN}-jconf += " \
120${datadir}/${BPN}/include/scl/cim \
121${datadir}/${BPN}/include/scl/elasticsearch \
122${datadir}/${BPN}/include/scl/ewmm \
123${datadir}/${BPN}/include/scl/graylog2 \
124${datadir}/${BPN}/include/scl/loggly \
125${datadir}/${BPN}/include/scl/logmatic \
126"
127
128# This overcomes the syslog-ng rdepends on syslog-ng-dev QA Error
129PACKAGES =+ "${PN}-jconf ${PN}-libs ${PN}-libs-dev"
130RPROVIDES:${PN}-dbg += "${PN}-libs-dbg"
131FILES:${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
132FILES:${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
133FILES:${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
134FILES:${PN} += "${systemd_unitdir}/system/*.service"
135INSANE_SKIP:${PN}-libs = "dev-so"
136RDEPENDS:${PN} += "${PN}-libs"
137
138CONFFILES:${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
139
140RCONFLICTS:${PN} = "busybox-syslog sysklogd rsyslog"
141RCONFLICTS:${PN}-libs = "busybox-syslog sysklogd rsyslog"
142
143RPROVIDES:${PN} += "${PN}-systemd"
144RREPLACES:${PN} += "${PN}-systemd"
145RCONFLICTS:${PN} += "${PN}-systemd"
146SYSTEMD_SERVICE:${PN} = "${BPN}@.service"
147
148INITSCRIPT_NAME = "syslog"
149INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 90 0 1 6 ."