Three miscellaneous patches
cover Three miscellaneous patches
These are three miscellaneous patches that I have sent earlier, but which somehow seems to have fallen between the cracks. The original patches should still apply, but I thought it easier to just resend them.
//Peter
The following changes since commit b0f2f690a3513e4c9fa30fee1b8d7ac2d7140657:
systemd-boot: upgrade to 239 (2018-07-18 10:18:42 +0100)
are available in the git repository at:
git://push.yoctoproject.org/poky-contrib pkj/misc-patches
Peter Kjellerstedt (3):
iptables: Split the iptables modules into separate packages
logrotate: Improve configurability of the installed systemd service
files
base-files: profile: Avoid using "command" to determine if programs
exist
meta/recipes-core/base-files/base-files/profile | 18 +++++---- meta/recipes-extended/iptables/iptables_1.6.2.bb | 43 +++++++++++++++------- .../recipes-extended/logrotate/logrotate_3.14.0.bb | 20 +++++++--- 3 files changed, 55 insertions(+), 26 deletions(-)
Signature · 1 line
2.12.0
PATCH 1/3 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.
--- meta/recipes-extended/iptables/iptables_1.6.2.bb | 43 +++++++++++++++++------- 1 file changed, 30 insertions(+), 13 deletions(-)
meta/recipes-extended/iptables/iptables_1.6.2.bb +30 -13
@@ -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 \ +"
Signature · 1 line
2.12.0
PATCH 2/3 logrotate: Improve configurability of the installed systemd service files
In reply to Peter KjellerstedtThis makes it possible to add extra options to the logrotate application (via ${LOGROTATE_OPTIONS}), and it allows the Persistent option in logrotate.timer to be configured via ${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}.
It also changes the sed expressions to allow for ${LOGROTATE_SYSTEMD_TIMER_BASIS} to contain commas without having to prefix them with backslahes, e.g.:LOGROTATE_SYSTEMD_TIMER_BASIS = "*-*-* *:00,30:00"
--- meta/recipes-extended/logrotate/logrotate_3.14.0.bb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-)
meta/recipes-extended/logrotate/logrotate_3.14.0.bb +15 -5
@@ -34,9 +34,9 @@ PACKAGECONFIG[acl] = ",,acl" PACKAGECONFIG[selinux] = ",,libselinux" CONFFILES_${PN} += "${localstatedir}/lib/logrotate.status \ - ${sysconfdir}/logrotate.conf \ - ${sysconfdir}/logrotate.d/btmp \ - ${sysconfdir}/logrotate.d/wtmp" + ${sysconfdir}/logrotate.conf \ + ${sysconfdir}/logrotate.d/btmp \ + ${sysconfdir}/logrotate.d/wtmp" # If RPM_OPT_FLAGS is unset, it adds -g itself rather than obeying our # optimization variables, so use it rather than EXTRA_CFLAGS.
@@ -62,8 +62,11 @@ SYSTEMD_SERVICE_${PN} = "\ ${BPN}.timer \ " +LOGROTATE_OPTIONS ?= "" + LOGROTATE_SYSTEMD_TIMER_BASIS ?= "daily" LOGROTATE_SYSTEMD_TIMER_ACCURACY ?= "12h" +LOGROTATE_SYSTEMD_TIMER_PERSISTENT ?= "true" do_install(){ oe_runmake install DESTDIR=${D} PREFIX=${D} MANDIR=${mandir}
@@ -78,8 +81,15 @@ do_install(){ install -d ${D}${systemd_system_unitdir} install -m 0644 ${S}/examples/logrotate.service ${D}${systemd_system_unitdir}/logrotate.service install -m 0644 ${S}/examples/logrotate.timer ${D}${systemd_system_unitdir}/logrotate.timer - sed -i -e 's,OnCalendar=.*$,OnCalendar=${LOGROTATE_SYSTEMD_TIMER_BASIS},g' ${D}${systemd_system_unitdir}/logrotate.timer - sed -i -e 's,AccuracySec=.*$,AccuracySec=${LOGROTATE_SYSTEMD_TIMER_ACCURACY},g' ${D}${systemd_system_unitdir}/logrotate.timer + [ -z "${LOGROTATE_OPTIONS}" ] || + sed -ri \ + -e 's|(ExecStart=.*/logrotate.*)$|\1 ${LOGROTATE_OPTIONS}|g' \ + ${D}${systemd_system_unitdir}/logrotate.service + sed -ri \ + -e 's|(OnCalendar=).*$|\1${LOGROTATE_SYSTEMD_TIMER_BASIS}|g' \ + -e 's|(AccuracySec=).*$|\1${LOGROTATE_SYSTEMD_TIMER_ACCURACY}|g' \ + -e 's|(Persistent=).*$|\1${LOGROTATE_SYSTEMD_TIMER_PERSISTENT}|g' \ + ${D}${systemd_system_unitdir}/logrotate.timer fi if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
Signature · 1 line
2.12.0
PATCH 3/3 base-files: profile: Avoid using "command" to determine if programs exist
In reply to Peter KjellerstedtSince the existence of "command" in itself is not guaranteed, using it to determine if other executables exist is moot. Instead just run the executables and let the shell determine if they exist. By piping stderr to /dev/null we avoid unnecessary warnings in case they do not exist.
--- meta/recipes-core/base-files/base-files/profile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)
meta/recipes-core/base-files/base-files/profile +10 -8
@@ -20,14 +20,16 @@ if [ -d /etc/profile.d ]; then unset i fi -if command -v resize >/dev/null && command -v tty >/dev/null; then - # Make sure we are on a serial console (i.e. the device used starts with - # /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which - # tries do use ssh - case $(tty) in - /dev/tty[A-z]*) resize >/dev/null;; - esac -fi +# Make sure we are on a serial console (i.e. the device used starts with +# /dev/tty[A-z]), otherwise we confuse e.g. the eclipse launcher which tries do +# use ssh +case $(tty 2>/dev/null) in + # The first invocation of resize verifies that it exists, the second + # does the actual resizing. This is due to that resize uses stderr to + # determine the size of the tty, which does not work if it is redirected + # to /dev/null. + /dev/tty[A-z]*) resize >/dev/null 2>&1 && resize >/dev/null;; +esac export PATH PS1 OPIEDIR QPEDIR QTDIR EDITOR TERM
Signature · 1 line
2.12.0