SUMMARY = "Dynamic firewall daemon with a D-Bus interface" HOMEPAGE = "https://firewalld.org/" BUGTRACKER = "https://github.com/firewalld/firewalld/issues" UPSTREAM_CHECK_URI = "https://github.com/firewalld/firewalld/releases" LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \ file://firewalld.init \ " SRC_URI[sha256sum] = "7e3db6ed84919dd10add39cc7a28d97b5a9e27a53aeb73abf8af01ef082b74f9" # glib-2.0-native is needed for GSETTINGS_RULES autoconf macro from gsettings.m4 DEPENDS = "intltool-native glib-2.0-native" inherit gettext autotools bash-completion python3native gsettings systemd update-rc.d PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd" PACKAGECONFIG[docs] = "--with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog,--disable-docs,libxslt-native docbook-xsl-stylesheets-native" PACKAGES += "${PN}-zsh-completion" # iptables, ip6tables, ebtables, and ipset *should* be unnecessary # when the nftables backend is available, because nftables supersedes all of them. # However we still need iptables and ip6tables to be available otherwise any # application relying on "direct passthrough" rules (such as docker) will break. # /etc/sysconfig/firewalld is a Red Hat-ism, only referenced by # the Red Hat-specific init script which we aren't using, so we disable that. EXTRA_OECONF = "\ --without-ipset \ --with-iptables=${sbindir}/iptables \ --with-iptables-restore=${sbindir}/iptables-restore \ --with-ip6tables=${sbindir}/ip6tables \ --with-ip6tables-restore=${sbindir}/ip6tables-restore \ --without-ebtables \ --without-ebtables-restore \ --disable-sysconfig \ " INITSCRIPT_NAME = "firewalld" SYSTEMD_SERVICE_${PN} = "firewalld.service" do_install_append() { if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then : else # firewalld ships an init script but it contains Red Hat-isms, replace it with our own rm -rf ${D}${sysconfdir}/rc.d/ install -d ${D}${sysconfdir}/init.d install -m0755 ${WORKDIR}/firewalld.init ${D}${sysconfdir}/init.d/firewalld fi # We ran ./configure with PYTHON pointed at the binary inside $STAGING_BINDIR_NATIVE # so now we need to fix up any references to point at the proper path in the image. # This hack is also in distutils.bbclass, but firewalld doesn't use distutils/setuptools. if [ ${PN} != "${BPN}-native" ]; then sed -i -e s:${STAGING_BINDIR_NATIVE}/python3-native/python3:${bindir}/python3:g \ ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml fi sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g \ ${D}${bindir}/* ${D}${sbindir}/* ${D}${sysconfdir}/firewalld/*.xml # This file contains Red Hat-isms. Modules get loaded without it. rm -f ${D}${sysconfdir}/modprobe.d/firewalld-sysctls.conf } FILES_${PN} += "\ ${PYTHON_SITEPACKAGES_DIR}/firewall \ ${nonarch_libdir}/firewalld \ ${datadir}/dbus-1 \ ${datadir}/polkit-1 \ ${datadir}/metainfo \ " FILES_${PN}-zsh-completion = "${datadir}/zsh/site-functions" RDEPENDS_${PN} = "\ nftables \ iptables \ python3-core \ python3-io \ python3-fcntl \ python3-shell \ python3-syslog \ python3-xml \ python3-dbus \ python3-slip-dbus \ python3-decorator \ python3-pygobject \ nftables-python \ "