summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-08-26 12:45:54 +0100
committerSam James <sam@gentoo.org>2024-08-26 12:47:12 +0100
commit033b982f33185124cd23e61727e15bb01bad4dbe (patch)
treeade5ee763300d17499f1ac5ce895db4b08455c5b /net-firewall
parentprofiles/mips: mask dev-libs/libisoburn[frontend-optional] (diff)
downloadgentoo-033b982f33185124cd23e61727e15bb01bad4dbe.tar.gz
gentoo-033b982f33185124cd23e61727e15bb01bad4dbe.tar.bz2
gentoo-033b982f33185124cd23e61727e15bb01bad4dbe.zip
net-firewall/firewalld: add 2.2.1
* Switch from PyQt5 -> PyQt6 (this is long overdue) * Drop iptables support as it's deprecated, will be removed upstream in firewalld soon, but also, the USE didn't enforce the (default) chosen in the backend anyway. See bug #930549 too where it further needed nftables to be installed anyway. Closes: https://bugs.gentoo.org/930549 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'net-firewall')
-rw-r--r--net-firewall/firewalld/Manifest1
-rw-r--r--net-firewall/firewalld/files/firewalld-2.2.1-systemd-service.patch19
-rw-r--r--net-firewall/firewalld/firewalld-2.2.1.ebuild218
3 files changed, 238 insertions, 0 deletions
diff --git a/net-firewall/firewalld/Manifest b/net-firewall/firewalld/Manifest
index 58ee0e06b095..6d68316717a7 100644
--- a/net-firewall/firewalld/Manifest
+++ b/net-firewall/firewalld/Manifest
@@ -1 +1,2 @@
DIST firewalld-2.1.1.tar.bz2 1315222 BLAKE2B 064abfae1f2f1c5a63bbbbbec3357aa6e63936818fa2020ca882d1b834736b3735a32b0ab318e6de78b6f785cb4da0ee4e299956c922d9dbf6e7bd442e9bb2d6 SHA512 383e5ea3d451a28241e5a76f8d0efeeb8319663bdc5f680b68c5156ddb5145fac766a9ee9521c4af27b1df82861ca6f68ee81c0588b1dd6c4f6d4e4f5ca8fee1
+DIST firewalld-2.2.1.tar.bz2 1295501 BLAKE2B fc7bb401895bc39c34ec585468bdcc1b3c3f8eeb35c786c0cf7d886f456c99840107db73e8f611a7d7ab1db1408c6dc349a3d5eee2fbd1e624fe06dd8a558d91 SHA512 08117be01a25a8e263cf419d7b01a98c80b53108af68f6cfc1d900692e6124c37b9dd6feaf4bc3c6e3f27958a9ee45b9795c7f5a9250eb644b6e903f97672c8a
diff --git a/net-firewall/firewalld/files/firewalld-2.2.1-systemd-service.patch b/net-firewall/firewalld/files/firewalld-2.2.1-systemd-service.patch
new file mode 100644
index 000000000000..461dec825c94
--- /dev/null
+++ b/net-firewall/firewalld/files/firewalld-2.2.1-systemd-service.patch
@@ -0,0 +1,19 @@
+Drops the/an obsolete 'conflicts' line with old iptables services bug #833506
+Removes EnvironmentFile and FIREWALLD_ARGS variable
+===================================================================
+--- a/config/firewalld.service.in
++++ b/config/firewalld.service.in
+@@ -4,12 +4,10 @@
+ Wants=network-pre.target
+ After=dbus.service
+ After=polkit.service
+-Conflicts=iptables.service ip6tables.service ebtables.service ipset.service
+ Documentation=man:firewalld(1)
+
+ [Service]
+-EnvironmentFile=-/etc/sysconfig/firewalld
+-ExecStart=@sbindir@/firewalld --nofork --nopid $FIREWALLD_ARGS
++ExecStart=@sbindir@/firewalld --nofork --nopid
+ ExecReload=/bin/kill -HUP $MAINPID
+ # supress to log debug and error output also to /var/log/messages
+ StandardOutput=null
diff --git a/net-firewall/firewalld/firewalld-2.2.1.ebuild b/net-firewall/firewalld/firewalld-2.2.1.ebuild
new file mode 100644
index 000000000000..b0101d14758f
--- /dev/null
+++ b/net-firewall/firewalld/firewalld-2.2.1.ebuild
@@ -0,0 +1,218 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit bash-completion-r1 gnome2-utils linux-info optfeature
+inherit plocale python-single-r1 systemd xdg-utils
+
+DESCRIPTION="Firewall daemon with D-Bus interface providing a dynamic firewall"
+HOMEPAGE="https://firewalld.org/"
+SRC_URI="https://github.com/firewalld/firewalld/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv"
+IUSE="gui selinux test"
+# Tests are too unreliable in sandbox environment
+RESTRICT="!test? ( test ) test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ || ( >=sys-apps/openrc-0.11.5 sys-apps/openrc-navi sys-apps/systemd )
+ $(python_gen_cond_dep '
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ >=net-firewall/nftables-0.9.4[python,json]
+ gui? (
+ x11-libs/gtk+:3
+ dev-python/PyQt6[gui,widgets,${PYTHON_USEDEP}]
+ )
+ ')
+ net-firewall/nftables[xtables(+)]
+ selinux? ( sec-policy/selinux-firewalld )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-libs/glib:2
+"
+BDEPEND="
+ app-text/docbook-xml-dtd
+ >=dev-util/intltool-0.35
+ sys-devel/gettext
+"
+
+# Testsuite's Makefile.am calls missing(!)
+# ... but this seems to be consistent with the autoconf docs?
+# Needs more investigation: https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/autom4te-Invocation.html
+QA_AM_MAINTAINER_MODE=".*--run autom4te --language=autotest.*"
+
+PLOCALES="ar as ast bg bn_IN ca cs da de el en_GB en_US es et eu fa fi fr gl gu hi hr hu ia id it ja ka kn ko lt ml mr nl or pa pl pt pt_BR ro ru si sk sl sq sr sr@latin sv ta te tr uk zh_CN zh_TW"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.1-systemd-service.patch
+)
+
+pkg_setup() {
+ # See bug #830132 for the huge list
+ # We can probably narrow it down a bit but it's rather fragile
+ local CONFIG_CHECK="
+ ~NF_CONNTRACK ~NETFILTER_XT_MATCH_CONNTRACK
+ ~NETFILTER
+ ~NETFILTER_ADVANCED
+ ~NETFILTER_INGRESS
+ ~NF_NAT_MASQUERADE
+ ~NF_NAT_REDIRECT
+ ~NF_TABLES_INET
+ ~NF_TABLES_IPV4
+ ~NF_TABLES_IPV6
+ ~NF_CONNTRACK
+ ~NF_CONNTRACK_BROADCAST
+ ~NF_CONNTRACK_NETBIOS_NS
+ ~NF_CONNTRACK_TFTP
+ ~NF_CT_NETLINK
+ ~NF_CT_NETLINK_HELPER
+ ~NF_DEFRAG_IPV4
+ ~NF_DEFRAG_IPV6
+ ~NF_NAT
+ ~NF_NAT_TFTP
+ ~NF_REJECT_IPV4
+ ~NF_REJECT_IPV6
+ ~NF_SOCKET_IPV4
+ ~NF_SOCKET_IPV6
+ ~NF_TABLES
+ ~NF_TPROXY_IPV4
+ ~NF_TPROXY_IPV6
+ ~IP_NF_FILTER
+ ~IP_NF_IPTABLES
+ ~IP_NF_MANGLE
+ ~IP_NF_NAT
+ ~IP_NF_RAW
+ ~IP_NF_SECURITY
+ ~IP_NF_TARGET_MASQUERADE
+ ~IP_NF_TARGET_REJECT
+ ~IP6_NF_FILTER
+ ~IP6_NF_IPTABLES
+ ~IP6_NF_MANGLE
+ ~IP6_NF_NAT
+ ~IP6_NF_RAW
+ ~IP6_NF_SECURITY
+ ~IP6_NF_TARGET_MASQUERADE
+ ~IP6_NF_TARGET_REJECT
+ ~IP_SET
+ ~NETFILTER_CONNCOUNT
+ ~NETFILTER_NETLINK
+ ~NETFILTER_NETLINK_OSF
+ ~NETFILTER_NETLINK_QUEUE
+ ~NETFILTER_SYNPROXY
+ ~NETFILTER_XTABLES
+ ~NETFILTER_XT_CONNMARK
+ ~NETFILTER_XT_MATCH_CONNTRACK
+ ~NETFILTER_XT_MATCH_MULTIPORT
+ ~NETFILTER_XT_MATCH_STATE
+ ~NETFILTER_XT_NAT
+ ~NETFILTER_XT_TARGET_MASQUERADE
+ ~NFT_COMPAT
+ ~NFT_CT
+ ~NFT_FIB
+ ~NFT_FIB_INET
+ ~NFT_FIB_IPV4
+ ~NFT_FIB_IPV6
+ ~NFT_HASH
+ ~NFT_LIMIT
+ ~NFT_LOG
+ ~NFT_MASQ
+ ~NFT_NAT
+ ~NFT_QUEUE
+ ~NFT_QUOTA
+ ~NFT_REDIR
+ ~NFT_REJECT
+ ~NFT_REJECT_INET
+ ~NFT_REJECT_IPV4
+ ~NFT_REJECT_IPV6
+ ~NFT_SOCKET
+ ~NFT_SYNPROXY
+ ~NFT_TPROXY
+ ~NFT_TUNNEL
+ ~NFT_XFRM
+ "
+
+ # kernel >= 4.19 has a unified NF_CONNTRACK module, bug #692944
+ if kernel_is -lt 4 19; then
+ CONFIG_CHECK+=" ~NF_CONNTRACK_IPV4 ~NF_CONNTRACK_IPV6"
+ fi
+
+ # bug #831259
+ if kernel_is -le 5 4 ; then
+ CONFIG_CHECK+=" ~NF_TABLES_SET"
+ fi
+
+ # bug #853055
+ if kernel_is -lt 5 18 ; then
+ CONFIG_CHECK+=" ~NFT_COUNTER"
+ fi
+
+ # bug #926685
+ if kernel_is -le 6 1 ; then
+ CONFIG_CHECK+=" ~NFT_OBJREF"
+ fi
+
+ linux-info_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ plocale_find_changes "po" "" ".po" || die
+ plocale_get_locales | sed -e 's/ /\n/g' > po/LINGUAS
+}
+
+src_configure() {
+ python_setup
+
+ local myeconfargs=(
+ --enable-systemd
+ --with-systemd-unitdir="$(systemd_get_systemunitdir)"
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+ python_optimize
+
+ # Get rid of junk
+ rm -rf "${ED}"/etc/sysconfig/ || die
+
+ # For non-gui installs we need to remove GUI bits
+ if ! use gui; then
+ rm -rf "${ED}"/etc/xdg/autostart || die
+ rm -f "${ED}"/usr/bin/firewall-applet || die
+ rm -f "${ED}"/usr/bin/firewall-config || die
+ rm -rf "${ED}"/usr/share/applications || die
+ rm -rf "${ED}"/usr/share/icons || die
+ fi
+
+ newinitd "${FILESDIR}"/firewalld.init firewalld
+}
+
+pkg_preinst() {
+ gnome2_schemas_savelist
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+ gnome2_schemas_update
+
+ # bug #833569
+ optfeature "changing zones with NetworkManager" gnome-extra/nm-applet
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+ gnome2_schemas_update
+}