From: Peter Kjellerstedt Date: Thu, 19 Jul 2018 18:19:38 +0000 (+0200) Subject: iptables: Split the iptables modules into separate packages X-Git-Tag: lucaceresoli/bug-15201-perf-libtraceevent-missing~17183 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2e99caca64704d1ec51f4f65048d945e5ff1384f;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git iptables: Split the iptables modules into separate packages By splitting the iptables modules into separate packages it is possible to pick and choose the modules to install and thereby reduce the total size of the installed modules. Backwards compatibility is maintained by adding a recommendation of iptables-modules, which is a meta package that depends on all the generated packages. Signed-off-by: Peter Kjellerstedt Signed-off-by: Ross Burton --- diff --git a/meta/recipes-extended/iptables/iptables_1.6.2.bb b/meta/recipes-extended/iptables/iptables_1.6.2.bb index 38a83d2b323..e00824f7634 100644 --- a/meta/recipes-extended/iptables/iptables_1.6.2.bb +++ b/meta/recipes-extended/iptables/iptables_1.6.2.bb @@ -7,17 +7,6 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263\ file://iptables/iptables.c;beginline=13;endline=25;md5=c5cffd09974558cf27d0f763df2a12dc" -RRECOMMENDS_${PN} = "kernel-module-x-tables \ - kernel-module-ip-tables \ - kernel-module-iptable-filter \ - kernel-module-iptable-nat \ - kernel-module-nf-defrag-ipv4 \ - kernel-module-nf-conntrack \ - kernel-module-nf-conntrack-ipv4 \ - kernel-module-nf-nat \ - kernel-module-ipt-masquerade" -FILES_${PN} =+ "${libdir}/xtables/ ${datadir}/xtables" - SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \ file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \ file://0002-configure.ac-only-check-conntrack-when-libnfnetlink-enabled.patch \ @@ -28,8 +17,8 @@ SRC_URI[sha256sum] = "55d02dfa46263343a401f297d44190f2a3e5113c8933946f094ed40237 inherit autotools pkgconfig -EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR} \ - " +EXTRA_OECONF = "--with-kernel=${STAGING_INCDIR}" + PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," @@ -45,3 +34,31 @@ do_configure_prepend() { # Keep ax_check_linker_flags.m4 which belongs to autoconf-archive. rm -f libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 } + +PACKAGES += "${PN}-modules" +PACKAGES_DYNAMIC += "^${PN}-module-.*" + +python populate_packages_prepend() { + modules = do_split_packages(d, '${libdir}/xtables', 'lib(.*)\.so$', '${PN}-module-%s', '${PN} module %s', extra_depends='') + if modules: + metapkg = d.getVar('PN') + '-modules' + d.appendVar('RDEPENDS_' + metapkg, ' ' + ' '.join(modules)) +} + +FILES_${PN} += "${datadir}/xtables" + +ALLOW_EMPTY_${PN}-modules = "1" + +RDEPENDS_${PN} = "${PN}-module-xt-standard" +RRECOMMENDS_${PN} = " \ + ${PN}-modules \ + kernel-module-x-tables \ + kernel-module-ip-tables \ + kernel-module-iptable-filter \ + kernel-module-iptable-nat \ + kernel-module-nf-defrag-ipv4 \ + kernel-module-nf-conntrack \ + kernel-module-nf-conntrack-ipv4 \ + kernel-module-nf-nat \ + kernel-module-ipt-masquerade \ +"